|
@@ -158,7 +158,6 @@ struct mc32_local
|
|
|
int slot;
|
|
|
|
|
|
u32 base;
|
|
|
- struct net_device_stats net_stats;
|
|
|
volatile struct mc32_mailbox *rx_box;
|
|
|
volatile struct mc32_mailbox *tx_box;
|
|
|
volatile struct mc32_mailbox *exec_box;
|
|
@@ -1093,24 +1092,24 @@ static void mc32_update_stats(struct net_device *dev)
|
|
|
|
|
|
u32 rx_errors=0;
|
|
|
|
|
|
- rx_errors+=lp->net_stats.rx_crc_errors +=st->rx_crc_errors;
|
|
|
+ rx_errors+=dev->stats.rx_crc_errors +=st->rx_crc_errors;
|
|
|
st->rx_crc_errors=0;
|
|
|
- rx_errors+=lp->net_stats.rx_fifo_errors +=st->rx_overrun_errors;
|
|
|
+ rx_errors+=dev->stats.rx_fifo_errors +=st->rx_overrun_errors;
|
|
|
st->rx_overrun_errors=0;
|
|
|
- rx_errors+=lp->net_stats.rx_frame_errors +=st->rx_alignment_errors;
|
|
|
+ rx_errors+=dev->stats.rx_frame_errors +=st->rx_alignment_errors;
|
|
|
st->rx_alignment_errors=0;
|
|
|
- rx_errors+=lp->net_stats.rx_length_errors+=st->rx_tooshort_errors;
|
|
|
+ rx_errors+=dev->stats.rx_length_errors+=st->rx_tooshort_errors;
|
|
|
st->rx_tooshort_errors=0;
|
|
|
- rx_errors+=lp->net_stats.rx_missed_errors+=st->rx_outofresource_errors;
|
|
|
+ rx_errors+=dev->stats.rx_missed_errors+=st->rx_outofresource_errors;
|
|
|
st->rx_outofresource_errors=0;
|
|
|
- lp->net_stats.rx_errors=rx_errors;
|
|
|
+ dev->stats.rx_errors=rx_errors;
|
|
|
|
|
|
/* Number of packets which saw one collision */
|
|
|
- lp->net_stats.collisions+=st->dataC[10];
|
|
|
+ dev->stats.collisions+=st->dataC[10];
|
|
|
st->dataC[10]=0;
|
|
|
|
|
|
/* Number of packets which saw 2--15 collisions */
|
|
|
- lp->net_stats.collisions+=st->dataC[11];
|
|
|
+ dev->stats.collisions+=st->dataC[11];
|
|
|
st->dataC[11]=0;
|
|
|
}
|
|
|
|
|
@@ -1178,7 +1177,7 @@ static void mc32_rx_ring(struct net_device *dev)
|
|
|
skb=dev_alloc_skb(length+2);
|
|
|
|
|
|
if(skb==NULL) {
|
|
|
- lp->net_stats.rx_dropped++;
|
|
|
+ dev->stats.rx_dropped++;
|
|
|
goto dropped;
|
|
|
}
|
|
|
|
|
@@ -1189,8 +1188,8 @@ static void mc32_rx_ring(struct net_device *dev)
|
|
|
|
|
|
skb->protocol=eth_type_trans(skb,dev);
|
|
|
dev->last_rx = jiffies;
|
|
|
- lp->net_stats.rx_packets++;
|
|
|
- lp->net_stats.rx_bytes += length;
|
|
|
+ dev->stats.rx_packets++;
|
|
|
+ dev->stats.rx_bytes += length;
|
|
|
netif_rx(skb);
|
|
|
}
|
|
|
|
|
@@ -1253,34 +1252,34 @@ static void mc32_tx_ring(struct net_device *dev)
|
|
|
/* Not COMPLETED */
|
|
|
break;
|
|
|
}
|
|
|
- lp->net_stats.tx_packets++;
|
|
|
+ dev->stats.tx_packets++;
|
|
|
if(!(np->status & (1<<6))) /* Not COMPLETED_OK */
|
|
|
{
|
|
|
- lp->net_stats.tx_errors++;
|
|
|
+ dev->stats.tx_errors++;
|
|
|
|
|
|
switch(np->status&0x0F)
|
|
|
{
|
|
|
case 1:
|
|
|
- lp->net_stats.tx_aborted_errors++;
|
|
|
+ dev->stats.tx_aborted_errors++;
|
|
|
break; /* Max collisions */
|
|
|
case 2:
|
|
|
- lp->net_stats.tx_fifo_errors++;
|
|
|
+ dev->stats.tx_fifo_errors++;
|
|
|
break;
|
|
|
case 3:
|
|
|
- lp->net_stats.tx_carrier_errors++;
|
|
|
+ dev->stats.tx_carrier_errors++;
|
|
|
break;
|
|
|
case 4:
|
|
|
- lp->net_stats.tx_window_errors++;
|
|
|
+ dev->stats.tx_window_errors++;
|
|
|
break; /* CTS Lost */
|
|
|
case 5:
|
|
|
- lp->net_stats.tx_aborted_errors++;
|
|
|
+ dev->stats.tx_aborted_errors++;
|
|
|
break; /* Transmit timeout */
|
|
|
}
|
|
|
}
|
|
|
/* Packets are sent in order - this is
|
|
|
basically a FIFO queue of buffers matching
|
|
|
the card ring */
|
|
|
- lp->net_stats.tx_bytes+=lp->tx_ring[t].skb->len;
|
|
|
+ dev->stats.tx_bytes+=lp->tx_ring[t].skb->len;
|
|
|
dev_kfree_skb_irq(lp->tx_ring[t].skb);
|
|
|
lp->tx_ring[t].skb=NULL;
|
|
|
atomic_inc(&lp->tx_count);
|
|
@@ -1367,7 +1366,7 @@ static irqreturn_t mc32_interrupt(int irq, void *dev_id)
|
|
|
case 6:
|
|
|
/* Out of RX buffers stat */
|
|
|
/* Must restart rx */
|
|
|
- lp->net_stats.rx_dropped++;
|
|
|
+ dev->stats.rx_dropped++;
|
|
|
mc32_rx_ring(dev);
|
|
|
mc32_start_transceiver(dev);
|
|
|
break;
|
|
@@ -1489,10 +1488,8 @@ static int mc32_close(struct net_device *dev)
|
|
|
|
|
|
static struct net_device_stats *mc32_get_stats(struct net_device *dev)
|
|
|
{
|
|
|
- struct mc32_local *lp = netdev_priv(dev);
|
|
|
-
|
|
|
mc32_update_stats(dev);
|
|
|
- return &lp->net_stats;
|
|
|
+ return &dev->stats;
|
|
|
}
|
|
|
|
|
|
|