Thread (20 messages) flat view 20 messages, 5 authors, 2021-08-23

Re: [PATCH v2 2/5] staging: r8188eu: cast to restricted __be32

From: Larry Finger <hidden>
Date: 2021-08-20 21:44:55
Also in: lkml

On 8/19/21 3:17 AM, Aakash Hemadri wrote:
quoted hunk ↗ jump to hunk
Fix sparse warning:
quoted
rtw_br_ext.c:836:54: warning: cast to restricted __be32
Unnecessary double cast, remove them.

Signed-off-by: Aakash Hemadri <redacted>
---
  drivers/staging/r8188eu/core/rtw_br_ext.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/staging/r8188eu/core/rtw_br_ext.c b/drivers/staging/r8188eu/core/rtw_br_ext.c
index 404fa8904e47..6a0462ce6230 100644
--- a/drivers/staging/r8188eu/core/rtw_br_ext.c
+++ b/drivers/staging/r8188eu/core/rtw_br_ext.c
@@ -671,7 +671,7 @@ void dhcp_flag_bcast(struct adapter *priv, struct sk_buff *skb)
  				    (udph->dest == __constant_htons(SERVER_PORT))) { /*  DHCP request */
  					struct dhcpMessage *dhcph =
  						(struct dhcpMessage *)((size_t)udph + sizeof(struct udphdr));
-					u32 cookie = be32_to_cpu((__be32)dhcph->cookie);
+					u32 cookie = dhcph->cookie;
  
  					if (cookie == DHCP_MAGIC) { /*  match magic word */
  						if (!(dhcph->flags & htons(BROADCAST_FLAG))) {
This patch is wrong. All the documentation I could find tells me that the 
multi-byte entries in dhcph are big-endian, thus the new line should read:

					u32 cookie = be32_to_cpu(dhcph->cookie);
combined with:
@@ -649,7 +650,7 @@ struct dhcpMessage {
         u_int8_t chaddr[16];
         u_int8_t sname[64];
         u_int8_t file[128];
-       u_int32_t cookie;
+       __be32 cookie;
         u_int8_t options[308]; /* 312 - cookie */
  };
The old code was, in fact, correct, but not in a way that satisfied Sparse.

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