3c505: use netstats in net_device structure
Use net_device_stats from net_device structure instead of local. No need to memset it to 0, because it is allocated by kzalloc. Signed-off-by: Paulius Zaleckas <paulius.zaleckas@teltonika.lt> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
This commit is contained in:
parent
dd32f7effd
commit
ba0f6caeb5
2 changed files with 14 additions and 17 deletions
|
@ -670,7 +670,7 @@ static irqreturn_t elp_interrupt(int irq, void *dev_id)
|
||||||
memcpy(adapter->current_dma.target, adapter->dma_buffer, adapter->current_dma.length);
|
memcpy(adapter->current_dma.target, adapter->dma_buffer, adapter->current_dma.length);
|
||||||
}
|
}
|
||||||
skb->protocol = eth_type_trans(skb,dev);
|
skb->protocol = eth_type_trans(skb,dev);
|
||||||
adapter->stats.rx_bytes += skb->len;
|
dev->stats.rx_bytes += skb->len;
|
||||||
netif_rx(skb);
|
netif_rx(skb);
|
||||||
dev->last_rx = jiffies;
|
dev->last_rx = jiffies;
|
||||||
}
|
}
|
||||||
|
@ -773,12 +773,12 @@ static irqreturn_t elp_interrupt(int irq, void *dev_id)
|
||||||
* received board statistics
|
* received board statistics
|
||||||
*/
|
*/
|
||||||
case CMD_NETWORK_STATISTICS_RESPONSE:
|
case CMD_NETWORK_STATISTICS_RESPONSE:
|
||||||
adapter->stats.rx_packets += adapter->irx_pcb.data.netstat.tot_recv;
|
dev->stats.rx_packets += adapter->irx_pcb.data.netstat.tot_recv;
|
||||||
adapter->stats.tx_packets += adapter->irx_pcb.data.netstat.tot_xmit;
|
dev->stats.tx_packets += adapter->irx_pcb.data.netstat.tot_xmit;
|
||||||
adapter->stats.rx_crc_errors += adapter->irx_pcb.data.netstat.err_CRC;
|
dev->stats.rx_crc_errors += adapter->irx_pcb.data.netstat.err_CRC;
|
||||||
adapter->stats.rx_frame_errors += adapter->irx_pcb.data.netstat.err_align;
|
dev->stats.rx_frame_errors += adapter->irx_pcb.data.netstat.err_align;
|
||||||
adapter->stats.rx_fifo_errors += adapter->irx_pcb.data.netstat.err_ovrrun;
|
dev->stats.rx_fifo_errors += adapter->irx_pcb.data.netstat.err_ovrrun;
|
||||||
adapter->stats.rx_over_errors += adapter->irx_pcb.data.netstat.err_res;
|
dev->stats.rx_over_errors += adapter->irx_pcb.data.netstat.err_res;
|
||||||
adapter->got[CMD_NETWORK_STATISTICS] = 1;
|
adapter->got[CMD_NETWORK_STATISTICS] = 1;
|
||||||
if (elp_debug >= 3)
|
if (elp_debug >= 3)
|
||||||
printk(KERN_DEBUG "%s: interrupt - statistics response received\n", dev->name);
|
printk(KERN_DEBUG "%s: interrupt - statistics response received\n", dev->name);
|
||||||
|
@ -794,11 +794,11 @@ static irqreturn_t elp_interrupt(int irq, void *dev_id)
|
||||||
break;
|
break;
|
||||||
switch (adapter->irx_pcb.data.xmit_resp.c_stat) {
|
switch (adapter->irx_pcb.data.xmit_resp.c_stat) {
|
||||||
case 0xffff:
|
case 0xffff:
|
||||||
adapter->stats.tx_aborted_errors++;
|
dev->stats.tx_aborted_errors++;
|
||||||
printk(KERN_INFO "%s: transmit timed out, network cable problem?\n", dev->name);
|
printk(KERN_INFO "%s: transmit timed out, network cable problem?\n", dev->name);
|
||||||
break;
|
break;
|
||||||
case 0xfffe:
|
case 0xfffe:
|
||||||
adapter->stats.tx_fifo_errors++;
|
dev->stats.tx_fifo_errors++;
|
||||||
printk(KERN_INFO "%s: transmit timed out, FIFO underrun\n", dev->name);
|
printk(KERN_INFO "%s: transmit timed out, FIFO underrun\n", dev->name);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -986,7 +986,7 @@ static bool send_packet(struct net_device *dev, struct sk_buff *skb)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
adapter->stats.tx_bytes += nlen;
|
dev->stats.tx_bytes += nlen;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* send the adapter a transmit packet command. Ignore segment and offset
|
* send the adapter a transmit packet command. Ignore segment and offset
|
||||||
|
@ -1041,7 +1041,6 @@ static bool send_packet(struct net_device *dev, struct sk_buff *skb)
|
||||||
|
|
||||||
static void elp_timeout(struct net_device *dev)
|
static void elp_timeout(struct net_device *dev)
|
||||||
{
|
{
|
||||||
elp_device *adapter = dev->priv;
|
|
||||||
int stat;
|
int stat;
|
||||||
|
|
||||||
stat = inb_status(dev->base_addr);
|
stat = inb_status(dev->base_addr);
|
||||||
|
@ -1049,7 +1048,7 @@ static void elp_timeout(struct net_device *dev)
|
||||||
if (elp_debug >= 1)
|
if (elp_debug >= 1)
|
||||||
printk(KERN_DEBUG "%s: status %#02x\n", dev->name, stat);
|
printk(KERN_DEBUG "%s: status %#02x\n", dev->name, stat);
|
||||||
dev->trans_start = jiffies;
|
dev->trans_start = jiffies;
|
||||||
adapter->stats.tx_dropped++;
|
dev->stats.tx_dropped++;
|
||||||
netif_wake_queue(dev);
|
netif_wake_queue(dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1113,7 +1112,7 @@ static struct net_device_stats *elp_get_stats(struct net_device *dev)
|
||||||
/* If the device is closed, just return the latest stats we have,
|
/* If the device is closed, just return the latest stats we have,
|
||||||
- we cannot ask from the adapter without interrupts */
|
- we cannot ask from the adapter without interrupts */
|
||||||
if (!netif_running(dev))
|
if (!netif_running(dev))
|
||||||
return &adapter->stats;
|
return &dev->stats;
|
||||||
|
|
||||||
/* send a get statistics command to the board */
|
/* send a get statistics command to the board */
|
||||||
adapter->tx_pcb.command = CMD_NETWORK_STATISTICS;
|
adapter->tx_pcb.command = CMD_NETWORK_STATISTICS;
|
||||||
|
@ -1126,12 +1125,12 @@ static struct net_device_stats *elp_get_stats(struct net_device *dev)
|
||||||
while (adapter->got[CMD_NETWORK_STATISTICS] == 0 && time_before(jiffies, timeout));
|
while (adapter->got[CMD_NETWORK_STATISTICS] == 0 && time_before(jiffies, timeout));
|
||||||
if (time_after_eq(jiffies, timeout)) {
|
if (time_after_eq(jiffies, timeout)) {
|
||||||
TIMEOUT_MSG(__LINE__);
|
TIMEOUT_MSG(__LINE__);
|
||||||
return &adapter->stats;
|
return &dev->stats;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* statistics are now up to date */
|
/* statistics are now up to date */
|
||||||
return &adapter->stats;
|
return &dev->stats;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1571,7 +1570,6 @@ static int __init elplus_setup(struct net_device *dev)
|
||||||
dev->set_multicast_list = elp_set_mc_list; /* local */
|
dev->set_multicast_list = elp_set_mc_list; /* local */
|
||||||
dev->ethtool_ops = &netdev_ethtool_ops; /* local */
|
dev->ethtool_ops = &netdev_ethtool_ops; /* local */
|
||||||
|
|
||||||
memset(&(adapter->stats), 0, sizeof(struct net_device_stats));
|
|
||||||
dev->mem_start = dev->mem_end = 0;
|
dev->mem_start = dev->mem_end = 0;
|
||||||
|
|
||||||
err = register_netdev(dev);
|
err = register_netdev(dev);
|
||||||
|
|
|
@ -264,7 +264,6 @@ typedef struct {
|
||||||
pcb_struct rx_pcb; /* PCB for foreground receiving */
|
pcb_struct rx_pcb; /* PCB for foreground receiving */
|
||||||
pcb_struct itx_pcb; /* PCB for background sending */
|
pcb_struct itx_pcb; /* PCB for background sending */
|
||||||
pcb_struct irx_pcb; /* PCB for background receiving */
|
pcb_struct irx_pcb; /* PCB for background receiving */
|
||||||
struct net_device_stats stats;
|
|
||||||
|
|
||||||
void *dma_buffer;
|
void *dma_buffer;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue