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 <yi.zhang@xxxxxxxxxx> -- 2.29.2