On Thu, 14 Nov 2002, Duncan Haldane wrote:
| I am the current maintainer of the cpia webcam driver.
|
| I am tracking down a kernel Oops in 2.4.20-rc1 that was first
| introduced in 2.4.13 by usb semaphore locking changes in usb.c,
| and which was reported a while back on this list. See:
| http://www.uwsg.iu.edu/hypermail/linux/kernel/0208.1/1504.html
| The Ooops occurs when the system boots if usb, video4linux ,
| cpia and cpia_usb are compiled into the kernel.
| There is no problem if they are compiled as modules.
|
|
| No changes in the cpia drivers occurred when the Ooops was
| introduced in 2.4.13. usb_cpia-init() in drivers/media/video/cpia_usb.c
| calls usb_register() in drivers/usb/usb.c to register itself. \
| usb_register() calls usb_scan_devices(). The Oops occurs when
| the usb list is locked in usb_scan_devices(), by a call to
| " down (&usb_bus_list_lock);".
| The result is: "Unable to handle kernel NULL pointer dereference at
| virtual address 00000000","Oops: 0002".
It's good to have this info, but do you also have the decoded
Oops (ksymoops output)? I'd like to see the code sequence etc.,
unless someone else just posts a patch first. :)
| If I comment out the lock, things work again. (no OOPS, cpa works).
| So the problem is isolated. Whats the fix?
|
|
| Assuming this is a usb.c problem , I'm out of my depth here.
|
|
| Or should some new entries to initialize something be added to
| the "static struct usb_driver cpia_driver" declaration in cpia_usb.c below?
| Please give me some hints on what to fix if some new initialization
| in cpia_usb.c is needed since the 2.4.13 usb semaphore changes.
|
| Thanks!
|
| Please cc me directly:
|
| duncan_haldane@users.sourceforge.net
Also copying linux-usb-devel@lists.sf.net .
Thanks,
-- ~Randy "I read part of it all the way through." -- Samuel Goldwyn- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/