[PATCH 4/9] USB image: make USB device id constant

Németh Márton
2010-01-10T14:34:50Z

From: Márton Németh <nm127@freemail.hu>

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@freemail.hu>
Cc: Julia Lawall <julia@diku.dk>
Cc: cocci@diku.dk
---
--- linux/drivers/usb/image/mdc800.c.orig 2010-01-10 15:04:28.000000000 +0100
+++ linux/drivers/usb/image/mdc800.c 2010-01-10 15:05:46.000000000 +0100
@@ -967,7 +967,7 @@

-static struct usb_device_id mdc800_table [] = {
+static const struct usb_device_id mdc800_table[] = {
{ USB_DEVICE(MDC800_VENDOR_ID, MDC800_PRODUCT_ID) },
{ } /* Terminating entry */
};
--- linux/drivers/usb/image/microtek.c.orig 2010-01-10 15:04:28.000000000 +0100
+++ linux/drivers/usb/image/microtek.c 2010-01-10 15:10:52.000000000 +0100
@@ -155,7 +155,7 @@
const struct usb_device_id *id);
static void mts_usb_disconnect(struct usb_interface *intf);

-static struct usb_device_id mts_usb_ids [];
+static const struct usb_device_id mts_usb_ids[];

static struct usb_driver mts_usb_driver = {
.name = "microtekX6",
@@ -656,7 +656,7 @@
/* The entries of microtek_table must correspond, line-by-line to
the entries of mts_supported_products[]. */

-static struct usb_device_id mts_usb_ids [] =
+static const struct usb_device_id mts_usb_ids[] =
{
{ USB_DEVICE(0x4ce, 0x0300) },
{ USB_DEVICE(0x5da, 0x0094) },