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

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
...@@ -750,7 +750,6 @@ void et131x_Mii_check(struct et131x_adapter *etdev, ...@@ -750,7 +750,6 @@ void et131x_Mii_check(struct et131x_adapter *etdev,
spin_lock_irqsave(&etdev->Lock, flags); spin_lock_irqsave(&etdev->Lock, flags);
etdev->MediaState = NETIF_STATUS_MEDIA_CONNECT; etdev->MediaState = NETIF_STATUS_MEDIA_CONNECT;
etdev->Flags &= ~fMP_ADAPTER_LINK_DETECTION;
spin_unlock_irqrestore(&etdev->Lock, flags); spin_unlock_irqrestore(&etdev->Lock, flags);
...@@ -780,8 +779,7 @@ void et131x_Mii_check(struct et131x_adapter *etdev, ...@@ -780,8 +779,7 @@ void et131x_Mii_check(struct et131x_adapter *etdev,
* Timer expires, we can report disconnected (handled * Timer expires, we can report disconnected (handled
* in the LinkDetectionDPC). * in the LinkDetectionDPC).
*/ */
if (!(etdev->Flags & fMP_ADAPTER_LINK_DETECTION) || if ((etdev->MediaState == NETIF_STATUS_MEDIA_DISCONNECT)) {
(etdev->MediaState == NETIF_STATUS_MEDIA_DISCONNECT)) {
spin_lock_irqsave(&etdev->Lock, flags); spin_lock_irqsave(&etdev->Lock, flags);
etdev->MediaState = etdev->MediaState =
NETIF_STATUS_MEDIA_DISCONNECT; NETIF_STATUS_MEDIA_DISCONNECT;
......
...@@ -1126,10 +1126,9 @@ void et131x_handle_recv_interrupt(struct et131x_adapter *etdev) ...@@ -1126,10 +1126,9 @@ void et131x_handle_recv_interrupt(struct et131x_adapter *etdev)
* Free buffer ring. * Free buffer ring.
*/ */
if (!etdev->PacketFilter || if (!etdev->PacketFilter ||
!(etdev->Flags & fMP_ADAPTER_LINK_DETECTION) || !netif_carrier_ok(etdev->netdev) ||
rfd->len == 0) { rfd->len == 0)
continue; continue;
}
/* Increment the number of packets we received */ /* Increment the number of packets we received */
etdev->stats.ipackets++; etdev->stats.ipackets++;
......
...@@ -95,7 +95,6 @@ ...@@ -95,7 +95,6 @@
#define fMP_ADAPTER_HARDWARE_ERROR 0x04000000 #define fMP_ADAPTER_HARDWARE_ERROR 0x04000000
#define fMP_ADAPTER_REMOVE_IN_PROGRESS 0x08000000 #define fMP_ADAPTER_REMOVE_IN_PROGRESS 0x08000000
#define fMP_ADAPTER_HALT_IN_PROGRESS 0x10000000 #define fMP_ADAPTER_HALT_IN_PROGRESS 0x10000000
#define fMP_ADAPTER_LINK_DETECTION 0x20000000
#define fMP_ADAPTER_FAIL_SEND_MASK 0x3ff00000 #define fMP_ADAPTER_FAIL_SEND_MASK 0x3ff00000
#define fMP_ADAPTER_NOT_READY_MASK 0x3ff00000 #define fMP_ADAPTER_NOT_READY_MASK 0x3ff00000
......
...@@ -312,7 +312,6 @@ void et131x_link_detection_handler(unsigned long data) ...@@ -312,7 +312,6 @@ void et131x_link_detection_handler(unsigned long data)
spin_lock_irqsave(&etdev->Lock, flags); spin_lock_irqsave(&etdev->Lock, flags);
etdev->MediaState = NETIF_STATUS_MEDIA_DISCONNECT; etdev->MediaState = NETIF_STATUS_MEDIA_DISCONNECT;
etdev->Flags &= ~fMP_ADAPTER_LINK_DETECTION;
spin_unlock_irqrestore(&etdev->Lock, flags); spin_unlock_irqrestore(&etdev->Lock, flags);
......
...@@ -450,10 +450,6 @@ void et131x_tx_timeout(struct net_device *netdev) ...@@ -450,10 +450,6 @@ void et131x_tx_timeout(struct net_device *netdev)
struct tcb *tcb; struct tcb *tcb;
unsigned long flags; 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? /* Any nonrecoverable hardware error?
* Checks adapter->flags for any failure in phy reading * Checks adapter->flags for any failure in phy reading
*/ */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment