Revert to Fedora kernel-2.6.17-1.2187_FC5 patched with vs2.0.2.1; there are too many...
[linux-2.6.git] / drivers / usb / input / yealink.c
index 7b45fd3..37d2f0b 100644 (file)
  *   20050816 henk     Merge 2.6.13-rc6
  */
 
+#include <linux/config.h>
 #include <linux/kernel.h>
+#include <linux/input.h>
 #include <linux/init.h>
 #include <linux/slab.h>
 #include <linux/module.h>
 #include <linux/rwsem.h>
-#include <linux/usb/input.h>
+#include <linux/usb.h>
+#include <linux/usb_input.h>
 
 #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;
 }