Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

gpio: cdev: replace use of system_wq with system_percpu_wq

Currently if a user enqueue a work item using schedule_delayed_work() the
used wq is "system_wq" (per-cpu wq) while queue_delayed_work() use
WORK_CPU_UNBOUND (used when a cpu is not specified). The same applies to
schedule_work() that is using system_wq and queue_work(), that makes use
again of WORK_CPU_UNBOUND.

This lack of consistency cannot be addressed without refactoring the API.

system_wq should be the per-cpu workqueue, yet in this name nothing makes
that clear, so replace system_wq with system_percpu_wq.

The old wq (system_wq) will be kept for a few release cycles.

Suggested-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Marco Crivellari <marco.crivellari@suse.com>
Link: https://lore.kernel.org/r/20251031111628.143924-2-marco.crivellari@suse.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

authored by

Marco Crivellari and committed by
Bartosz Golaszewski
b6d31cd4 bac88be0

+2 -2
+2 -2
drivers/gpio/gpiolib-cdev.c
··· 700 700 if (READ_ONCE(line->sw_debounced)) { 701 701 line->total_discard_seq++; 702 702 line->last_seqno = ts->seq; 703 - mod_delayed_work(system_wq, &line->work, 703 + mod_delayed_work(system_percpu_wq, &line->work, 704 704 usecs_to_jiffies(READ_ONCE(line->desc->debounce_period_us))); 705 705 } else { 706 706 if (unlikely(ts->seq < line->line_seqno)) ··· 841 841 { 842 842 struct line *line = p; 843 843 844 - mod_delayed_work(system_wq, &line->work, 844 + mod_delayed_work(system_percpu_wq, &line->work, 845 845 usecs_to_jiffies(READ_ONCE(line->desc->debounce_period_us))); 846 846 847 847 return IRQ_HANDLED;