2015-06-23 18:15:15

by John W. Linville

[permalink] [raw]
Subject: [PATCH] wireless: remove superfluous if statement in regulatory code

In reg_process_hint, the test of "treatment == REG_REQ_IGNORE ||
treatment == REG_REQ_ALREADY_SET" is superfluous because the code in the
if-then branch is identical to the code after the if statement.

Coverity CID #1295939

Signed-off-by: John W. Linville <[email protected]>
---
net/wireless/reg.c | 3 ---
1 file changed, 3 deletions(-)

diff --git a/net/wireless/reg.c b/net/wireless/reg.c
index d359e0610198..fe6b0c6cca10 100644
--- a/net/wireless/reg.c
+++ b/net/wireless/reg.c
@@ -2080,9 +2080,6 @@ static void reg_process_hint(struct regulatory_request *reg_request)
return;
case NL80211_REGDOM_SET_BY_USER:
treatment = reg_process_hint_user(reg_request);
- if (treatment == REG_REQ_IGNORE ||
- treatment == REG_REQ_ALREADY_SET)
- return;
return;
case NL80211_REGDOM_SET_BY_DRIVER:
if (!wiphy)
--
2.1.0



2015-06-23 18:48:20

by Jouni Malinen

[permalink] [raw]
Subject: Re: [PATCH] wireless: remove superfluous if statement in regulatory code

On Tue, Jun 23, 2015 at 02:11:06PM -0400, John W. Linville wrote:
> In reg_process_hint, the test of "treatment == REG_REQ_IGNORE ||
> treatment == REG_REQ_ALREADY_SET" is superfluous because the code in the
> if-then branch is identical to the code after the if statement.

This was introduced (or well, left behind) by commit
eeca9fce1d71a4955855ceb0c3b13c1eb9db27c1 ('cfg80211: Schedule timeout
for all CRDA calls'). It could be useful to mention that commit in the
commit message since the resulting code from this new patch looks pretty
strange and that triggered me to take a closer look at what happened
here (looked like this is fine now).

> diff --git a/net/wireless/reg.c b/net/wireless/reg.c
> @@ -2080,9 +2080,6 @@ static void reg_process_hint(struct regulatory_request *reg_request)
> return;
> case NL80211_REGDOM_SET_BY_USER:
> treatment = reg_process_hint_user(reg_request);
> - if (treatment == REG_REQ_IGNORE ||
> - treatment == REG_REQ_ALREADY_SET)
> - return;
> return;

That assignment of 'treatment' is now write-only and you might as well
remove that while cleaning this up. This being the only caller of
reg_process_hint_user(), even more cleanup could be done by removing
return value from there, but I'm not sure whether that would be of
sufficient benefit.

--
Jouni Malinen PGP id EFC895FA