On Mon, 2021-08-16 at 14:59 +0200, Fabio M. De Francesco wrote: > On Monday, August 16, 2021 1:54:27 PM CEST Michael Straube wrote: > > Refactor function rtw_is_cckrates_included(). Improves readability > > and slightly reduces object file size. > > > > Signed-off-by: Michael Straube <straube.linux@xxxxxxxxx> > > --- > > v1 -> v2 > > Refactored to more compact code as suggested by Joe Perches. > > > > drivers/staging/r8188eu/core/rtw_ieee80211.c | 9 ++++----- > > 1 file changed, 4 insertions(+), 5 deletions(-) > > > > Thanks for redoing the series as suggested by Joe Perches. > This is a perfect case where conciseness and readability don't clash and > instead the former enhances the latter. Perhaps do the whole thing in one go (moving the & 0x7f into the helper avoids an early loop exit defect when the rate being indexed is 0x80) --- drivers/staging/r8188eu/core/rtw_ieee80211.c | 33 +++++++++++++++------------- drivers/staging/r8188eu/include/ieee80211.h | 5 ++--- drivers/staging/r8188eu/os_dep/ioctl_linux.c | 4 ++-- 3 files changed, 22 insertions(+), 20 deletions(-) diff --git a/drivers/staging/r8188eu/core/rtw_ieee80211.c b/drivers/staging/r8188eu/core/rtw_ieee80211.c index ff77e686721ce..f02863caddde7 100644 --- a/drivers/staging/r8188eu/core/rtw_ieee80211.c +++ b/drivers/staging/r8188eu/core/rtw_ieee80211.c @@ -68,28 +68,31 @@ int rtw_get_bit_value_from_ieee_value(u8 val) return 0; } -uint rtw_is_cckrates_included(u8 *rate) +static bool rtw_is_cckrate(u8 rate) { - u32 i = 0; + rate &= 0x7f; + return rate == 2 || rate == 4 || rate == 11 || rate == 22; +} + +bool rtw_is_cckrates_included(u8 *rate) +{ + u8 r; - while (rate[i] != 0) { - if ((((rate[i]) & 0x7f) == 2) || (((rate[i]) & 0x7f) == 4) || - (((rate[i]) & 0x7f) == 11) || (((rate[i]) & 0x7f) == 22)) + while ((r = *rate++)) { + if (rtw_is_cckrate(r)) return true; - i++; } + return false; } -uint rtw_is_cckratesonly_included(u8 *rate) +bool rtw_is_cckratesonly_included(u8 *rate) { - u32 i = 0; + u8 r; - while (rate[i] != 0) { - if ((((rate[i]) & 0x7f) != 2) && (((rate[i]) & 0x7f) != 4) && - (((rate[i]) & 0x7f) != 11) && (((rate[i]) & 0x7f) != 22)) + while ((r = *rate++)) { + if (!rtw_is_cckrate(r)) return false; - i++; } return true; @@ -98,14 +101,14 @@ uint rtw_is_cckratesonly_included(u8 *rate) int rtw_check_network_type(unsigned char *rate, int ratelen, int channel) { if (channel > 14) { - if ((rtw_is_cckrates_included(rate)) == true) + if ((rtw_is_cckrates_included(rate))) return WIRELESS_INVALID; else return WIRELESS_11A; } else { /* could be pure B, pure G, or B/G */ - if ((rtw_is_cckratesonly_included(rate)) == true) + if ((rtw_is_cckratesonly_included(rate))) return WIRELESS_11B; - else if ((rtw_is_cckrates_included(rate)) == true) + else if ((rtw_is_cckrates_included(rate))) return WIRELESS_11BG; else return WIRELESS_11G; diff --git a/drivers/staging/r8188eu/include/ieee80211.h b/drivers/staging/r8188eu/include/ieee80211.h index 4dfa817175e77..890419d201903 100644 --- a/drivers/staging/r8188eu/include/ieee80211.h +++ b/drivers/staging/r8188eu/include/ieee80211.h @@ -1225,9 +1225,8 @@ int rtw_generate_ie(struct registry_priv *pregistrypriv); int rtw_get_bit_value_from_ieee_value(u8 val); -uint rtw_is_cckrates_included(u8 *rate); - -uint rtw_is_cckratesonly_included(u8 *rate); +bool rtw_is_cckrates_included(u8 *rate); +bool rtw_is_cckratesonly_included(u8 *rate); int rtw_check_network_type(unsigned char *rate, int ratelen, int channel); diff --git a/drivers/staging/r8188eu/os_dep/ioctl_linux.c b/drivers/staging/r8188eu/os_dep/ioctl_linux.c index a94946ad11fce..37ab633acb982 100644 --- a/drivers/staging/r8188eu/os_dep/ioctl_linux.c +++ b/drivers/staging/r8188eu/os_dep/ioctl_linux.c @@ -784,12 +784,12 @@ static int rtw_wx_get_name(struct net_device *dev, prates = &pcur_bss->SupportedRates; - if (rtw_is_cckratesonly_included((u8 *)prates) == true) { + if (rtw_is_cckratesonly_included((u8 *)prates)) { if (ht_cap) snprintf(wrqu->name, IFNAMSIZ, "IEEE 802.11bn"); else snprintf(wrqu->name, IFNAMSIZ, "IEEE 802.11b"); - } else if ((rtw_is_cckrates_included((u8 *)prates)) == true) { + } else if ((rtw_is_cckrates_included((u8 *)prates))) { if (ht_cap) snprintf(wrqu->name, IFNAMSIZ, "IEEE 802.11bgn"); else