All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>
Subject: drivers/staging/rtl8192e/rtllib_rx.c:2195 rtllib_parse_info_param() warn: Function too hairy.  No more merges.
Date: Mon, 20 Mar 2023 16:37:15 +0800	[thread overview]
Message-ID: <202303201603.x91ppUmM-lkp@intel.com> (raw)

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Kees Cook <keescook@chromium.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   e8d018dd0257f744ca50a729e3d042cf2ec9da65
commit: 54d9469bc515dc5fcbc20eecbe19cea868b70d68 fortify: Add run-time WARN for cross-field memcpy()
date:   6 months ago
:::::: branch date: 12 hours ago
:::::: commit date: 6 months ago
config: riscv-randconfig-m031-20230319 (https://download.01.org/0day-ci/archive/20230320/202303201603.x91ppUmM-lkp@intel.com/config)
compiler: riscv32-linux-gcc (GCC) 12.1.0

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Link: https://lore.kernel.org/r/202303201603.x91ppUmM-lkp@intel.com/

New smatch warnings:
drivers/staging/rtl8192e/rtllib_rx.c:2195 rtllib_parse_info_param() warn: Function too hairy.  No more merges.

Old smatch warnings:
drivers/staging/rtl8192e/rtllib_rx.c:512 rtllib_indicate_packets() warn: variable dereferenced before check 'sub_skb' (see line 488)
drivers/staging/rtl8192e/rtllib_rx.c:1054 rtllib_rx_get_crypt() warn: potential spectre issue 'ieee->crypt_info.crypt' [r]
drivers/staging/rtl8192e/rtllib_rx.c:1058 rtllib_rx_get_crypt() warn: possible spectre second half.  '*crypt'
drivers/staging/rtl8192e/rtllib_rx.c:1494 rtllib_rx_Monitor() error: dereferencing freed memory 'skb'

vim +2195 drivers/staging/rtl8192e/rtllib_rx.c

310852327ab3b5 Mateusz Kulikowski 2015-05-31  2020  
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2021  int rtllib_parse_info_param(struct rtllib_device *ieee,
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2022  		struct rtllib_info_element *info_element,
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2023  		u16 length,
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2024  		struct rtllib_network *network,
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2025  		struct rtllib_rx_stats *stats)
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2026  {
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2027  	u8 i;
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2028  	short offset;
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2029  	u16	tmp_htcap_len = 0;
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2030  	u16	tmp_htinfo_len = 0;
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2031  	char rates_str[64];
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2032  	char *p;
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2033  
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2034  	while (length >= sizeof(*info_element)) {
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2035  		if (sizeof(*info_element) + info_element->len > length) {
e9fea2ecb018e5 Mateusz Kulikowski 2015-05-31  2036  			netdev_dbg(ieee->dev,
e9fea2ecb018e5 Mateusz Kulikowski 2015-05-31  2037  				   "Info elem: parse failed: info_element->len + 2 > left : info_element->len+2=%zd left=%d, id=%d.\n",
e9fea2ecb018e5 Mateusz Kulikowski 2015-05-31  2038  				   info_element->len + sizeof(*info_element),
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2039  				   length, info_element->id);
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2040  			/* We stop processing but don't return an error here
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2041  			 * because some misbehaviour APs break this rule. ie.
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2042  			 * Orinoco AP1000.
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2043  			 */
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2044  			break;
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2045  		}
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2046  
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2047  		switch (info_element->id) {
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2048  		case MFIE_TYPE_SSID:
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2049  			if (rtllib_is_empty_essid(info_element->data,
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2050  						     info_element->len)) {
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2051  				network->flags |= NETWORK_EMPTY_ESSID;
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2052  				break;
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2053  			}
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2054  
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2055  			network->ssid_len = min(info_element->len,
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2056  						(u8)IW_ESSID_MAX_SIZE);
35e33b0468ab3b Mateusz Kulikowski 2015-05-31  2057  			memcpy(network->ssid, info_element->data,
35e33b0468ab3b Mateusz Kulikowski 2015-05-31  2058  			       network->ssid_len);
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2059  			if (network->ssid_len < IW_ESSID_MAX_SIZE)
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2060  				memset(network->ssid + network->ssid_len, 0,
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2061  				       IW_ESSID_MAX_SIZE - network->ssid_len);
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2062  
e9fea2ecb018e5 Mateusz Kulikowski 2015-05-31  2063  			netdev_dbg(ieee->dev, "MFIE_TYPE_SSID: '%s' len=%d.\n",
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2064  				   network->ssid, network->ssid_len);
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2065  			break;
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2066  
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2067  		case MFIE_TYPE_RATES:
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2068  			p = rates_str;
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2069  			network->rates_len = min(info_element->len,
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2070  						 MAX_RATES_LENGTH);
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2071  			for (i = 0; i < network->rates_len; i++) {
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2072  				network->rates[i] = info_element->data[i];
39ddadf14da77c Takashi Iwai       2020-03-11  2073  				p += scnprintf(p, sizeof(rates_str) -
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2074  					      (p - rates_str), "%02X ",
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2075  					      network->rates[i]);
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2076  				if (rtllib_is_ofdm_rate
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2077  				    (info_element->data[i])) {
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2078  					network->flags |= NETWORK_HAS_OFDM;
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2079  					if (info_element->data[i] &
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2080  					    RTLLIB_BASIC_RATE_MASK)
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2081  						network->flags &=
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2082  						    ~NETWORK_HAS_CCK;
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2083  				}
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2084  
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2085  				if (rtllib_is_cck_rate
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2086  				    (info_element->data[i])) {
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2087  					network->flags |= NETWORK_HAS_CCK;
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2088  				}
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2089  			}
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2090  
e9fea2ecb018e5 Mateusz Kulikowski 2015-05-31  2091  			netdev_dbg(ieee->dev, "MFIE_TYPE_RATES: '%s' (%d)\n",
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2092  				   rates_str, network->rates_len);
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2093  			break;
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2094  
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2095  		case MFIE_TYPE_RATES_EX:
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2096  			p = rates_str;
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2097  			network->rates_ex_len = min(info_element->len,
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2098  						    MAX_RATES_EX_LENGTH);
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2099  			for (i = 0; i < network->rates_ex_len; i++) {
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2100  				network->rates_ex[i] = info_element->data[i];
39ddadf14da77c Takashi Iwai       2020-03-11  2101  				p += scnprintf(p, sizeof(rates_str) -
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2102  					      (p - rates_str), "%02X ",
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2103  					      network->rates_ex[i]);
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2104  				if (rtllib_is_ofdm_rate
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2105  				    (info_element->data[i])) {
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2106  					network->flags |= NETWORK_HAS_OFDM;
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2107  					if (info_element->data[i] &
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2108  					    RTLLIB_BASIC_RATE_MASK)
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2109  						network->flags &=
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2110  						    ~NETWORK_HAS_CCK;
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2111  				}
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2112  			}
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2113  
e9fea2ecb018e5 Mateusz Kulikowski 2015-05-31  2114  			netdev_dbg(ieee->dev, "MFIE_TYPE_RATES_EX: '%s' (%d)\n",
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2115  				   rates_str, network->rates_ex_len);
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2116  			break;
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2117  
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2118  		case MFIE_TYPE_DS_SET:
e9fea2ecb018e5 Mateusz Kulikowski 2015-05-31  2119  			netdev_dbg(ieee->dev, "MFIE_TYPE_DS_SET: %d\n",
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2120  				   info_element->data[0]);
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2121  			network->channel = info_element->data[0];
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2122  			break;
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2123  
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2124  		case MFIE_TYPE_FH_SET:
e9fea2ecb018e5 Mateusz Kulikowski 2015-05-31  2125  			netdev_dbg(ieee->dev, "MFIE_TYPE_FH_SET: ignored\n");
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2126  			break;
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2127  
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2128  		case MFIE_TYPE_CF_SET:
e9fea2ecb018e5 Mateusz Kulikowski 2015-05-31  2129  			netdev_dbg(ieee->dev, "MFIE_TYPE_CF_SET: ignored\n");
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2130  			break;
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2131  
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2132  		case MFIE_TYPE_TIM:
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2133  			if (info_element->len < 4)
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2134  				break;
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2135  
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2136  			network->tim.tim_count = info_element->data[0];
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2137  			network->tim.tim_period = info_element->data[1];
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2138  
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2139  			network->dtim_period = info_element->data[1];
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2140  			if (ieee->state != RTLLIB_LINKED)
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2141  				break;
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2142  			network->last_dtim_sta_time = jiffies;
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2143  
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2144  			network->dtim_data = RTLLIB_DTIM_VALID;
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2145  
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2146  
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2147  			if (info_element->data[2] & 1)
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2148  				network->dtim_data |= RTLLIB_DTIM_MBCAST;
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2149  
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2150  			offset = (info_element->data[2] >> 1)*2;
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2151  
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2152  
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2153  			if (ieee->assoc_id < 8*offset ||
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2154  			    ieee->assoc_id > 8*(offset + info_element->len - 3))
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2155  				break;
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2156  
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2157  			offset = (ieee->assoc_id / 8) - offset;
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2158  			if (info_element->data[3 + offset] &
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2159  			   (1 << (ieee->assoc_id % 8)))
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2160  				network->dtim_data |= RTLLIB_DTIM_UCAST;
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2161  
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2162  			network->listen_interval = network->dtim_period;
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2163  			break;
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2164  
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2165  		case MFIE_TYPE_ERP:
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2166  			network->erp_value = info_element->data[0];
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2167  			network->flags |= NETWORK_HAS_ERP_VALUE;
e9fea2ecb018e5 Mateusz Kulikowski 2015-05-31  2168  			netdev_dbg(ieee->dev, "MFIE_TYPE_ERP_SET: %d\n",
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2169  				   network->erp_value);
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2170  			break;
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2171  		case MFIE_TYPE_IBSS_SET:
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2172  			network->atim_window = info_element->data[0];
e9fea2ecb018e5 Mateusz Kulikowski 2015-05-31  2173  			netdev_dbg(ieee->dev, "MFIE_TYPE_IBSS_SET: %d\n",
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2174  				   network->atim_window);
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2175  			break;
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2176  
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2177  		case MFIE_TYPE_CHALLENGE:
e9fea2ecb018e5 Mateusz Kulikowski 2015-05-31  2178  			netdev_dbg(ieee->dev, "MFIE_TYPE_CHALLENGE: ignored\n");
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2179  			break;
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2180  
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2181  		case MFIE_TYPE_GENERIC:
e9fea2ecb018e5 Mateusz Kulikowski 2015-05-31  2182  			netdev_dbg(ieee->dev, "MFIE_TYPE_GENERIC: %d bytes\n",
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2183  				   info_element->len);
e9fea2ecb018e5 Mateusz Kulikowski 2015-05-31  2184  
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2185  			rtllib_parse_mife_generic(ieee, info_element, network,
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2186  						  &tmp_htcap_len,
80d2579d8608f5 Mateusz Kulikowski 2015-05-31  2187  						  &tmp_htinfo_len);
94a799425eee82 Larry Finger       2011-08-23  2188  			break;
94a799425eee82 Larry Finger       2011-08-23  2189  
94a799425eee82 Larry Finger       2011-08-23  2190  		case MFIE_TYPE_RSN:
e9fea2ecb018e5 Mateusz Kulikowski 2015-05-31  2191  			netdev_dbg(ieee->dev, "MFIE_TYPE_RSN: %d bytes\n",
94a799425eee82 Larry Finger       2011-08-23  2192  				   info_element->len);
94a799425eee82 Larry Finger       2011-08-23  2193  			network->rsn_ie_len = min(info_element->len + 2,
94a799425eee82 Larry Finger       2011-08-23  2194  						  MAX_WPA_IE_LEN);
94a799425eee82 Larry Finger       2011-08-23 @2195  			memcpy(network->rsn_ie, info_element,
94a799425eee82 Larry Finger       2011-08-23  2196  			       network->rsn_ie_len);
94a799425eee82 Larry Finger       2011-08-23  2197  			break;
94a799425eee82 Larry Finger       2011-08-23  2198  
94a799425eee82 Larry Finger       2011-08-23  2199  		case MFIE_TYPE_HT_CAP:
521a9cbdb27142 Mateusz Kulikowski 2015-05-31  2200  			netdev_dbg(ieee->dev, "MFIE_TYPE_HT_CAP: %d bytes\n",
94a799425eee82 Larry Finger       2011-08-23  2201  				   info_element->len);
94a799425eee82 Larry Finger       2011-08-23  2202  
310852327ab3b5 Mateusz Kulikowski 2015-05-31  2203  			rtllib_parse_mfie_ht_cap(info_element, network,
310852327ab3b5 Mateusz Kulikowski 2015-05-31  2204  						 &tmp_htcap_len);
94a799425eee82 Larry Finger       2011-08-23  2205  			break;
94a799425eee82 Larry Finger       2011-08-23  2206  
94a799425eee82 Larry Finger       2011-08-23  2207  
94a799425eee82 Larry Finger       2011-08-23  2208  		case MFIE_TYPE_HT_INFO:
521a9cbdb27142 Mateusz Kulikowski 2015-05-31  2209  			netdev_dbg(ieee->dev, "MFIE_TYPE_HT_INFO: %d bytes\n",
94a799425eee82 Larry Finger       2011-08-23  2210  				   info_element->len);
35e33b0468ab3b Mateusz Kulikowski 2015-05-31  2211  			tmp_htinfo_len = min_t(u8, info_element->len,
35e33b0468ab3b Mateusz Kulikowski 2015-05-31  2212  					       MAX_IE_LEN);
94a799425eee82 Larry Finger       2011-08-23  2213  			if (tmp_htinfo_len) {
2fbcd6ded92bee William Durand     2021-02-20  2214  				network->bssht.bd_ht_spec_ver = HT_SPEC_VER_IEEE;
060d3f6cb8ba57 William Durand     2021-02-20  2215  				network->bssht.bd_ht_info_len = tmp_htinfo_len >
2408ee9e3ce07d William Durand     2021-02-20  2216  					sizeof(network->bssht.bd_ht_info_buf) ?
2408ee9e3ce07d William Durand     2021-02-20  2217  					sizeof(network->bssht.bd_ht_info_buf) :
db8971b618ed96 Larry Finger       2011-08-25  2218  					tmp_htinfo_len;
2408ee9e3ce07d William Durand     2021-02-20  2219  				memcpy(network->bssht.bd_ht_info_buf,
db8971b618ed96 Larry Finger       2011-08-25  2220  				       info_element->data,
060d3f6cb8ba57 William Durand     2021-02-20  2221  				       network->bssht.bd_ht_info_len);
94a799425eee82 Larry Finger       2011-08-23  2222  			}
94a799425eee82 Larry Finger       2011-08-23  2223  			break;
94a799425eee82 Larry Finger       2011-08-23  2224  
94a799425eee82 Larry Finger       2011-08-23  2225  		case MFIE_TYPE_AIRONET:
521a9cbdb27142 Mateusz Kulikowski 2015-05-31  2226  			netdev_dbg(ieee->dev, "MFIE_TYPE_AIRONET: %d bytes\n",
94a799425eee82 Larry Finger       2011-08-23  2227  				   info_element->len);
db8971b618ed96 Larry Finger       2011-08-25  2228  			if (info_element->len > IE_CISCO_FLAG_POSITION) {
94a799425eee82 Larry Finger       2011-08-23  2229  				network->bWithAironetIE = true;
94a799425eee82 Larry Finger       2011-08-23  2230  
db8971b618ed96 Larry Finger       2011-08-25  2231  				if ((info_element->data[IE_CISCO_FLAG_POSITION]
db8971b618ed96 Larry Finger       2011-08-25  2232  				     & SUPPORT_CKIP_MIC) ||
db8971b618ed96 Larry Finger       2011-08-25  2233  				     (info_element->data[IE_CISCO_FLAG_POSITION]
db8971b618ed96 Larry Finger       2011-08-25  2234  				     & SUPPORT_CKIP_PK))
94a799425eee82 Larry Finger       2011-08-23  2235  					network->bCkipSupported = true;
94a799425eee82 Larry Finger       2011-08-23  2236  				else
94a799425eee82 Larry Finger       2011-08-23  2237  					network->bCkipSupported = false;
db8971b618ed96 Larry Finger       2011-08-25  2238  			} else {
94a799425eee82 Larry Finger       2011-08-23  2239  				network->bWithAironetIE = false;
94a799425eee82 Larry Finger       2011-08-23  2240  				network->bCkipSupported = false;
94a799425eee82 Larry Finger       2011-08-23  2241  			}
94a799425eee82 Larry Finger       2011-08-23  2242  			break;
94a799425eee82 Larry Finger       2011-08-23  2243  		case MFIE_TYPE_QOS_PARAMETER:
d69d20549be9e4 Mateusz Kulikowski 2015-03-17  2244  			netdev_err(ieee->dev,
94a799425eee82 Larry Finger       2011-08-23  2245  				   "QoS Error need to parse QOS_PARAMETER IE\n");
94a799425eee82 Larry Finger       2011-08-23  2246  			break;
94a799425eee82 Larry Finger       2011-08-23  2247  
94a799425eee82 Larry Finger       2011-08-23  2248  		case MFIE_TYPE_COUNTRY:
521a9cbdb27142 Mateusz Kulikowski 2015-05-31  2249  			netdev_dbg(ieee->dev, "MFIE_TYPE_COUNTRY: %d bytes\n",
94a799425eee82 Larry Finger       2011-08-23  2250  				   info_element->len);
db8971b618ed96 Larry Finger       2011-08-25  2251  			rtllib_extract_country_ie(ieee, info_element, network,
db8971b618ed96 Larry Finger       2011-08-25  2252  						  network->bssid);
94a799425eee82 Larry Finger       2011-08-23  2253  			break;
94a799425eee82 Larry Finger       2011-08-23  2254  /* TODO */
94a799425eee82 Larry Finger       2011-08-23  2255  		default:
e9fea2ecb018e5 Mateusz Kulikowski 2015-05-31  2256  			netdev_dbg(ieee->dev,
e9fea2ecb018e5 Mateusz Kulikowski 2015-05-31  2257  				   "Unsupported info element: %s (%d)\n",
94a799425eee82 Larry Finger       2011-08-23  2258  				   get_info_element_string(info_element->id),
94a799425eee82 Larry Finger       2011-08-23  2259  				   info_element->id);
94a799425eee82 Larry Finger       2011-08-23  2260  			break;
94a799425eee82 Larry Finger       2011-08-23  2261  		}
94a799425eee82 Larry Finger       2011-08-23  2262  
94a799425eee82 Larry Finger       2011-08-23  2263  		length -= sizeof(*info_element) + info_element->len;
94a799425eee82 Larry Finger       2011-08-23  2264  		info_element =
1ba6d8dc50df0b Ojaswin Mujoo      2021-05-10  2265  		    (struct rtllib_info_element *)&info_element->data[info_element->len];
94a799425eee82 Larry Finger       2011-08-23  2266  	}
94a799425eee82 Larry Finger       2011-08-23  2267  
94a799425eee82 Larry Finger       2011-08-23  2268  	if (!network->atheros_cap_exist && !network->broadcom_cap_exist &&
db8971b618ed96 Larry Finger       2011-08-25  2269  	    !network->cisco_cap_exist && !network->ralink_cap_exist &&
3f1f39fb6c4a42 William Durand     2021-02-20  2270  	    !network->bssht.bd_rt2rt_aggregation)
94a799425eee82 Larry Finger       2011-08-23  2271  		network->unknown_cap_exist = true;
94a799425eee82 Larry Finger       2011-08-23  2272  	else
94a799425eee82 Larry Finger       2011-08-23  2273  		network->unknown_cap_exist = false;
94a799425eee82 Larry Finger       2011-08-23  2274  	return 0;
94a799425eee82 Larry Finger       2011-08-23  2275  }
94a799425eee82 Larry Finger       2011-08-23  2276  

:::::: The code at line 2195 was first introduced by commit
:::::: 94a799425eee8225a1e3fbe5f473d2ef04002577 From: wlanfae <wlanfae@realtek.com> [PATCH 1/8] rtl8192e: Import new version of driver from realtek

:::::: TO: Larry Finger <Larry.Finger@lwfinger.net>
:::::: CC: Larry Finger <Larry.Finger@lwfinger.net>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests

                 reply	other threads:[~2023-03-20  8:37 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202303201603.x91ppUmM-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=error27@gmail.com \
    --cc=oe-kbuild@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.