diff mbox series

net: wireless: ath9k: Return an error when ath9k_hw_reset() fails

Message ID 20190504100815.19876-1-baijiaju1990@gmail.com (mailing list archive)
State Changes Requested
Delegated to: Kalle Valo
Headers show
Series net: wireless: ath9k: Return an error when ath9k_hw_reset() fails | expand

Commit Message

Jia-Ju Bai May 4, 2019, 10:08 a.m. UTC
ath9k_hw_reset() in ath9k_start() can fail, and in this case, 
ath9k_start() should return an error instead of executing the 
subsequent code.

Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
---
 drivers/net/wireless/ath/ath9k/main.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Heiner Kallweit May 4, 2019, 11:02 a.m. UTC | #1
On 04.05.2019 12:08, Jia-Ju Bai wrote:
> ath9k_hw_reset() in ath9k_start() can fail, and in this case, 
> ath9k_start() should return an error instead of executing the 
> subsequent code.
> 
Such mechanical patches w/o understanding the code are always
problematic. Do you have any proof that this error is fatal?
I think it is not, else we wouldn't have this line:
ah->reset_power_on = false;
Also you should consider that a mutex and a spinlock are held.
Maybe changing the error message to a warning would be more
appropriate. But this I would leave to somebody being more
familiar with this driver.

> Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
> ---
>  drivers/net/wireless/ath/ath9k/main.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
> index f23cb2f3d296..f78e7c46764d 100644
> --- a/drivers/net/wireless/ath/ath9k/main.c
> +++ b/drivers/net/wireless/ath/ath9k/main.c
> @@ -681,6 +681,7 @@ static int ath9k_start(struct ieee80211_hw *hw)
>  			"Unable to reset hardware; reset status %d (freq %u MHz)\n",
>  			r, curchan->center_freq);
>  		ah->reset_power_on = false;
> +		return r;
>  	}
>  
>  	/* Setup our intr mask. */
>
Kalle Valo May 6, 2019, 8:24 a.m. UTC | #2
Heiner Kallweit <hkallweit1@gmail.com> writes:

> On 04.05.2019 12:08, Jia-Ju Bai wrote:
>> ath9k_hw_reset() in ath9k_start() can fail, and in this case, 
>> ath9k_start() should return an error instead of executing the 
>> subsequent code.
>> 
> Such mechanical patches w/o understanding the code are always
> problematic. Do you have any proof that this error is fatal?
> I think it is not, else we wouldn't have this line:
> ah->reset_power_on = false;
> Also you should consider that a mutex and a spinlock are held.
> Maybe changing the error message to a warning would be more
> appropriate. But this I would leave to somebody being more
> familiar with this driver.

A very good point, thanks Heiner! I will drop this unless someone
familiar with ath9k says that this is ok.
diff mbox series

Patch

diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
index f23cb2f3d296..f78e7c46764d 100644
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -681,6 +681,7 @@  static int ath9k_start(struct ieee80211_hw *hw)
 			"Unable to reset hardware; reset status %d (freq %u MHz)\n",
 			r, curchan->center_freq);
 		ah->reset_power_on = false;
+		return r;
 	}
 
 	/* Setup our intr mask. */