Hello,
Yi reported several kernel panics on:
[16687.001777] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000008
...
[16687.163549] pc : __rq_qos_track+0x38/0x60
or
[ 997.690455] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000020
...
[ 997.850347] pc : __rq_qos_done+0x2c/0x50
Turns out it is caused by race between adding wbt and normal IO.
Fix the issue by moving wbt allocation/addition into blk_alloc_queue().
Ming Lei (4):
block: split wbt_init() into two parts
block: move wbt allocation into blk_alloc_queue
block: reuse wbt_set_min_lat for setting wbt->min_lat_nsec
block: mark queue init done at the end of blk_register_queue
block/blk-core.c | 6 +++++
block/blk-mq-debugfs.c | 3 +++
block/blk-sysfs.c | 53 ++++++++++++++----------------------------
block/blk-wbt.c | 42 +++++++++++++++++++++++----------
block/blk-wbt.h | 14 +++++++----
5 files changed, 66 insertions(+), 52 deletions(-)
Cc: Yi Zhang <redacted>
--
2.29.2