Messages in this thread | ![/](/images/icornerl.gif) | | Date | Sat, 5 Dec 2009 12:16:13 -0500 (EST) | From | Alan Stern <> | Subject | Re: debugging oops after disconnecting Nexio USB touchscreen |
| |
On Sat, 5 Dec 2009, Andreas Mohr wrote:
> Hi, > > > Furthermore, the patch shows that the second-to-last argument to > > usb_fill_bulk_urb() -- the completion function -- is NULL. That is > > strictly illegal and it should have caused an oops as soon as the URB > > was used. > > Then there's definitely a WARN_ON or so missing in > static inline void usb_fill_bulk_urb()
No there isn't. That inline just fills in a bunch of fields.
You could argue that there is a WARN_ON missing in usb_submit_urb(). I don't think one is necessary, but you might disagree. Either way, both of us missed the fact that right at the start of usb_submit_urb() is a check for urb->complete being NULL; if it is NULL then the submission simply fails (and there is no oops).
> And highly likely more checks in those areas that are causing my (and > other people's) ftdi_sio tests and USB audio (MIPS mmap) to fail. > Followup soon.
Sometimes having too many checks is worse than having too few, especially if the failure modes are relatively easy to handle.
Alan Stern
| ![\](/images/icornerr.gif) |