Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

usb-storage,uas: make internal quirks flags 64bit

Switch internal usb-storage quirk value to 64-bit as quirks currently
use all 32 bits.

Signed-off-by: Milan Broz <gmazyland@gmail.com>
Reviewed-by: Alan Stern <stern@rowland.harvard.edu>
Link: https://lore.kernel.org/r/20231016072604.40179-3-gmazyland@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Milan Broz and committed by
Greg Kroah-Hartman
d181b34b 35b62f6f

+11 -11
+2 -2
drivers/usb/storage/uas-detect.h
··· 54 54 55 55 static int uas_use_uas_driver(struct usb_interface *intf, 56 56 const struct usb_device_id *id, 57 - unsigned long *flags_ret) 57 + u64 *flags_ret) 58 58 { 59 59 struct usb_host_endpoint *eps[4] = { }; 60 60 struct usb_device *udev = interface_to_usbdev(intf); 61 61 struct usb_hcd *hcd = bus_to_hcd(udev->bus); 62 - unsigned long flags = id->driver_info; 62 + u64 flags = id->driver_info; 63 63 struct usb_host_interface *alt; 64 64 int r; 65 65
+2 -2
drivers/usb/storage/uas.c
··· 37 37 struct usb_anchor cmd_urbs; 38 38 struct usb_anchor sense_urbs; 39 39 struct usb_anchor data_urbs; 40 - unsigned long flags; 40 + u64 flags; 41 41 int qdepth, resetting; 42 42 unsigned cmd_pipe, status_pipe, data_in_pipe, data_out_pipe; 43 43 unsigned use_streams:1; ··· 988 988 struct Scsi_Host *shost = NULL; 989 989 struct uas_dev_info *devinfo; 990 990 struct usb_device *udev = interface_to_usbdev(intf); 991 - unsigned long dev_flags; 991 + u64 dev_flags; 992 992 993 993 if (!uas_use_uas_driver(intf, id, &dev_flags)) 994 994 return -ENODEV;
+4 -4
drivers/usb/storage/usb.c
··· 460 460 #define TOLOWER(x) ((x) | 0x20) 461 461 462 462 /* Adjust device flags based on the "quirks=" module parameter */ 463 - void usb_stor_adjust_quirks(struct usb_device *udev, unsigned long *fflags) 463 + void usb_stor_adjust_quirks(struct usb_device *udev, u64 *fflags) 464 464 { 465 465 char *p; 466 466 u16 vid = le16_to_cpu(udev->descriptor.idVendor); 467 467 u16 pid = le16_to_cpu(udev->descriptor.idProduct); 468 - unsigned f = 0; 469 - unsigned int mask = (US_FL_SANE_SENSE | US_FL_BAD_SENSE | 468 + u64 f = 0; 469 + u64 mask = (US_FL_SANE_SENSE | US_FL_BAD_SENSE | 470 470 US_FL_FIX_CAPACITY | US_FL_IGNORE_UAS | 471 471 US_FL_CAPACITY_HEURISTICS | US_FL_IGNORE_DEVICE | 472 472 US_FL_NOT_LOCKABLE | US_FL_MAX_SECTORS_64 | ··· 605 605 us->fflags &= ~US_FL_GO_SLOW; 606 606 607 607 if (us->fflags) 608 - dev_info(pdev, "Quirks match for vid %04x pid %04x: %lx\n", 608 + dev_info(pdev, "Quirks match for vid %04x pid %04x: %llx\n", 609 609 le16_to_cpu(dev->descriptor.idVendor), 610 610 le16_to_cpu(dev->descriptor.idProduct), 611 611 us->fflags);
+2 -2
drivers/usb/storage/usb.h
··· 95 95 struct usb_interface *pusb_intf; /* this interface */ 96 96 const struct us_unusual_dev *unusual_dev; 97 97 /* device-filter entry */ 98 - unsigned long fflags; /* fixed flags from filter */ 98 + u64 fflags; /* fixed flags from filter */ 99 99 unsigned long dflags; /* dynamic atomic bitflags */ 100 100 unsigned int send_bulk_pipe; /* cached pipe values */ 101 101 unsigned int recv_bulk_pipe; ··· 192 192 extern void usb_stor_disconnect(struct usb_interface *intf); 193 193 194 194 extern void usb_stor_adjust_quirks(struct usb_device *dev, 195 - unsigned long *fflags); 195 + u64 *fflags); 196 196 197 197 #define module_usb_stor_driver(__driver, __sht, __name) \ 198 198 static int __init __driver##_init(void) \
+1 -1
drivers/usb/storage/usual-tables.c
··· 19 19 vendorName, productName, useProtocol, useTransport, \ 20 20 initFunction, flags) \ 21 21 { USB_DEVICE_VER(id_vendor, id_product, bcdDeviceMin, bcdDeviceMax), \ 22 - .driver_info = (flags) } 22 + .driver_info = (kernel_ulong_t)(flags) } 23 23 24 24 #define COMPLIANT_DEV UNUSUAL_DEV 25 25