On 03/08/2017 11:08 AM, Umesh Patel wrote: > > Yes. This is non-open driver for our Flash based PCI drive for enterprise storage solution. Please don't top post. > Some snippet of queue related code is below > > struct request_queue *queue; > > blk_queue_max_hw_sectors(dev->osdev.queue, (dev->aggr_max_size >> KERNEL_SECTOR_SHIFT)); > blk_queue_max_segments(dev->osdev.queue, BLK_MAX_SEGMENTS); > blk_queue_bounce_limit(dev->osdev.queue, BLK_BOUNCE_ANY); > blk_queue_logical_block_size(dev->osdev.queue, dev->hardsect_size); > blk_queue_physical_block_size(dev->osdev.queue, dev->hardsect_size); > > dev->osdev.queue = blk_alloc_queue(GFP_KERNEL); > > blk_queue_make_request(dev->osdev.queue, fmm_bdev_make_request_wrapper); > > Here queue is part of our internal structure struct fmm_bdev *dev You are doing it wrong, you should be writing this as a blk-mq driver. Not only would that fix your issue, it would also solve a host of other issues that I'm sure your driver has since it hasn't even been reviewed. Generally, I have very little interest in providing support for non open drivers. Scratch that, no interest. -- Jens Axboe