Return type of wait_for_completion_timeout is unsigned long not int.
An appropriately named unsigned long is added and the assignments fixed up.
Signed-off-by: Nicholas Mc Guire <[email protected]>
---
While at it the missing spaces 3*HZ -> 3 * HZ were added as well (should
this be in a separate patch ?)
Patch was only compile tested with x86_64_defconfig + CONFIG_ATH_CARDS=m,
CONFIG_ATH10K=m
Patch is against 4.0-rc3 (localversion-next is -next-20150311)
drivers/net/wireless/ath/ath10k/mac.c | 35 +++++++++++++++++++--------------
1 file changed, 20 insertions(+), 15 deletions(-)
diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
index e8cc19f..7db8b81 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -98,6 +98,7 @@ static int ath10k_install_key(struct ath10k_vif *arvif,
const u8 *macaddr, bool def_idx)
{
struct ath10k *ar = arvif->ar;
+ unsigned long time_left;
int ret;
lockdep_assert_held(&ar->conf_mutex);
@@ -108,8 +109,8 @@ static int ath10k_install_key(struct ath10k_vif *arvif,
if (ret)
return ret;
- ret = wait_for_completion_timeout(&ar->install_key_done, 3*HZ);
- if (ret == 0)
+ time_left = wait_for_completion_timeout(&ar->install_key_done, 3 * HZ);
+ if (!time_left)
return -ETIMEDOUT;
return 0;
@@ -561,16 +562,16 @@ static void ath10k_mac_vif_beacon_cleanup(struct ath10k_vif *arvif)
static inline int ath10k_vdev_setup_sync(struct ath10k *ar)
{
- int ret;
+ unsigned long time_left;
lockdep_assert_held(&ar->conf_mutex);
if (test_bit(ATH10K_FLAG_CRASH_FLUSH, &ar->dev_flags))
return -ESHUTDOWN;
- ret = wait_for_completion_timeout(&ar->vdev_setup_done,
+ time_left = wait_for_completion_timeout(&ar->vdev_setup_done,
ATH10K_VDEV_SETUP_TIMEOUT_HZ);
- if (ret == 0)
+ if (!time_left)
return -ETIMEDOUT;
return 0;
@@ -2432,6 +2433,7 @@ void ath10k_offchan_tx_work(struct work_struct *work)
const u8 *peer_addr;
int vdev_id;
int ret;
+ unsigned long time_left;
/* FW requirement: We must create a peer before FW will send out
* an offchannel frame. Otherwise the frame will be stuck and
@@ -2477,9 +2479,9 @@ void ath10k_offchan_tx_work(struct work_struct *work)
ath10k_tx_htt(ar, skb);
- ret = wait_for_completion_timeout(&ar->offchan_tx_completed,
- 3 * HZ);
- if (ret == 0)
+ time_left = wait_for_completion_timeout(
+ &ar->offchan_tx_completed, 3 * HZ);
+ if (!time_left)
ath10k_warn(ar, "timed out waiting for offchannel skb %p\n",
skb);
@@ -2573,6 +2575,7 @@ static int ath10k_scan_stop(struct ath10k *ar)
.u.scan_id = ATH10K_SCAN_ID,
};
int ret;
+ unsigned long time_left;
lockdep_assert_held(&ar->conf_mutex);
@@ -2582,11 +2585,11 @@ static int ath10k_scan_stop(struct ath10k *ar)
goto out;
}
- ret = wait_for_completion_timeout(&ar->scan.completed, 3*HZ);
- if (ret == 0) {
+ time_left = wait_for_completion_timeout(&ar->scan.completed, 3 * HZ);
+ if (!time_left) {
ath10k_warn(ar, "failed to receive scan abortion completion: timed out\n");
ret = -ETIMEDOUT;
- } else if (ret > 0) {
+ } else if (time_left > 0) {
ret = 0;
}
@@ -2655,6 +2658,7 @@ static int ath10k_start_scan(struct ath10k *ar,
const struct wmi_start_scan_arg *arg)
{
int ret;
+ unsigned long time_left;
lockdep_assert_held(&ar->conf_mutex);
@@ -2662,8 +2666,8 @@ static int ath10k_start_scan(struct ath10k *ar,
if (ret)
return ret;
- ret = wait_for_completion_timeout(&ar->scan.started, 1*HZ);
- if (ret == 0) {
+ time_left = wait_for_completion_timeout(&ar->scan.started, 1 * HZ);
+ if (!time_left) {
ret = ath10k_scan_stop(ar);
if (ret)
ath10k_warn(ar, "failed to stop scan: %d\n", ret);
@@ -4355,6 +4359,7 @@ static int ath10k_remain_on_channel(struct ieee80211_hw *hw,
struct ath10k_vif *arvif = ath10k_vif_to_arvif(vif);
struct wmi_start_scan_arg arg;
int ret = 0;
+ unsigned long time_left;
mutex_lock(&ar->conf_mutex);
@@ -4404,8 +4409,8 @@ static int ath10k_remain_on_channel(struct ieee80211_hw *hw,
goto exit;
}
- ret = wait_for_completion_timeout(&ar->scan.on_channel, 3*HZ);
- if (ret == 0) {
+ time_left = wait_for_completion_timeout(&ar->scan.on_channel, 3 * HZ);
+ if (!time_left) {
ath10k_warn(ar, "failed to switch to channel for roc scan\n");
ret = ath10k_scan_stop(ar);
--
1.7.10.4
On Mon, 16 Mar 2015, Kalle Valo wrote:
> Nicholas Mc Guire <[email protected]> writes:
>
> > On Fri, 13 Mar 2015, Kalle Valo wrote:
> >
> >> Nicholas Mc Guire <[email protected]> writes:
> >>
> >> > Return type of wait_for_completion_timeout is unsigned long not int.
> >> > An appropriately named unsigned long is added and the assignments fixed up.
> >> >
> >> > Signed-off-by: Nicholas Mc Guire <[email protected]>
> >>
> >> Doesn't apply:
> >>
> >> Applying: ath10k: match wait_for_completion_timeout return type
> >> fatal: sha1 information is lacking or useless (drivers/net/wireless/ath/ath10k/mac.c).
> >> Repository lacks necessary blobs to fall back on 3-way merge.
> >> Cannot fall back to three-way merge.
> >> Patch failed at 0001 ath10k: match wait_for_completion_timeout return type
> >>
> > sorry - no idea how I managed that - checking it.
> >
> > Will fix it up and repost.
>
> Did you use master branch from ath.git repository? ath10k is in quite
> active development so if you use something else there's a substantial
> risk that the patch will not apply.
>
> https://wireless.wiki.kernel.org/en/users/drivers/ath10k/sources
>
no I was using linux-next - will switch to that branch for the
ath10k related cleanups (although the one I posted today was the
last from the completion fixup in ath10k - a few more in ath9k
left).
The failure of this patch was though due to a bad fix of a
checkpatch warning - I alligned the original code rather than
the replacement - updated my procedure so that re-applying the
patch is the final check before sending out.
thx!
hofrat
Nicholas Mc Guire <[email protected]> writes:
> On Fri, 13 Mar 2015, Kalle Valo wrote:
>
>> Nicholas Mc Guire <[email protected]> writes:
>>
>> > Return type of wait_for_completion_timeout is unsigned long not int.
>> > An appropriately named unsigned long is added and the assignments fixed up.
>> >
>> > Signed-off-by: Nicholas Mc Guire <[email protected]>
>>
>> Doesn't apply:
>>
>> Applying: ath10k: match wait_for_completion_timeout return type
>> fatal: sha1 information is lacking or useless (drivers/net/wireless/ath/ath10k/mac.c).
>> Repository lacks necessary blobs to fall back on 3-way merge.
>> Cannot fall back to three-way merge.
>> Patch failed at 0001 ath10k: match wait_for_completion_timeout return type
>>
> sorry - no idea how I managed that - checking it.
>
> Will fix it up and repost.
Did you use master branch from ath.git repository? ath10k is in quite
active development so if you use something else there's a substantial
risk that the patch will not apply.
https://wireless.wiki.kernel.org/en/users/drivers/ath10k/sources
--
Kalle Valo
Nicholas Mc Guire <[email protected]> writes:
> Return type of wait_for_completion_timeout is unsigned long not int.
> An appropriately named unsigned long is added and the assignments fixed up.
>
> Signed-off-by: Nicholas Mc Guire <[email protected]>
Doesn't apply:
Applying: ath10k: match wait_for_completion_timeout return type
fatal: sha1 information is lacking or useless (drivers/net/wireless/ath/ath10k/mac.c).
Repository lacks necessary blobs to fall back on 3-way merge.
Cannot fall back to three-way merge.
Patch failed at 0001 ath10k: match wait_for_completion_timeout return type
--
Kalle Valo
On Fri, 13 Mar 2015, Kalle Valo wrote:
> Nicholas Mc Guire <[email protected]> writes:
>
> > Return type of wait_for_completion_timeout is unsigned long not int.
> > An appropriately named unsigned long is added and the assignments fixed up.
> >
> > Signed-off-by: Nicholas Mc Guire <[email protected]>
>
> Doesn't apply:
>
> Applying: ath10k: match wait_for_completion_timeout return type
> fatal: sha1 information is lacking or useless (drivers/net/wireless/ath/ath10k/mac.c).
> Repository lacks necessary blobs to fall back on 3-way merge.
> Cannot fall back to three-way merge.
> Patch failed at 0001 ath10k: match wait_for_completion_timeout return type
>
sorry - no idea how I managed that - checking it.
Will fix it up and repost.
thx!
hofrat