Files
linux-stable-mirror/kernel
Breno LeitaoandGreg Kroah-Hartman 95a4492c7e workqueue: drop spurious '*' from print_worker_info() fn declaration
[ Upstream commit 611583a76e ]

print_worker_info() declares its local 'fn' as work_func_t * but
worker->current_func has type work_func_t (a function pointer). The
extra level of indirection is wrong and only happens to be harmless
today because every supported Linux architecture has
sizeof(work_func_t) == sizeof(work_func_t *):
copy_from_kernel_nofault() reads the correct number of bytes by
accident, and %ps still resolves the printed address because the
stored value is the function address regardless of declared type.

On any future ABI where sizeof(void (*)()) differs from
sizeof(void *), the nofault copy would transfer the wrong number of
bytes and the subsequent %ps would print an incorrect address.

Match the field type so the intent is explicit and the code does not
silently rely on equal pointer sizes.

Fixes: 3d1cb2059d ("workqueue: include workqueue info when printing debug dump of a worker task")
Signed-off-by: Breno Leitao <leitao@debian.org>
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2026-07-24 15:54:36 +02:00
..
2025-12-07 06:12:35 +09:00
2023-12-20 17:00:20 +01:00
2023-11-28 17:06:57 +00:00
2024-10-17 15:22:28 +02:00