* 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? Thanks, Ingo