From: Ming Lei
mainline inclusion
from mainline-5.11-rc1
commit 7aa390ec2d9db0cd6677d95d0b8f307f9c086770
category: bugfix
issue: #I3ZXZF
CVE: NA
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?i...
---------------------------
This reverts commit b3c6a59975415bde29cfd76ff1ab008edbf614a9.
Now we can avoid nvme-loop lockdep warning of 'lockdep possible recursive locking'
by nvme-loop's lock class, no need to apply dynamically allocated lock class key,
so revert commit b3c6a5997541("block: Fix a lockdep complaint triggered by request
queue flushing").
This way fixes horrible SCSI probe delay issue on megaraid_sas, and it is reported
the whole probe may take more than half an hour.
Tested-by: Kashyap Desai
Reported-by: Qian Cai
Reviewed-by: Christoph Hellwig
Cc: Sumit Saxena
Cc: John Garry
Cc: Kashyap Desai
Cc: Bart Van Assche
Cc: Hannes Reinecke
Signed-off-by: Ming Lei
Reviewed-by: Hannes Reinecke
Signed-off-by: Jens Axboe
Signed-off-by: yangerkun
Reviewed-by: Jason Yan
Signed-off-by: Chen Jun
Signed-off-by: Yu Changchun
---
block/blk-flush.c | 5 -----
block/blk.h | 1 -
2 files changed, 6 deletions(-)
diff --git a/block/blk-flush.c b/block/blk-flush.c
index 7ede7849b059..bf74f4c222fd 100644
--- a/block/blk-flush.c
+++ b/block/blk-flush.c
@@ -69,7 +69,6 @@
#include
#include
#include
-#include
#include "blk.h"
#include "blk-mq.h"
@@ -473,9 +472,6 @@ struct blk_flush_queue *blk_alloc_flush_queue(int node, int cmd_size,
INIT_LIST_HEAD(&fq->flush_queue[1]);
INIT_LIST_HEAD(&fq->flush_data_in_flight);
- lockdep_register_key(&fq->key);
- lockdep_set_class(&fq->mq_flush_lock, &fq->key);
-
return fq;
fail_rq:
@@ -490,7 +486,6 @@ void blk_free_flush_queue(struct blk_flush_queue *fq)
if (!fq)
return;
- lockdep_unregister_key(&fq->key);
kfree(fq->flush_rq);
kfree(fq);
}
diff --git a/block/blk.h b/block/blk.h
index dfab98465db9..806fd6537295 100644
--- a/block/blk.h
+++ b/block/blk.h
@@ -25,7 +25,6 @@ struct blk_flush_queue {
struct list_head flush_data_in_flight;
struct request *flush_rq;
- struct lock_class_key key;
spinlock_t mq_flush_lock;
};
--
2.22.0