s390/dasd: fix cast-function-type warnings
authorSebastian Ott <sebott@linux.ibm.com>
Tue, 3 Jul 2018 11:06:45 +0000 (13:06 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Wed, 4 Jul 2018 06:35:59 +0000 (08:35 +0200)
Change the tasklets parameter type to fix W=1 warnings when building
with gcc 8 like below:

drivers/s390/block/dasd.c: In function 'dasd_alloc_device':
drivers/s390/block/dasd.c:129:8: warning: cast between incompatible function types
from 'void (*)(struct dasd_device *)' to 'void (*)(long unsigned int)' [-Wcast-function-type]
        (void (*)(unsigned long)) dasd_device_tasklet,
        ^

Signed-off-by: Sebastian Ott <sebott@linux.ibm.com>
Acked-by: Jan Höppner <hoeppner@linux.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
drivers/s390/block/dasd.c

index 7c3dddeb781c8ad72202918f96ec22e004434570..5645eb7cc39576000592b7e5b8ef7d841900bc3c 100644 (file)
@@ -64,8 +64,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 *);
@@ -116,8 +116,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);
@@ -157,8 +156,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);
@@ -2055,8 +2053,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);
@@ -2774,8 +2773,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;