Message ID | 1338353260-10097-20-git-send-email-lee.jones@linaro.org |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
On Wed, May 30, 2012 at 12:47 PM, Lee Jones <lee.jones@linaro.org> wrote: > Current failure paths attempt to free resources which we failed to request > and disable resources which we failed to enable ones. This leads to kernel > oops/panic. This patch does some simple re-ordering to prevent this from > happening. > > Cc: netdev@vger.kernel.org > Signed-off-by: Lee Jones <lee.jones@linaro.org> Acked-by: Linus Walleij <linus.walleij@linaro.org> Thanks, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Linus Walleij <linus.walleij@linaro.org> Date: Wed, 30 May 2012 15:16:39 +0800 > On Wed, May 30, 2012 at 12:47 PM, Lee Jones <lee.jones@linaro.org> wrote: > >> Current failure paths attempt to free resources which we failed to request >> and disable resources which we failed to enable ones. This leads to kernel >> oops/panic. This patch does some simple re-ordering to prevent this from >> happening. >> >> Cc: netdev@vger.kernel.org >> Signed-off-by: Lee Jones <lee.jones@linaro.org> > > Acked-by: Linus Walleij <linus.walleij@linaro.org> Applied, thanks. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/net/ethernet/smsc/smsc911x.c b/drivers/net/ethernet/smsc/smsc911x.c index dab9c6f..1466e5d 100644 --- a/drivers/net/ethernet/smsc/smsc911x.c +++ b/drivers/net/ethernet/smsc/smsc911x.c @@ -2390,11 +2390,11 @@ static int __devinit smsc911x_drv_probe(struct platform_device *pdev) retval = smsc911x_request_resources(pdev); if (retval) - goto out_return_resources; + goto out_request_resources_fail; retval = smsc911x_enable_resources(pdev); if (retval) - goto out_disable_resources; + goto out_enable_resources_fail; if (pdata->ioaddr == NULL) { SMSC_WARN(pdata, probe, "Error smsc911x base address invalid"); @@ -2501,8 +2501,9 @@ out_free_irq: free_irq(dev->irq, dev); out_disable_resources: (void)smsc911x_disable_resources(pdev); -out_return_resources: +out_enable_resources_fail: smsc911x_free_resources(pdev); +out_request_resources_fail: platform_set_drvdata(pdev, NULL); iounmap(pdata->ioaddr); free_netdev(dev);
Current failure paths attempt to free resources which we failed to request and disable resources which we failed to enable ones. This leads to kernel oops/panic. This patch does some simple re-ordering to prevent this from happening. Cc: netdev@vger.kernel.org Signed-off-by: Lee Jones <lee.jones@linaro.org> --- drivers/net/ethernet/smsc/smsc911x.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)