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

From: Aakash Hemadri
Date: Mon Aug 23 2021 - 04:44:36 EST


On 21/08/21 09:48PM, Aakash Hemadri wrote:
> Fix sparse warning:
> > rtw_br_ext.c:836:54: warning: cast to restricted __be32
>
> dhpch->cookie is be32, change it's type.
>
> Suggested-by: Larry Finger <Larry.Finger@xxxxxxxxxxxx>
> Signed-off-by: Aakash Hemadri <aakashhemadri123@xxxxxxxxx>
> ---
> drivers/staging/r8188eu/core/rtw_br_ext.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/staging/r8188eu/core/rtw_br_ext.c b/drivers/staging/r8188eu/core/rtw_br_ext.c
> index f6d1f6029ec3..f65d94bfa286 100644
> --- a/drivers/staging/r8188eu/core/rtw_br_ext.c
> +++ b/drivers/staging/r8188eu/core/rtw_br_ext.c
> @@ -649,7 +649,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 */
> };
>
> @@ -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 = be32_to_cpu(dhcph->cookie);
>
> if (cookie == DHCP_MAGIC) { /* match magic word */
> if (!(dhcph->flags & htons(BROADCAST_FLAG))) {
> --
> 2.32.0
>

David Laight suggested to use get_unaligned_be32, I am not sure if it's
the right thing to do because as far as I understand get_unaligned_be32
byteshifts the argument.

Can someone please confirm if this change is okay?

Thanks,
Aakash Hemadri.