lkml.org 
[lkml]   [2022]   [Oct]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 250/390] mfd: lp8788: Fix an error handling path in lp8788_irq_init() and lp8788_irq_init()
    Date
    From: Christophe JAILLET <christophe.jaillet@wanadoo.fr>

    [ Upstream commit 557244f6284f30613f2d61f14b579303165876c3 ]

    In lp8788_irq_init(), if an error occurs after a successful
    irq_domain_add_linear() call, it must be undone by a corresponding
    irq_domain_remove() call.

    irq_domain_remove() should also be called in lp8788_irq_exit() for the same
    reason.

    Fixes: eea6b7cc53aa ("mfd: Add lp8788 mfd driver")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Signed-off-by: Lee Jones <lee@kernel.org>
    Link: https://lore.kernel.org/r/bcd5a72c9c1c383dd6324680116426e32737655a.1659261275.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/mfd/lp8788-irq.c | 3 +++
    1 file changed, 3 insertions(+)

    diff --git a/drivers/mfd/lp8788-irq.c b/drivers/mfd/lp8788-irq.c
    index 348439a3fbbd..39006297f3d2 100644
    --- a/drivers/mfd/lp8788-irq.c
    +++ b/drivers/mfd/lp8788-irq.c
    @@ -175,6 +175,7 @@ int lp8788_irq_init(struct lp8788 *lp, int irq)
    IRQF_TRIGGER_FALLING | IRQF_ONESHOT,
    "lp8788-irq", irqd);
    if (ret) {
    + irq_domain_remove(lp->irqdm);
    dev_err(lp->dev, "failed to create a thread for IRQ_N\n");
    return ret;
    }
    @@ -188,4 +189,6 @@ void lp8788_irq_exit(struct lp8788 *lp)
    {
    if (lp->irq)
    free_irq(lp->irq, lp->irqdm);
    + if (lp->irqdm)
    + irq_domain_remove(lp->irqdm);
    }
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-10-24 18:08    [W:2.062 / U:0.268 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site