On Thu, Nov 17, 2022 at 11:23:13AM -0500, Phil Auld wrote: > If coretemp_add_core() gets an error then pdata->core_data[indx] > is already NULL and has been kfreed. Don't pass that to > sysfs_remove_group() as that will crash in sysfs_remove_group(). > > [Shortened for readability] > [91854.020159] sysfs: cannot create duplicate filename '/devices/platform/coretemp.0/hwmon/hwmon2/temp20_label' > <cpu offline> > [91855.126115] BUG: kernel NULL pointer dereference, address: 0000000000000188 > [91855.165103] #PF: supervisor read access in kernel mode > [91855.194506] #PF: error_code(0x0000) - not-present page > [91855.224445] PGD 0 P4D 0 > [91855.238508] Oops: 0000 [#1] PREEMPT SMP PTI > ... > [91855.342716] RIP: 0010:sysfs_remove_group+0xc/0x80 > ... > [91855.796571] Call Trace: > [91855.810524] coretemp_cpu_offline+0x12b/0x1dd [coretemp] > [91855.841738] ? coretemp_cpu_online+0x180/0x180 [coretemp] > [91855.871107] cpuhp_invoke_callback+0x105/0x4b0 > [91855.893432] cpuhp_thread_fun+0x8e/0x150 > ... > > Fix this by checking for NULL first. > > Signed-off-by: Phil Auld <pauld@xxxxxxxxxx> > Cc: linux-hwmon@xxxxxxxxxxxxxxx > Cc: Fenghua Yu <fenghua.yu@xxxxxxxxx> > Cc: Jean Delvare <jdelvare@xxxxxxxx> > Cc: Guenter Roeck <linux@xxxxxxxxxxxx> Applied. Thanks, Guenter