This commit was manufactured by cvs2svn to create tag
[linux-2.6.git] / drivers / usb / image / mdc800.c
index f401557..d9461e3 100644 (file)
@@ -190,7 +190,7 @@ static struct usb_endpoint_descriptor mdc800_ed [4] =
 
 
 /* The Variable used by the driver */
-static struct mdc800_data* mdc800;
+static struct mdc800_data* mdc800=0;
 
 
 /***************************************************************************
@@ -547,7 +547,7 @@ static void mdc800_usb_disconnect (struct usb_interface *intf)
                usb_unlink_urb (mdc800->write_urb);
                usb_unlink_urb (mdc800->download_urb);
 
-               mdc800->dev = NULL;
+               mdc800->dev=0;
                usb_set_intfdata(intf, NULL);
        }
        info ("Mustek MDC800 disconnected from USB.");
@@ -971,7 +971,9 @@ static struct usb_driver mdc800_usb_driver =
        Init and Cleanup this driver (Main Functions)
 *************************************************************************/
 
-#define try(A)           if (!(A)) goto cleanup_on_fail;
+#define try(A)           if ((A) == 0) goto cleanup_on_fail;
+#define try_free_mem(A)  if (A != 0) { kfree (A); A=0; }
+#define try_free_urb(A)  if (A != 0) { usb_free_urb (A); A=0; }
 
 static int __init usb_mdc800_init (void)
 {
@@ -980,7 +982,7 @@ static int __init usb_mdc800_init (void)
        try (mdc800=kmalloc (sizeof (struct mdc800_data), GFP_KERNEL));
 
        memset(mdc800, 0, sizeof(struct mdc800_data));
-       mdc800->dev = NULL;
+       mdc800->dev=0;
        mdc800->open=0;
        mdc800->state=NOT_CONNECTED;
        init_MUTEX (&mdc800->io_lock);
@@ -1018,17 +1020,17 @@ cleanup_on_fail:
        {
                err ("can't alloc memory!");
 
-               kfree(mdc800->download_urb_buffer);
-               kfree(mdc800->write_urb_buffer);
-               kfree(mdc800->irq_urb_buffer);
+               try_free_mem (mdc800->download_urb_buffer);
+               try_free_mem (mdc800->write_urb_buffer);
+               try_free_mem (mdc800->irq_urb_buffer);
 
-               usb_free_urb(mdc800->write_urb);
-               usb_free_urb(mdc800->download_urb);
-               usb_free_urb(mdc800->irq_urb);
+               try_free_urb (mdc800->write_urb);
+               try_free_urb (mdc800->download_urb);
+               try_free_urb (mdc800->irq_urb);
 
                kfree (mdc800);
        }
-       mdc800 = NULL;
+       mdc800=0;
        return retval;
 }
 
@@ -1046,7 +1048,7 @@ static void __exit usb_mdc800_cleanup (void)
        kfree (mdc800->download_urb_buffer);
 
        kfree (mdc800);
-       mdc800 = NULL;
+       mdc800=0;
 }
 
 module_init (usb_mdc800_init);