Subject: [PATCH] ath10k: Fix sanity check on enabling btcoex via debugfs

From: Mohammed Shafi Shajakhan <[email protected]>

First check for the device state before enabling / disabling
btcoex, also return a proper error value. Enabling / disabling
btcoex ideally does a f/w + ath10k_core_restart so the checks
that are applicable for 'simulate_fw_crash' shall be applicable
for this as well

Signed-off-by: Mohammed Shafi Shajakhan <[email protected]>
---
drivers/net/wireless/ath/ath10k/debug.c | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/drivers/net/wireless/ath/ath10k/debug.c b/drivers/net/wireless/ath/ath10k/debug.c
index 628b031..e3e29fb 100644
--- a/drivers/net/wireless/ath/ath10k/debug.c
+++ b/drivers/net/wireless/ath/ath10k/debug.c
@@ -2116,6 +2116,7 @@ static ssize_t ath10k_write_btcoex(struct file *file,
struct ath10k *ar = file->private_data;
char buf[32];
size_t buf_size;
+ int ret = 0;
bool val;

buf_size = min(count, (sizeof(buf) - 1));
@@ -2129,6 +2130,12 @@ static ssize_t ath10k_write_btcoex(struct file *file,

mutex_lock(&ar->conf_mutex);

+ if (ar->state != ATH10K_STATE_ON &&
+ ar->state != ATH10K_STATE_RESTARTED) {
+ ret = -ENETDOWN;
+ goto exit;
+ }
+
if (!(test_bit(ATH10K_FLAG_BTCOEX, &ar->dev_flags) ^ val))
goto exit;

@@ -2137,17 +2144,15 @@ static ssize_t ath10k_write_btcoex(struct file *file,
else
clear_bit(ATH10K_FLAG_BTCOEX, &ar->dev_flags);

- if (ar->state != ATH10K_STATE_ON)
- goto exit;
-
ath10k_info(ar, "restarting firmware due to btcoex change");

queue_work(ar->workqueue, &ar->restart_work);
+ ret = count;

exit:
mutex_unlock(&ar->conf_mutex);

- return count;
+ return ret;
}

static ssize_t ath10k_read_btcoex(struct file *file, char __user *ubuf,
--
1.7.9.5



2016-03-04 08:44:05

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH] ath10k: Fix sanity check on enabling btcoex via debugfs

Mohammed Shafi Shajakhan <[email protected]> writes:

> From: Mohammed Shafi Shajakhan <[email protected]>
>
> First check for the device state before enabling / disabling
> btcoex, also return a proper error value. Enabling / disabling
> btcoex ideally does a f/w + ath10k_core_restart so the checks
> that are applicable for 'simulate_fw_crash' shall be applicable
> for this as well
>
> Signed-off-by: Mohammed Shafi Shajakhan <[email protected]>

Applied, thanks.

--
Kalle Valo