diff options
| author | Jens Axboe <[email protected]> | 2022-06-21 10:03:57 -0600 |
|---|---|---|
| committer | Jens Axboe <[email protected]> | 2022-06-21 10:59:58 -0600 |
| commit | 2645672ffe21f0a1c139bfbc05ad30fd4e4f2583 (patch) | |
| tree | 71cff81d1e2aa899d00cf7117f3be44b9f6a944a /tools/perf/scripts/python/net_dropmonitor.py | |
| parent | 9243fc4cd28c8bdddd7fe0abd5bbec3c4fdf5052 (diff) | |
block: pop cached rq before potentially blocking rq_qos_throttle()
If rq_qos_throttle() ends up blocking, then we will have invalidated and
flushed our current plug. Since blk_mq_get_cached_request() hasn't
popped the cached request off the plug list just yet, we end holding a
pointer to a request that is no longer valid. This insta-crashes with
rq->mq_hctx being NULL in the validity checks just after.
Pop the request off the cached list before doing rq_qos_throttle() to
avoid using a potentially stale request.
Fixes: 0a5aa8d161d1 ("block: fix blk_mq_attempt_bio_merge and rq_qos_throttle protection")
Reported-by: Dylan Yudaken <[email protected]>
Tested-by: Dylan Yudaken <[email protected]>
Signed-off-by: Jens Axboe <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/net_dropmonitor.py')
0 files changed, 0 insertions, 0 deletions