From 69d6da3c1c63675524a25e7dc92a4f43c4164cef Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Mon, 20 Nov 2023 06:31:22 +0000 Subject: [PATCH] add r8169 read mac form eeprom --- kernel/block/blk-core.c | 15 ++++++++++++++- 1 files changed, 14 insertions(+), 1 deletions(-) diff --git a/kernel/block/blk-core.c b/kernel/block/blk-core.c index a33775c..0c0eeb3 100644 --- a/kernel/block/blk-core.c +++ b/kernel/block/blk-core.c @@ -191,6 +191,9 @@ INIT_LIST_HEAD(&rq->queuelist); INIT_LIST_HEAD(&rq->timeout_list); +#ifdef CONFIG_PREEMPT_RT_FULL + INIT_WORK(&rq->work, __blk_mq_complete_request_remote_work); +#endif rq->cpu = -1; rq->q = q; rq->__sector = (sector_t) -1; @@ -972,12 +975,21 @@ percpu_ref_put(&q->q_usage_counter); } +static void blk_queue_usage_counter_release_wrk(struct work_struct *work) +{ + struct request_queue *q = + container_of(work, struct request_queue, mq_pcpu_wake); + + wake_up_all(&q->mq_freeze_wq); +} + static void blk_queue_usage_counter_release(struct percpu_ref *ref) { struct request_queue *q = container_of(ref, struct request_queue, q_usage_counter); - wake_up_all(&q->mq_freeze_wq); + if (wq_has_sleeper(&q->mq_freeze_wq)) + schedule_work(&q->mq_pcpu_wake); } static void blk_rq_timed_out_timer(struct timer_list *t) @@ -1076,6 +1088,7 @@ queue_flag_set_unlocked(QUEUE_FLAG_BYPASS, q); init_waitqueue_head(&q->mq_freeze_wq); + INIT_WORK(&q->mq_pcpu_wake, blk_queue_usage_counter_release_wrk); /* * Init percpu_ref in atomic mode so that it's faster to shutdown. -- Gitblit v1.6.2