lkml.org 
[lkml]   [2020]   [Aug]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.9 090/212] ARM: socfpga: PM: add missing put_device() call in socfpga_setup_ocram_self_refresh()
    Date
    From: Yu Kuai <yukuai3@huawei.com>

    [ Upstream commit 3ad7b4e8f89d6bcc9887ca701cf2745a6aedb1a0 ]

    if of_find_device_by_node() succeed, socfpga_setup_ocram_self_refresh
    doesn't have a corresponding put_device(). Thus add a jump target to
    fix the exception handling for this function implementation.

    Fixes: 44fd8c7d4005 ("ARM: socfpga: support suspend to ram")
    Signed-off-by: Yu Kuai <yukuai3@huawei.com>
    Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    arch/arm/mach-socfpga/pm.c | 8 +++++---
    1 file changed, 5 insertions(+), 3 deletions(-)

    diff --git a/arch/arm/mach-socfpga/pm.c b/arch/arm/mach-socfpga/pm.c
    index c378ab0c24317..93f2245c97750 100644
    --- a/arch/arm/mach-socfpga/pm.c
    +++ b/arch/arm/mach-socfpga/pm.c
    @@ -60,14 +60,14 @@ static int socfpga_setup_ocram_self_refresh(void)
    if (!ocram_pool) {
    pr_warn("%s: ocram pool unavailable!\n", __func__);
    ret = -ENODEV;
    - goto put_node;
    + goto put_device;
    }

    ocram_base = gen_pool_alloc(ocram_pool, socfpga_sdram_self_refresh_sz);
    if (!ocram_base) {
    pr_warn("%s: unable to alloc ocram!\n", __func__);
    ret = -ENOMEM;
    - goto put_node;
    + goto put_device;
    }

    ocram_pbase = gen_pool_virt_to_phys(ocram_pool, ocram_base);
    @@ -78,7 +78,7 @@ static int socfpga_setup_ocram_self_refresh(void)
    if (!suspend_ocram_base) {
    pr_warn("%s: __arm_ioremap_exec failed!\n", __func__);
    ret = -ENOMEM;
    - goto put_node;
    + goto put_device;
    }

    /* Copy the code that puts DDR in self refresh to ocram */
    @@ -92,6 +92,8 @@ static int socfpga_setup_ocram_self_refresh(void)
    if (!socfpga_sdram_self_refresh_in_ocram)
    ret = -EFAULT;

    +put_device:
    + put_device(&pdev->dev);
    put_node:
    of_node_put(np);

    --
    2.25.1


    \
     
     \ /
      Last update: 2020-08-20 14:02    [W:4.049 / U:0.172 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site