static void adu_release_internal(struct adu_device *dev) { dbg(2," %s : enter", __func__); /* decrement our usage count for the device */ --dev->open_count; dbg(2," %s : open count %d", __func__, dev->open_count); if (dev->open_count <= 0) { adu_abort_transfers(dev); dev->open_count = 0; } dbg(2," %s : leave", __func__); }
static void adu_delete(struct adu_device *dev) { dbg(2, "%s enter", __FUNCTION__); adu_abort_transfers(dev); /* free data structures */ usb_free_urb(dev->interrupt_in_urb); usb_free_urb(dev->interrupt_out_urb); kfree(dev->read_buffer_primary); kfree(dev->read_buffer_secondary); kfree(dev->interrupt_in_buffer); kfree(dev->interrupt_out_buffer); kfree(dev); dbg(2, "%s : leave", __FUNCTION__); }
static int adu_release_internal(struct adu_device *dev) { int retval = 0; dbg(2," %s : enter", __FUNCTION__); /* decrement our usage count for the device */ --dev->open_count; dbg(2," %s : open count %d", __FUNCTION__, dev->open_count); if (dev->open_count <= 0) { adu_abort_transfers(dev); dev->open_count = 0; } dbg(2," %s : leave", __FUNCTION__); return retval; }
static int adu_release_internal(struct adu_device *dev) { int retval = 0; dbg(2," %s : enter", __FUNCTION__); if (dev->udev == NULL) { /* the device was unplugged before the file was released */ adu_delete(dev); goto exit; } /* decrement our usage count for the device */ --dev->open_count; dbg(2," %s : open count %d", __FUNCTION__, dev->open_count); if (dev->open_count <= 0) { adu_abort_transfers(dev); dev->open_count = 0; } exit: dbg(2," %s : leave", __FUNCTION__); return retval; }