lkml.org 
[lkml]   [2022]   [Jul]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 59/84] hwmon: (ibmaem) dont call platform_device_del() if platform_device_add() fails
    Date
    From: Yang Yingliang <yangyingliang@huawei.com>

    [ Upstream commit d0e51022a025ca5350fafb8e413a6fe5d4baf833 ]

    If platform_device_add() fails, it no need to call platform_device_del(), split
    platform_device_unregister() into platform_device_del/put(), so platform_device_put()
    can be called separately.

    Fixes: 8808a793f052 ("ibmaem: new driver for power/energy/temp meters in IBM System X hardware")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
    Link: https://lore.kernel.org/r/20220701074153.4021556-1-yangyingliang@huawei.com
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/hwmon/ibmaem.c | 12 ++++++++----
    1 file changed, 8 insertions(+), 4 deletions(-)

    diff --git a/drivers/hwmon/ibmaem.c b/drivers/hwmon/ibmaem.c
    index a4ec85207782..2e6d6a5cffa1 100644
    --- a/drivers/hwmon/ibmaem.c
    +++ b/drivers/hwmon/ibmaem.c
    @@ -550,7 +550,7 @@ static int aem_init_aem1_inst(struct aem_ipmi_data *probe, u8 module_handle)

    res = platform_device_add(data->pdev);
    if (res)
    - goto ipmi_err;
    + goto dev_add_err;

    platform_set_drvdata(data->pdev, data);

    @@ -598,7 +598,9 @@ static int aem_init_aem1_inst(struct aem_ipmi_data *probe, u8 module_handle)
    ipmi_destroy_user(data->ipmi.user);
    ipmi_err:
    platform_set_drvdata(data->pdev, NULL);
    - platform_device_unregister(data->pdev);
    + platform_device_del(data->pdev);
    +dev_add_err:
    + platform_device_put(data->pdev);
    dev_err:
    ida_simple_remove(&aem_ida, data->id);
    id_err:
    @@ -690,7 +692,7 @@ static int aem_init_aem2_inst(struct aem_ipmi_data *probe,

    res = platform_device_add(data->pdev);
    if (res)
    - goto ipmi_err;
    + goto dev_add_err;

    platform_set_drvdata(data->pdev, data);

    @@ -738,7 +740,9 @@ static int aem_init_aem2_inst(struct aem_ipmi_data *probe,
    ipmi_destroy_user(data->ipmi.user);
    ipmi_err:
    platform_set_drvdata(data->pdev, NULL);
    - platform_device_unregister(data->pdev);
    + platform_device_del(data->pdev);
    +dev_add_err:
    + platform_device_put(data->pdev);
    dev_err:
    ida_simple_remove(&aem_ida, data->id);
    id_err:
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-07-05 14:17    [W:4.110 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site