lkml.org 
[lkml]   [2020]   [Jun]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v11 4/6] powerpc/papr_scm: Improve error logging and handling papr_scm_ndctl()
    Date
    Since papr_scm_ndctl() can be called from outside papr_scm, its
    exposed to the possibility of receiving NULL as value of 'cmd_rc'
    argument. This patch updates papr_scm_ndctl() to protect against such
    possibility by assigning it pointer to a local variable in case cmd_rc
    == NULL.

    Finally the patch also updates the 'default' add a debug log unknown
    'cmd' values.

    Cc: "Aneesh Kumar K . V" <aneesh.kumar@linux.ibm.com>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Ira Weiny <ira.weiny@intel.com>
    Signed-off-by: Vaibhav Jain <vaibhav@linux.ibm.com>
    ---
    Changelog:

    v10..v11:
    * Instead of returning *cmd_rd just return '0' in case nd_cmd is
    handled. In case of unknown nd-cmd return -EINVAL
    [ Ira and Dan Williams ]
    * Updated patch description.

    v9..v10
    * New patch in the series
    ---
    arch/powerpc/platforms/pseries/papr_scm.c | 6 ++++++
    1 file changed, 6 insertions(+)

    diff --git a/arch/powerpc/platforms/pseries/papr_scm.c b/arch/powerpc/platforms/pseries/papr_scm.c
    index 0c091622b15e..692ad3d79826 100644
    --- a/arch/powerpc/platforms/pseries/papr_scm.c
    +++ b/arch/powerpc/platforms/pseries/papr_scm.c
    @@ -355,11 +355,16 @@ static int papr_scm_ndctl(struct nvdimm_bus_descriptor *nd_desc,
    {
    struct nd_cmd_get_config_size *get_size_hdr;
    struct papr_scm_priv *p;
    + int rc;

    /* Only dimm-specific calls are supported atm */
    if (!nvdimm)
    return -EINVAL;

    + /* Use a local variable in case cmd_rc pointer is NULL */
    + if (!cmd_rc)
    + cmd_rc = &rc;
    +
    p = nvdimm_provider_data(nvdimm);

    switch (cmd) {
    @@ -381,6 +386,7 @@ static int papr_scm_ndctl(struct nvdimm_bus_descriptor *nd_desc,
    break;

    default:
    + dev_dbg(&p->pdev->dev, "Unknown command = %d\n", cmd);
    return -EINVAL;
    }

    --
    2.26.2
    \
     
     \ /
      Last update: 2020-06-07 15:16    [W:4.238 / U:0.476 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site