On 10/13/2023 2:33 PM, Ingo Molnar wrote: > > * Sandipan Das <sandipan.das@xxxxxxx> wrote: > >> On 10/13/2023 12:48 PM, Dan Carpenter wrote: >>> Some of the error paths in this function return don't initialize the >>> error code. Return -ENODEV. >>> >>> Fixes: d6389d3ccc13 ("perf/x86/amd/uncore: Refactor uncore management") >>> Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> >>> --- >>> arch/x86/events/amd/uncore.c | 3 ++- >>> 1 file changed, 2 insertions(+), 1 deletion(-) >>> >>> diff --git a/arch/x86/events/amd/uncore.c b/arch/x86/events/amd/uncore.c >>> index 9b444ce24108..a389828f378c 100644 >>> --- a/arch/x86/events/amd/uncore.c >>> +++ b/arch/x86/events/amd/uncore.c >>> @@ -1009,7 +1009,8 @@ static struct amd_uncore uncores[UNCORE_TYPE_MAX] = { >>> static int __init amd_uncore_init(void) >>> { >>> struct amd_uncore *uncore; >>> - int ret, i; >>> + int ret = -ENODEV; >>> + int i; >>> >>> if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD && >>> boot_cpu_data.x86_vendor != X86_VENDOR_HYGON) >> >> >> Thanks for catching this. I see that 'ret' remains uninitialized for cases >> where the hotplug callback registration fails and was thinking if the >> following is a better fix for this as the reason might not be ENODEV. > > Yeah, passing through the real error codes is usually better. > > Here's it's probably a bit academic, as I don't think we are even using the > init return code in the init sequence iterator, see how the return code by > do_one_initcall() gets ignored by do_initcall_level() & do_pre_smp_initcalls() ... > > Nevertheless, mind submitting this as a separate patch? > Sure. Will do.