Merge branches 'work.misc' and 'work.dcache' of git://git.kernel.org/pub/scm/linux...
[sfrench/cifs-2.6.git] / drivers / s390 / block / dasd.c
index a9f60d0ee02ea2e941edfc7969377b3482e5d04e..a23e7d394a0ad1f1a74a241f1676accb9a57901a 100644 (file)
@@ -73,8 +73,8 @@ static int  dasd_alloc_queue(struct dasd_block *);
 static void dasd_setup_queue(struct dasd_block *);
 static void dasd_free_queue(struct dasd_block *);
 static int dasd_flush_block_queue(struct dasd_block *);
-static void dasd_device_tasklet(struct dasd_device *);
-static void dasd_block_tasklet(struct dasd_block *);
+static void dasd_device_tasklet(unsigned long);
+static void dasd_block_tasklet(unsigned long);
 static void do_kick_device(struct work_struct *);
 static void do_restore_device(struct work_struct *);
 static void do_reload_device(struct work_struct *);
@@ -125,8 +125,7 @@ struct dasd_device *dasd_alloc_device(void)
        dasd_init_chunklist(&device->erp_chunks, device->erp_mem, PAGE_SIZE);
        spin_lock_init(&device->mem_lock);
        atomic_set(&device->tasklet_scheduled, 0);
-       tasklet_init(&device->tasklet,
-                    (void (*)(unsigned long)) dasd_device_tasklet,
+       tasklet_init(&device->tasklet, dasd_device_tasklet,
                     (unsigned long) device);
        INIT_LIST_HEAD(&device->ccw_queue);
        timer_setup(&device->timer, dasd_device_timeout, 0);
@@ -166,8 +165,7 @@ struct dasd_block *dasd_alloc_block(void)
        atomic_set(&block->open_count, -1);
 
        atomic_set(&block->tasklet_scheduled, 0);
-       tasklet_init(&block->tasklet,
-                    (void (*)(unsigned long)) dasd_block_tasklet,
+       tasklet_init(&block->tasklet, dasd_block_tasklet,
                     (unsigned long) block);
        INIT_LIST_HEAD(&block->ccw_queue);
        spin_lock_init(&block->queue_lock);
@@ -2064,8 +2062,9 @@ EXPORT_SYMBOL_GPL(dasd_flush_device_queue);
 /*
  * Acquire the device lock and process queues for the device.
  */
-static void dasd_device_tasklet(struct dasd_device *device)
+static void dasd_device_tasklet(unsigned long data)
 {
+       struct dasd_device *device = (struct dasd_device *) data;
        struct list_head final_queue;
 
        atomic_set (&device->tasklet_scheduled, 0);
@@ -2783,8 +2782,9 @@ static void __dasd_block_start_head(struct dasd_block *block)
  * block layer request queue, creates ccw requests, enqueues them on
  * a dasd_device and processes ccw requests that have been returned.
  */
-static void dasd_block_tasklet(struct dasd_block *block)
+static void dasd_block_tasklet(unsigned long data)
 {
+       struct dasd_block *block = (struct dasd_block *) data;
        struct list_head final_queue;
        struct list_head *l, *n;
        struct dasd_ccw_req *cqr;
@@ -3127,6 +3127,7 @@ static int dasd_alloc_queue(struct dasd_block *block)
        block->tag_set.nr_hw_queues = nr_hw_queues;
        block->tag_set.queue_depth = queue_depth;
        block->tag_set.flags = BLK_MQ_F_SHOULD_MERGE;
+       block->tag_set.numa_node = NUMA_NO_NODE;
 
        rc = blk_mq_alloc_tag_set(&block->tag_set);
        if (rc)