2023-05-23 11:13:52

by David Arcari

[permalink] [raw]
Subject: [PATCH] platform/x86/intel/ifs: Annotate work queue on stack so object debug does not complain

Object Debug results in the following warning while attempting to load
ifs firmware:

[ 220.007422] ODEBUG: object 000000003bf952db is on stack 00000000e843994b, but NOT annotated.
[ 220.007459] ------------[ cut here ]------------
[ 220.007461] WARNING: CPU: 0 PID: 11774 at lib/debugobjects.c:548 __debug_object_init.cold+0x22e/0x2d5
[ 220.137476] RIP: 0010:__debug_object_init.cold+0x22e/0x2d5
[ 220.254774] Call Trace:
[ 220.257641] <TASK>
[ 220.265606] scan_chunks_sanity_check+0x368/0x5f0 [intel_ifs]
[ 220.288292] ifs_load_firmware+0x2a3/0x400 [intel_ifs]
[ 220.332793] current_batch_store+0xea/0x160 [intel_ifs]
[ 220.357947] kernfs_fop_write_iter+0x355/0x530
[ 220.363048] new_sync_write+0x28e/0x4a0
[ 220.381226] vfs_write+0x62a/0x920
[ 220.385160] ksys_write+0xf9/0x1d0
[ 220.399421] do_syscall_64+0x59/0x90
[ 220.440635] entry_SYSCALL_64_after_hwframe+0x63/0xcd
[ 220.566845] ---[ end trace 3a01b299db142b41 ]---

Correct this by calling INIT_WORK_ONSTACK instead of INIT_WORK.

Fixes: 684ec215706d ("platform/x86/intel/ifs: Authenticate and copy to secured memory")

Signed-off-by: David Arcari <[email protected]>
Cc: Jithu Joseph <[email protected]>
Cc: Ashok Raj <[email protected]>
Cc: Tony Luck <[email protected]>
Cc: Hans de Goede <[email protected]>
Cc: Mark Gross <[email protected]>
Cc: Greg Kroah-Hartman <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Cc: Dan Williams <[email protected]>
Cc: [email protected]
Cc: [email protected]
---
drivers/platform/x86/intel/ifs/load.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/platform/x86/intel/ifs/load.c b/drivers/platform/x86/intel/ifs/load.c
index 61dffb4c8a1d..e6ae8265f3a3 100644
--- a/drivers/platform/x86/intel/ifs/load.c
+++ b/drivers/platform/x86/intel/ifs/load.c
@@ -208,7 +208,7 @@ static int scan_chunks_sanity_check(struct device *dev)
continue;
reinit_completion(&ifs_done);
local_work.dev = dev;
- INIT_WORK(&local_work.w, copy_hashes_authenticate_chunks);
+ INIT_WORK_ONSTACK(&local_work.w, copy_hashes_authenticate_chunks);
schedule_work_on(cpu, &local_work.w);
wait_for_completion(&ifs_done);
if (ifsd->loading_error) {
--
2.27.0



2023-05-23 11:14:01

by Hans de Goede

[permalink] [raw]
Subject: Re: [PATCH] platform/x86/intel/ifs: Annotate work queue on stack so object debug does not complain

Hi,

On 5/23/23 12:54, David Arcari wrote:
> Object Debug results in the following warning while attempting to load
> ifs firmware:
>
> [ 220.007422] ODEBUG: object 000000003bf952db is on stack 00000000e843994b, but NOT annotated.
> [ 220.007459] ------------[ cut here ]------------
> [ 220.007461] WARNING: CPU: 0 PID: 11774 at lib/debugobjects.c:548 __debug_object_init.cold+0x22e/0x2d5
> [ 220.137476] RIP: 0010:__debug_object_init.cold+0x22e/0x2d5
> [ 220.254774] Call Trace:
> [ 220.257641] <TASK>
> [ 220.265606] scan_chunks_sanity_check+0x368/0x5f0 [intel_ifs]
> [ 220.288292] ifs_load_firmware+0x2a3/0x400 [intel_ifs]
> [ 220.332793] current_batch_store+0xea/0x160 [intel_ifs]
> [ 220.357947] kernfs_fop_write_iter+0x355/0x530
> [ 220.363048] new_sync_write+0x28e/0x4a0
> [ 220.381226] vfs_write+0x62a/0x920
> [ 220.385160] ksys_write+0xf9/0x1d0
> [ 220.399421] do_syscall_64+0x59/0x90
> [ 220.440635] entry_SYSCALL_64_after_hwframe+0x63/0xcd
> [ 220.566845] ---[ end trace 3a01b299db142b41 ]---
>
> Correct this by calling INIT_WORK_ONSTACK instead of INIT_WORK.
>
> Fixes: 684ec215706d ("platform/x86/intel/ifs: Authenticate and copy to secured memory")
>
> Signed-off-by: David Arcari <[email protected]>
> Cc: Jithu Joseph <[email protected]>
> Cc: Ashok Raj <[email protected]>
> Cc: Tony Luck <[email protected]>
> Cc: Hans de Goede <[email protected]>
> Cc: Mark Gross <[email protected]>
> Cc: Greg Kroah-Hartman <[email protected]>
> Cc: Thomas Gleixner <[email protected]>
> Cc: Dan Williams <[email protected]>
> Cc: [email protected]
> Cc: [email protected]

Thank you for your patch, I've applied this patch to my fixes
branch:
https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=fixes

I will include this patch in my next fixes pull-req to Linus
for the current kernel development cycle.

Regards,

Hans





> ---
> drivers/platform/x86/intel/ifs/load.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/platform/x86/intel/ifs/load.c b/drivers/platform/x86/intel/ifs/load.c
> index 61dffb4c8a1d..e6ae8265f3a3 100644
> --- a/drivers/platform/x86/intel/ifs/load.c
> +++ b/drivers/platform/x86/intel/ifs/load.c
> @@ -208,7 +208,7 @@ static int scan_chunks_sanity_check(struct device *dev)
> continue;
> reinit_completion(&ifs_done);
> local_work.dev = dev;
> - INIT_WORK(&local_work.w, copy_hashes_authenticate_chunks);
> + INIT_WORK_ONSTACK(&local_work.w, copy_hashes_authenticate_chunks);
> schedule_work_on(cpu, &local_work.w);
> wait_for_completion(&ifs_done);
> if (ifsd->loading_error) {