• Manaf Meethalavalappu Pallikunhi's avatar
    thermal/core: Add NULL pointer check before using cooling device stats · 2046a24a
    Manaf Meethalavalappu Pallikunhi authored
    There is a possible chance that some cooling device stats buffer
    allocation fails due to very high cooling device max state value.
    Later cooling device update sysfs can try to access stats data
    for the same cooling device. It will lead to NULL pointer
    dereference issue.
    
    Add a NULL pointer check before accessing thermal cooling device
    stats data. It fixes the following bug
    
    [ 26.812833] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000004
    [ 27.122960] Call trace:
    [ 27.122963] do_raw_spin_lock+0x18/0xe8
    [ 27.122966] _raw_spin_lock+0x24/0x30
    [ 27.128157] thermal_cooling_device_stats_update+0x24/0x98
    [ 27.128162] cur_state_store+0x88/0xb8
    [ 27.128166] dev_attr_store+0x40/0x58
    [ 27.128169] sysfs_kf_write+0x50/0x68
    [ 27.133358] kernfs_fop_write+0x12c/0x1c8
    [ 27.133362] __vfs_write+0x54/0x160
    [ 27.152297] vfs_write+0xcc/0x188
    [ 27.157132] ksys_write+0x78/0x108
    [ 27.162050] ksys_write+0xf8/0x108
    [ 27.166968] __arm_smccc_hvc+0x158/0x4b0
    [ 27.166973] __arm_smccc_hvc+0x9c/0x4b0
    [ 27.186005] el0_svc+0x8/0xc
    Signed-off-by: default avatarManaf Meethalavalappu Pallikunhi <manafm@codeaurora.org>
    Signed-off-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
    Link: https://lore.kernel.org/r/1607367181-24589-1-git-send-email-manafm@codeaurora.org
    2046a24a
thermal_sysfs.c 22 KB