Thread (8 messages) 8 messages, 4 authors, 2021-08-18

Re: [PATCH] staging: r8188eu: refactor rtw_is_cckrates{only}_included()

From: Joe Perches <joe@perches.com>
Date: 2021-08-17 18:36:15
Also in: lkml

On Tue, 2021-08-17 at 19:57 +0200, Greg KH wrote:
On Mon, Aug 16, 2021 at 09:31:25PM +0200, Michael Straube wrote:
quoted
Refactor functions rtw_is_cckrates_included() and
rtw_is_cckratesonly_included(). Add new helper function rtw_is_cckrate()
that allows to make the code more compact. Improves readability and
slightly reduces object file size. Change the return type to bool to
reflect that the functions return boolean values.
[]
quoted
diff --git a/drivers/staging/r8188eu/core/rtw_ieee80211.c b/drivers/staging/r8188eu/core/rtw_ieee80211.c
[]
quoted
+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++)) {
Ick, no.

While it might be fun to play with pointers like this, trying to
determine the precidence issues involved with reading from, and then
incrementing the pointer like this is crazy.

The original was obvious as to how it was walking through the array.
It's sad to believe *ptr++ is not obvious to you as it's very commonly
used in the kernel sources (over 10,000 instances).

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help