On Thu, 15 Feb 2024 at 14:40, Tejun Heo tj@kernel.org wrote:
Hello,
Hey Tejun,
Can you see whether the following patch fixes the build?
This patch fixes the build. Thank you for the quick fix.
Tested-by: Anders Roxell anders.roxell@linaro.org
diff --git a/init/Kconfig b/init/Kconfig index 8df18f3a9748..41be05a8ba5e 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -107,6 +107,8 @@ config CONSTRUCTORS
config IRQ_WORK bool
depends on SMP
default y
config BUILDTIME_TABLE_SORT bool diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 04e35dbe6799..6ae441e13804 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -1209,6 +1209,20 @@ static struct irq_work *bh_pool_irq_work(struct worker_pool *pool) return &per_cpu(bh_pool_irq_works, pool->cpu)[high]; }
+static void kick_bh_pool(struct worker_pool *pool) +{ +#ifdef CONFIG_SMP
if (unlikely(pool->cpu != smp_processor_id())) {
irq_work_queue_on(bh_pool_irq_work(pool), pool->cpu);
return;
}
+#endif
if (pool->attrs->nice == HIGHPRI_NICE_LEVEL)
raise_softirq_irqoff(HI_SOFTIRQ);
else
raise_softirq_irqoff(TASKLET_SOFTIRQ);
+}
/**
- kick_pool - wake up an idle worker if necessary
- @pool: pool to kick
@@ -1227,15 +1241,7 @@ static bool kick_pool(struct worker_pool *pool) return false;
if (pool->flags & POOL_BH) {
if (likely(pool->cpu == smp_processor_id())) {
if (pool->attrs->nice == HIGHPRI_NICE_LEVEL)
raise_softirq_irqoff(HI_SOFTIRQ);
else
raise_softirq_irqoff(TASKLET_SOFTIRQ);
} else {
irq_work_queue_on(bh_pool_irq_work(pool), pool->cpu);
}
kick_bh_pool(pool); return true; }