Messages in this thread | | | Date | Thu, 24 Jan 2008 08:44:18 -0800 | From | Greg KH <> | Subject | Re: [PATCH] Missing usb_find_device symbol from usb.c |
| |
On Thu, Jan 24, 2008 at 01:19:25PM +0200, Pekka Enberg wrote: > Hi Wilco, > > On Jan 24, 2008 12:05 PM, Wilco Beekhuizen <wilcobeekhuizen@gmail.com> wrote: > > Most code is pretty ancient, I just manage it so it compiles with > > recent kernels. Is there somehting exported that is similar to > > usb_find_device? > > The problem is that iriverfs shouldn't be calling usb_find_device() at > all. What happens when you plug in two players to the same computer? > AFAICT the whole thing should be a proper USB driver in drivers/usb/ > and not a "filesystem" in fs/.
No, that's not the problem. The code should just be using usb_register_driver() and then doing what it needs to do in the probe() callback, like any other USB driver.
By calling usb_find_device() it allows more than one driver to talk to the device at the same time, setting it up for some very bad things to possibly happen to the device.
So a simple code change should be all that is needed to properly fix this.
If you want, I can make up a patch, just point me at the version you wish me to modify.
thanks,
greg k-h
| |