[PATCH v2 1/4] ath10k: Add support to configure pktlog filter

Kalle Valo kvalo at qca.qualcomm.com
Mon Oct 6 04:52:45 PDT 2014


Rajkumar Manoharan <rmanohar at qti.qualcomm.com> writes:

> Add support to configure packet log filters (tx, rx, rate control)
> via debugfs. To disable htt pktlog events set the filters to 0.
>
> ex:
>
> To enable pktlog for all filters
>
>    echo 0x1f > /sys/kernel/debug/ieee80211/phy*/ath10k/pktlog_filter
>
> To disable pktlog
>
>    echo 0 > /sys/kernel/debug/ieee80211/phy*/ath10k/pktlog_filter
>
> Signed-off-by: Rajkumar Manoharan <rmanohar at qti.qualcomm.com>

I did minor changes to the error handling in
ath10k_write_pktlog_filter() and in ath10k_debug_start(). Diff below and
full commit here:

https://github.com/kvalo/ath/commit/470c43d83b7ee4147dea38a4f7b986070555a032

Please review my changes.

Kalle

diff --git a/drivers/net/wireless/ath/ath10k/debug.c b/drivers/net/wireless/ath/ath10k/debug.c
index a5700a2aff8c..fe71494cefa9 100644
--- a/drivers/net/wireless/ath/ath10k/debug.c
+++ b/drivers/net/wireless/ath/ath10k/debug.c
@@ -1396,15 +1396,20 @@ int ath10k_debug_start(struct ath10k *ar)
 				    ret);
 	}
 
-	if (ar->debug.pktlog_filter)
+	if (ar->debug.pktlog_filter) {
 		ret = ath10k_wmi_pdev_pktlog_enable(ar,
 						    ar->debug.pktlog_filter);
-	else
+		if (ret)
+			/* not serious */
+			ath10k_warn(ar,
+				    "failed to enable pktlog filter %x: %d",
+				    ar->debug.pktlog_filter, ret);
+	} else {
 		ret = ath10k_wmi_pdev_pktlog_disable(ar);
-
-	if (ret)
-		ath10k_warn(ar, "failed to send pktlog command: %d filter %x",
-			    ret, ar->debug.pktlog_filter);
+		if (ret)
+			/* not serious */
+			ath10k_warn(ar, "failed to disable pktlog: %d", ret);
+	}
 
 	return ret;
 }
@@ -1520,23 +1525,31 @@ static ssize_t ath10k_write_pktlog_filter(struct file *file,
 
 	if (ar->state != ATH10K_STATE_ON) {
 		ar->debug.pktlog_filter = filter;
-		mutex_unlock(&ar->conf_mutex);
-		return count;
+		ret = count;
+		goto out;
 	}
 
-	if (filter && (filter != ar->debug.pktlog_filter))
+	if (filter && (filter != ar->debug.pktlog_filter)) {
 		ret = ath10k_wmi_pdev_pktlog_enable(ar, filter);
-	else
+		if (ret) {
+			ath10k_warn(ar, "failed to enable pktlog filter %x: %d",
+				    ar->debug.pktlog_filter, ret);
+			goto out;
+		}
+	} else {
 		ret = ath10k_wmi_pdev_pktlog_disable(ar);
+		if (ret) {
+			ath10k_warn(ar, "failed to disable pktlog: %d", ret);
+			goto out;
+		}
+	}
 
 	ar->debug.pktlog_filter = filter;
-	mutex_unlock(&ar->conf_mutex);
-
-	if (ret)
-		ath10k_warn(ar, "failed to send pktlog command: %d filter %x",
-			    ret, ar->debug.pktlog_filter);
+	ret = count;
 
-	return count;
+out:
+	mutex_unlock(&ar->conf_mutex);
+	return ret;
 }
 
 static ssize_t ath10k_read_pktlog_filter(struct file *file, char __user *ubuf,



More information about the ath10k mailing list