[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