lkml.org 
[lkml]   [2019]   [Jul]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.2 129/413] EDAC/sysfs: Drop device references properly
    Date
    [ Upstream commit 7adc05d2dc3af95e4e1534841d58f736262142cd ]

    Do put_device() if device_add() fails.

    [ bp: do device_del() for the successfully created devices in
    edac_create_csrow_objects(), on the unwind path. ]

    Signed-off-by: Greg KH <gregkh@linuxfoundation.org>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Link: https://lkml.kernel.org/r/20190427214925.GE16338@kroah.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/edac/edac_mc_sysfs.c | 10 +++++++---
    1 file changed, 7 insertions(+), 3 deletions(-)

    diff --git a/drivers/edac/edac_mc_sysfs.c b/drivers/edac/edac_mc_sysfs.c
    index 464174685589..bf9273437e3f 100644
    --- a/drivers/edac/edac_mc_sysfs.c
    +++ b/drivers/edac/edac_mc_sysfs.c
    @@ -443,7 +443,8 @@ static int edac_create_csrow_objects(struct mem_ctl_info *mci)
    csrow = mci->csrows[i];
    if (!nr_pages_per_csrow(csrow))
    continue;
    - put_device(&mci->csrows[i]->dev);
    +
    + device_del(&mci->csrows[i]->dev);
    }

    return err;
    @@ -645,9 +646,11 @@ static int edac_create_dimm_object(struct mem_ctl_info *mci,
    dev_set_drvdata(&dimm->dev, dimm);
    pm_runtime_forbid(&mci->dev);

    - err = device_add(&dimm->dev);
    + err = device_add(&dimm->dev);
    + if (err)
    + put_device(&dimm->dev);

    - edac_dbg(0, "creating rank/dimm device %s\n", dev_name(&dimm->dev));
    + edac_dbg(0, "created rank/dimm device %s\n", dev_name(&dimm->dev));

    return err;
    }
    @@ -928,6 +931,7 @@ int edac_create_sysfs_mci_device(struct mem_ctl_info *mci,
    err = device_add(&mci->dev);
    if (err < 0) {
    edac_dbg(1, "failure: create device %s\n", dev_name(&mci->dev));
    + put_device(&mci->dev);
    goto out;
    }

    --
    2.20.1


    \
     
     \ /
      Last update: 2019-07-24 22:39    [W:5.105 / U:0.376 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site