lkml.org 
[lkml]   [2016]   [Feb]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v2] net: ethernet: davicom: fix devicetree irq resource
    Robert Jarzmik <robert.jarzmik@free.fr> :
    [...]
    > diff --git a/drivers/net/ethernet/davicom/dm9000.c b/drivers/net/ethernet/davicom/dm9000.c
    > index cf94b72dbacd..2bae5c8c1f85 100644
    > --- a/drivers/net/ethernet/davicom/dm9000.c
    > +++ b/drivers/net/ethernet/davicom/dm9000.c
    [...]
    > @@ -1500,15 +1496,21 @@ dm9000_probe(struct platform_device *pdev)
    >
    > db->addr_res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
    > db->data_res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
    > - db->irq_res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
    >
    > - if (db->addr_res == NULL || db->data_res == NULL ||
    > - db->irq_res == NULL) {
    > - dev_err(db->dev, "insufficient resources\n");
    > + if (!db->addr_res || !db->data_res) {
    > + dev_err(db->dev, "insufficient resources addr=%p data=%p\n",
    > + db->addr_res, db->data_res);
    > ret = -ENOENT;
    > goto out;
    > }
    >
    > + ndev->irq = platform_get_irq(pdev, 0);
    > + if (ndev->irq < 0) {
    > + dev_err(db->dev, "interrupt resource unavailable: %d\n",
    > + ndev->irq);
    > + return ndev->irq;
    > + }
    > +

    Leak: please set 'ret = ndev->irq;' and proceed to the 'out' label.

    If you have some spare time, it would be nice to avoid db->irq_wake leak
    on probe failure or driver removal.

    --
    Ueimor

    \
     
     \ /
      Last update: 2016-02-07 11:41    [W:3.624 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site