From: Márton Németh <nm127@xxxxxxxxxxx> The id_table field of the struct usb_device_id is constant in <linux/usb.h> so it is worth to make the initialization data also constant. The semantic match that finds this kind of pattern is as follows: (http://coccinelle.lip6.fr/) // <smpl> @r@ disable decl_init,const_decl_init; identifier I1, I2, x; @@ struct I1 { ... const struct I2 *x; ... }; @s@ identifier r.I1, y; identifier r.x, E; @@ struct I1 y = { .x = E, }; @c@ identifier r.I2; identifier s.E; @@ const struct I2 E[] = ... ; @depends on !c@ identifier r.I2; identifier s.E; @@ + const struct I2 E[] = ...; // </smpl> Signed-off-by: Márton Németh <nm127@xxxxxxxxxxx> Cc: Julia Lawall <julia@xxxxxxx> Cc: cocci@xxxxxxx --- diff -u -p a/drivers/usb/misc/ftdi-elan.c b/drivers/usb/misc/ftdi-elan.c --- a/drivers/usb/misc/ftdi-elan.c 2009-12-03 04:51:21.000000000 +0100 +++ b/drivers/usb/misc/ftdi-elan.c 2010-01-08 17:32:43.000000000 +0100 @@ -86,7 +86,7 @@ static struct list_head ftdi_static_list #define USB_FTDI_ELAN_VENDOR_ID 0x0403 #define USB_FTDI_ELAN_PRODUCT_ID 0xd6ea /* table of devices that work with this driver*/ -static struct usb_device_id ftdi_elan_table[] = { +static const struct usb_device_id ftdi_elan_table[] = { {USB_DEVICE(USB_FTDI_ELAN_VENDOR_ID, USB_FTDI_ELAN_PRODUCT_ID)}, { /* Terminating entry */ } }; diff -u -p a/drivers/usb/misc/vstusb.c b/drivers/usb/misc/vstusb.c --- a/drivers/usb/misc/vstusb.c 2009-12-03 04:51:21.000000000 +0100 +++ b/drivers/usb/misc/vstusb.c 2010-01-08 17:32:52.000000000 +0100 @@ -61,7 +61,7 @@ #define VST_MAXBUFFER (64*1024) -static struct usb_device_id id_table[] = { +static const struct usb_device_id id_table[] = { { USB_DEVICE(USB_VENDOR_OCEANOPTICS, USB_PRODUCT_USB2000)}, { USB_DEVICE(USB_VENDOR_OCEANOPTICS, USB_PRODUCT_HR4000)}, { USB_DEVICE(USB_VENDOR_OCEANOPTICS, USB_PRODUCT_USB650)}, diff -u -p a/drivers/usb/misc/appledisplay.c b/drivers/usb/misc/appledisplay.c --- a/drivers/usb/misc/appledisplay.c 2010-01-07 19:08:47.000000000 +0100 +++ b/drivers/usb/misc/appledisplay.c 2010-01-08 17:32:59.000000000 +0100 @@ -57,7 +57,7 @@ .bInterfaceProtocol = 0x00 /* table of devices that work with this driver */ -static struct usb_device_id appledisplay_table [] = { +static const struct usb_device_id appledisplay_table[] = { { APPLEDISPLAY_DEVICE(0x9218) }, { APPLEDISPLAY_DEVICE(0x9219) }, { APPLEDISPLAY_DEVICE(0x921c) }, diff -u -p a/drivers/usb/misc/adutux.c b/drivers/usb/misc/adutux.c --- a/drivers/usb/misc/adutux.c 2009-12-03 04:51:21.000000000 +0100 +++ b/drivers/usb/misc/adutux.c 2010-01-08 17:33:05.000000000 +0100 @@ -56,7 +56,7 @@ MODULE_PARM_DESC(debug, "Debug enabled o #define ADU_PRODUCT_ID 0x0064 /* table of devices that work with this driver */ -static struct usb_device_id device_table [] = { +static const struct usb_device_id device_table[] = { { USB_DEVICE(ADU_VENDOR_ID, ADU_PRODUCT_ID) }, /* ADU100 */ { USB_DEVICE(ADU_VENDOR_ID, ADU_PRODUCT_ID+20) }, /* ADU120 */ { USB_DEVICE(ADU_VENDOR_ID, ADU_PRODUCT_ID+30) }, /* ADU130 */ diff -u -p a/drivers/usb/misc/cytherm.c b/drivers/usb/misc/cytherm.c --- a/drivers/usb/misc/cytherm.c 2009-12-03 04:51:21.000000000 +0100 +++ b/drivers/usb/misc/cytherm.c 2010-01-08 17:33:11.000000000 +0100 @@ -27,7 +27,7 @@ #define USB_SKEL_VENDOR_ID 0x04b4 #define USB_SKEL_PRODUCT_ID 0x0002 -static struct usb_device_id id_table [] = { +static const struct usb_device_id id_table[] = { { USB_DEVICE(USB_SKEL_VENDOR_ID, USB_SKEL_PRODUCT_ID) }, { } }; diff -u -p a/drivers/usb/misc/iowarrior.c b/drivers/usb/misc/iowarrior.c --- a/drivers/usb/misc/iowarrior.c 2009-12-03 04:51:21.000000000 +0100 +++ b/drivers/usb/misc/iowarrior.c 2010-01-08 17:33:26.000000000 +0100 @@ -139,7 +139,7 @@ static int usb_set_report(struct usb_int /* driver registration */ /*---------------------*/ /* table of devices that work with this driver */ -static struct usb_device_id iowarrior_ids[] = { +static const struct usb_device_id iowarrior_ids[] = { {USB_DEVICE(USB_VENDOR_ID_CODEMERCS, USB_DEVICE_ID_CODEMERCS_IOW40)}, {USB_DEVICE(USB_VENDOR_ID_CODEMERCS, USB_DEVICE_ID_CODEMERCS_IOW24)}, {USB_DEVICE(USB_VENDOR_ID_CODEMERCS, USB_DEVICE_ID_CODEMERCS_IOWPV1)}, diff -u -p a/drivers/usb/misc/idmouse.c b/drivers/usb/misc/idmouse.c --- a/drivers/usb/misc/idmouse.c 2009-12-03 04:51:21.000000000 +0100 +++ b/drivers/usb/misc/idmouse.c 2010-01-08 17:33:32.000000000 +0100 @@ -48,7 +48,7 @@ #define ID_CHERRY 0x0010 /* device ID table */ -static struct usb_device_id idmouse_table[] = { +static const struct usb_device_id idmouse_table[] = { {USB_DEVICE(ID_SIEMENS, ID_IDMOUSE)}, /* Siemens ID Mouse (Professional) */ {USB_DEVICE(ID_SIEMENS, ID_CHERRY )}, /* Cherry FingerTIP ID Board */ {} /* terminating null entry */ diff -u -p a/drivers/usb/misc/emi62.c b/drivers/usb/misc/emi62.c --- a/drivers/usb/misc/emi62.c 2010-01-07 19:08:47.000000000 +0100 +++ b/drivers/usb/misc/emi62.c 2010-01-08 17:33:38.000000000 +0100 @@ -259,7 +259,7 @@ wraperr: return err; } -static __devinitdata struct usb_device_id id_table [] = { +static const struct usb_device_id id_table[] __devinitconst = { { USB_DEVICE(EMI62_VENDOR_ID, EMI62_PRODUCT_ID) }, { } /* Terminating entry */ }; diff -u -p a/drivers/usb/misc/legousbtower.c b/drivers/usb/misc/legousbtower.c --- a/drivers/usb/misc/legousbtower.c 2009-12-03 04:51:21.000000000 +0100 +++ b/drivers/usb/misc/legousbtower.c 2010-01-08 17:33:44.000000000 +0100 @@ -192,7 +192,7 @@ struct tower_get_version_reply { /* table of devices that work with this driver */ -static struct usb_device_id tower_table [] = { +static const struct usb_device_id tower_table[] = { { USB_DEVICE(LEGO_USB_TOWER_VENDOR_ID, LEGO_USB_TOWER_PRODUCT_ID) }, { } /* Terminating entry */ }; diff -u -p a/drivers/usb/misc/trancevibrator.c b/drivers/usb/misc/trancevibrator.c --- a/drivers/usb/misc/trancevibrator.c 2009-12-03 04:51:21.000000000 +0100 +++ b/drivers/usb/misc/trancevibrator.c 2010-01-08 17:33:50.000000000 +0100 @@ -33,7 +33,7 @@ #define TRANCEVIBRATOR_VENDOR_ID 0x0b49 /* ASCII Corporation */ #define TRANCEVIBRATOR_PRODUCT_ID 0x064f /* Trance Vibrator */ -static struct usb_device_id id_table [] = { +static const struct usb_device_id id_table[] = { { USB_DEVICE(TRANCEVIBRATOR_VENDOR_ID, TRANCEVIBRATOR_PRODUCT_ID) }, { }, }; diff -u -p a/drivers/usb/misc/rio500.c b/drivers/usb/misc/rio500.c --- a/drivers/usb/misc/rio500.c 2009-12-03 04:51:21.000000000 +0100 +++ b/drivers/usb/misc/rio500.c 2010-01-08 17:34:08.000000000 +0100 @@ -510,7 +510,7 @@ static void disconnect_rio(struct usb_in } } -static struct usb_device_id rio_table [] = { +static const struct usb_device_id rio_table[] = { { USB_DEVICE(0x0841, 1) }, /* Rio 500 */ { } /* Terminating entry */ }; diff -u -p a/drivers/usb/misc/usblcd.c b/drivers/usb/misc/usblcd.c --- a/drivers/usb/misc/usblcd.c 2009-12-03 04:51:21.000000000 +0100 +++ b/drivers/usb/misc/usblcd.c 2010-01-08 17:34:14.000000000 +0100 @@ -30,7 +30,7 @@ #define IOCTL_GET_DRV_VERSION 2 -static struct usb_device_id id_table [] = { +static const struct usb_device_id id_table[] = { { .idVendor = 0x10D2, .match_flags = USB_DEVICE_ID_MATCH_VENDOR, }, { }, }; diff -u -p a/drivers/usb/misc/isight_firmware.c b/drivers/usb/misc/isight_firmware.c --- a/drivers/usb/misc/isight_firmware.c 2009-12-03 04:51:21.000000000 +0100 +++ b/drivers/usb/misc/isight_firmware.c 2010-01-08 17:34:17.000000000 +0100 @@ -26,7 +26,7 @@ #include <linux/errno.h> #include <linux/module.h> -static struct usb_device_id id_table[] = { +static const struct usb_device_id id_table[] = { {USB_DEVICE(0x05ac, 0x8300)}, {}, }; diff -u -p a/drivers/usb/misc/emi26.c b/drivers/usb/misc/emi26.c --- a/drivers/usb/misc/emi26.c 2009-12-03 04:51:21.000000000 +0100 +++ b/drivers/usb/misc/emi26.c 2010-01-08 17:34:22.000000000 +0100 @@ -245,7 +245,7 @@ wraperr: return err; } -static struct usb_device_id id_table [] = { +static const struct usb_device_id id_table[] = { { USB_DEVICE(EMI26_VENDOR_ID, EMI26_PRODUCT_ID) }, { USB_DEVICE(EMI26_VENDOR_ID, EMI26B_PRODUCT_ID) }, { } /* Terminating entry */ diff -u -p a/drivers/usb/misc/usbled.c b/drivers/usb/misc/usbled.c --- a/drivers/usb/misc/usbled.c 2009-12-03 04:51:21.000000000 +0100 +++ b/drivers/usb/misc/usbled.c 2010-01-08 17:34:27.000000000 +0100 @@ -24,7 +24,7 @@ #define PRODUCT_ID 0x1223 /* table of devices that work with this driver */ -static struct usb_device_id id_table [] = { +static const struct usb_device_id id_table[] = { { USB_DEVICE(VENDOR_ID, PRODUCT_ID) }, { }, }; diff -u -p a/drivers/usb/misc/ldusb.c b/drivers/usb/misc/ldusb.c --- a/drivers/usb/misc/ldusb.c 2009-12-03 04:51:21.000000000 +0100 +++ b/drivers/usb/misc/ldusb.c 2010-01-08 17:34:37.000000000 +0100 @@ -69,7 +69,7 @@ #endif /* table of devices that work with this driver */ -static struct usb_device_id ld_usb_table [] = { +static const struct usb_device_id ld_usb_table[] = { { USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_CASSY) }, { USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_POCKETCASSY) }, { USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_MOBILECASSY) }, diff -u -p a/drivers/usb/misc/usbtest.c b/drivers/usb/misc/usbtest.c --- a/drivers/usb/misc/usbtest.c 2010-01-07 19:08:47.000000000 +0100 +++ b/drivers/usb/misc/usbtest.c 2010-01-08 17:34:48.000000000 +0100 @@ -2101,7 +2101,7 @@ static struct usbtest_info generic_info #endif -static struct usb_device_id id_table [] = { +static const struct usb_device_id id_table[] = { /*-------------------------------------------------------------*/ diff -u -p a/drivers/usb/misc/cypress_cy7c63.c b/drivers/usb/misc/cypress_cy7c63.c --- a/drivers/usb/misc/cypress_cy7c63.c 2009-12-03 04:51:21.000000000 +0100 +++ b/drivers/usb/misc/cypress_cy7c63.c 2010-01-08 17:34:55.000000000 +0100 @@ -56,7 +56,7 @@ /* table of devices that work with this driver */ -static struct usb_device_id cypress_table [] = { +static const struct usb_device_id cypress_table[] = { { USB_DEVICE(CYPRESS_VENDOR_ID, CYPRESS_PRODUCT_ID) }, { } }; diff -u -p a/drivers/usb/misc/usbsevseg.c b/drivers/usb/misc/usbsevseg.c --- a/drivers/usb/misc/usbsevseg.c 2009-12-03 04:51:21.000000000 +0100 +++ b/drivers/usb/misc/usbsevseg.c 2010-01-08 17:35:01.000000000 +0100 @@ -27,7 +27,7 @@ #define MAXLEN 6 /* table of devices that work with this driver */ -static struct usb_device_id id_table[] = { +static const struct usb_device_id id_table[] = { { USB_DEVICE(VENDOR_ID, PRODUCT_ID) }, { }, }; diff -u -p a/drivers/usb/misc/sisusbvga/sisusb.c b/drivers/usb/misc/sisusbvga/sisusb.c --- a/drivers/usb/misc/sisusbvga/sisusb.c 2009-12-03 04:51:21.000000000 +0100 +++ b/drivers/usb/misc/sisusbvga/sisusb.c 2010-01-08 17:35:15.000000000 +0100 @@ -3238,7 +3238,7 @@ static void sisusb_disconnect(struct usb kref_put(&sisusb->kref, sisusb_delete); } -static struct usb_device_id sisusb_table [] = { +static const struct usb_device_id sisusb_table[] = { { USB_DEVICE(0x0711, 0x0550) }, { USB_DEVICE(0x0711, 0x0900) }, { USB_DEVICE(0x0711, 0x0901) }, diff -u -p a/drivers/usb/misc/uss720.c b/drivers/usb/misc/uss720.c --- a/drivers/usb/misc/uss720.c 2009-12-03 04:51:21.000000000 +0100 +++ b/drivers/usb/misc/uss720.c 2010-01-08 17:36:03.000000000 +0100 @@ -770,7 +770,7 @@ static void uss720_disconnect(struct usb } /* table of cables that work through this driver */ -static struct usb_device_id uss720_table [] = { +static const struct usb_device_id uss720_table[] = { { USB_DEVICE(0x047e, 0x1001) }, { USB_DEVICE(0x0557, 0x2001) }, { USB_DEVICE(0x0729, 0x1284) }, diff -u -p a/drivers/usb/misc/berry_charge.c b/drivers/usb/misc/berry_charge.c --- a/drivers/usb/misc/berry_charge.c 2009-12-03 04:51:21.000000000 +0100 +++ b/drivers/usb/misc/berry_charge.c 2010-01-08 17:36:09.000000000 +0100 @@ -39,7 +39,7 @@ static int pearl_dual_mode = 1; if (debug) \ dev_printk(KERN_DEBUG , dev , format , ## arg) -static struct usb_device_id id_table [] = { +static const struct usb_device_id id_table[] = { { USB_DEVICE(RIM_VENDOR, BLACKBERRY) }, { USB_DEVICE(RIM_VENDOR, BLACKBERRY_PEARL) }, { USB_DEVICE(RIM_VENDOR, BLACKBERRY_PEARL_DUAL) }, -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html