/* Acquire the device lock and process queues for the device.  */
static void dasd_device_tasklet(struct dasd_device *)
/* Acquire the device lock and process queues for the device.  */
static void dasd_device_tasklet(struct dasd_device *)
{
	struct list_head final_queue;
	atomic_set (&device->tasklet_scheduled, 0);
	INIT_LIST_HEAD(&final_queue);
	spin_lock_irq(get_ccwdev_lock(device->cdev));
	__dasd_device_check_expire(device);
	__dasd_device_process_ccw_queue(device, &final_queue);
	spin_unlock_irq(get_ccwdev_lock(device->cdev));
	__dasd_device_process_final_queue(device, &final_queue);
	spin_lock_irq(get_ccwdev_lock(device->cdev));
	__dasd_device_start_head(device);
	spin_unlock_irq(get_ccwdev_lock(device->cdev));
	dasd_put_device(device);
}