On 9/17/07, Andrew Morton <[EMAIL PROTECTED]> wrote: > On Wed, 12 Sep 2007 17:49:37 -0700 Kees Cook <[EMAIL PROTECTED]> wrote: > > > This patch against 2.6.23-rc6 will cause modpost to fail if any device > > id lists are incorrectly terminated, after reporting the offender. > > I'm getting this: > > rusb2/pvrusb2: struct usb_device_id is 20 bytes. The last of 3 is: > 0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 > 0x00 0x00 0x00 0x00 0x00 > FATAL: drivers/media/video/pvrusb2/pvrusb2: struct usb_device_id is not > terminated > with a NULL entry! > > ("rusb2/pvrusb2" ??)
Hmm? Are you sure you didn't see any "drivers/media/video/pv" before the "rusb2/pvrusb2" bit? Looking at Kees' patch (and the existing code), I've no clue how/why this should happen ... will try to reproduce here ... > but: > > struct usb_device_id pvr2_device_table[] = { > [PVR2_HDW_TYPE_29XXX] = { USB_DEVICE(0x2040, 0x2900) }, > [PVR2_HDW_TYPE_24XXX] = { USB_DEVICE(0x2040, 0x2400) }, > { USB_DEVICE(0, 0) }, > }; > > looks OK? > > Using plain old "{ }" shut the warning up. USB_DEVICE(0, 0) is not empty termination, actually, and this looks like a genuine bug caught by the patch. As that dump shows, USB_DEVICE(0, 0) assigns "0x03 0x00" (in little endian) to usb_device_id.match_flags. And I don't think the USB code treats such an entry as an empty entry (?) Interestingly, the "USB_DEVICE(0, 0)" thing is absent from latest -git tree and also in my copy of 23-rc4-mm1 -- so this looks like something you must've merged recently. - 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/