2013-03-19 04:18:58

by Raja Mani

[permalink] [raw]
Subject: [PATCH] ath6kl: Check wmi ready event status before validating abi version

There is no point to check firmware ABI version when the driver
fails to wait for WMI_READY event during the boot time.

For such failures, the driver should assume the firmware is not
booted and start doing cleanup.

Signed-off-by: Raja Mani <[email protected]>
---
drivers/net/wireless/ath/ath6kl/init.c | 14 +++++++-------
1 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/net/wireless/ath/ath6kl/init.c b/drivers/net/wireless/ath/ath6kl/init.c
index 072a229..4c54432 100644
--- a/drivers/net/wireless/ath/ath6kl/init.c
+++ b/drivers/net/wireless/ath/ath6kl/init.c
@@ -1604,10 +1604,16 @@ static int __ath6kl_init_hw_start(struct ath6kl *ar)
test_bit(WMI_READY,
&ar->flag),
WMI_TIMEOUT);
+ if (timeleft <= 0) {
+ clear_bit(WMI_READY, &ar->flag);
+ ath6kl_err("wmi is not ready or wait was interrupted: %ld\n",
+ timeleft);
+ ret = -EIO;
+ goto err_htc_stop;
+ }

ath6kl_dbg(ATH6KL_DBG_BOOT, "firmware booted\n");

-
if (test_and_clear_bit(FIRST_BOOT, &ar->flag)) {
ath6kl_info("%s %s fw %s api %d%s\n",
ar->hw.name,
@@ -1624,12 +1630,6 @@ static int __ath6kl_init_hw_start(struct ath6kl *ar)
goto err_htc_stop;
}

- if (!timeleft || signal_pending(current)) {
- ath6kl_err("wmi is not ready or wait was interrupted\n");
- ret = -EIO;
- goto err_htc_stop;
- }
-
ath6kl_dbg(ATH6KL_DBG_TRC, "%s: wmi is ready\n", __func__);

/* communicate the wmi protocol verision to the target */
--
1.7.1



2013-06-01 12:09:51

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH] ath6kl: Check wmi ready event status before validating abi version

Raja Mani <[email protected]> writes:

> There is no point to check firmware ABI version when the driver
> fails to wait for WMI_READY event during the boot time.
>
> For such failures, the driver should assume the firmware is not
> booted and start doing cleanup.
>
> Signed-off-by: Raja Mani <[email protected]>

Thanks, applied.

--
Kalle Valo