diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-08-04 11:47:58 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-08-04 11:47:58 -0700 | 
| commit | 6ba74014c1ab0e37af7de6f64b4eccbbae3cb9e7 (patch) | |
| tree | 8f3892fc44f1e403675a6d7e88fda5c70e56ee4c /drivers/net/lance.c | |
| parent | 5abd9ccced7a726c817dd6b5b96bc933859138d1 (diff) | |
| parent | 3ff1c25927e3af61c6bf0e4ed959504058ae4565 (diff) | |
| download | olio-linux-3.10-6ba74014c1ab0e37af7de6f64b4eccbbae3cb9e7.tar.xz olio-linux-3.10-6ba74014c1ab0e37af7de6f64b4eccbbae3cb9e7.zip  | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1443 commits)
  phy/marvell: add 88ec048 support
  igb: Program MDICNFG register prior to PHY init
  e1000e: correct MAC-PHY interconnect register offset for 82579
  hso: Add new product ID
  can: Add driver for esd CAN-USB/2 device
  l2tp: fix export of header file for userspace
  can-raw: Fix skb_orphan_try handling
  Revert "net: remove zap_completion_queue"
  net: cleanup inclusion
  phy/marvell: add 88e1121 interface mode support
  u32: negative offset fix
  net: Fix a typo from "dev" to "ndev"
  igb: Use irq_synchronize per vector when using MSI-X
  ixgbevf: fix null pointer dereference due to filter being set for VLAN 0
  e1000e: Fix irq_synchronize in MSI-X case
  e1000e: register pm_qos request on hardware activation
  ip_fragment: fix subtracting PPPOE_SES_HLEN from mtu twice
  net: Add getsockopt support for TCP thin-streams
  cxgb4: update driver version
  cxgb4: add new PCI IDs
  ...
Manually fix up conflicts in:
 - drivers/net/e1000e/netdev.c: due to pm_qos registration
   infrastructure changes
 - drivers/net/phy/marvell.c: conflict between adding 88ec048 support
   and cleaning up the IDs
 - drivers/net/wireless/ipw2x00/ipw2100.c: trivial ipw2100_pm_qos_req
   conflict (registration change vs marking it static)
Diffstat (limited to 'drivers/net/lance.c')
| -rw-r--r-- | drivers/net/lance.c | 56 | 
1 files changed, 32 insertions, 24 deletions
diff --git a/drivers/net/lance.c b/drivers/net/lance.c index 21f8adaa87c..f06296bfe29 100644 --- a/drivers/net/lance.c +++ b/drivers/net/lance.c @@ -248,7 +248,6 @@ struct lance_private {  	int cur_rx, cur_tx;			/* The next free ring entry */  	int dirty_rx, dirty_tx;		/* The ring entries to be free()ed. */  	int dma; -	struct net_device_stats stats;  	unsigned char chip_version;	/* See lance_chip_type. */  	spinlock_t devlock;  }; @@ -925,7 +924,7 @@ static void lance_tx_timeout (struct net_device *dev)  	printk ("%s: transmit timed out, status %4.4x, resetting.\n",  		dev->name, inw (ioaddr + LANCE_DATA));  	outw (0x0004, ioaddr + LANCE_DATA); -	lp->stats.tx_errors++; +	dev->stats.tx_errors++;  #ifndef final_version  	if (lance_debug > 3) {  		int i; @@ -989,7 +988,7 @@ static netdev_tx_t lance_start_xmit(struct sk_buff *skb,  	lp->tx_ring[entry].misc = 0x0000; -	lp->stats.tx_bytes += skb->len; +	dev->stats.tx_bytes += skb->len;  	/* If any part of this buffer is >16M we must copy it to a low-memory  	   buffer. */ @@ -1062,13 +1061,16 @@ static irqreturn_t lance_interrupt(int irq, void *dev_id)  				if (status & 0x40000000) {  					/* There was an major error, log it. */  					int err_status = lp->tx_ring[entry].misc; -					lp->stats.tx_errors++; -					if (err_status & 0x0400) lp->stats.tx_aborted_errors++; -					if (err_status & 0x0800) lp->stats.tx_carrier_errors++; -					if (err_status & 0x1000) lp->stats.tx_window_errors++; +					dev->stats.tx_errors++; +					if (err_status & 0x0400) +						dev->stats.tx_aborted_errors++; +					if (err_status & 0x0800) +						dev->stats.tx_carrier_errors++; +					if (err_status & 0x1000) +						dev->stats.tx_window_errors++;  					if (err_status & 0x4000) {  						/* Ackk!  On FIFO errors the Tx unit is turned off! */ -						lp->stats.tx_fifo_errors++; +						dev->stats.tx_fifo_errors++;  						/* Remove this verbosity later! */  						printk("%s: Tx FIFO error! Status %4.4x.\n",  							   dev->name, csr0); @@ -1077,8 +1079,8 @@ static irqreturn_t lance_interrupt(int irq, void *dev_id)  					}  				} else {  					if (status & 0x18000000) -						lp->stats.collisions++; -					lp->stats.tx_packets++; +						dev->stats.collisions++; +					dev->stats.tx_packets++;  				}  				/* We must free the original skb if it's not a data-only copy @@ -1108,8 +1110,10 @@ static irqreturn_t lance_interrupt(int irq, void *dev_id)  		}  		/* Log misc errors. */ -		if (csr0 & 0x4000) lp->stats.tx_errors++; /* Tx babble. */ -		if (csr0 & 0x1000) lp->stats.rx_errors++; /* Missed a Rx frame. */ +		if (csr0 & 0x4000) +			dev->stats.tx_errors++; /* Tx babble. */ +		if (csr0 & 0x1000) +			dev->stats.rx_errors++; /* Missed a Rx frame. */  		if (csr0 & 0x0800) {  			printk("%s: Bus master arbitration failure, status %4.4x.\n",  				   dev->name, csr0); @@ -1155,11 +1159,15 @@ lance_rx(struct net_device *dev)  			   buffers it's possible for a jabber packet to use two  			   buffers, with only the last correctly noting the error. */  			if (status & 0x01)	/* Only count a general error at the */ -				lp->stats.rx_errors++; /* end of a packet.*/ -			if (status & 0x20) lp->stats.rx_frame_errors++; -			if (status & 0x10) lp->stats.rx_over_errors++; -			if (status & 0x08) lp->stats.rx_crc_errors++; -			if (status & 0x04) lp->stats.rx_fifo_errors++; +				dev->stats.rx_errors++; /* end of a packet.*/ +			if (status & 0x20) +				dev->stats.rx_frame_errors++; +			if (status & 0x10) +				dev->stats.rx_over_errors++; +			if (status & 0x08) +				dev->stats.rx_crc_errors++; +			if (status & 0x04) +				dev->stats.rx_fifo_errors++;  			lp->rx_ring[entry].base &= 0x03ffffff;  		}  		else @@ -1171,7 +1179,7 @@ lance_rx(struct net_device *dev)  			if(pkt_len<60)  			{  				printk("%s: Runt packet!\n",dev->name); -				lp->stats.rx_errors++; +				dev->stats.rx_errors++;  			}  			else  			{ @@ -1185,7 +1193,7 @@ lance_rx(struct net_device *dev)  					if (i > RX_RING_SIZE -2)  					{ -						lp->stats.rx_dropped++; +						dev->stats.rx_dropped++;  						lp->rx_ring[entry].base |= 0x80000000;  						lp->cur_rx++;  					} @@ -1198,8 +1206,8 @@ lance_rx(struct net_device *dev)  					pkt_len);  				skb->protocol=eth_type_trans(skb,dev);  				netif_rx(skb); -				lp->stats.rx_packets++; -				lp->stats.rx_bytes+=pkt_len; +				dev->stats.rx_packets++; +				dev->stats.rx_bytes += pkt_len;  			}  		}  		/* The docs say that the buffer length isn't touched, but Andrew Boyd @@ -1225,7 +1233,7 @@ lance_close(struct net_device *dev)  	if (chip_table[lp->chip_version].flags & LANCE_HAS_MISSED_FRAME) {  		outw(112, ioaddr+LANCE_ADDR); -		lp->stats.rx_missed_errors = inw(ioaddr+LANCE_DATA); +		dev->stats.rx_missed_errors = inw(ioaddr+LANCE_DATA);  	}  	outw(0, ioaddr+LANCE_ADDR); @@ -1262,12 +1270,12 @@ static struct net_device_stats *lance_get_stats(struct net_device *dev)  		spin_lock_irqsave(&lp->devlock, flags);  		saved_addr = inw(ioaddr+LANCE_ADDR);  		outw(112, ioaddr+LANCE_ADDR); -		lp->stats.rx_missed_errors = inw(ioaddr+LANCE_DATA); +		dev->stats.rx_missed_errors = inw(ioaddr+LANCE_DATA);  		outw(saved_addr, ioaddr+LANCE_ADDR);  		spin_unlock_irqrestore(&lp->devlock, flags);  	} -	return &lp->stats; +	return &dev->stats;  }  /* Set or clear the multicast filter for this adaptor.  |