lkml.org 
[lkml]   [2020]   [Jun]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.4 109/314] thermal/drivers/ti-soc-thermal: Avoid dereferencing ERR_PTR
    Date
    From: Sudip Mukherjee <sudipm.mukherjee@gmail.com>

    [ Upstream commit 7440f518dad9d861d76c64956641eeddd3586f75 ]

    On error the function ti_bandgap_get_sensor_data() returns the error
    code in ERR_PTR() but we only checked if the return value is NULL or
    not. And, so we can dereference an error code inside ERR_PTR.
    While at it, convert a check to IS_ERR_OR_NULL.

    Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
    Reviewed-by: Amit Kucheria <amit.kucheria@linaro.org>
    Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
    Link: https://lore.kernel.org/r/20200424161944.6044-1-sudipm.mukherjee@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/thermal/ti-soc-thermal/ti-thermal-common.c | 6 +++---
    1 file changed, 3 insertions(+), 3 deletions(-)

    diff --git a/drivers/thermal/ti-soc-thermal/ti-thermal-common.c b/drivers/thermal/ti-soc-thermal/ti-thermal-common.c
    index d3e959d01606c..85776db4bf346 100644
    --- a/drivers/thermal/ti-soc-thermal/ti-thermal-common.c
    +++ b/drivers/thermal/ti-soc-thermal/ti-thermal-common.c
    @@ -169,7 +169,7 @@ int ti_thermal_expose_sensor(struct ti_bandgap *bgp, int id,

    data = ti_bandgap_get_sensor_data(bgp, id);

    - if (!data || IS_ERR(data))
    + if (!IS_ERR_OR_NULL(data))
    data = ti_thermal_build_data(bgp, id);

    if (!data)
    @@ -196,7 +196,7 @@ int ti_thermal_remove_sensor(struct ti_bandgap *bgp, int id)

    data = ti_bandgap_get_sensor_data(bgp, id);

    - if (data && data->ti_thermal) {
    + if (!IS_ERR_OR_NULL(data) && data->ti_thermal) {
    if (data->our_zone)
    thermal_zone_device_unregister(data->ti_thermal);
    }
    @@ -262,7 +262,7 @@ int ti_thermal_unregister_cpu_cooling(struct ti_bandgap *bgp, int id)

    data = ti_bandgap_get_sensor_data(bgp, id);

    - if (data) {
    + if (!IS_ERR_OR_NULL(data)) {
    cpufreq_cooling_unregister(data->cool_dev);
    if (data->policy)
    cpufreq_cpu_put(data->policy);
    --
    2.25.1


    \
     
     \ /
      Last update: 2020-06-23 23:20    [W:4.018 / U:0.244 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site