/* The Variable used by the driver */
-static struct mdc800_data* mdc800;
+static struct mdc800_data* mdc800=0;
/***************************************************************************
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.");
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)
{
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);
{
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;
}
kfree (mdc800->download_urb_buffer);
kfree (mdc800);
- mdc800 = NULL;
+ mdc800=0;
}
module_init (usb_mdc800_init);