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: Mark Einon <mark.einon@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
2b4baab313
commit
a7aa8a028d
|
@ -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,
|
||||||
* 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)
|
||||||
* 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 @@
|
||||||
#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)
|
||||||
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)
|
||||||
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
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue