* [PATCH 1/2] staging: et131x: Fix stats->rx_packets accounting
@ 2011-07-03 17:08 Mark Einon
2011-07-03 17:08 ` [PATCH 2/2] staging: et131x: Remove some unecessary packet accounting code Mark Einon
0 siblings, 1 reply; 2+ messages in thread
From: Mark Einon @ 2011-07-03 17:08 UTC (permalink / raw)
To: gregkh; +Cc: devel, linux-kernel, o.hartmann, Mark Einon
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>
---
drivers/staging/et131x/et1310_phy.c | 4 +---
drivers/staging/et131x/et1310_rx.c | 5 ++---
drivers/staging/et131x/et131x_defs.h | 1 -
drivers/staging/et131x/et131x_initpci.c | 1 -
drivers/staging/et131x/et131x_netdev.c | 4 ----
5 files changed, 3 insertions(+), 12 deletions(-)
diff --git a/drivers/staging/et131x/et1310_phy.c b/drivers/staging/et131x/et1310_phy.c
index 1df0d05..f88b204 100644
--- a/drivers/staging/et131x/et1310_phy.c
+++ b/drivers/staging/et131x/et1310_phy.c
@@ -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;
diff --git a/drivers/staging/et131x/et1310_rx.c b/drivers/staging/et131x/et1310_rx.c
index 100ee9b4..6c0a64b 100644
--- a/drivers/staging/et131x/et1310_rx.c
+++ b/drivers/staging/et131x/et1310_rx.c
@@ -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++;
diff --git a/drivers/staging/et131x/et131x_defs.h b/drivers/staging/et131x/et131x_defs.h
index d81fc77..3d5193f 100644
--- a/drivers/staging/et131x/et131x_defs.h
+++ b/drivers/staging/et131x/et131x_defs.h
@@ -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
diff --git a/drivers/staging/et131x/et131x_initpci.c b/drivers/staging/et131x/et131x_initpci.c
index 1dd2e5e..a9d2521 100644
--- a/drivers/staging/et131x/et131x_initpci.c
+++ b/drivers/staging/et131x/et131x_initpci.c
@@ -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);
diff --git a/drivers/staging/et131x/et131x_netdev.c b/drivers/staging/et131x/et131x_netdev.c
index 2da5828..c890d09 100644
--- a/drivers/staging/et131x/et131x_netdev.c
+++ b/drivers/staging/et131x/et131x_netdev.c
@@ -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
*/
--
1.7.4.4
^ permalink raw reply [flat|nested] 2+ messages in thread
* [PATCH 2/2] staging: et131x: Remove some unecessary packet accounting code
2011-07-03 17:08 [PATCH 1/2] staging: et131x: Fix stats->rx_packets accounting Mark Einon
@ 2011-07-03 17:08 ` Mark Einon
0 siblings, 0 replies; 2+ messages in thread
From: Mark Einon @ 2011-07-03 17:08 UTC (permalink / raw)
To: gregkh; +Cc: devel, linux-kernel, o.hartmann, Mark Einon
The ce_stats ipackets and opackets members are only used to update
the net_device_stats->[r,t]x_packets counters, so get rid of them.
Signed-off-by: Mark Einon <mark.einon@gmail.com>
---
drivers/staging/et131x/et1310_rx.c | 2 +-
drivers/staging/et131x/et1310_tx.c | 2 +-
drivers/staging/et131x/et131x_adapter.h | 5 -----
drivers/staging/et131x/et131x_netdev.c | 6 +-----
4 files changed, 3 insertions(+), 12 deletions(-)
diff --git a/drivers/staging/et131x/et1310_rx.c b/drivers/staging/et131x/et1310_rx.c
index 6c0a64b..fc90096 100644
--- a/drivers/staging/et131x/et1310_rx.c
+++ b/drivers/staging/et131x/et1310_rx.c
@@ -1131,7 +1131,7 @@ void et131x_handle_recv_interrupt(struct et131x_adapter *etdev)
continue;
/* Increment the number of packets we received */
- etdev->stats.ipackets++;
+ etdev->net_stats.rx_packets++;
/* Set the status on the packet, either resources or success */
if (etdev->rx_ring.nReadyRecv < RFD_LOW_WATER_MARK) {
diff --git a/drivers/staging/et131x/et1310_tx.c b/drivers/staging/et131x/et1310_tx.c
index b8f8dae..bb67192 100644
--- a/drivers/staging/et131x/et1310_tx.c
+++ b/drivers/staging/et131x/et1310_tx.c
@@ -673,7 +673,7 @@ inline void et131x_free_send_packet(struct et131x_adapter *etdev,
/* Add the TCB to the Ready Q */
spin_lock_irqsave(&etdev->TCBReadyQLock, flags);
- etdev->stats.opackets++;
+ etdev->net_stats.tx_packets++;
if (etdev->tx_ring.tcb_qtail)
etdev->tx_ring.tcb_qtail->next = tcb;
diff --git a/drivers/staging/et131x/et131x_adapter.h b/drivers/staging/et131x/et131x_adapter.h
index c6657f4..99c2ef6 100644
--- a/drivers/staging/et131x/et131x_adapter.h
+++ b/drivers/staging/et131x/et131x_adapter.h
@@ -99,10 +99,6 @@ struct rfd {
/* Struct to define some device statistics */
struct ce_stats {
- /* Link Input/Output stats */
- uint64_t ipackets; /* # of in packets */
- uint64_t opackets; /* # of out packets */
-
/* MIB II variables
*
* NOTE: atomic_t types are only guaranteed to store 24-bits; if we
@@ -242,7 +238,6 @@ struct et131x_adapter {
struct ce_stats stats;
struct net_device_stats net_stats;
- struct net_device_stats net_stats_prev;
};
#endif /* __ET131X_ADAPTER_H__ */
diff --git a/drivers/staging/et131x/et131x_netdev.c b/drivers/staging/et131x/et131x_netdev.c
index c890d09..6bcddf1 100644
--- a/drivers/staging/et131x/et131x_netdev.c
+++ b/drivers/staging/et131x/et131x_netdev.c
@@ -88,22 +88,18 @@
#include "et131x_adapter.h"
#include "et131x.h"
-struct net_device_stats *et131x_stats(struct net_device *netdev);
-
/**
* et131x_stats - Return the current device statistics.
* @netdev: device whose stats are being queried
*
* Returns 0 on success, errno on failure (as defined in errno.h)
*/
-struct net_device_stats *et131x_stats(struct net_device *netdev)
+static struct net_device_stats *et131x_stats(struct net_device *netdev)
{
struct et131x_adapter *adapter = netdev_priv(netdev);
struct net_device_stats *stats = &adapter->net_stats;
struct ce_stats *devstat = &adapter->stats;
- stats->rx_packets = devstat->ipackets;
- stats->tx_packets = devstat->opackets;
stats->rx_errors = devstat->length_err + devstat->alignment_err +
devstat->crc_err + devstat->code_violations + devstat->other_errors;
stats->tx_errors = devstat->max_pkt_error;
--
1.7.4.4
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-07-03 17:09 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-07-03 17:08 [PATCH 1/2] staging: et131x: Fix stats->rx_packets accounting Mark Einon
2011-07-03 17:08 ` [PATCH 2/2] staging: et131x: Remove some unecessary packet accounting code Mark Einon
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®