On Fri, Jul 15, 2022 at 02:11:21PM +0000, Vincent Fu wrote: > > -----Original Message----- > > From: Ming Lei [mailto:ming.lei@xxxxxxxxxx] > > Sent: Thursday, July 14, 2022 11:19 PM > > To: Jens Axboe <axboe@xxxxxxxxx> > > Cc: linux-block@xxxxxxxxxxxxxxx; Ming Lei <ming.lei@xxxxxxxxxx>; > > Vincent Fu <vincent.fu@xxxxxxxxxxx> > > Subject: [PATCH] null_blk: cleanup null_init_tag_set > > > > The passed 'nullb' can be NULL, so cause null ptr reference. > > > > Fix the issue, meantime cleanup null_init_tag_set for avoiding to add > > similar issue in future. > > > > Cc: Vincent Fu <vincent.fu@xxxxxxxxxxx> > > Fixes: 37ae152c7a0d ("null_blk: add configfs variables for 2 options") > > Signed-off-by: Ming Lei <ming.lei@xxxxxxxxxx> > > --- > > drivers/block/null_blk/main.c | 49 ++++++++++++++++++++++----------- > > -- > > 1 file changed, 31 insertions(+), 18 deletions(-) > > > > diff --git a/drivers/block/null_blk/main.c b/drivers/block/null_blk/main.c > > index c955a07dba2d..a08856b121b3 100644 > > --- a/drivers/block/null_blk/main.c > > +++ b/drivers/block/null_blk/main.c > > @@ -1898,31 +1898,44 @@ static int null_gendisk_register(struct nullb > > *nullb) > > > > static int null_init_tag_set(struct nullb *nullb, struct blk_mq_tag_set > > *set) > > { > > + unsigned int flags = BLK_MQ_F_SHOULD_MERGE; > > + int hw_queues, numa_node; > > + unsigned int queue_depth; > > int poll_queues; > > > > + if (nullb) { > > + hw_queues = nullb->dev->submit_queues; > > + poll_queues = nullb->dev->poll_queues; > > + queue_depth = nullb->dev->hw_queue_depth; > > + numa_node = nullb->dev->home_node; > > + if (nullb->dev->no_sched) > > + flags |= BLK_MQ_F_NO_SCHED; > > + if (nullb->dev->shared_tag_bitmap) > > + flags |= BLK_MQ_F_TAG_HCTX_SHARED; > > + if (nullb->dev->blocking) > > + flags |= BLK_MQ_F_BLOCKING; > > + } else { > > + hw_queues = g_submit_queues; > > + poll_queues = g_poll_queues; > > + queue_depth = g_hw_queue_depth; > > + numa_node = g_home_node; > > + if (g_blocking) > > + flags |= BLK_MQ_F_BLOCKING; > > + } > > + > > Ming, thank you for fixing the mess I created. > > I believe that even when 'nullb' is NULL we should still set the > BLK_MQ_F_NO_SCHED and BLK_MQ_F_TAG_HCTX_SHARED flags based on the values of > g_no_sched and g_shared_tag_bitmap, respectively. Is that not right? Yeah, it is right, and I have covered it in V2. Thanks, Ming