linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] libertas: Fix ethtool statistics
@ 2008-04-17 16:13 David Woodhouse
  2008-04-17 18:02 ` Dan Williams
  2008-04-18  9:02 ` [PATCH] libertas: Fix ethtool statistics Holger Schurig
  0 siblings, 2 replies; 21+ messages in thread
From: David Woodhouse @ 2008-04-17 16:13 UTC (permalink / raw)
  To: linville; +Cc: linux-wireless, libertas-dev

We removed CMD_MESH_ACCESS from the big case statements and provided
lbs_mesh_access() instead.... but we missed one user. Fix it.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>

diff --git a/drivers/net/wireless/libertas/ethtool.c b/drivers/net/wireless/libertas/ethtool.c
index 21e6f98..9460300 100644
--- a/drivers/net/wireless/libertas/ethtool.c
+++ b/drivers/net/wireless/libertas/ethtool.c
@@ -106,8 +106,8 @@ done:
         return ret;
 }
 
-static void lbs_ethtool_get_stats(struct net_device * dev,
-				struct ethtool_stats * stats, u64 * data)
+static void lbs_ethtool_get_stats(struct net_device *dev,
+				  struct ethtool_stats *stats, u64 *data)
 {
 	struct lbs_private *priv = dev->priv;
 	struct cmd_ds_mesh_access mesh_access;
@@ -116,9 +116,7 @@ static void lbs_ethtool_get_stats(struct net_device * dev,
 	lbs_deb_enter(LBS_DEB_ETHTOOL);
 
 	/* Get Mesh Statistics */
-	ret = lbs_prepare_and_send_command(priv,
-			CMD_MESH_ACCESS, CMD_ACT_MESH_GET_STATS,
-			CMD_OPTION_WAITFORRSP, 0, &mesh_access);
+	ret = lbs_mesh_access(priv, CMD_ACT_MESH_GET_STATS, &mesh_access);
 
 	if (ret)
 		return;

-- 
dwmw2


^ permalink raw reply related	[flat|nested] 21+ messages in thread
* [PATCH] libertas: Fix ethtool statistics
@ 2008-05-19 15:32 David Woodhouse
  2008-05-19 15:47 ` Dan Williams
                   ` (2 more replies)
  0 siblings, 3 replies; 21+ messages in thread
From: David Woodhouse @ 2008-05-19 15:32 UTC (permalink / raw)
  To: linville; +Cc: libertas-dev, linux-wireless, Sebastian Siewior

Fix various problems:
 - We converted MESH_ACCESS to a direct command but missed this caller.
 - We were trying to access mesh stats even on meshless firmware.
 - We should really zero the buffer if something goes wrong.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>

diff --git a/drivers/net/wireless/libertas/ethtool.c b/drivers/net/wireless/libertas/ethtool.c
index dcfdb40..688d60d 100644
--- a/drivers/net/wireless/libertas/ethtool.c
+++ b/drivers/net/wireless/libertas/ethtool.c
@@ -73,8 +73,8 @@ out:
         return ret;
 }
 
-static void lbs_ethtool_get_stats(struct net_device * dev,
-				struct ethtool_stats * stats, u64 * data)
+static void lbs_ethtool_get_stats(struct net_device *dev,
+				  struct ethtool_stats *stats, uint64_t *data)
 {
 	struct lbs_private *priv = dev->priv;
 	struct cmd_ds_mesh_access mesh_access;
@@ -83,12 +83,12 @@ static void lbs_ethtool_get_stats(struct net_device * dev,
 	lbs_deb_enter(LBS_DEB_ETHTOOL);
 
 	/* Get Mesh Statistics */
-	ret = lbs_prepare_and_send_command(priv,
-			CMD_MESH_ACCESS, CMD_ACT_MESH_GET_STATS,
-			CMD_OPTION_WAITFORRSP, 0, &mesh_access);
+	ret = lbs_mesh_access(priv, CMD_ACT_MESH_GET_STATS, &mesh_access);
 
-	if (ret)
+	if (ret) {
+		memset(data, 0, MESH_STATS_NUM*(sizeof(uint64_t)));
 		return;
+	}
 
 	priv->mstats.fwd_drop_rbt = le32_to_cpu(mesh_access.data[0]);
 	priv->mstats.fwd_drop_ttl = le32_to_cpu(mesh_access.data[1]);
@@ -111,19 +111,18 @@ static void lbs_ethtool_get_stats(struct net_device * dev,
 	lbs_deb_enter(LBS_DEB_ETHTOOL);
 }
 
-static int lbs_ethtool_get_sset_count(struct net_device * dev, int sset)
+static int lbs_ethtool_get_sset_count(struct net_device *dev, int sset)
 {
-	switch (sset) {
-	case ETH_SS_STATS:
+	struct lbs_private *priv = dev->priv;
+
+	if (sset == ETH_SS_STATS && dev == priv->mesh_dev)
 		return MESH_STATS_NUM;
-	default:
-		return -EOPNOTSUPP;
-	}
+
+	return -EOPNOTSUPP;
 }
 
 static void lbs_ethtool_get_strings(struct net_device *dev,
-					  u32 stringset,
-					  u8 * s)
+				    uint32_t stringset, uint8_t *s)
 {
 	int i;
 

-- 
dwmw2


^ permalink raw reply related	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2008-05-20  7:54 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-04-17 16:13 [PATCH] libertas: Fix ethtool statistics David Woodhouse
2008-04-17 18:02 ` Dan Williams
2008-04-17 19:44   ` Sebastian Siewior
2008-04-18 11:09     ` David Woodhouse
2008-05-10  7:24     ` [PATCH] [NET] libertas: check for mesh support before trying to use it Sebastian Siewior
2008-05-12 16:34       ` Dan Williams
2008-05-12 20:51         ` Sebastian Siewior
2008-05-13  0:09           ` John W. Linville
2008-04-18  9:02 ` [PATCH] libertas: Fix ethtool statistics Holger Schurig
2008-04-18  9:11   ` David Woodhouse
2008-04-18  9:49     ` Holger Schurig
2008-04-18 11:15       ` David Woodhouse
2008-04-18 13:10         ` Holger Schurig
2008-04-20  8:41           ` Sebastian Siewior
2008-04-20 10:56             ` David Woodhouse
2008-04-20 19:10               ` Sebastian Siewior
2008-04-21  6:42                 ` David Woodhouse
  -- strict thread matches above, loose matches on Subject: below --
2008-05-19 15:32 David Woodhouse
2008-05-19 15:47 ` Dan Williams
2008-05-19 17:20 ` Sebastian Siewior
2008-05-20  7:54 ` Holger Schurig

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).