Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

staging: r8188eu: Fix sparse warnings in core/rtw_br_ext.c

Sparse lists the following:

CHECK drivers/staging/rtl8188eu/core/rtw_br_ext.c
drivers/staging/rtl8188eu/core/rtw_br_ext.c:700:101: warning: incorrect type in argument 2 (different base types)
drivers/staging/rtl8188eu/core/rtw_br_ext.c:700:101: expected unsigned int *ipxNetAddr
drivers/staging/rtl8188eu/core/rtw_br_ext.c:700:101: got restricted __be32 *<noident>
drivers/staging/rtl8188eu/core/rtw_br_ext.c:700:123: warning: incorrect type in argument 3 (different base types)
drivers/staging/rtl8188eu/core/rtw_br_ext.c:700:123: expected unsigned short *ipxSocketAddr
drivers/staging/rtl8188eu/core/rtw_br_ext.c:700:123: got restricted __be16 *<noident>
drivers/staging/rtl8188eu/core/rtw_br_ext.c:705:99: warning: incorrect type in argument 2 (different base types)
drivers/staging/rtl8188eu/core/rtw_br_ext.c:705:99: expected unsigned int *ipxNetAddr
drivers/staging/rtl8188eu/core/rtw_br_ext.c:705:99: got restricted __be32 *<noident>
drivers/staging/rtl8188eu/core/rtw_br_ext.c:714:101: warning: incorrect type in argument 2 (different base types)
drivers/staging/rtl8188eu/core/rtw_br_ext.c:714:101: expected unsigned int *ipxNetAddr
drivers/staging/rtl8188eu/core/rtw_br_ext.c:714:101: got restricted __be32 *<noident>
drivers/staging/rtl8188eu/core/rtw_br_ext.c:714:121: warning: incorrect type in argument 3 (different base types)
drivers/staging/rtl8188eu/core/rtw_br_ext.c:714:121: expected unsigned short *ipxSocketAddr
drivers/staging/rtl8188eu/core/rtw_br_ext.c:714:121: got restricted __be16 *<noident>
drivers/staging/rtl8188eu/core/rtw_br_ext.c:721:99: warning: incorrect type in argument 2 (different base types)
drivers/staging/rtl8188eu/core/rtw_br_ext.c:721:99: expected unsigned int *ipxNetAddr
drivers/staging/rtl8188eu/core/rtw_br_ext.c:721:99: got restricted __be32 *<noident>
drivers/staging/rtl8188eu/core/rtw_br_ext.c:749:83: warning: incorrect type in argument 2 (different base types)
drivers/staging/rtl8188eu/core/rtw_br_ext.c:749:83: expected unsigned short *network
drivers/staging/rtl8188eu/core/rtw_br_ext.c:749:83: got restricted __be16 *<noident>
drivers/staging/rtl8188eu/core/rtw_br_ext.c:762:83: warning: incorrect type in argument 2 (different base types)
drivers/staging/rtl8188eu/core/rtw_br_ext.c:762:83: expected unsigned short *network
drivers/staging/rtl8188eu/core/rtw_br_ext.c:762:83: got restricted __be16 *<noident>
drivers/staging/rtl8188eu/core/rtw_br_ext.c:783:83: warning: incorrect type in argument 2 (different base types)
drivers/staging/rtl8188eu/core/rtw_br_ext.c:783:83: expected unsigned short *network
drivers/staging/rtl8188eu/core/rtw_br_ext.c:783:83: got restricted __be16 *<noident>
drivers/staging/rtl8188eu/core/rtw_br_ext.c:795:83: warning: incorrect type in argument 2 (different base types)
drivers/staging/rtl8188eu/core/rtw_br_ext.c:795:83: expected unsigned short *network
drivers/staging/rtl8188eu/core/rtw_br_ext.c:795:83: got restricted __be16 *<noident>
drivers/staging/rtl8188eu/core/rtw_br_ext.c:849:57: warning: incorrect type in assignment (different base types)
drivers/staging/rtl8188eu/core/rtw_br_ext.c:849:57: expected unsigned short [unsigned] [short] <noident>
drivers/staging/rtl8188eu/core/rtw_br_ext.c:849:57: got restricted __be16 [usertype] <noident>
drivers/staging/rtl8188eu/core/rtw_br_ext.c:92:23: warning: restricted __be16 degrades to integer
drivers/staging/rtl8188eu/core/rtw_br_ext.c:876:95: warning: incorrect type in argument 3 (different base types)
drivers/staging/rtl8188eu/core/rtw_br_ext.c:876:95: expected unsigned short *sid
drivers/staging/rtl8188eu/core/rtw_br_ext.c:876:95: got restricted __be16 *<noident>
drivers/staging/rtl8188eu/core/rtw_br_ext.c:912:45: warning: cast to restricted __be16
drivers/staging/rtl8188eu/core/rtw_br_ext.c:912:45: warning: cast to restricted __be16
drivers/staging/rtl8188eu/core/rtw_br_ext.c:912:45: warning: cast to restricted __be16
drivers/staging/rtl8188eu/core/rtw_br_ext.c:912:45: warning: cast to restricted __be16
drivers/staging/rtl8188eu/core/rtw_br_ext.c:944:112: warning: incorrect type in argument 3 (different base types)
drivers/staging/rtl8188eu/core/rtw_br_ext.c:944:112: expected unsigned short *sid
drivers/staging/rtl8188eu/core/rtw_br_ext.c:944:112: got restricted __be16 *<noident>
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1019:84: warning: incorrect type in argument 3 (different base types)
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1019:84: expected unsigned int [unsigned] [usertype] len
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1019:84: got restricted __be16 [usertype] payload_len
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1021:110: warning: incorrect type in argument 2 (different base types)
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1021:110: expected int [signed] len
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1021:110: got restricted __be16 [usertype] payload_len
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1145:54: warning: cast to restricted __be32
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1145:54: warning: cast to restricted __be32
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1145:54: warning: cast to restricted __be32
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1145:54: warning: cast to restricted __be32
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1145:54: warning: cast to restricted __be32
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1145:54: warning: cast to restricted __be32
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1148:70: warning: restricted __be16 degrades to integer
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1154:70: warning: invalid assignment: |=
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1154:70: left side has type unsigned short
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1154:70: right side has type restricted __be16
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1157:64: warning: cast to restricted __be16
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1157:64: warning: cast to restricted __be16
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1157:64: warning: cast to restricted __be16
drivers/staging/rtl8188eu/core/rtw_br_ext.c:1157:64: warning: cast to restricted __be16

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Larry Finger and committed by
Greg Kroah-Hartman
55323187 7e83fd6d

+22 -21
+22 -21
drivers/staging/rtl8188eu/core/rtw_br_ext.c
··· 89 89 struct pppoe_hdr *ph = (struct pppoe_hdr *)(skb->data + ETH_HLEN); 90 90 int data_len; 91 91 92 - data_len = tag->tag_len + TAG_HDR_LEN; 92 + data_len = be16_to_cpu(tag->tag_len) + TAG_HDR_LEN; 93 93 if (skb_tailroom(skb) < data_len) { 94 94 _DEBUG_ERR("skb_tailroom() failed in add SID tag!\n"); 95 95 return -1; ··· 155 155 156 156 157 157 static inline void __nat25_generate_ipx_network_addr_with_node(unsigned char *networkAddr, 158 - unsigned int *ipxNetAddr, unsigned char *ipxNodeAddr) 158 + __be32 *ipxNetAddr, unsigned char *ipxNodeAddr) 159 159 { 160 160 memset(networkAddr, 0, MAX_NETWORK_ADDR_LEN); 161 161 ··· 166 166 167 167 168 168 static inline void __nat25_generate_ipx_network_addr_with_socket(unsigned char *networkAddr, 169 - unsigned int *ipxNetAddr, unsigned short *ipxSocketAddr) 169 + __be32 *ipxNetAddr, __be16 *ipxSocketAddr) 170 170 { 171 171 memset(networkAddr, 0, MAX_NETWORK_ADDR_LEN); 172 172 ··· 177 177 178 178 179 179 static inline void __nat25_generate_apple_network_addr(unsigned char *networkAddr, 180 - unsigned short *network, unsigned char *node) 180 + __be16 *network, unsigned char *node) 181 181 { 182 182 memset(networkAddr, 0, MAX_NETWORK_ADDR_LEN); 183 183 ··· 187 187 } 188 188 189 189 static inline void __nat25_generate_pppoe_network_addr(unsigned char *networkAddr, 190 - unsigned char *ac_mac, unsigned short *sid) 190 + unsigned char *ac_mac, __be16 *sid) 191 191 { 192 192 memset(networkAddr, 0, MAX_NETWORK_ADDR_LEN); 193 193 ··· 197 197 } 198 198 199 199 static void __nat25_generate_ipv6_network_addr(unsigned char *networkAddr, 200 - unsigned int *ipAddr) 200 + __be32 *ipAddr) 201 201 { 202 202 memset(networkAddr, 0, MAX_NETWORK_ADDR_LEN); 203 203 ··· 807 807 /* Handle PPPoE frame */ 808 808 /*---------------------------------------------------*/ 809 809 struct pppoe_hdr *ph = (struct pppoe_hdr *)(skb->data + ETH_HLEN); 810 - unsigned short *pMagic; 810 + __be16 *pMagic; 811 811 812 812 switch (method) { 813 813 case NAT25_CHECK: ··· 845 845 tag->tag_len = htons(MAGIC_CODE_LEN+RTL_RELAY_TAG_LEN+old_tag_len); 846 846 847 847 /* insert the magic_code+client mac in relay tag */ 848 - pMagic = (unsigned short *)tag->tag_data; 848 + pMagic = (__be16 *)tag->tag_data; 849 849 *pMagic = htons(MAGIC_CODE); 850 850 memcpy(tag->tag_data+MAGIC_CODE_LEN, skb->data+ETH_ALEN, ETH_ALEN); 851 851 ··· 908 908 return -1; 909 909 } 910 910 911 - pMagic = (unsigned short *)tag->tag_data; 911 + pMagic = (__be16 *)tag->tag_data; 912 912 if (ntohs(*pMagic) != MAGIC_CODE) { 913 913 DEBUG_ERR("Can't find MAGIC_CODE in %s packet!\n", 914 914 (ph->code == PADO_CODE ? "PADO" : "PADS")); ··· 1005 1005 iph->daddr.s6_addr16[4], iph->daddr.s6_addr16[5], iph->daddr.s6_addr16[6], iph->daddr.s6_addr16[7]); 1006 1006 1007 1007 if (memcmp(&iph->saddr, "\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0", 16)) { 1008 - __nat25_generate_ipv6_network_addr(networkAddr, (unsigned int *)&iph->saddr); 1008 + __nat25_generate_ipv6_network_addr(networkAddr, (__be32 *)&iph->saddr); 1009 1009 __nat25_db_network_insert(priv, skb->data+ETH_ALEN, networkAddr); 1010 1010 __nat25_db_print(priv); 1011 1011 ··· 1016 1016 struct icmp6hdr *hdr = (struct icmp6hdr *)(skb->data + ETH_HLEN + sizeof(*iph)); 1017 1017 hdr->icmp6_cksum = 0; 1018 1018 hdr->icmp6_cksum = csum_ipv6_magic(&iph->saddr, &iph->daddr, 1019 - iph->payload_len, 1019 + be16_to_cpu(iph->payload_len), 1020 1020 IPPROTO_ICMPV6, 1021 - csum_partial((__u8 *)hdr, iph->payload_len, 0)); 1021 + csum_partial((__u8 *)hdr, 1022 + be16_to_cpu(iph->payload_len), 0)); 1022 1023 } 1023 1024 } 1024 1025 } ··· 1030 1029 iph->saddr.s6_addr16[4], iph->saddr.s6_addr16[5], iph->saddr.s6_addr16[6], iph->saddr.s6_addr16[7], 1031 1030 iph->daddr.s6_addr16[0], iph->daddr.s6_addr16[1], iph->daddr.s6_addr16[2], iph->daddr.s6_addr16[3], 1032 1031 iph->daddr.s6_addr16[4], iph->daddr.s6_addr16[5], iph->daddr.s6_addr16[6], iph->daddr.s6_addr16[7]); 1033 - __nat25_generate_ipv6_network_addr(networkAddr, (unsigned int *)&iph->daddr); 1032 + __nat25_generate_ipv6_network_addr(networkAddr, (__be32 *)&iph->daddr); 1034 1033 __nat25_db_network_lookup_and_replace(priv, skb, networkAddr); 1035 1034 return 0; 1036 1035 default: ··· 1111 1110 u_int8_t htype; 1112 1111 u_int8_t hlen; 1113 1112 u_int8_t hops; 1114 - u_int32_t xid; 1115 - u_int16_t secs; 1116 - u_int16_t flags; 1117 - u_int32_t ciaddr; 1118 - u_int32_t yiaddr; 1119 - u_int32_t siaddr; 1120 - u_int32_t giaddr; 1113 + __be32 xid; 1114 + __be16 secs; 1115 + __be16 flags; 1116 + __be32 ciaddr; 1117 + __be32 yiaddr; 1118 + __be32 siaddr; 1119 + __be32 giaddr; 1121 1120 u_int8_t chaddr[16]; 1122 1121 u_int8_t sname[64]; 1123 1122 u_int8_t file[128]; 1124 - u_int32_t cookie; 1123 + __be32 cookie; 1125 1124 u_int8_t options[308]; /* 312 - cookie */ 1126 1125 }; 1127 1126