diff mbox series

blk-mq: check q->poll_stat in queue_poll_stat_show

Message ID 20211202090716.3292244-1-ming.lei@redhat.com (mailing list archive)
State New, archived
Headers show
Series blk-mq: check q->poll_stat in queue_poll_stat_show | expand

Commit Message

Ming Lei Dec. 2, 2021, 9:07 a.m. UTC
Without checking q->poll_stat in queue_poll_stat_show(), kernel panic
may be caused if q->poll_stat isn't allocated.

Fixes: 48b5c1fbcd8c ("block: only allocate poll_stats if there's a user of them")
Signed-off-by: Ming Lei <ming.lei@redhat.com>
---
 block/blk-mq-debugfs.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Jens Axboe Dec. 2, 2021, 3:21 p.m. UTC | #1
On Thu, 2 Dec 2021 17:07:16 +0800, Ming Lei wrote:
> Without checking q->poll_stat in queue_poll_stat_show(), kernel panic
> may be caused if q->poll_stat isn't allocated.
> 
> 

Applied, thanks!

[1/1] blk-mq: check q->poll_stat in queue_poll_stat_show
      commit: 18d78171c061889a9a43152f60d6a27a10fc7656

Best regards,
diff mbox series

Patch

diff --git a/block/blk-mq-debugfs.c b/block/blk-mq-debugfs.c
index 7f27dca3a45e..3a790eb4995c 100644
--- a/block/blk-mq-debugfs.c
+++ b/block/blk-mq-debugfs.c
@@ -30,6 +30,9 @@  static int queue_poll_stat_show(void *data, struct seq_file *m)
 	struct request_queue *q = data;
 	int bucket;
 
+	if (!q->poll_stat)
+		return 0;
+
 	for (bucket = 0; bucket < (BLK_MQ_POLL_STATS_BKTS / 2); bucket++) {
 		seq_printf(m, "read  (%d Bytes): ", 1 << (9 + bucket));
 		print_stat(m, &q->poll_stat[2 * bucket]);