On Mon, 2021-08-16 at 11:58 +0200, Michael Straube wrote: > Refactor function rtw_is_cckrates_included(). Improves readability > and slightly reduces object file size. [] > diff --git a/drivers/staging/r8188eu/core/rtw_ieee80211.c b/drivers/staging/r8188eu/core/rtw_ieee80211.c [] > @@ -70,13 +70,12 @@ int rtw_get_bit_value_from_ieee_value(u8 val) > > > uint rtw_is_cckrates_included(u8 *rate) > { > - u32 i = 0; > + while (*rate) { > + u8 r = *rate & 0x7f; > > - while (rate[i] != 0) { > - if ((((rate[i]) & 0x7f) == 2) || (((rate[i]) & 0x7f) == 4) || > - (((rate[i]) & 0x7f) == 11) || (((rate[i]) & 0x7f) == 22)) > + if (r == 2 || r == 4 || r == 11 || r == 22) > return true; > - i++; > + rate++; > } > return false; > } Bikeshed: More compact code with only 1 reference of rate not 3 is more readable to at least me. u8 r; while ((r = *rate++ & 0x7f)) { if (r == 2 || r == 4 || r == 11 || r == 22) return true; } return false; And you might make a static inline for the test of r so it could be reused in the rtw_is_cckratesonly_included function static inline bool is_cckrate(u8 rate) { return rate == 2 || rate == 4 || rate == 11 || rate == 22; } so this could be: u8 r; while ((r = *rate++ & 0x7f)) { if (is_cckrate(r)) return true; } return false;