Hi,
Oliver Neukum:
> the option driver does not directly use usb_kill_urb(). It uses a wrapper.
> This wrapper means that callbacks which are running are not killed during
> close, resubmitting and illicitly pushing data into the tty layer.
> The whole purpose of usb_kill_urb() is subverted. The wrapper must be
> removed.
>
Umm, I don't recall off-hand whether urb can ever be NULL, e.g. due to
allocation problems. Did you verify that it cannot?
Otherwise I'd use this patch instead.
Signed-Off-By: Matthias Urlichs <[EMAIL PROTECTED]>
---
+++ linux-2.6.21-rc4/drivers/usb/serial/option.c 2007-03-20
13:33:16.000000000 +0100
@@ -580,12 +580,11 @@
return (0);
}
static inline void stop_urb(struct urb *urb)
{
- if (urb && urb->status == -EINPROGRESS)
- usb_kill_urb(urb);
+ if (urb) usb_kill_urb(urb);
}
static void option_close(struct usb_serial_port *port, struct file *filp)
{
int i;
--
Matthias Urlichs | {M:U} IT Design @ m-u-it.de | [EMAIL PROTECTED]
Disclaimer: The quote was selected randomly. Really. | http://smurf.noris.de
- -
Mister Teatime had a truly brilliant mind, but it was brilliant like a
fractured mirror, all marvellous facets and rainbows but, ultimately, also
something that was broken.
-- Terry Pratchett (Hogfather)
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel