* [PATCH 2/3 RFC] ath10k: wmi: match wait_for_completion_timeout return type
@ 2015-03-12 15:49 Nicholas Mc Guire
2015-03-13 6:47 ` Michal Kazior
2015-03-13 16:20 ` Kalle Valo
0 siblings, 2 replies; 5+ messages in thread
From: Nicholas Mc Guire @ 2015-03-12 15:49 UTC (permalink / raw)
To: Kalle Valo
Cc: ath10k, linux-wireless, netdev, linux-kernel, Nicholas Mc Guire
Return type of wait_for_completion_timeout is unsigned long not int.
An appropriately named unsigned long is added and the assignments fixed up.
Rather than returning 0 (timeout) or a more or less random remaining time
(completion success) this return 0 or 1 which also resolves the type of the
functions being int.
Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org>
---
Checking the call-sites of ath10k_wmi_wait_for_unified_ready and
ath10k_wmi_wait_for_service_ready the positive return value (remaining
time in jiffies) is never passed up the call-chain nor used so it is
cleaner to treat this like a boolean success/fail only (actually the two
functions should probably be of type bool - but that does not seem to be
common practice in the ath10k code base)
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-20150312)
:
drivers/net/wireless/ath/ath10k/wmi.c | 20 ++++++++++++--------
1 file changed, 12 insertions(+), 8 deletions(-)
diff --git a/drivers/net/wireless/ath/ath10k/wmi.c b/drivers/net/wireless/ath/ath10k/wmi.c
index c7ea77e..a1cdcba 100644
--- a/drivers/net/wireless/ath/ath10k/wmi.c
+++ b/drivers/net/wireless/ath/ath10k/wmi.c
@@ -884,20 +884,24 @@ void ath10k_wmi_put_wmi_channel(struct wmi_channel *ch,
int ath10k_wmi_wait_for_service_ready(struct ath10k *ar)
{
- int ret;
+ unsigned long time_left;
- ret = wait_for_completion_timeout(&ar->wmi.service_ready,
- WMI_SERVICE_READY_TIMEOUT_HZ);
- return ret;
+ time_left = wait_for_completion_timeout(&ar->wmi.service_ready,
+ WMI_SERVICE_READY_TIMEOUT_HZ);
+ if(!time_left)
+ return 0;
+ return 1;
}
int ath10k_wmi_wait_for_unified_ready(struct ath10k *ar)
{
- int ret;
+ unsigned long time_left;
- ret = wait_for_completion_timeout(&ar->wmi.unified_ready,
- WMI_UNIFIED_READY_TIMEOUT_HZ);
- return ret;
+ time_left = wait_for_completion_timeout(&ar->wmi.unified_ready,
+ WMI_UNIFIED_READY_TIMEOUT_HZ);
+ if(!time_left)
+ return 0;
+ return 1;
}
struct sk_buff *ath10k_wmi_alloc_skb(struct ath10k *ar, u32 len)
--
1.7.10.4
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 2/3 RFC] ath10k: wmi: match wait_for_completion_timeout return type
2015-03-12 15:49 [PATCH 2/3 RFC] ath10k: wmi: match wait_for_completion_timeout return type Nicholas Mc Guire
@ 2015-03-13 6:47 ` Michal Kazior
2015-03-14 8:59 ` Nicholas Mc Guire
2015-03-13 16:20 ` Kalle Valo
1 sibling, 1 reply; 5+ messages in thread
From: Michal Kazior @ 2015-03-13 6:47 UTC (permalink / raw)
To: Nicholas Mc Guire
Cc: Kalle Valo, Network Development, linux-wireless, linux-kernel, ath10k
On 12 March 2015 at 16:49, Nicholas Mc Guire <hofrat@osadl.org> wrote:
> Return type of wait_for_completion_timeout is unsigned long not int.
> An appropriately named unsigned long is added and the assignments fixed up.
> Rather than returning 0 (timeout) or a more or less random remaining time
> (completion success) this return 0 or 1 which also resolves the type of the
> functions being int.
>
> Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org>
> ---
>
> Checking the call-sites of ath10k_wmi_wait_for_unified_ready and
> ath10k_wmi_wait_for_service_ready the positive return value (remaining
> time in jiffies) is never passed up the call-chain nor used so it is
> cleaner to treat this like a boolean success/fail only (actually the two
> functions should probably be of type bool - but that does not seem to be
> common practice in the ath10k code base)
It'd make sense to have these functions return 0 or -ETIMEDOUT. In
that case both call sites would need to be adjusted to treat "< 0" or
"!x" as an error (instead of the current "<= 0") condition and not set
-ETIMEDOUT themselves.
Michał
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/3 RFC] ath10k: wmi: match wait_for_completion_timeout return type
2015-03-12 15:49 [PATCH 2/3 RFC] ath10k: wmi: match wait_for_completion_timeout return type Nicholas Mc Guire
2015-03-13 6:47 ` Michal Kazior
@ 2015-03-13 16:20 ` Kalle Valo
2015-03-13 16:24 ` Nicholas Mc Guire
1 sibling, 1 reply; 5+ messages in thread
From: Kalle Valo @ 2015-03-13 16:20 UTC (permalink / raw)
To: Nicholas Mc Guire; +Cc: netdev, linux-wireless, linux-kernel, ath10k
Nicholas Mc Guire <hofrat@osadl.org> 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.
> Rather than returning 0 (timeout) or a more or less random remaining time
> (completion success) this return 0 or 1 which also resolves the type of the
> functions being int.
>
> Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org>
Why does patch 2 in this patchset have RFC in the title but patches 1
and 3 not? That just makes me confused, I can't tell what you want me to
do with the patches. Normally I just drop all patches (or patchsets)
which have RFC, and that's what I'm going to do now.
To save everyone's time, when submitting something please state clearly
what's your intention.
--
Kalle Valo
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/3 RFC] ath10k: wmi: match wait_for_completion_timeout return type
2015-03-13 16:20 ` Kalle Valo
@ 2015-03-13 16:24 ` Nicholas Mc Guire
0 siblings, 0 replies; 5+ messages in thread
From: Nicholas Mc Guire @ 2015-03-13 16:24 UTC (permalink / raw)
To: Kalle Valo
Cc: Nicholas Mc Guire, netdev, linux-wireless, linux-kernel, ath10k
On Fri, 13 Mar 2015, Kalle Valo wrote:
> Nicholas Mc Guire <hofrat@osadl.org> 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.
> > Rather than returning 0 (timeout) or a more or less random remaining time
> > (completion success) this return 0 or 1 which also resolves the type of the
> > functions being int.
> >
> > Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org>
>
> Why does patch 2 in this patchset have RFC in the title but patches 1
> and 3 not? That just makes me confused, I can't tell what you want me to
> do with the patches. Normally I just drop all patches (or patchsets)
> which have RFC, and that's what I'm going to do now.
>
> To save everyone's time, when submitting something please state clearly
> what's your intention.
>
ok - was simply unsure about the proposed change
and 1 was a trivial cleanup (which should have been
sent out as a seperate patch and not part of a series - my mistake)
Will fix this up and repost it.
sorry for the screwup - no intent to wast anybodies time.
thx!
hofrat
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/3 RFC] ath10k: wmi: match wait_for_completion_timeout return type
2015-03-13 6:47 ` Michal Kazior
@ 2015-03-14 8:59 ` Nicholas Mc Guire
0 siblings, 0 replies; 5+ messages in thread
From: Nicholas Mc Guire @ 2015-03-14 8:59 UTC (permalink / raw)
To: Michal Kazior
Cc: Nicholas Mc Guire, Kalle Valo, Network Development,
linux-wireless, linux-kernel, ath10k
On Fri, 13 Mar 2015, Michal Kazior wrote:
> On 12 March 2015 at 16:49, Nicholas Mc Guire <hofrat@osadl.org> wrote:
> > Return type of wait_for_completion_timeout is unsigned long not int.
> > An appropriately named unsigned long is added and the assignments fixed up.
> > Rather than returning 0 (timeout) or a more or less random remaining time
> > (completion success) this return 0 or 1 which also resolves the type of the
> > functions being int.
> >
> > Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org>
> > ---
> >
> > Checking the call-sites of ath10k_wmi_wait_for_unified_ready and
> > ath10k_wmi_wait_for_service_ready the positive return value (remaining
> > time in jiffies) is never passed up the call-chain nor used so it is
> > cleaner to treat this like a boolean success/fail only (actually the two
> > functions should probably be of type bool - but that does not seem to be
> > common practice in the ath10k code base)
>
> It'd make sense to have these functions return 0 or -ETIMEDOUT. In
> that case both call sites would need to be adjusted to treat "< 0" or
> "!x" as an error (instead of the current "<= 0") condition and not set
> -ETIMEDOUT themselves.
>
looking at the call sites in ath10k_core_start more or less
all other initialization calls will treate 0 as success and
!=0 as failure so this is the cleaner solution. as its all
now
status = call()
if(status)
error
patch just posted.
thx!
hofrat
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-03-14 8:59 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-03-12 15:49 [PATCH 2/3 RFC] ath10k: wmi: match wait_for_completion_timeout return type Nicholas Mc Guire
2015-03-13 6:47 ` Michal Kazior
2015-03-14 8:59 ` Nicholas Mc Guire
2015-03-13 16:20 ` Kalle Valo
2015-03-13 16:24 ` Nicholas Mc Guire
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).