Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d117b666 authored by Kulikov Vasiliy's avatar Kulikov Vasiliy Committed by David S. Miller
Browse files

fealnx: Use the instance of net_device_stats from net_device.



Since net_device has an instance of net_device_stats,
we can remove the instance of this from the adapter structure.

Signed-off-by: default avatarKulikov Vasiliy <segooon@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 78e8c532
Loading
Loading
Loading
Loading
+36 −32
Original line number Diff line number Diff line
@@ -382,8 +382,6 @@ struct netdev_private {

	spinlock_t lock;

	struct net_device_stats stats;

	/* Media monitoring timer. */
	struct timer_list timer;

@@ -1234,7 +1232,7 @@ static void fealnx_tx_timeout(struct net_device *dev)
	spin_unlock_irqrestore(&np->lock, flags);

	dev->trans_start = jiffies; /* prevent tx timeout */
	np->stats.tx_errors++;
	dev->stats.tx_errors++;
	netif_wake_queue(dev); /* or .._start_.. ?? */
}

@@ -1479,10 +1477,11 @@ static irqreturn_t intr_handler(int irq, void *dev_instance)

		if (intr_status & CNTOVF) {
			/* missed pkts */
			np->stats.rx_missed_errors += ioread32(ioaddr + TALLY) & 0x7fff;
			dev->stats.rx_missed_errors +=
				ioread32(ioaddr + TALLY) & 0x7fff;

			/* crc error */
			np->stats.rx_crc_errors +=
			dev->stats.rx_crc_errors +=
			    (ioread32(ioaddr + TALLY) & 0x7fff0000) >> 16;
		}

@@ -1513,30 +1512,30 @@ static irqreturn_t intr_handler(int irq, void *dev_instance)

			if (!(np->crvalue & CR_W_ENH)) {
				if (tx_status & (CSL | LC | EC | UDF | HF)) {
					np->stats.tx_errors++;
					dev->stats.tx_errors++;
					if (tx_status & EC)
						np->stats.tx_aborted_errors++;
						dev->stats.tx_aborted_errors++;
					if (tx_status & CSL)
						np->stats.tx_carrier_errors++;
						dev->stats.tx_carrier_errors++;
					if (tx_status & LC)
						np->stats.tx_window_errors++;
						dev->stats.tx_window_errors++;
					if (tx_status & UDF)
						np->stats.tx_fifo_errors++;
						dev->stats.tx_fifo_errors++;
					if ((tx_status & HF) && np->mii.full_duplex == 0)
						np->stats.tx_heartbeat_errors++;
						dev->stats.tx_heartbeat_errors++;

				} else {
					np->stats.tx_bytes +=
					dev->stats.tx_bytes +=
					    ((tx_control & PKTSMask) >> PKTSShift);

					np->stats.collisions +=
					dev->stats.collisions +=
					    ((tx_status & NCRMask) >> NCRShift);
					np->stats.tx_packets++;
					dev->stats.tx_packets++;
				}
			} else {
				np->stats.tx_bytes +=
				dev->stats.tx_bytes +=
				    ((tx_control & PKTSMask) >> PKTSShift);
				np->stats.tx_packets++;
				dev->stats.tx_packets++;
			}

			/* Free the original skb. */
@@ -1564,10 +1563,12 @@ static irqreturn_t intr_handler(int irq, void *dev_instance)
			long data;

			data = ioread32(ioaddr + TSR);
			np->stats.tx_errors += (data & 0xff000000) >> 24;
			np->stats.tx_aborted_errors += (data & 0xff000000) >> 24;
			np->stats.tx_window_errors += (data & 0x00ff0000) >> 16;
			np->stats.collisions += (data & 0x0000ffff);
			dev->stats.tx_errors += (data & 0xff000000) >> 24;
			dev->stats.tx_aborted_errors +=
				(data & 0xff000000) >> 24;
			dev->stats.tx_window_errors +=
				(data & 0x00ff0000) >> 16;
			dev->stats.collisions += (data & 0x0000ffff);
		}

		if (--boguscnt < 0) {
@@ -1593,10 +1594,11 @@ static irqreturn_t intr_handler(int irq, void *dev_instance)

	/* read the tally counters */
	/* missed pkts */
	np->stats.rx_missed_errors += ioread32(ioaddr + TALLY) & 0x7fff;
	dev->stats.rx_missed_errors += ioread32(ioaddr + TALLY) & 0x7fff;

	/* crc error */
	np->stats.rx_crc_errors += (ioread32(ioaddr + TALLY) & 0x7fff0000) >> 16;
	dev->stats.rx_crc_errors +=
		(ioread32(ioaddr + TALLY) & 0x7fff0000) >> 16;

	if (debug)
		printk(KERN_DEBUG "%s: exiting interrupt, status=%#4.4x.\n",
@@ -1635,13 +1637,13 @@ static int netdev_rx(struct net_device *dev)
					       "%s: Receive error, Rx status %8.8x.\n",
					       dev->name, rx_status);

				np->stats.rx_errors++;	/* end of a packet. */
				dev->stats.rx_errors++;	/* end of a packet. */
				if (rx_status & (LONG | RUNT))
					np->stats.rx_length_errors++;
					dev->stats.rx_length_errors++;
				if (rx_status & RXER)
					np->stats.rx_frame_errors++;
					dev->stats.rx_frame_errors++;
				if (rx_status & CRC)
					np->stats.rx_crc_errors++;
					dev->stats.rx_crc_errors++;
			} else {
				int need_to_reset = 0;
				int desno = 0;
@@ -1667,7 +1669,7 @@ static int netdev_rx(struct net_device *dev)
				if (need_to_reset == 0) {
					int i;

					np->stats.rx_length_errors++;
					dev->stats.rx_length_errors++;

					/* free all rx descriptors related this long pkt */
					for (i = 0; i < desno; ++i) {
@@ -1733,8 +1735,8 @@ static int netdev_rx(struct net_device *dev)
			}
			skb->protocol = eth_type_trans(skb, dev);
			netif_rx(skb);
			np->stats.rx_packets++;
			np->stats.rx_bytes += pkt_len;
			dev->stats.rx_packets++;
			dev->stats.rx_bytes += pkt_len;
		}

		np->cur_rx = np->cur_rx->next_desc_logical;
@@ -1754,11 +1756,13 @@ static struct net_device_stats *get_stats(struct net_device *dev)

	/* The chip only need report frame silently dropped. */
	if (netif_running(dev)) {
		np->stats.rx_missed_errors += ioread32(ioaddr + TALLY) & 0x7fff;
		np->stats.rx_crc_errors += (ioread32(ioaddr + TALLY) & 0x7fff0000) >> 16;
		dev->stats.rx_missed_errors +=
			ioread32(ioaddr + TALLY) & 0x7fff;
		dev->stats.rx_crc_errors +=
			(ioread32(ioaddr + TALLY) & 0x7fff0000) >> 16;
	}

	return &np->stats;
	return &dev->stats;
}