From: Charlie Sands > Sent: 30 March 2022 19:53 > > This patch fixes sparse warnings about the endianness of different > pieces of data in the driver. > > Fixes: 15865124feed ("staging: r8188eu: introduce new core dir for > RTL8188eu driver") > Signed-off-by: Charlie Sands <sandsch@xxxxxxxxxxxxxxxxxxxxx> > --- > V2: Added the "fixes" line to the commit at the request of Dan Carpenter. > > drivers/staging/r8188eu/core/rtw_br_ext.c | 12 +++++++----- > 1 file changed, 7 insertions(+), 5 deletions(-) > > diff --git a/drivers/staging/r8188eu/core/rtw_br_ext.c b/drivers/staging/r8188eu/core/rtw_br_ext.c > index d68611ef22f8..ed41c4e30262 100644 > --- a/drivers/staging/r8188eu/core/rtw_br_ext.c > +++ b/drivers/staging/r8188eu/core/rtw_br_ext.c > @@ -70,7 +70,7 @@ static int __nat25_add_pppoe_tag(struct sk_buff *skb, struct pppoe_tag *tag) > struct pppoe_hdr *ph = (struct pppoe_hdr *)(skb->data + ETH_HLEN); > int data_len; > > - data_len = tag->tag_len + TAG_HDR_LEN; > + data_len = be16_to_cpu(tag->tag_len) + TAG_HDR_LEN; > if (skb_tailroom(skb) < data_len) > return -1; > > @@ -432,7 +432,7 @@ int nat25_db_handle(struct adapter *priv, struct sk_buff *skb, int method) > /* Handle PPPoE frame */ > /*---------------------------------------------------*/ > struct pppoe_hdr *ph = (struct pppoe_hdr *)(skb->data + ETH_HLEN); > - unsigned short *pMagic; > + __be16 *pMagic; > > switch (method) { > case NAT25_CHECK: > @@ -471,7 +471,7 @@ int nat25_db_handle(struct adapter *priv, struct sk_buff *skb, int method) > tag->tag_len = > htons(MAGIC_CODE_LEN+RTL_RELAY_TAG_LEN+old_tag_len); > > /* insert the magic_code+client mac in relay tag */ > - pMagic = (unsigned short *)tag->tag_data; > + pMagic = (__be16 *)tag->tag_data; > *pMagic = htons(MAGIC_CODE); ^ cpu_to_be32() > memcpy(tag->tag_data+MAGIC_CODE_LEN, skb->data+ETH_ALEN, > ETH_ALEN); > > @@ -557,9 +557,11 @@ int nat25_db_handle(struct adapter *priv, struct sk_buff *skb, int method) > struct icmp6hdr *hdr = (struct icmp6hdr *)(skb->data + ETH_HLEN + > sizeof(*iph)); > hdr->icmp6_cksum = 0; > hdr->icmp6_cksum = csum_ipv6_magic(&iph->saddr, &iph->daddr, > - iph->payload_len, > + be16_to_cpu(iph->payload_len), > IPPROTO_ICMPV6, > - csum_partial((__u8 *)hdr, iph- > >payload_len, 0)); > + csum_partial((__u8 *)hdr, > + be16_to_cpu(iph->payload_len), > + 0)); That line continuation is horrid. netdev probably wants the continuation under the (. But it might be best to assign the result of csum_partial() to a variable. David > } > } > } > -- > 2.35.1 - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)