skd: Convert explicit skd_request_fn() calls
authorBart Van Assche <bart.vanassche@wdc.com>
Thu, 17 Aug 2017 20:13:22 +0000 (13:13 -0700)
committerJens Axboe <axboe@kernel.dk>
Fri, 18 Aug 2017 14:45:29 +0000 (08:45 -0600)
This will make it easier to convert this driver to the blk-mq
approach. This patch also reduces interrupt latency by moving
skd_request_fn() calls out of the skd_isr() interrupt.

Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Hannes Reinecke <hare@suse.de>
Cc: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/skd_main.c

index 8040500ba09c411db342b401e378077723da84fb..3db89707b227b50e199af6181b3f8a7a0111a056 100644 (file)
@@ -2806,7 +2806,7 @@ static void skd_completion_worker(struct work_struct *work)
         * process everything in compq
         */
        skd_isr_completion_posted(skdev, 0, &flush_enqueued);
-       skd_request_fn(skdev->queue);
+       blk_run_queue_async(skdev->queue);
 
        spin_unlock_irqrestore(&skdev->lock, flags);
 }
@@ -2882,12 +2882,12 @@ skd_isr(int irq, void *ptr)
        }
 
        if (unlikely(flush_enqueued))
-               skd_request_fn(skdev->queue);
+               blk_run_queue_async(skdev->queue);
 
        if (deferred)
                schedule_work(&skdev->completion_worker);
        else if (!flush_enqueued)
-               skd_request_fn(skdev->queue);
+               blk_run_queue_async(skdev->queue);
 
        spin_unlock(&skdev->lock);
 
@@ -3588,12 +3588,12 @@ static irqreturn_t skd_comp_q(int irq, void *skd_host_data)
        deferred = skd_isr_completion_posted(skdev, skd_isr_comp_limit,
                                                &flush_enqueued);
        if (flush_enqueued)
-               skd_request_fn(skdev->queue);
+               blk_run_queue_async(skdev->queue);
 
        if (deferred)
                schedule_work(&skdev->completion_worker);
        else if (!flush_enqueued)
-               skd_request_fn(skdev->queue);
+               blk_run_queue_async(skdev->queue);
 
        spin_unlock_irqrestore(&skdev->lock, flags);