lkml.org 
[lkml]   [2018]   [Nov]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] drm: msm: Check cmd_db_read_aux_data() for failure
    Date
    We need to check the call to cmd_db_read_aux_data() for the error case,
    so that we don't continue and use potentially uninitialized values for
    'pri_count' and 'sec_count'. Otherwise, we get the following compiler
    warnings:

    drivers/gpu/drm/msm/adreno/a6xx_gmu.c: In function 'a6xx_gmu_rpmh_arc_votes_init.isra.12':
    drivers/gpu/drm/msm/adreno/a6xx_gmu.c:943:12: warning: 'pri_count' is used uninitialized in this function [-Wuninitialized]
    pri_count >>= 1;
    ^~~
    drivers/gpu/drm/msm/adreno/a6xx_gmu.c:948:12: warning: 'sec_count' may be used uninitialized in this function
    [-Wmaybe-uninitialized]
    sec_count >>= 1;
    ^~~

    Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Reported-by: kbuild test robot <lkp@intel.com>
    Cc: Jordan Crouse <jcrouse@codeaurora.org>
    Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
    Cc: Evan Green <evgreen@chromium.org>
    Cc: Jordan Crouse <jcrouse@codeaurora.org>
    Cc: Rob Clark <robdclark@gmail.com>
    Fixes: ed3cafa79ea7 ("soc: qcom: cmd-db: Stop memcpy()ing in cmd_db_read_aux_data()")
    Signed-off-by: Stephen Boyd <swboyd@chromium.org>
    ---
    drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 5 +++++
    1 file changed, 5 insertions(+)

    diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
    index 8cd294e2846d..b450f7ea0422 100644
    --- a/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
    +++ b/drivers/gpu/drm/msm/adreno/a6xx_gmu.c
    @@ -936,6 +936,8 @@ static int a6xx_gmu_rpmh_arc_votes_init(struct device *dev, u32 *votes,
    size_t pri_count, sec_count;

    pri = cmd_db_read_aux_data(id, &pri_count);
    + if (IS_ERR(pri))
    + return PTR_ERR(pri);
    /*
    * The data comes back as an array of unsigned shorts so adjust the
    * count accordingly
    @@ -945,6 +947,9 @@ static int a6xx_gmu_rpmh_arc_votes_init(struct device *dev, u32 *votes,
    return -EINVAL;

    sec = cmd_db_read_aux_data("mx.lvl", &sec_count);
    + if (IS_ERR(sec))
    + return PTR_ERR(sec);
    +
    sec_count >>= 1;
    if (!sec_count)
    return -EINVAL;
    --
    Sent by a computer through tubes
    \
     
     \ /
      Last update: 2018-11-29 17:39    [W:3.597 / U:0.388 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site