Commit 10892847 authored by Joe Perches's avatar Joe Perches Committed by Greg Kroah-Hartman

usb-storage: Use const to reduce object data size

Make structs const to reduce data size ~20KB.

Change function arguments and prototypes as necessary to compile.

$ size (x86-64 defconfig pre)
   text	   data	    bss	    dec	    hex	filename
  12281	  10948	    480	  23709	   5c9d	./drivers/usb/storage/usb.o
    111	  10528	      8	  10647	   2997	./drivers/usb/storage/usual-tables.o

$ size (x86-64 defconfig post)
   text	   data	    bss	    dec	    hex	filename
  22809	    420	    480	  23709	   5c9d	drivers/usb/storage/usb.o
  10551	      0	      0	  10551	   2937	drivers/usb/storage/usual-tables.o
Signed-off-by: default avatarJoe Perches <joe@perches.com>
Acked-by: default avatarAlan Stern <stern@rowland.harvard.edu>
Link: https://lore.kernel.org/r/cf13bd2d790ae3afbf5da55ea7bed12e00c5119d.camel@perches.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 28926994
...@@ -121,12 +121,12 @@ MODULE_PARM_DESC(quirks, "supplemental list of device IDs and their quirks"); ...@@ -121,12 +121,12 @@ MODULE_PARM_DESC(quirks, "supplemental list of device IDs and their quirks");
.initFunction = init_function, \ .initFunction = init_function, \
} }
static struct us_unusual_dev us_unusual_dev_list[] = { static const struct us_unusual_dev us_unusual_dev_list[] = {
# include "unusual_devs.h" # include "unusual_devs.h"
{ } /* Terminating entry */ { } /* Terminating entry */
}; };
static struct us_unusual_dev for_dynamic_ids = static const struct us_unusual_dev for_dynamic_ids =
USUAL_DEV(USB_SC_SCSI, USB_PR_BULK); USUAL_DEV(USB_SC_SCSI, USB_PR_BULK);
#undef UNUSUAL_DEV #undef UNUSUAL_DEV
...@@ -583,7 +583,7 @@ EXPORT_SYMBOL_GPL(usb_stor_adjust_quirks); ...@@ -583,7 +583,7 @@ EXPORT_SYMBOL_GPL(usb_stor_adjust_quirks);
/* Get the unusual_devs entries and the string descriptors */ /* Get the unusual_devs entries and the string descriptors */
static int get_device_info(struct us_data *us, const struct usb_device_id *id, static int get_device_info(struct us_data *us, const struct usb_device_id *id,
struct us_unusual_dev *unusual_dev) const struct us_unusual_dev *unusual_dev)
{ {
struct usb_device *dev = us->pusb_dev; struct usb_device *dev = us->pusb_dev;
struct usb_interface_descriptor *idesc = struct usb_interface_descriptor *idesc =
...@@ -933,7 +933,7 @@ static unsigned int usb_stor_sg_tablesize(struct usb_interface *intf) ...@@ -933,7 +933,7 @@ static unsigned int usb_stor_sg_tablesize(struct usb_interface *intf)
int usb_stor_probe1(struct us_data **pus, int usb_stor_probe1(struct us_data **pus,
struct usb_interface *intf, struct usb_interface *intf,
const struct usb_device_id *id, const struct usb_device_id *id,
struct us_unusual_dev *unusual_dev, const struct us_unusual_dev *unusual_dev,
struct scsi_host_template *sht) struct scsi_host_template *sht)
{ {
struct Scsi_Host *host; struct Scsi_Host *host;
...@@ -1092,7 +1092,7 @@ static struct scsi_host_template usb_stor_host_template; ...@@ -1092,7 +1092,7 @@ static struct scsi_host_template usb_stor_host_template;
static int storage_probe(struct usb_interface *intf, static int storage_probe(struct usb_interface *intf,
const struct usb_device_id *id) const struct usb_device_id *id)
{ {
struct us_unusual_dev *unusual_dev; const struct us_unusual_dev *unusual_dev;
struct us_data *us; struct us_data *us;
int result; int result;
int size; int size;
......
...@@ -93,7 +93,8 @@ struct us_data { ...@@ -93,7 +93,8 @@ struct us_data {
struct mutex dev_mutex; /* protect pusb_dev */ struct mutex dev_mutex; /* protect pusb_dev */
struct usb_device *pusb_dev; /* this usb_device */ struct usb_device *pusb_dev; /* this usb_device */
struct usb_interface *pusb_intf; /* this interface */ struct usb_interface *pusb_intf; /* this interface */
struct us_unusual_dev *unusual_dev; /* device-filter entry */ const struct us_unusual_dev *unusual_dev;
/* device-filter entry */
unsigned long fflags; /* fixed flags from filter */ unsigned long fflags; /* fixed flags from filter */
unsigned long dflags; /* dynamic atomic bitflags */ unsigned long dflags; /* dynamic atomic bitflags */
unsigned int send_bulk_pipe; /* cached pipe values */ unsigned int send_bulk_pipe; /* cached pipe values */
...@@ -185,7 +186,7 @@ extern int usb_stor_post_reset(struct usb_interface *iface); ...@@ -185,7 +186,7 @@ extern int usb_stor_post_reset(struct usb_interface *iface);
extern int usb_stor_probe1(struct us_data **pus, extern int usb_stor_probe1(struct us_data **pus,
struct usb_interface *intf, struct usb_interface *intf,
const struct usb_device_id *id, const struct usb_device_id *id,
struct us_unusual_dev *unusual_dev, const struct us_unusual_dev *unusual_dev,
struct scsi_host_template *sht); struct scsi_host_template *sht);
extern int usb_stor_probe2(struct us_data *us); extern int usb_stor_probe2(struct us_data *us);
extern void usb_stor_disconnect(struct usb_interface *intf); extern void usb_stor_disconnect(struct usb_interface *intf);
......
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
.driver_info = (flags) \ .driver_info = (flags) \
} }
struct usb_device_id usb_storage_usb_ids[] = { const struct usb_device_id usb_storage_usb_ids[] = {
# include "unusual_devs.h" # include "unusual_devs.h"
{ } /* Terminating entry */ { } /* Terminating entry */
}; };
...@@ -68,7 +68,7 @@ struct ignore_entry { ...@@ -68,7 +68,7 @@ struct ignore_entry {
.bcdmax = bcdDeviceMax, \ .bcdmax = bcdDeviceMax, \
} }
static struct ignore_entry ignore_ids[] = { static const struct ignore_entry ignore_ids[] = {
# include "unusual_alauda.h" # include "unusual_alauda.h"
# include "unusual_cypress.h" # include "unusual_cypress.h"
# include "unusual_datafab.h" # include "unusual_datafab.h"
...@@ -92,7 +92,7 @@ int usb_usual_ignore_device(struct usb_interface *intf) ...@@ -92,7 +92,7 @@ int usb_usual_ignore_device(struct usb_interface *intf)
{ {
struct usb_device *udev; struct usb_device *udev;
unsigned vid, pid, bcd; unsigned vid, pid, bcd;
struct ignore_entry *p; const struct ignore_entry *p;
udev = interface_to_usbdev(intf); udev = interface_to_usbdev(intf);
vid = le16_to_cpu(udev->descriptor.idVendor); vid = le16_to_cpu(udev->descriptor.idVendor);
......
...@@ -92,6 +92,6 @@ enum { US_DO_ALL_FLAGS }; ...@@ -92,6 +92,6 @@ enum { US_DO_ALL_FLAGS };
#include <linux/usb/storage.h> #include <linux/usb/storage.h>
extern int usb_usual_ignore_device(struct usb_interface *intf); extern int usb_usual_ignore_device(struct usb_interface *intf);
extern struct usb_device_id usb_storage_usb_ids[]; extern const struct usb_device_id usb_storage_usb_ids[];
#endif /* __LINUX_USB_USUAL_H */ #endif /* __LINUX_USB_USUAL_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment