31 lines
926 B
Diff
31 lines
926 B
Diff
|
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||
|
Date: Wed, 9 Apr 2014 10:37:23 +0200
|
||
|
Subject: block: mq: use cpu_light()
|
||
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.18/older/patches-4.18-rc8-rt1.tar.xz
|
||
|
|
||
|
there is a might sleep splat because get_cpu() disables preemption and
|
||
|
later we grab a lock. As a workaround for this we use get_cpu_light().
|
||
|
|
||
|
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||
|
---
|
||
|
block/blk-mq.h | 4 ++--
|
||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||
|
|
||
|
--- a/block/blk-mq.h
|
||
|
+++ b/block/blk-mq.h
|
||
|
@@ -112,12 +112,12 @@ static inline struct blk_mq_ctx *__blk_m
|
||
|
*/
|
||
|
static inline struct blk_mq_ctx *blk_mq_get_ctx(struct request_queue *q)
|
||
|
{
|
||
|
- return __blk_mq_get_ctx(q, get_cpu());
|
||
|
+ return __blk_mq_get_ctx(q, get_cpu_light());
|
||
|
}
|
||
|
|
||
|
static inline void blk_mq_put_ctx(struct blk_mq_ctx *ctx)
|
||
|
{
|
||
|
- put_cpu();
|
||
|
+ put_cpu_light();
|
||
|
}
|
||
|
|
||
|
struct blk_mq_alloc_data {
|