diff options
Diffstat (limited to 'drivers/net/ethernet/fealnx.c')
| -rw-r--r-- | drivers/net/ethernet/fealnx.c | 14 | 
1 files changed, 6 insertions, 8 deletions
diff --git a/drivers/net/ethernet/fealnx.c b/drivers/net/ethernet/fealnx.c index 1637b986229..9d71c9cc300 100644 --- a/drivers/net/ethernet/fealnx.c +++ b/drivers/net/ethernet/fealnx.c @@ -545,9 +545,6 @@ static int __devinit fealnx_init_one(struct pci_dev *pdev,  	/* Reset the chip to erase previous misconfiguration. */  	iowrite32(0x00000001, ioaddr + BCR); -	dev->base_addr = (unsigned long)ioaddr; -	dev->irq = irq; -  	/* Make certain the descriptor lists are aligned. */  	np = netdev_priv(dev);  	np->mem = ioaddr; @@ -832,11 +829,13 @@ static int netdev_open(struct net_device *dev)  {  	struct netdev_private *np = netdev_priv(dev);  	void __iomem *ioaddr = np->mem; -	int i; +	const int irq = np->pci_dev->irq; +	int rc, i;  	iowrite32(0x00000001, ioaddr + BCR);	/* Reset */ -	if (request_irq(dev->irq, intr_handler, IRQF_SHARED, dev->name, dev)) +	rc = request_irq(irq, intr_handler, IRQF_SHARED, dev->name, dev); +	if (rc)  		return -EAGAIN;  	for (i = 0; i < 3; i++) @@ -924,8 +923,7 @@ static int netdev_open(struct net_device *dev)  	np->reset_timer.data = (unsigned long) dev;  	np->reset_timer.function = reset_timer;  	np->reset_timer_armed = 0; - -	return 0; +	return rc;  } @@ -1910,7 +1908,7 @@ static int netdev_close(struct net_device *dev)  	del_timer_sync(&np->timer);  	del_timer_sync(&np->reset_timer); -	free_irq(dev->irq, dev); +	free_irq(np->pci_dev->irq, dev);  	/* Free all the skbuffs in the Rx queue. */  	for (i = 0; i < RX_RING_SIZE; i++) {  |