X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fusb%2Finput%2Fyealink.c;h=37d2f0ba0319c28e73e688394c27c3f65ab28459;hb=9464c7cf61b9433057924c36e6e02f303a00e768;hp=7b45fd3de9116715abe9c1c5c19cda527ba739e2;hpb=41689045f6a3cbe0550e1d34e9cc20d2e8c432ba;p=linux-2.6.git diff --git a/drivers/usb/input/yealink.c b/drivers/usb/input/yealink.c index 7b45fd3de..37d2f0ba0 100644 --- a/drivers/usb/input/yealink.c +++ b/drivers/usb/input/yealink.c @@ -46,12 +46,15 @@ * 20050816 henk Merge 2.6.13-rc6 */ +#include #include +#include #include #include #include #include -#include +#include +#include #include "map_to_7segment.h" #include "yealink.h" @@ -810,9 +813,12 @@ static int usb_cleanup(struct yealink_dev *yld, int err) if (yld == NULL) return err; - usb_kill_urb(yld->urb_irq); /* parameter validation in core/urb */ - usb_kill_urb(yld->urb_ctl); /* parameter validation in core/urb */ - + if (yld->urb_irq) { + usb_kill_urb(yld->urb_irq); + usb_free_urb(yld->urb_irq); + } + if (yld->urb_ctl) + usb_free_urb(yld->urb_ctl); if (yld->idev) { if (err) input_free_device(yld->idev); @@ -828,9 +834,6 @@ static int usb_cleanup(struct yealink_dev *yld, int err) if (yld->irq_data) usb_buffer_free(yld->udev, USB_PKT_LEN, yld->irq_data, yld->irq_dma); - - usb_free_urb(yld->urb_irq); /* parameter validation in core/urb */ - usb_free_urb(yld->urb_ctl); /* parameter validation in core/urb */ kfree(yld); return err; }