mirror of
https://github.com/torvalds/linux.git
synced 2024-11-12 07:01:57 +00:00
drivers/net/wan/dscc4.c: fix error return code
Move up the initialization of rc so that failure of pci_alloc_consistent returns -ENOMEM as well. A simplified version of the semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @@ identifier ret; expression e1,e2; @@ if (ret < 0) { ... return ret; } ... when != ret = e1 when forall *if(...) { ... when != ret = e2 * return ret; } // </smpl> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
82a820e8d7
commit
623d896b36
@ -774,14 +774,15 @@ static int __devinit dscc4_init_one(struct pci_dev *pdev,
|
||||
}
|
||||
/* Global interrupt queue */
|
||||
writel((u32)(((IRQ_RING_SIZE >> 5) - 1) << 20), ioaddr + IQLENR1);
|
||||
|
||||
rc = -ENOMEM;
|
||||
|
||||
priv->iqcfg = (__le32 *) pci_alloc_consistent(pdev,
|
||||
IRQ_RING_SIZE*sizeof(__le32), &priv->iqcfg_dma);
|
||||
if (!priv->iqcfg)
|
||||
goto err_free_irq_5;
|
||||
writel(priv->iqcfg_dma, ioaddr + IQCFG);
|
||||
|
||||
rc = -ENOMEM;
|
||||
|
||||
/*
|
||||
* SCC 0-3 private rx/tx irq structures
|
||||
* IQRX/TXi needs to be set soon. Learned it the hard way...
|
||||
|
Loading…
Reference in New Issue
Block a user