OSDN Git Service

EDAC, thunderx: Fix memory leak in thunderx_l2c_threaded_isr()
authorDan Carpenter <dan.carpenter@oracle.com>
Sat, 13 Oct 2018 10:28:43 +0000 (13:28 +0300)
committerBorislav Petkov <bp@suse.de>
Sat, 13 Oct 2018 11:58:06 +0000 (13:58 +0200)
Fix memory leak in L2c threaded interrupt handler.

 [ bp: Rewrite commit message. ]

Fixes: 41003396f932 ("EDAC, thunderx: Add Cavium ThunderX EDAC driver")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
CC: David Daney <david.daney@cavium.com>
CC: Jan Glauber <jglauber@cavium.com>
CC: Mauro Carvalho Chehab <mchehab@kernel.org>
CC: Sergey Temerkhanov <s.temerkhanov@gmail.com>
CC: linux-edac <linux-edac@vger.kernel.org>
Link: http://lkml.kernel.org/r/20181013102843.GG16086@mwanda
drivers/edac/thunderx_edac.c

index c009d94..34be60f 100644 (file)
@@ -1884,7 +1884,7 @@ static irqreturn_t thunderx_l2c_threaded_isr(int irq, void *irq_id)
        default:
                dev_err(&l2c->pdev->dev, "Unsupported device: %04x\n",
                        l2c->pdev->device);
-               return IRQ_NONE;
+               goto err_free;
        }
 
        while (CIRC_CNT(l2c->ring_head, l2c->ring_tail,
@@ -1906,7 +1906,7 @@ static irqreturn_t thunderx_l2c_threaded_isr(int irq, void *irq_id)
                l2c->ring_tail++;
        }
 
-       return IRQ_HANDLED;
+       ret = IRQ_HANDLED;
 
 err_free:
        kfree(other);