]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/usb/image/microtek.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[linux-2.6-omap-h63xx.git] / drivers / usb / image / microtek.c
index 5f861331932a670affdb9769f8ef32571b957269..51bd80d2b8ccb4379756b83d6185e175b2bbd4b8 100644 (file)
 
 #include <linux/module.h>
 #include <linux/kernel.h>
-#include <linux/sched.h>
 #include <linux/signal.h>
 #include <linux/errno.h>
 #include <linux/random.h>
 #include <linux/init.h>
 #include <linux/slab.h>
 #include <linux/spinlock.h>
-#include <linux/smp_lock.h>
 #include <linux/usb.h>
 #include <linux/proc_fs.h>
 
@@ -370,7 +368,7 @@ static int
 mts_scsi_queuecommand(struct scsi_cmnd *srb, mts_scsi_cmnd_callback callback);
 
 static void mts_transfer_cleanup( struct urb *transfer );
-static void mts_do_sg(struct urb * transfer, struct pt_regs *regs);
+static void mts_do_sg(struct urb * transfer);
 
 static inline
 void mts_int_submit_urb (struct urb* transfer,
@@ -417,7 +415,7 @@ static void mts_transfer_cleanup( struct urb *transfer )
 
 }
 
-static void mts_transfer_done( struct urb *transfer, struct pt_regs *regs )
+static void mts_transfer_done( struct urb *transfer )
 {
        MTS_INT_INIT();
 
@@ -443,7 +441,7 @@ static void mts_get_status( struct urb *transfer )
                           mts_transfer_done );
 }
 
-static void mts_data_done( struct urb* transfer, struct pt_regs *regs )
+static void mts_data_done( struct urb* transfer )
 /* Interrupt context! */
 {
        MTS_INT_INIT();
@@ -460,7 +458,7 @@ static void mts_data_done( struct urb* transfer, struct pt_regs *regs )
 }
 
 
-static void mts_command_done( struct urb *transfer, struct pt_regs *regs )
+static void mts_command_done( struct urb *transfer )
 /* Interrupt context! */
 {
        MTS_INT_INIT();
@@ -501,7 +499,7 @@ static void mts_command_done( struct urb *transfer, struct pt_regs *regs )
        return;
 }
 
-static void mts_do_sg (struct urb* transfer, struct pt_regs *regs)
+static void mts_do_sg (struct urb* transfer)
 {
        struct scatterlist * sg;
        MTS_INT_INIT();
@@ -796,7 +794,7 @@ static int mts_usb_probe(struct usb_interface *intf,
 
        new_desc->context.scsi_status = kmalloc(1, GFP_KERNEL);
        if (!new_desc->context.scsi_status)
-               goto out_kfree2;
+               goto out_free_urb;
 
        new_desc->usb_dev = dev;
        new_desc->usb_intf = intf;
@@ -822,18 +820,20 @@ static int mts_usb_probe(struct usb_interface *intf,
        new_desc->host = scsi_host_alloc(&mts_scsi_host_template,
                        sizeof(new_desc));
        if (!new_desc->host)
-               goto out_free_urb;
+               goto out_kfree2;
 
        new_desc->host->hostdata[0] = (unsigned long)new_desc;
        if (scsi_add_host(new_desc->host, NULL)) {
                err_retval = -EIO;
-               goto out_free_urb;
+               goto out_host_put;
        }
        scsi_scan_host(new_desc->host);
 
        usb_set_intfdata(intf, new_desc);
        return 0;
 
+ out_host_put:
+       scsi_host_put(new_desc->host);
  out_kfree2:
        kfree(new_desc->context.scsi_status);
  out_free_urb: