• M
    thermal/core: Add NULL pointer check before using cooling device stats · 2046a24a
    Manaf Meethalavalappu Pallikunhi 提交于
    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: NManaf Meethalavalappu Pallikunhi <manafm@codeaurora.org>
    Signed-off-by: NDaniel 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.0 KB