From: Julia Lawall <[EMAIL PROTECTED]> Robert P.J. Day proposed to use the macro FIELD_SIZEOF in replace of code that matches its definition.
The modification was made using the following semantic patch (http://www.emn.fr/x-info/coccinelle/) // <smpl> @haskernel@ @@ #include <linux/kernel.h> @depends on haskernel@ type t; identifier f; @@ - (sizeof(((t*)0)->f)) + FIELD_SIZEOF(t, f) @depends on haskernel@ type t; identifier f; @@ - sizeof(((t*)0)->f) + FIELD_SIZEOF(t, f) // </smpl> Signed-off-by: Julia Lawall <[EMAIL PROTECTED]> --- diff -u -p a/drivers/usb/atm/usbatm.c b/drivers/usb/atm/usbatm.c --- a/drivers/usb/atm/usbatm.c 2007-09-20 18:59:00.000000000 +0200 +++ b/drivers/usb/atm/usbatm.c 2008-02-10 18:13:48.000000000 +0100 @@ -1349,7 +1349,7 @@ static int __init usbatm_usb_init(void) { dbg("%s: driver version %s", __func__, DRIVER_VERSION); - if (sizeof(struct usbatm_control) > sizeof(((struct sk_buff *) 0)->cb)) { + if (sizeof(struct usbatm_control) > FIELD_SIZEOF(struct sk_buff, cb)) { printk(KERN_ERR "%s unusable with this kernel!\n", usbatm_driver_name); return -EIO; } diff -u -p a/drivers/usb/serial/io_usbvend.h b/drivers/usb/serial/io_usbvend.h --- a/drivers/usb/serial/io_usbvend.h 2007-07-20 15:28:33.000000000 +0200 +++ b/drivers/usb/serial/io_usbvend.h 2008-02-10 18:15:37.000000000 +0100 @@ -514,10 +514,10 @@ struct edge_manuf_descriptor { #define MANUF_BOARD_REV_A 1 // First rev of 251+Netchip design -#define MANUF_SERNUM_LENGTH sizeof(((struct edge_manuf_descriptor *)0)->SerialNumber) -#define MANUF_ASSYNUM_LENGTH sizeof(((struct edge_manuf_descriptor *)0)->AssemblyNumber) -#define MANUF_OEMASSYNUM_LENGTH sizeof(((struct edge_manuf_descriptor *)0)->OemAssyNumber) -#define MANUF_MANUFDATE_LENGTH sizeof(((struct edge_manuf_descriptor *)0)->ManufDate) +#define MANUF_SERNUM_LENGTH FIELD_SIZEOF(struct edge_manuf_descriptor, SerialNumber) +#define MANUF_ASSYNUM_LENGTH FIELD_SIZEOF(struct edge_manuf_descriptor, AssemblyNumber) +#define MANUF_OEMASSYNUM_LENGTH FIELD_SIZEOF(struct edge_manuf_descriptor, OemAssyNumber) +#define MANUF_MANUFDATE_LENGTH FIELD_SIZEOF(struct edge_manuf_descriptor, ManufDate) #define MANUF_ION_CONFIG_DIAG_NO_LOOP 0x20 // As below but no ext loopback test #define MANUF_ION_CONFIG_DIAG 0x40 // 930 based device: 1=Run h/w diags, 0=norm -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/