Commit a7aa8a02 authored by Mark Einon's avatar Mark Einon Committed by Greg Kroah-Hartman
Browse files

staging: et131x: Fix stats->rx_packets accounting



The net_device_stats->rx_packets counter is not getting updated.
This is due to checking a fMP_ADAPTER_LINK_DETECTION flag prior to
updating which is never set.

Solved by using netif_carrier_ok() to test for a link, and removing
the fMP_ADAPTER_LINK_DETECTION flag, which looks to be a broken
mechanism.

Signed-off-by: default avatarMark Einon <mark.einon@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 2b4baab3
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -750,7 +750,6 @@ void et131x_Mii_check(struct et131x_adapter *etdev,
			spin_lock_irqsave(&etdev->Lock, flags);

			etdev->MediaState = NETIF_STATUS_MEDIA_CONNECT;
			etdev->Flags &= ~fMP_ADAPTER_LINK_DETECTION;

			spin_unlock_irqrestore(&etdev->Lock, flags);

@@ -780,8 +779,7 @@ void et131x_Mii_check(struct et131x_adapter *etdev,
			 * Timer expires, we can report disconnected (handled
			 * in the LinkDetectionDPC).
			 */
			if (!(etdev->Flags & fMP_ADAPTER_LINK_DETECTION) ||
			 (etdev->MediaState == NETIF_STATUS_MEDIA_DISCONNECT)) {
			if ((etdev->MediaState == NETIF_STATUS_MEDIA_DISCONNECT)) {
				spin_lock_irqsave(&etdev->Lock, flags);
				etdev->MediaState =
				    NETIF_STATUS_MEDIA_DISCONNECT;
+2 −3
Original line number Diff line number Diff line
@@ -1126,10 +1126,9 @@ void et131x_handle_recv_interrupt(struct et131x_adapter *etdev)
		 * Free buffer ring.
		 */
		if (!etdev->PacketFilter ||
		    !(etdev->Flags & fMP_ADAPTER_LINK_DETECTION) ||
		    rfd->len == 0) {
		    !netif_carrier_ok(etdev->netdev) ||
		    rfd->len == 0)
			continue;
		}

		/* Increment the number of packets we received */
		etdev->stats.ipackets++;
+0 −1
Original line number Diff line number Diff line
@@ -95,7 +95,6 @@
#define fMP_ADAPTER_HARDWARE_ERROR	0x04000000
#define fMP_ADAPTER_REMOVE_IN_PROGRESS	0x08000000
#define fMP_ADAPTER_HALT_IN_PROGRESS	0x10000000
#define fMP_ADAPTER_LINK_DETECTION	0x20000000

#define fMP_ADAPTER_FAIL_SEND_MASK	0x3ff00000
#define fMP_ADAPTER_NOT_READY_MASK	0x3ff00000
+0 −1
Original line number Diff line number Diff line
@@ -312,7 +312,6 @@ void et131x_link_detection_handler(unsigned long data)
		spin_lock_irqsave(&etdev->Lock, flags);

		etdev->MediaState = NETIF_STATUS_MEDIA_DISCONNECT;
		etdev->Flags &= ~fMP_ADAPTER_LINK_DETECTION;

		spin_unlock_irqrestore(&etdev->Lock, flags);

+0 −4
Original line number Diff line number Diff line
@@ -450,10 +450,6 @@ void et131x_tx_timeout(struct net_device *netdev)
	struct tcb *tcb;
	unsigned long flags;

	/* Just skip this part if the adapter is doing link detection */
	if (etdev->Flags & fMP_ADAPTER_LINK_DETECTION)
		return;

	/* Any nonrecoverable hardware error?
	 * Checks adapter->flags for any failure in phy reading
	 */