* [PATCH] wireless: mark expected switch fall-throughs
@ 2018-07-04 21:05 Gustavo A. R. Silva
2018-07-06 12:29 ` Johannes Berg
0 siblings, 1 reply; 4+ messages in thread
From: Gustavo A. R. Silva @ 2018-07-04 21:05 UTC (permalink / raw)
To: Johannes Berg, David S. Miller
Cc: linux-wireless, netdev, linux-kernel, Gustavo A. R. Silva
In preparation to enabling -Wimplicit-fallthrough, mark switch cases
where we are expecting to fall through.
Warning level 2 was used: -Wimplicit-fallthrough=2
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
---
net/wireless/chan.c | 2 ++
net/wireless/nl80211.c | 9 +++++++++
net/wireless/wext-compat.c | 2 ++
3 files changed, 13 insertions(+)
diff --git a/net/wireless/chan.c b/net/wireless/chan.c
index 2db713d..145cb51 100644
--- a/net/wireless/chan.c
+++ b/net/wireless/chan.c
@@ -747,6 +747,7 @@ bool cfg80211_chandef_usable(struct wiphy *wiphy,
case NL80211_CHAN_WIDTH_20:
if (!ht_cap->ht_supported)
return false;
+ /* else: fall through */
case NL80211_CHAN_WIDTH_20_NOHT:
prohibited_flags |= IEEE80211_CHAN_NO_20MHZ;
width = 20;
@@ -769,6 +770,7 @@ bool cfg80211_chandef_usable(struct wiphy *wiphy,
cap = vht_cap->cap & IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_MASK;
if (cap != IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_160_80PLUS80MHZ)
return false;
+ /* else: fall through */
case NL80211_CHAN_WIDTH_80:
if (!vht_cap->vht_supported)
return false;
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index e4e5f02..59b0ac5 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -1676,6 +1676,7 @@ static int nl80211_send_wiphy(struct cfg80211_registered_device *rdev,
state->split_start++;
if (state->split)
break;
+ /* else: fall through */
case 1:
if (nla_put(msg, NL80211_ATTR_CIPHER_SUITES,
sizeof(u32) * rdev->wiphy.n_cipher_suites,
@@ -1722,6 +1723,7 @@ static int nl80211_send_wiphy(struct cfg80211_registered_device *rdev,
state->split_start++;
if (state->split)
break;
+ /* else: fall through */
case 2:
if (nl80211_put_iftypes(msg, NL80211_ATTR_SUPPORTED_IFTYPES,
rdev->wiphy.interface_modes))
@@ -1729,6 +1731,7 @@ static int nl80211_send_wiphy(struct cfg80211_registered_device *rdev,
state->split_start++;
if (state->split)
break;
+ /* else: fall through */
case 3:
nl_bands = nla_nest_start(msg, NL80211_ATTR_WIPHY_BANDS);
if (!nl_bands)
@@ -1754,6 +1757,7 @@ static int nl80211_send_wiphy(struct cfg80211_registered_device *rdev,
state->chan_start++;
if (state->split)
break;
+ /* else: fall through */
default:
/* add frequencies */
nl_freqs = nla_nest_start(
@@ -1807,6 +1811,7 @@ static int nl80211_send_wiphy(struct cfg80211_registered_device *rdev,
state->split_start++;
if (state->split)
break;
+ /* else: fall through */
case 4:
nl_cmds = nla_nest_start(msg, NL80211_ATTR_SUPPORTED_COMMANDS);
if (!nl_cmds)
@@ -1833,6 +1838,7 @@ static int nl80211_send_wiphy(struct cfg80211_registered_device *rdev,
state->split_start++;
if (state->split)
break;
+ /* else: fall through */
case 5:
if (rdev->ops->remain_on_channel &&
(rdev->wiphy.flags & WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL) &&
@@ -1850,6 +1856,7 @@ static int nl80211_send_wiphy(struct cfg80211_registered_device *rdev,
state->split_start++;
if (state->split)
break;
+ /* else: fall through */
case 6:
#ifdef CONFIG_PM
if (nl80211_send_wowlan(msg, rdev, state->split))
@@ -1872,6 +1879,7 @@ static int nl80211_send_wiphy(struct cfg80211_registered_device *rdev,
state->split_start++;
if (state->split)
break;
+ /* else: fall through */
case 8:
if ((rdev->wiphy.flags & WIPHY_FLAG_HAVE_AP_SME) &&
nla_put_u32(msg, NL80211_ATTR_DEVICE_AP_SME,
@@ -4466,6 +4474,7 @@ static int parse_station_flags(struct genl_info *info,
params->sta_flags_mask = BIT(NL80211_STA_FLAG_AUTHENTICATED) |
BIT(NL80211_STA_FLAG_MFP) |
BIT(NL80211_STA_FLAG_AUTHORIZED);
+ /* fall through */
default:
return -EINVAL;
}
diff --git a/net/wireless/wext-compat.c b/net/wireless/wext-compat.c
index 167f702..9db3920 100644
--- a/net/wireless/wext-compat.c
+++ b/net/wireless/wext-compat.c
@@ -1333,6 +1333,7 @@ static struct iw_statistics *cfg80211_wireless_stats(struct net_device *dev)
wstats.qual.qual = sig + 110;
break;
}
+ /* else: fall through */
case CFG80211_SIGNAL_TYPE_UNSPEC:
if (sinfo.filled & BIT_ULL(NL80211_STA_INFO_SIGNAL)) {
wstats.qual.updated |= IW_QUAL_LEVEL_UPDATED;
@@ -1341,6 +1342,7 @@ static struct iw_statistics *cfg80211_wireless_stats(struct net_device *dev)
wstats.qual.qual = sinfo.signal;
break;
}
+ /* else: fall through */
default:
wstats.qual.updated |= IW_QUAL_LEVEL_INVALID;
wstats.qual.updated |= IW_QUAL_QUAL_INVALID;
--
2.7.4
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH] wireless: mark expected switch fall-throughs
2018-07-04 21:05 [PATCH] wireless: mark expected switch fall-throughs Gustavo A. R. Silva
@ 2018-07-06 12:29 ` Johannes Berg
2018-10-23 0:07 ` Gustavo A. R. Silva
0 siblings, 1 reply; 4+ messages in thread
From: Johannes Berg @ 2018-07-06 12:29 UTC (permalink / raw)
To: Gustavo A. R. Silva, David S. Miller; +Cc: linux-wireless, netdev, linux-kernel
Hi Gustavo,
> In preparation to enabling -Wimplicit-fallthrough, mark switch cases
> where we are expecting to fall through.
You dropped the remark saying you didn't review them, but did you?
> case NL80211_CHAN_WIDTH_20:
> if (!ht_cap->ht_supported)
> return false;
> + /* else: fall through */
What's the point in else:?
We also don't necessarily write
if (!...)
return false;
else
do_something();
but rather
if (!...)
return false;
do_something().
I think I'd prefer without the "else:"
johannes
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] wireless: mark expected switch fall-throughs
@ 2018-10-23 0:07 ` Gustavo A. R. Silva
0 siblings, 0 replies; 4+ messages in thread
From: Gustavo A. R. Silva @ 2018-10-23 0:07 UTC (permalink / raw)
To: Johannes Berg, David S. Miller; +Cc: linux-wireless, netdev, linux-kernel
On 7/6/18 2:29 PM, Johannes Berg wrote:
> Hi Gustavo,
>
>> In preparation to enabling -Wimplicit-fallthrough, mark switch cases
>> where we are expecting to fall through.
>
> You dropped the remark saying you didn't review them, but did you?
>
I'll add it in v2.
>> case NL80211_CHAN_WIDTH_20:
>> if (!ht_cap->ht_supported)
>> return false;
>> + /* else: fall through */
>
> What's the point in else:?
>
> We also don't necessarily write
>
> if (!...)
> return false;
> else
> do_something();
>
> but rather
>
> if (!...)
> return false;
> do_something().
>
> I think I'd prefer without the "else:"
>
Sure thing. I'll change this in v2.
I'll send v2 shortly.
Thanks for the feedback.
--
Gustavo
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] wireless: mark expected switch fall-throughs
@ 2018-10-23 0:07 ` Gustavo A. R. Silva
0 siblings, 0 replies; 4+ messages in thread
From: Gustavo A. R. Silva @ 2018-10-23 0:07 UTC (permalink / raw)
To: Johannes Berg, David S. Miller
Cc: linux-wireless-u79uwXL29TY76Z2rM5mHXA,
netdev-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA
On 7/6/18 2:29 PM, Johannes Berg wrote:
> Hi Gustavo,
>
>> In preparation to enabling -Wimplicit-fallthrough, mark switch cases
>> where we are expecting to fall through.
>
> You dropped the remark saying you didn't review them, but did you?
>
I'll add it in v2.
>> case NL80211_CHAN_WIDTH_20:
>> if (!ht_cap->ht_supported)
>> return false;
>> + /* else: fall through */
>
> What's the point in else:?
>
> We also don't necessarily write
>
> if (!...)
> return false;
> else
> do_something();
>
> but rather
>
> if (!...)
> return false;
> do_something().
>
> I think I'd prefer without the "else:"
>
Sure thing. I'll change this in v2.
I'll send v2 shortly.
Thanks for the feedback.
--
Gustavo
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2018-10-23 0:28 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-07-04 21:05 [PATCH] wireless: mark expected switch fall-throughs Gustavo A. R. Silva
2018-07-06 12:29 ` Johannes Berg
2018-10-23 0:07 ` Gustavo A. R. Silva
2018-10-23 0:07 ` Gustavo A. R. Silva
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.