mirror of
https://github.com/torvalds/linux.git
synced 2024-11-12 15:11:50 +00:00
net: dl2k: Use net_device_stats from struct net_device
Instead of using a private copy of struct net_device_stats in struct netdev_private, use stats from struct net_device. Also remove the now unnecessary .ndo_get_stats function and the #ifdef'ed increment of the collisions16 counter which doesn't exist in struct net_device_stats. Signed-off-by: Tobias Klauser <tklauser@distanz.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
a73be7fe49
commit
a548779bb7
@ -878,10 +878,10 @@ tx_error (struct net_device *dev, int tx_status)
|
|||||||
frame_id = (tx_status & 0xffff0000);
|
frame_id = (tx_status & 0xffff0000);
|
||||||
printk (KERN_ERR "%s: Transmit error, TxStatus %4.4x, FrameId %d.\n",
|
printk (KERN_ERR "%s: Transmit error, TxStatus %4.4x, FrameId %d.\n",
|
||||||
dev->name, tx_status, frame_id);
|
dev->name, tx_status, frame_id);
|
||||||
np->stats.tx_errors++;
|
dev->stats.tx_errors++;
|
||||||
/* Ttransmit Underrun */
|
/* Ttransmit Underrun */
|
||||||
if (tx_status & 0x10) {
|
if (tx_status & 0x10) {
|
||||||
np->stats.tx_fifo_errors++;
|
dev->stats.tx_fifo_errors++;
|
||||||
dw16(TxStartThresh, dr16(TxStartThresh) + 0x10);
|
dw16(TxStartThresh, dr16(TxStartThresh) + 0x10);
|
||||||
/* Transmit Underrun need to set TxReset, DMARest, FIFOReset */
|
/* Transmit Underrun need to set TxReset, DMARest, FIFOReset */
|
||||||
dw16(ASICCtrl + 2,
|
dw16(ASICCtrl + 2,
|
||||||
@ -903,7 +903,7 @@ tx_error (struct net_device *dev, int tx_status)
|
|||||||
}
|
}
|
||||||
/* Late Collision */
|
/* Late Collision */
|
||||||
if (tx_status & 0x04) {
|
if (tx_status & 0x04) {
|
||||||
np->stats.tx_fifo_errors++;
|
dev->stats.tx_fifo_errors++;
|
||||||
/* TxReset and clear FIFO */
|
/* TxReset and clear FIFO */
|
||||||
dw16(ASICCtrl + 2, TxReset | FIFOReset);
|
dw16(ASICCtrl + 2, TxReset | FIFOReset);
|
||||||
/* Wait reset done */
|
/* Wait reset done */
|
||||||
@ -916,13 +916,8 @@ tx_error (struct net_device *dev, int tx_status)
|
|||||||
/* Let TxStartThresh stay default value */
|
/* Let TxStartThresh stay default value */
|
||||||
}
|
}
|
||||||
/* Maximum Collisions */
|
/* Maximum Collisions */
|
||||||
#ifdef ETHER_STATS
|
|
||||||
if (tx_status & 0x08)
|
if (tx_status & 0x08)
|
||||||
np->stats.collisions16++;
|
dev->stats.collisions++;
|
||||||
#else
|
|
||||||
if (tx_status & 0x08)
|
|
||||||
np->stats.collisions++;
|
|
||||||
#endif
|
|
||||||
/* Restart the Tx */
|
/* Restart the Tx */
|
||||||
dw32(MACCtrl, dr16(MACCtrl) | TxEnable);
|
dw32(MACCtrl, dr16(MACCtrl) | TxEnable);
|
||||||
}
|
}
|
||||||
@ -952,15 +947,15 @@ receive_packet (struct net_device *dev)
|
|||||||
break;
|
break;
|
||||||
/* Update rx error statistics, drop packet. */
|
/* Update rx error statistics, drop packet. */
|
||||||
if (frame_status & RFS_Errors) {
|
if (frame_status & RFS_Errors) {
|
||||||
np->stats.rx_errors++;
|
dev->stats.rx_errors++;
|
||||||
if (frame_status & (RxRuntFrame | RxLengthError))
|
if (frame_status & (RxRuntFrame | RxLengthError))
|
||||||
np->stats.rx_length_errors++;
|
dev->stats.rx_length_errors++;
|
||||||
if (frame_status & RxFCSError)
|
if (frame_status & RxFCSError)
|
||||||
np->stats.rx_crc_errors++;
|
dev->stats.rx_crc_errors++;
|
||||||
if (frame_status & RxAlignmentError && np->speed != 1000)
|
if (frame_status & RxAlignmentError && np->speed != 1000)
|
||||||
np->stats.rx_frame_errors++;
|
dev->stats.rx_frame_errors++;
|
||||||
if (frame_status & RxFIFOOverrun)
|
if (frame_status & RxFIFOOverrun)
|
||||||
np->stats.rx_fifo_errors++;
|
dev->stats.rx_fifo_errors++;
|
||||||
} else {
|
} else {
|
||||||
struct sk_buff *skb;
|
struct sk_buff *skb;
|
||||||
|
|
||||||
@ -1096,23 +1091,23 @@ get_stats (struct net_device *dev)
|
|||||||
/* All statistics registers need to be acknowledged,
|
/* All statistics registers need to be acknowledged,
|
||||||
else statistic overflow could cause problems */
|
else statistic overflow could cause problems */
|
||||||
|
|
||||||
np->stats.rx_packets += dr32(FramesRcvOk);
|
dev->stats.rx_packets += dr32(FramesRcvOk);
|
||||||
np->stats.tx_packets += dr32(FramesXmtOk);
|
dev->stats.tx_packets += dr32(FramesXmtOk);
|
||||||
np->stats.rx_bytes += dr32(OctetRcvOk);
|
dev->stats.rx_bytes += dr32(OctetRcvOk);
|
||||||
np->stats.tx_bytes += dr32(OctetXmtOk);
|
dev->stats.tx_bytes += dr32(OctetXmtOk);
|
||||||
|
|
||||||
np->stats.multicast = dr32(McstFramesRcvdOk);
|
dev->stats.multicast = dr32(McstFramesRcvdOk);
|
||||||
np->stats.collisions += dr32(SingleColFrames)
|
dev->stats.collisions += dr32(SingleColFrames)
|
||||||
+ dr32(MultiColFrames);
|
+ dr32(MultiColFrames);
|
||||||
|
|
||||||
/* detailed tx errors */
|
/* detailed tx errors */
|
||||||
stat_reg = dr16(FramesAbortXSColls);
|
stat_reg = dr16(FramesAbortXSColls);
|
||||||
np->stats.tx_aborted_errors += stat_reg;
|
dev->stats.tx_aborted_errors += stat_reg;
|
||||||
np->stats.tx_errors += stat_reg;
|
dev->stats.tx_errors += stat_reg;
|
||||||
|
|
||||||
stat_reg = dr16(CarrierSenseErrors);
|
stat_reg = dr16(CarrierSenseErrors);
|
||||||
np->stats.tx_carrier_errors += stat_reg;
|
dev->stats.tx_carrier_errors += stat_reg;
|
||||||
np->stats.tx_errors += stat_reg;
|
dev->stats.tx_errors += stat_reg;
|
||||||
|
|
||||||
/* Clear all other statistic register. */
|
/* Clear all other statistic register. */
|
||||||
dr32(McstOctetXmtOk);
|
dr32(McstOctetXmtOk);
|
||||||
@ -1142,7 +1137,7 @@ get_stats (struct net_device *dev)
|
|||||||
dr16(TCPCheckSumErrors);
|
dr16(TCPCheckSumErrors);
|
||||||
dr16(UDPCheckSumErrors);
|
dr16(UDPCheckSumErrors);
|
||||||
dr16(IPCheckSumErrors);
|
dr16(IPCheckSumErrors);
|
||||||
return &np->stats;
|
return &dev->stats;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
@ -377,7 +377,6 @@ struct netdev_private {
|
|||||||
void __iomem *eeprom_addr;
|
void __iomem *eeprom_addr;
|
||||||
spinlock_t tx_lock;
|
spinlock_t tx_lock;
|
||||||
spinlock_t rx_lock;
|
spinlock_t rx_lock;
|
||||||
struct net_device_stats stats;
|
|
||||||
unsigned int rx_buf_sz; /* Based on MTU+slack. */
|
unsigned int rx_buf_sz; /* Based on MTU+slack. */
|
||||||
unsigned int speed; /* Operating speed */
|
unsigned int speed; /* Operating speed */
|
||||||
unsigned int vlan; /* VLAN Id */
|
unsigned int vlan; /* VLAN Id */
|
||||||
|
Loading…
Reference in New Issue
Block a user