From: Nicholas Mc Guire <hidden> Date: 2015-03-12 15:54:07
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 <redacted>
---
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(-)
From: Michal Kazior <hidden> Date: 2015-03-13 06:47:49
On 12 March 2015 at 16:49, Nicholas Mc Guire [off-list ref] 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 <redacted>
---
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ł
From: Nicholas Mc Guire <hidden> Date: 2015-03-14 08:59:43
On Fri, 13 Mar 2015, Michal Kazior wrote:
On 12 March 2015 at 16:49, Nicholas Mc Guire [off-list ref] wrote:
quoted
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 <redacted>
---
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