From nobody Sun Feb 8 21:27:13 2026 Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id ED13E346AD4 for ; Fri, 6 Feb 2026 07:55:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770364531; cv=none; b=FH3w3dmVIN9Ip6RVIW2hc1xz2NGwN510DZWK1qUAJlKbgBY5lM+ugCyWcQkIaat0mVYbqHKE86F8Cw53u/tAiby/oq2LHDJWJG1iBcSS8mWrqoOWoEYvjspYWucJydBJ4GFoSt1SrdUSCbMq9l7Zlh3UFNfr1PDiejr5/GHlurk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770364531; c=relaxed/simple; bh=NvZ+Ohk/ELsImHlF9Phk8fTFMqmbGoZXrHR4ETwmFGA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Uy6Ts5n75LXp0ggAc8gsjmp6Vo9k5QIwTM/aTVQDFn8XmG0UaS4jz+pPGgMUfX0mp1WwRv5D6AUW33WOWH1Vj8nzv+6hZSIZcRWVKB9jzb5piPNkemyees5Y1trB/OGxoaOelMpzcGWK3ElJKfo0hIN2PAlEom8pVA68jifGHi4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=CX5FwH0X; arc=none smtp.client-ip=209.85.128.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="CX5FwH0X" Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-47ff94b46afso18024075e9.1 for ; Thu, 05 Feb 2026 23:55:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770364529; x=1770969329; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=8wJcdfl4Z4reZKMqKpQhsE3g0fJELUoIy4wFtm3iM4g=; b=CX5FwH0X+dFHyq3+rRSjZgbRRnWEqnk5d+Txexx/8HsiQopeXiOm274mR9VMfjifsf s6FunmJbO8cp/dwghlEn7e006iyZT6BMpsSETujY0ihq3AJhcV/pWVz3wLFX6L6e8HzP 5p9KE7q9ZT/5HGTonxH4AamBOKEl5CYjcOlWD+dbcAmGyurjAmrEm5gD2hHVaXhD1TJO 5mN1SWI26VeWMgXrLSuyrNFmKk1JsiUsC0nRws34PD0bm6AdFgbYDLGWsXeZoagWTwpm 62nRWmNbUYlmjSJ947xSAYj+Tx5R2CzzZosSfkUaOxckA0TbYRIxasTdo9e+7O7I0LwH 80KA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770364529; x=1770969329; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=8wJcdfl4Z4reZKMqKpQhsE3g0fJELUoIy4wFtm3iM4g=; b=jfoi5in8c0tdfF3iTN1aFEDIU7saMQopvZXEUNv3+Dnf+3Pxzfop4WC+kaX2tYuidH I75eVyUWjhnrZHaWti68iPf9S0P3+gPPX58RYl9HXd4SFQ/mZHLWwZBPacTRDKJ1fJud IAKHRz/qSyQjmSdX9bN4+lO0PjEZAkRNUcv5aLy40qafvnydkv14XlKsjV4buoFsDJe2 CrH1hYX14BeIUY4vnI0FmhOtS67My07nKzBFR/kK3Ghf/DRM6dw279kJdbsMBe5PAg6D lu9d+TCRbYrlc051jofsY5qHU0Q/ROY6JUteU+EZfa/69KKI1vuSTTi+Fs8jeC230mXz O4Gw== X-Forwarded-Encrypted: i=1; AJvYcCWK5hfIQt9qkVI50bRjLxur4pHUz/PlEHg/nmzeDXXRZLHOY9rDdXqTj+uSe8jiJBOcVLbnOPCwzMzXiUU=@vger.kernel.org X-Gm-Message-State: AOJu0YxqPDKR91Wsvlnm4kBWpjTOdWPDZeKF5ugzEM54tJGC5m+IbJSa W4t7DNHaiKIR4cWhiA19aJcv5pVBbOJwu+a0KsvbW1ltFsQsc8mU0+I= X-Gm-Gg: AZuq6aIocNwwz1MZWbN9Zn6rzwWVZ2Z2hlG1kognAPqO5niUKrvnG38RPqWR+1XduLW GVAkq+CLfepAFIRNIFJQrhJ22GPRvNfjL2oie59gMeCu0dg2OFZhGQnTyGOEWJUXoUv+Np5Ap2X 9SKYtMLqqlGdG1oTKpFt/lAVbh5INd+/xZRRlvSgBReGehzY/SQ4IhBfX844LLyR9r57EMVt4CO +hLu6W0NkN5EQD4Urs1ZRJEFqunAuj6VonLMTKJaT9JTlzgu+Wd+0CXtPYbju3MstZ+KvIikVht Uch5Dg4VgOLGUlPXvrhfBDbY/N2hNExISpsTsaR3gFVybk2AvW4AYK98cyjn6JvkLoqI1w+cfGf NgpVg/f2qKj8DpPPzo/LsW2/rkS+zNw/Ubu8fnVN+r0+/hLh4tADf/TJRiTnerAQYxRYUu7cmnZ CeeY8G8Fzd9DtG66L/CXdvlo31Y+kZGhu2NIaaBjOhEJ4KUmsqZrkmhuO4jRDem/Q= X-Received: by 2002:a05:600c:c84:b0:475:ddad:c3a9 with SMTP id 5b1f17b1804b1-483203d54ffmr24089285e9.13.1770364528978; Thu, 05 Feb 2026 23:55:28 -0800 (PST) Received: from LGPC ([31.223.131.124]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-436296bd3b8sm3836039f8f.11.2026.02.05.23.55.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Feb 2026 23:55:28 -0800 (PST) From: lukagejak5@gmail.com X-Google-Original-From: luka.gejak@linux.dev To: Greg Kroah-Hartman Cc: Dan Carpenter , linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, Luka Gejak Subject: [PATCH v2 23/26] staging: rtl8723bs: core: fix line lengths in rtw_mlme_ext.c Date: Fri, 6 Feb 2026 08:54:36 +0100 Message-ID: <20260206075439.103287-24-luka.gejak@linux.dev> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260206075439.103287-1-luka.gejak@linux.dev> References: <20260206075439.103287-1-luka.gejak@linux.dev> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Luka Gejak Break long lines exceeding 100 characters to comply with kernel coding style. Signed-off-by: Luka Gejak --- drivers/staging/rtl8723bs/core/rtw_mlme_ext.c | 471 ++++++++++++------ 1 file changed, 325 insertions(+), 146 deletions(-) diff --git a/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c b/drivers/stagin= g/rtl8723bs/core/rtw_mlme_ext.c index f2b0233627c8..000d6f353a34 100644 --- a/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c +++ b/drivers/staging/rtl8723bs/core/rtw_mlme_ext.c @@ -62,12 +62,14 @@ static unsigned char REALTEK_96B_IE[] =3D {0x00, 0xe0, = 0x4c, 0x02, 0x01, 0x20}; =20 /* ChannelPlan definitions */ static struct rt_channel_plan_2g RTW_ChannelPlan2G[RT_CHANNEL_DOMAIN_2G_MA= X] =3D { - {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, 13}, /* 0x00, RT_CHANNEL_= DOMAIN_2G_WORLD , Passive scan CH 12, 13 */ + /* 0x00, RT_CHANNEL_DOMAIN_2G_WORLD, Passive scan CH 12, 13 */ + {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, 13}, {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, 13}, /* 0x01, RT_CHANNEL_= DOMAIN_2G_ETSI1 */ {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, 11}, /* 0x02, RT_CHANNEL_DOMAIN_= 2G_FCC1 */ {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}, 14}, /* 0x03, RT_CHANN= EL_DOMAIN_2G_MIKK1 */ {{10, 11, 12, 13}, 4}, /* 0x04, RT_CHANNEL_DOMAIN_2G_ETSI2 */ - {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}, 14}, /* 0x05, RT_CHANN= EL_DOMAIN_2G_GLOBAL , Passive scan CH 12, 13, 14 */ + /* 0x05, RT_CHANNEL_DOMAIN_2G_GLOBAL, Passive scan CH 12, 13, 14 */ + {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}, 14}, {{}, 0}, /* 0x06, RT_CHANNEL_DOMAIN_2G_NULL */ }; =20 @@ -194,15 +196,24 @@ int init_hw_mlme_ext(struct adapter *padapter) void init_mlme_default_rate_set(struct adapter *padapter) { struct mlme_ext_priv *pmlmeext =3D &padapter->mlmeextpriv; - - unsigned char mixed_datarate[NumRates] =3D {_1M_RATE_, _2M_RATE_, _5M_RAT= E_, _11M_RATE_, _6M_RATE_, _9M_RATE_, _12M_RATE_, _18M_RATE_, _24M_RATE_, _= 36M_RATE_, _48M_RATE_, _54M_RATE_, 0xff}; - unsigned char mixed_basicrate[NumRates] =3D {_1M_RATE_, _2M_RATE_, _5M_RA= TE_, _11M_RATE_, _6M_RATE_, _12M_RATE_, _24M_RATE_, 0xff,}; - unsigned char supported_mcs_set[16] =3D {0xff, 0xff, 0x00, 0x00, 0x01, 0x= 0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}; + static const unsigned char mixed_datarate[NumRates] =3D { + _1M_RATE_, _2M_RATE_, _5M_RATE_, _11M_RATE_, + _6M_RATE_, _9M_RATE_, _12M_RATE_, _18M_RATE_, + _24M_RATE_, _36M_RATE_, _48M_RATE_, _54M_RATE_, 0xff + }; + static const unsigned char mixed_basicrate[NumRates] =3D { + _1M_RATE_, _2M_RATE_, _5M_RATE_, _11M_RATE_, + _6M_RATE_, _12M_RATE_, _24M_RATE_, 0xff + }; + static const unsigned char supported_mcs_set[16] =3D { + 0xff, 0xff, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; =20 memcpy(pmlmeext->datarate, mixed_datarate, NumRates); memcpy(pmlmeext->basicrate, mixed_basicrate, NumRates); - - memcpy(pmlmeext->default_supported_mcs_set, supported_mcs_set, sizeof(pml= meext->default_supported_mcs_set)); + memcpy(pmlmeext->default_supported_mcs_set, supported_mcs_set, + sizeof(pmlmeext->default_supported_mcs_set)); } =20 static void init_mlme_ext_priv_value(struct adapter *padapter) @@ -319,7 +330,8 @@ static void init_channel_list(struct adapter *padapter,= struct rt_channel_info * =20 } =20 -static u8 init_channel_set(struct adapter *padapter, u8 ChannelPlan, struc= t rt_channel_info *channel_set) +static u8 init_channel_set(struct adapter *padapter, u8 ChannelPlan, + struct rt_channel_info *channel_set) { u8 index, chanset_size =3D 0; u8 b2_4GBand =3D false; @@ -340,22 +352,27 @@ static u8 init_channel_set(struct adapter *padapter, = u8 ChannelPlan, struct rt_c =20 if (b2_4GBand) { for (index =3D 0; index < RTW_ChannelPlan2G[Index2G].Len; index++) { - channel_set[chanset_size].ChannelNum =3D RTW_ChannelPlan2G[Index2G].Cha= nnel[index]; - - if ((ChannelPlan =3D=3D RT_CHANNEL_DOMAIN_GLOBAL_DOAMIN) ||/* Channel 1= ~11 is active, and 12~14 is passive */ - (ChannelPlan =3D=3D RT_CHANNEL_DOMAIN_GLOBAL_NULL)) { - if (channel_set[chanset_size].ChannelNum >=3D 1 && channel_set[chanset= _size].ChannelNum <=3D 11) - channel_set[chanset_size].ScanType =3D SCAN_ACTIVE; - else if ((channel_set[chanset_size].ChannelNum >=3D 12 && channel_set= [chanset_size].ChannelNum <=3D 14)) - channel_set[chanset_size].ScanType =3D SCAN_PASSIVE; + struct rt_channel_info *ch =3D &channel_set[chanset_size]; + + ch->ChannelNum =3D RTW_ChannelPlan2G[Index2G].Channel[index]; + + if ((ChannelPlan =3D=3D RT_CHANNEL_DOMAIN_GLOBAL_DOAMIN) || + (ChannelPlan =3D=3D RT_CHANNEL_DOMAIN_GLOBAL_NULL)) { + /* Channel 1~11 active, 12~14 passive */ + if (ch->ChannelNum >=3D 1 && ch->ChannelNum <=3D 11) + ch->ScanType =3D SCAN_ACTIVE; + else if (ch->ChannelNum >=3D 12 && ch->ChannelNum <=3D 14) + ch->ScanType =3D SCAN_PASSIVE; } else if (ChannelPlan =3D=3D RT_CHANNEL_DOMAIN_WORLD_WIDE_13 || - Index2G =3D=3D RT_CHANNEL_DOMAIN_2G_WORLD) { /* channel 12~13, passi= ve scan */ - if (channel_set[chanset_size].ChannelNum <=3D 11) - channel_set[chanset_size].ScanType =3D SCAN_ACTIVE; + Index2G =3D=3D RT_CHANNEL_DOMAIN_2G_WORLD) { + /* channel 12~13, passive scan */ + if (ch->ChannelNum <=3D 11) + ch->ScanType =3D SCAN_ACTIVE; else - channel_set[chanset_size].ScanType =3D SCAN_PASSIVE; - } else - channel_set[chanset_size].ScanType =3D SCAN_ACTIVE; + ch->ScanType =3D SCAN_PASSIVE; + } else { + ch->ScanType =3D SCAN_ACTIVE; + } =20 chanset_size++; } @@ -391,8 +408,11 @@ void init_mlme_ext_priv(struct adapter *padapter) =20 init_mlme_ap_info(padapter); =20 - pmlmeext->max_chan_nums =3D init_channel_set(padapter, pmlmepriv->Channel= Plan, pmlmeext->channel_set); - init_channel_list(padapter, pmlmeext->channel_set, pmlmeext->max_chan_num= s, &pmlmeext->channel_list); + pmlmeext->max_chan_nums =3D init_channel_set(padapter, + pmlmepriv->ChannelPlan, + pmlmeext->channel_set); + init_channel_list(padapter, pmlmeext->channel_set, + pmlmeext->max_chan_nums, &pmlmeext->channel_list); pmlmeext->last_scan_time =3D 0; pmlmeext->chan_scan_time =3D SURVEY_TO; pmlmeext->mlmeext_init =3D true; @@ -417,7 +437,9 @@ void free_mlme_ext_priv(struct mlme_ext_priv *pmlmeext) } } =20 -static void _mgt_dispatcher(struct adapter *padapter, struct mlme_handler = *ptable, union recv_frame *precv_frame) +static void _mgt_dispatcher(struct adapter *padapter, + struct mlme_handler *ptable, + union recv_frame *precv_frame) { u8 *pframe =3D precv_frame->u.hdr.rx_data; =20 @@ -571,8 +593,10 @@ unsigned int OnBeacon(struct adapter *padapter, union = recv_frame *precv_frame) int ret =3D _SUCCESS; u8 *p =3D NULL; u32 ielen =3D 0; + u8 *ie_start =3D pframe + sizeof(struct ieee80211_hdr_3addr) + _BEACON_IE= _OFFSET_; + int ie_len =3D len - sizeof(struct ieee80211_hdr_3addr) - _BEACON_IE_OFFS= ET_; =20 - p =3D rtw_get_ie(pframe + sizeof(struct ieee80211_hdr_3addr) + _BEACON_IE= _OFFSET_, WLAN_EID_EXT_SUPP_RATES, &ielen, precv_frame->u.hdr.len - sizeof(= struct ieee80211_hdr_3addr) - _BEACON_IE_OFFSET_); + p =3D rtw_get_ie(ie_start, WLAN_EID_EXT_SUPP_RATES, &ielen, ie_len); if (p && ielen > 0) { if (p + 2 + ielen < pframe + len) { if ((*(p + 1 + ielen) =3D=3D 0x2D) && (*(p + 2 + ielen) !=3D 0x2D)) @@ -599,7 +623,12 @@ unsigned int OnBeacon(struct adapter *padapter, union = recv_frame *precv_frame) } =20 /* check the vendor of the assoc AP */ - pmlmeinfo->assoc_AP_vendor =3D check_assoc_AP(pframe+sizeof(struct ieee= 80211_hdr_3addr), len-sizeof(struct ieee80211_hdr_3addr)); + { + u8 *ap_ie =3D pframe + sizeof(struct ieee80211_hdr_3addr); + int ap_ie_len =3D len - sizeof(struct ieee80211_hdr_3addr); + + pmlmeinfo->assoc_AP_vendor =3D check_assoc_AP(ap_ie, ap_ie_len); + } =20 /* update TSF Value */ update_TSF(pmlmeext, pframe, len); @@ -618,7 +647,8 @@ unsigned int OnBeacon(struct adapter *padapter, union r= ecv_frame *precv_frame) return _SUCCESS; } =20 - if (((pmlmeinfo->state&0x03) =3D=3D WIFI_FW_STATION_STATE) && (pmlmeinfo= ->state & WIFI_FW_ASSOC_SUCCESS)) { + if ((pmlmeinfo->state & 0x03) =3D=3D WIFI_FW_STATION_STATE && + (pmlmeinfo->state & WIFI_FW_ASSOC_SUCCESS)) { psta =3D rtw_get_stainfo(pstapriv, GetAddr2Ptr(pframe)); if (psta) { ret =3D rtw_check_bcn_info(padapter, pframe, len); @@ -650,9 +680,17 @@ unsigned int OnBeacon(struct adapter *padapter, union = recv_frame *precv_frame) goto _END_ONBEACON_; =20 /* get supported rate */ - if (update_sta_support_rate(padapter, (pframe + WLAN_HDR_A3_LEN + _BEA= CON_IE_OFFSET_), (len - WLAN_HDR_A3_LEN - _BEACON_IE_OFFSET_), cam_idx) =3D= =3D _FAIL) { - pmlmeinfo->FW_sta_info[cam_idx].status =3D 0; - goto _END_ONBEACON_; + { + u8 *rate_ie =3D pframe + WLAN_HDR_A3_LEN + _BEACON_IE_OFFSET_; + int rate_len =3D len - WLAN_HDR_A3_LEN - _BEACON_IE_OFFSET_; + int ret; + + ret =3D update_sta_support_rate(padapter, rate_ie, + rate_len, cam_idx); + if (ret =3D=3D _FAIL) { + pmlmeinfo->FW_sta_info[cam_idx].status =3D 0; + goto _END_ONBEACON_; + } } =20 /* update TSF Value */ @@ -800,9 +838,11 @@ unsigned int OnAuth(struct adapter *padapter, union re= cv_frame *precv_frame) pstat->state |=3D WIFI_FW_AUTH_STATE; pstat->authalg =3D algorithm; } else if (seq =3D=3D 3) { + u8 *auth_ie =3D pframe + WLAN_HDR_A3_LEN + 4 + _AUTH_IE_OFFSET_; + int auth_len =3D len - WLAN_HDR_A3_LEN - _AUTH_IE_OFFSET_ - 4; =20 - p =3D rtw_get_ie(pframe + WLAN_HDR_A3_LEN + 4 + _AUTH_IE_OFFSET_, WLAN_= EID_CHALLENGE, (int *)&ie_len, - len - WLAN_HDR_A3_LEN - _AUTH_IE_OFFSET_ - 4); + p =3D rtw_get_ie(auth_ie, WLAN_EID_CHALLENGE, (int *)&ie_len, + auth_len); =20 if (!p || ie_len <=3D 0) { status =3D WLAN_STATUS_CHALLENGE_FAIL; @@ -1021,7 +1061,12 @@ unsigned int OnAssocReq(struct adapter *padapter, un= ion recv_frame *precv_frame) goto OnAssocReqFail; =20 /* check if the supported rate is ok */ - p =3D rtw_get_ie(pframe + WLAN_HDR_A3_LEN + ie_offset, WLAN_EID_SUPP_RATE= S, &ie_len, pkt_len - WLAN_HDR_A3_LEN - ie_offset); + { + u8 *rate_ie =3D pframe + WLAN_HDR_A3_LEN + ie_offset; + int rate_ie_len =3D pkt_len - WLAN_HDR_A3_LEN - ie_offset; + + p =3D rtw_get_ie(rate_ie, WLAN_EID_SUPP_RATES, &ie_len, rate_ie_len); + } if (!p) { /* use our own rate set as statoin used */ /* memcpy(supportRate, AP_BSSRATE, AP_BSSRATE_LEN); */ @@ -1070,7 +1115,9 @@ unsigned int OnAssocReq(struct adapter *padapter, uni= on recv_frame *precv_frame) wpa_ie =3D elems.rsn_ie; wpa_ie_len =3D elems.rsn_ie_len; =20 - if (rtw_parse_wpa2_ie(wpa_ie-2, wpa_ie_len+2, &group_cipher, &pairwise_c= ipher, NULL) =3D=3D _SUCCESS) { + if (rtw_parse_wpa2_ie(wpa_ie - 2, wpa_ie_len + 2, + &group_cipher, &pairwise_cipher, + NULL) =3D=3D _SUCCESS) { pstat->dot8021xalg =3D 1;/* psk, todo:802.1x */ pstat->wpa_psk |=3D BIT(1); =20 @@ -1132,8 +1179,12 @@ unsigned int OnAssocReq(struct adapter *padapter, un= ion recv_frame *precv_frame) && (pstat->flags & (WLAN_STA_WPS|WLAN_STA_MAYBE_WPS))) { if (pmlmepriv->wps_beacon_ie) { u8 selected_registrar =3D 0; + u8 *wps_ie =3D pmlmepriv->wps_beacon_ie; + uint wps_len =3D pmlmepriv->wps_beacon_ie_len; =20 - rtw_get_wps_attr_content(pmlmepriv->wps_beacon_ie, pmlmepriv->wps_beac= on_ie_len, WPS_ATTR_SELECTED_REGISTRAR, &selected_registrar, NULL); + rtw_get_wps_attr_content(wps_ie, wps_len, + WPS_ATTR_SELECTED_REGISTRAR, + &selected_registrar, NULL); =20 if (!selected_registrar) { status =3D WLAN_STATUS_AP_UNABLE_TO_HANDLE_NEW_STA; @@ -2155,11 +2206,18 @@ void issue_beacon(struct adapter *padapter, int tim= eout_ms) u8 *wps_ie; uint wps_ielen; u8 sr =3D 0; - - wps_ie =3D rtw_get_wps_ie(pmgntframe->buf_addr+TXDESC_OFFSET+sizeof(str= uct ieee80211_hdr_3addr)+_BEACON_IE_OFFSET_, - pattrib->pktlen-sizeof(struct ieee80211_hdr_3addr)-_BEACON_IE_OFFSET_,= NULL, &wps_ielen); + u8 *bcn_ie =3D pmgntframe->buf_addr + TXDESC_OFFSET + + sizeof(struct ieee80211_hdr_3addr) + + _BEACON_IE_OFFSET_; + int bcn_ie_len =3D pattrib->pktlen - + sizeof(struct ieee80211_hdr_3addr) - + _BEACON_IE_OFFSET_; + + wps_ie =3D rtw_get_wps_ie(bcn_ie, bcn_ie_len, NULL, &wps_ielen); if (wps_ie && wps_ielen > 0) - rtw_get_wps_attr_content(wps_ie, wps_ielen, WPS_ATTR_SELECTED_REGISTR= AR, (u8 *)(&sr), NULL); + rtw_get_wps_attr_content(wps_ie, wps_ielen, + WPS_ATTR_SELECTED_REGISTRAR, + &sr, NULL); if (sr !=3D 0) set_fwstate(pmlmepriv, WIFI_UNDER_WPS); else @@ -2190,33 +2248,47 @@ void issue_beacon(struct adapter *padapter, int tim= eout_ms) pframe +=3D 2; pattrib->pktlen +=3D 2; =20 - /* SSID */ - pframe =3D rtw_set_ie(pframe, WLAN_EID_SSID, cur_network->ssid.ssid_lengt= h, cur_network->ssid.ssid, &pattrib->pktlen); + { + u8 *ssid =3D cur_network->ssid.ssid; + int ssid_len =3D cur_network->ssid.ssid_length; + u8 *rates =3D cur_network->supported_rates; + u8 ds_cfg =3D cur_network->configuration.ds_config; + + /* SSID */ + pframe =3D rtw_set_ie(pframe, WLAN_EID_SSID, ssid_len, ssid, + &pattrib->pktlen); =20 - /* supported rates... */ - rate_len =3D rtw_get_rateset_len(cur_network->supported_rates); - pframe =3D rtw_set_ie(pframe, WLAN_EID_SUPP_RATES, ((rate_len > 8) ? 8 : = rate_len), cur_network->supported_rates, &pattrib->pktlen); + /* supported rates */ + rate_len =3D rtw_get_rateset_len(rates); + pframe =3D rtw_set_ie(pframe, WLAN_EID_SUPP_RATES, + min_t(int, rate_len, 8), rates, + &pattrib->pktlen); =20 - /* DS parameter set */ - pframe =3D rtw_set_ie(pframe, WLAN_EID_DS_PARAMS, 1, (unsigned char *)&(c= ur_network->configuration.ds_config), &pattrib->pktlen); + /* DS parameter set */ + pframe =3D rtw_set_ie(pframe, WLAN_EID_DS_PARAMS, 1, &ds_cfg, + &pattrib->pktlen); + } =20 - /* if ((pmlmeinfo->state&0x03) =3D=3D WIFI_FW_ADHOC_STATE) */ { u8 erpinfo =3D 0; - u32 ATIMWindow; - /* IBSS Parameter Set... */ - /* ATIMWindow =3D cur->configuration.ATIMWindow; */ - ATIMWindow =3D 0; - pframe =3D rtw_set_ie(pframe, WLAN_EID_IBSS_PARAMS, 2, (unsigned char *)= (&ATIMWindow), &pattrib->pktlen); + u32 ATIMWindow =3D 0; + + /* IBSS Parameter Set */ + pframe =3D rtw_set_ie(pframe, WLAN_EID_IBSS_PARAMS, 2, + (unsigned char *)&ATIMWindow, &pattrib->pktlen); =20 /* ERP IE */ - pframe =3D rtw_set_ie(pframe, WLAN_EID_ERP_INFO, 1, &erpinfo, &pattrib->= pktlen); + pframe =3D rtw_set_ie(pframe, WLAN_EID_ERP_INFO, 1, &erpinfo, + &pattrib->pktlen); } =20 + /* EXTENDED SUPPORTED RATE */ + if (rate_len > 8) { + u8 *ext_rates =3D cur_network->supported_rates + 8; =20 - /* EXTERNDED SUPPORTED RATE */ - if (rate_len > 8) - pframe =3D rtw_set_ie(pframe, WLAN_EID_EXT_SUPP_RATES, (rate_len - 8), (= cur_network->supported_rates + 8), &pattrib->pktlen); + pframe =3D rtw_set_ie(pframe, WLAN_EID_EXT_SUPP_RATES, + rate_len - 8, ext_rates, &pattrib->pktlen); + } =20 =20 /* todo:HT for adhoc */ @@ -2295,7 +2367,10 @@ void issue_probersp(struct adapter *padapter, unsign= ed char *da, u8 is_valid_p2p return; =20 if ((pmlmeinfo->state&0x03) =3D=3D WIFI_FW_AP_STATE) { - pwps_ie =3D rtw_get_wps_ie(cur_network->ies+_FIXED_IE_LENGTH_, cur_netwo= rk->ie_length-_FIXED_IE_LENGTH_, NULL, &wps_ielen); + u8 *ie_ptr =3D cur_network->ies + _FIXED_IE_LENGTH_; + int ie_len =3D cur_network->ie_length - _FIXED_IE_LENGTH_; + + pwps_ie =3D rtw_get_wps_ie(ie_ptr, ie_len, NULL, &wps_ielen); =20 /* inerset & update wps_probe_resp_ie */ if (pmlmepriv->wps_probe_resp_ie && pwps_ie && wps_ielen > 0) { @@ -2391,33 +2466,49 @@ void issue_probersp(struct adapter *padapter, unsig= ned char *da, u8 is_valid_p2p pattrib->pktlen +=3D 2; =20 /* below for ad-hoc mode */ + { + u8 *ssid =3D cur_network->ssid.ssid; + int ssid_len =3D cur_network->ssid.ssid_length; + u8 *rates =3D cur_network->supported_rates; + u8 ds_cfg =3D cur_network->configuration.ds_config; + + /* SSID */ + pframe =3D rtw_set_ie(pframe, WLAN_EID_SSID, ssid_len, ssid, + &pattrib->pktlen); + + /* supported rates */ + rate_len =3D rtw_get_rateset_len(rates); + pframe =3D rtw_set_ie(pframe, WLAN_EID_SUPP_RATES, + min_t(int, rate_len, 8), rates, + &pattrib->pktlen); + + /* DS parameter set */ + pframe =3D rtw_set_ie(pframe, WLAN_EID_DS_PARAMS, 1, &ds_cfg, + &pattrib->pktlen); + } =20 - /* SSID */ - pframe =3D rtw_set_ie(pframe, WLAN_EID_SSID, cur_network->ssid.ssid_leng= th, cur_network->ssid.ssid, &pattrib->pktlen); - - /* supported rates... */ - rate_len =3D rtw_get_rateset_len(cur_network->supported_rates); - pframe =3D rtw_set_ie(pframe, WLAN_EID_SUPP_RATES, ((rate_len > 8) ? 8 := rate_len), cur_network->supported_rates, &pattrib->pktlen); - - /* DS parameter set */ - pframe =3D rtw_set_ie(pframe, WLAN_EID_DS_PARAMS, 1, (unsigned char *)&(= cur_network->configuration.ds_config), &pattrib->pktlen); - - if ((pmlmeinfo->state&0x03) =3D=3D WIFI_FW_ADHOC_STATE) { + if ((pmlmeinfo->state & 0x03) =3D=3D WIFI_FW_ADHOC_STATE) { u8 erpinfo =3D 0; - u32 ATIMWindow; - /* IBSS Parameter Set... */ - /* ATIMWindow =3D cur->configuration.ATIMWindow; */ - ATIMWindow =3D 0; - pframe =3D rtw_set_ie(pframe, WLAN_EID_IBSS_PARAMS, 2, (unsigned char *= )(&ATIMWindow), &pattrib->pktlen); + u32 ATIMWindow =3D 0; + + /* IBSS Parameter Set */ + pframe =3D rtw_set_ie(pframe, WLAN_EID_IBSS_PARAMS, 2, + (unsigned char *)&ATIMWindow, + &pattrib->pktlen); =20 /* ERP IE */ - pframe =3D rtw_set_ie(pframe, WLAN_EID_ERP_INFO, 1, &erpinfo, &pattrib-= >pktlen); + pframe =3D rtw_set_ie(pframe, WLAN_EID_ERP_INFO, 1, &erpinfo, + &pattrib->pktlen); } =20 + /* EXTENDED SUPPORTED RATE */ + if (rate_len > 8) { + u8 *ext_rates =3D cur_network->supported_rates + 8; =20 - /* EXTERNDED SUPPORTED RATE */ - if (rate_len > 8) - pframe =3D rtw_set_ie(pframe, WLAN_EID_EXT_SUPP_RATES, (rate_len - 8), = (cur_network->supported_rates + 8), &pattrib->pktlen); + pframe =3D rtw_set_ie(pframe, WLAN_EID_EXT_SUPP_RATES, + rate_len - 8, ext_rates, + &pattrib->pktlen); + } =20 =20 /* todo:HT for adhoc */ @@ -2496,8 +2587,11 @@ static int _issue_probereq(struct adapter *padapter, get_rate_set(padapter, bssrate, &bssrate_len); =20 if (bssrate_len > 8) { - pframe =3D rtw_set_ie(pframe, WLAN_EID_SUPP_RATES, 8, bssrate, &(pattrib= ->pktlen)); - pframe =3D rtw_set_ie(pframe, WLAN_EID_EXT_SUPP_RATES, (bssrate_len - 8)= , (bssrate + 8), &(pattrib->pktlen)); + pframe =3D rtw_set_ie(pframe, WLAN_EID_SUPP_RATES, 8, bssrate, + &pattrib->pktlen); + pframe =3D rtw_set_ie(pframe, WLAN_EID_EXT_SUPP_RATES, + bssrate_len - 8, bssrate + 8, + &pattrib->pktlen); } else { pframe =3D rtw_set_ie(pframe, WLAN_EID_SUPP_RATES, bssrate_len, bssrate,= &(pattrib->pktlen)); } @@ -2532,8 +2626,8 @@ inline void issue_probereq(struct adapter *padapter, = struct ndis_802_11_ssid *ps _issue_probereq(padapter, pssid, da, 0, 1, false); } =20 -int issue_probereq_ex(struct adapter *padapter, struct ndis_802_11_ssid *p= ssid, u8 *da, u8 ch, bool append_wps, - int try_cnt, int wait_ms) +int issue_probereq_ex(struct adapter *padapter, struct ndis_802_11_ssid *p= ssid, + u8 *da, u8 ch, bool append_wps, int try_cnt, int wait_ms) { int ret; int i =3D 0; @@ -2640,14 +2734,16 @@ void issue_auth(struct adapter *padapter, struct st= a_info *psta, unsigned short memcpy(pwlanhdr->addr2, myid(&padapter->eeprompriv), ETH_ALEN); memcpy(pwlanhdr->addr3, get_my_bssid(&pmlmeinfo->network), ETH_ALEN); =20 - /* setting auth algo number */ - val16 =3D (pmlmeinfo->auth_algo =3D=3D dot11AuthAlgrthm_Shared) ? 1 : 0;= /* 0:OPEN System, 1:Shared key */ + /* setting auth algo number: 0=3DOPEN System, 1=3DShared key */ + val16 =3D (pmlmeinfo->auth_algo =3D=3D dot11AuthAlgrthm_Shared) ? 1 : 0; if (val16) use_shared_key =3D 1; le_tmp =3D cpu_to_le16(val16); =20 /* setting IV for auth seq #3 */ - if ((pmlmeinfo->auth_seq =3D=3D 3) && (pmlmeinfo->state & WIFI_FW_AUTH_S= TATE) && (use_shared_key =3D=3D 1)) { + if (pmlmeinfo->auth_seq =3D=3D 3 && + (pmlmeinfo->state & WIFI_FW_AUTH_STATE) && + use_shared_key =3D=3D 1) { __le32 le_tmp32; =20 val32 =3D ((pmlmeinfo->iv++) | (pmlmeinfo->key_index << 30)); @@ -2669,8 +2765,11 @@ void issue_auth(struct adapter *padapter, struct sta= _info *psta, unsigned short pframe =3D rtw_set_fixed_ie(pframe, _STATUS_CODE_, (unsigned char *)&le_= tmp, &(pattrib->pktlen)); =20 /* then checking to see if sending challenging text... */ - if ((pmlmeinfo->auth_seq =3D=3D 3) && (pmlmeinfo->state & WIFI_FW_AUTH_S= TATE) && (use_shared_key =3D=3D 1)) { - pframe =3D rtw_set_ie(pframe, WLAN_EID_CHALLENGE, 128, pmlmeinfo->chg_t= xt, &(pattrib->pktlen)); + if (pmlmeinfo->auth_seq =3D=3D 3 && + (pmlmeinfo->state & WIFI_FW_AUTH_STATE) && + use_shared_key =3D=3D 1) { + pframe =3D rtw_set_ie(pframe, WLAN_EID_CHALLENGE, 128, + pmlmeinfo->chg_txt, &pattrib->pktlen); =20 SetPrivacy(fctrl); =20 @@ -2693,7 +2792,8 @@ void issue_auth(struct adapter *padapter, struct sta_= info *psta, unsigned short } =20 =20 -void issue_asocrsp(struct adapter *padapter, unsigned short status, struct= sta_info *pstat, int pkt_type) +void issue_asocrsp(struct adapter *padapter, unsigned short status, + struct sta_info *pstat, int pkt_type) { struct xmit_frame *pmgntframe; struct ieee80211_hdr *pwlanhdr; @@ -2754,18 +2854,25 @@ void issue_asocrsp(struct adapter *padapter, unsign= ed short status, struct sta_i pframe =3D rtw_set_fixed_ie(pframe, _ASOC_ID_, (unsigned char *)&le_tmp, = &(pattrib->pktlen)); =20 if (pstat->bssratelen <=3D 8) { - pframe =3D rtw_set_ie(pframe, WLAN_EID_SUPP_RATES, pstat->bssratelen, ps= tat->bssrateset, &(pattrib->pktlen)); + pframe =3D rtw_set_ie(pframe, WLAN_EID_SUPP_RATES, + pstat->bssratelen, pstat->bssrateset, + &pattrib->pktlen); } else { - pframe =3D rtw_set_ie(pframe, WLAN_EID_SUPP_RATES, 8, pstat->bssrateset,= &(pattrib->pktlen)); - pframe =3D rtw_set_ie(pframe, WLAN_EID_EXT_SUPP_RATES, (pstat->bssratele= n-8), pstat->bssrateset+8, &(pattrib->pktlen)); + pframe =3D rtw_set_ie(pframe, WLAN_EID_SUPP_RATES, 8, + pstat->bssrateset, &pattrib->pktlen); + pframe =3D rtw_set_ie(pframe, WLAN_EID_EXT_SUPP_RATES, + pstat->bssratelen - 8, pstat->bssrateset + 8, + &pattrib->pktlen); } =20 if ((pstat->flags & WLAN_STA_HT) && (pmlmepriv->htpriv.ht_option)) { uint ie_len =3D 0; + u8 *beacon_ie =3D ie + _BEACON_IE_OFFSET_; + int beacon_len =3D pnetwork->ie_length - _BEACON_IE_OFFSET_; =20 /* FILL HT CAP INFO IE */ - /* p =3D hostapd_eid_ht_capabilities_info(hapd, p); */ - pbuf =3D rtw_get_ie(ie + _BEACON_IE_OFFSET_, WLAN_EID_HT_CAPABILITY, &ie= _len, (pnetwork->ie_length - _BEACON_IE_OFFSET_)); + pbuf =3D rtw_get_ie(beacon_ie, WLAN_EID_HT_CAPABILITY, + &ie_len, beacon_len); if (pbuf && ie_len > 0) { memcpy(pframe, pbuf, ie_len+2); pframe +=3D (ie_len+2); @@ -2773,8 +2880,8 @@ void issue_asocrsp(struct adapter *padapter, unsigned= short status, struct sta_i } =20 /* FILL HT ADD INFO IE */ - /* p =3D hostapd_eid_ht_operation(hapd, p); */ - pbuf =3D rtw_get_ie(ie + _BEACON_IE_OFFSET_, WLAN_EID_HT_OPERATION, &ie_= len, (pnetwork->ie_length - _BEACON_IE_OFFSET_)); + pbuf =3D rtw_get_ie(beacon_ie, WLAN_EID_HT_OPERATION, + &ie_len, beacon_len); if (pbuf && ie_len > 0) { memcpy(pframe, pbuf, ie_len+2); pframe +=3D (ie_len+2); @@ -2789,7 +2896,10 @@ void issue_asocrsp(struct adapter *padapter, unsigne= d short status, struct sta_i unsigned char WMM_PARA_IE[] =3D {0x00, 0x50, 0xf2, 0x02, 0x01, 0x01}; =20 for (pbuf =3D ie + _BEACON_IE_OFFSET_; ; pbuf +=3D (ie_len + 2)) { - pbuf =3D rtw_get_ie(pbuf, WLAN_EID_VENDOR_SPECIFIC, &ie_len, (pnetwork-= >ie_length - _BEACON_IE_OFFSET_ - (ie_len + 2))); + int remaining =3D pnetwork->ie_length - _BEACON_IE_OFFSET_ - (ie_len + = 2); + + pbuf =3D rtw_get_ie(pbuf, WLAN_EID_VENDOR_SPECIFIC, + &ie_len, remaining); if (pbuf && !memcmp(pbuf+2, WMM_PARA_IE, 6)) { memcpy(pframe, pbuf, ie_len+2); pframe +=3D (ie_len+2); @@ -2879,7 +2989,13 @@ void issue_assocreq(struct adapter *padapter) pattrib->pktlen +=3D 2; =20 /* SSID */ - pframe =3D rtw_set_ie(pframe, WLAN_EID_SSID, pmlmeinfo->network.ssid.ssi= d_length, pmlmeinfo->network.ssid.ssid, &(pattrib->pktlen)); + { + u8 *ssid =3D pmlmeinfo->network.ssid.ssid; + int ssid_len =3D pmlmeinfo->network.ssid.ssid_length; + + pframe =3D rtw_set_ie(pframe, WLAN_EID_SSID, ssid_len, ssid, + &pattrib->pktlen); + } =20 /* supported rate & extended supported rate */ =20 @@ -2927,10 +3043,15 @@ void issue_assocreq(struct adapter *padapter) =20 =20 if (bssrate_len > 8) { - pframe =3D rtw_set_ie(pframe, WLAN_EID_SUPP_RATES, 8, bssrate, &(pattrib= ->pktlen)); - pframe =3D rtw_set_ie(pframe, WLAN_EID_EXT_SUPP_RATES, (bssrate_len - 8)= , (bssrate + 8), &(pattrib->pktlen)); - } else - pframe =3D rtw_set_ie(pframe, WLAN_EID_SUPP_RATES, bssrate_len, bssrate,= &(pattrib->pktlen)); + pframe =3D rtw_set_ie(pframe, WLAN_EID_SUPP_RATES, 8, bssrate, + &pattrib->pktlen); + pframe =3D rtw_set_ie(pframe, WLAN_EID_EXT_SUPP_RATES, + bssrate_len - 8, bssrate + 8, + &pattrib->pktlen); + } else { + pframe =3D rtw_set_ie(pframe, WLAN_EID_SUPP_RATES, bssrate_len, + bssrate, &pattrib->pktlen); + } =20 /* vendor specific IE, such as WPA, WMM, WPS */ for (i =3D sizeof(struct ndis_802_11_fix_ie); i < pmlmeinfo->network.ie_l= ength;) { @@ -2952,7 +3073,9 @@ void issue_assocreq(struct adapter *padapter) vs_ie_length =3D 14; } =20 - pframe =3D rtw_set_ie(pframe, WLAN_EID_VENDOR_SPECIFIC, vs_ie_length, = pIE->data, &(pattrib->pktlen)); + pframe =3D rtw_set_ie(pframe, WLAN_EID_VENDOR_SPECIFIC, + vs_ie_length, pIE->data, + &pattrib->pktlen); } break; =20 @@ -2962,15 +3085,22 @@ void issue_assocreq(struct adapter *padapter) case WLAN_EID_HT_CAPABILITY: if (padapter->mlmepriv.htpriv.ht_option) { if (!(is_ap_in_tkip(padapter))) { - memcpy(&(pmlmeinfo->HT_caps), pIE->data, sizeof(struct HT_caps_elemen= t)); - pframe =3D rtw_set_ie(pframe, WLAN_EID_HT_CAPABILITY, pIE->length, (u= 8 *)(&(pmlmeinfo->HT_caps)), &(pattrib->pktlen)); + memcpy(&pmlmeinfo->HT_caps, pIE->data, + sizeof(struct HT_caps_element)); + pframe =3D rtw_set_ie(pframe, WLAN_EID_HT_CAPABILITY, + pIE->length, + (u8 *)&pmlmeinfo->HT_caps, + &pattrib->pktlen); } } break; =20 case WLAN_EID_EXT_CAPABILITY: - if (padapter->mlmepriv.htpriv.ht_option) - pframe =3D rtw_set_ie(pframe, WLAN_EID_EXT_CAPABILITY, pIE->length, pI= E->data, &(pattrib->pktlen)); + if (padapter->mlmepriv.htpriv.ht_option) { + pframe =3D rtw_set_ie(pframe, WLAN_EID_EXT_CAPABILITY, + pIE->length, pIE->data, + &pattrib->pktlen); + } break; default: break; @@ -3071,7 +3201,8 @@ static int _issue_nulldata(struct adapter *padapter, = unsigned char *da, * When wait_ms > 0, this function should be called at process context * da =3D=3D NULL for station mode */ -int issue_nulldata(struct adapter *padapter, unsigned char *da, unsigned i= nt power_mode, int try_cnt, int wait_ms) +int issue_nulldata(struct adapter *padapter, unsigned char *da, + unsigned int power_mode, int try_cnt, int wait_ms) { int ret; int i =3D 0; @@ -3216,7 +3347,8 @@ static int _issue_qos_nulldata(struct adapter *padapt= er, unsigned char *da, =20 /* when wait_ms >0 , this function should be called at process context */ /* da =3D=3D NULL for station mode */ -int issue_qos_nulldata(struct adapter *padapter, unsigned char *da, u16 ti= d, int try_cnt, int wait_ms) +int issue_qos_nulldata(struct adapter *padapter, unsigned char *da, u16 ti= d, + int try_cnt, int wait_ms) { int ret; int i =3D 0; @@ -3345,7 +3477,8 @@ int issue_deauth_ex(struct adapter *padapter, u8 *da,= unsigned short reason, int return ret; } =20 -void issue_action_SA_Query(struct adapter *padapter, unsigned char *raddr,= unsigned char action, unsigned short tid) +void issue_action_SA_Query(struct adapter *padapter, unsigned char *raddr, + unsigned char action, unsigned short tid) { u8 category =3D RTW_WLAN_CATEGORY_SA_QUERY; struct xmit_frame *pmgntframe; @@ -3412,7 +3545,8 @@ void issue_action_SA_Query(struct adapter *padapter, = unsigned char *raddr, unsig dump_mgntframe(padapter, pmgntframe); } =20 -void issue_action_BA(struct adapter *padapter, unsigned char *raddr, unsig= ned char action, unsigned short status) +void issue_action_BA(struct adapter *padapter, unsigned char *raddr, + unsigned char action, unsigned short status) { u8 category =3D RTW_WLAN_CATEGORY_BACK; u16 start_seq; @@ -3515,17 +3649,20 @@ void issue_action_BA(struct adapter *padapter, unsi= gned char *raddr, unsigned ch else rtw_hal_get_def_var(padapter, HW_VAR_MAX_RX_AMPDU_FACTOR, &max_rx_ampdu_factor); - - if (max_rx_ampdu_factor =3D=3D IEEE80211_HT_MAX_AMPDU_64K) - BA_para_set =3D ((le16_to_cpu(pmlmeinfo->ADDBA_req.BA_para_set) & 0x3f= ) | 0x1000); /* 64 buffer size */ - else if (max_rx_ampdu_factor =3D=3D IEEE80211_HT_MAX_AMPDU_32K) - BA_para_set =3D ((le16_to_cpu(pmlmeinfo->ADDBA_req.BA_para_set) & 0x3f= ) | 0x0800); /* 32 buffer size */ - else if (max_rx_ampdu_factor =3D=3D IEEE80211_HT_MAX_AMPDU_16K) - BA_para_set =3D ((le16_to_cpu(pmlmeinfo->ADDBA_req.BA_para_set) & 0x3f= ) | 0x0400); /* 16 buffer size */ - else if (max_rx_ampdu_factor =3D=3D IEEE80211_HT_MAX_AMPDU_8K) - BA_para_set =3D ((le16_to_cpu(pmlmeinfo->ADDBA_req.BA_para_set) & 0x3f= ) | 0x0200); /* 8 buffer size */ - else - BA_para_set =3D ((le16_to_cpu(pmlmeinfo->ADDBA_req.BA_para_set) & 0x3f= ) | 0x1000); /* 64 buffer size */ + { + u16 ba_mask =3D le16_to_cpu(pmlmeinfo->ADDBA_req.BA_para_set) & 0x3f; + + if (max_rx_ampdu_factor =3D=3D IEEE80211_HT_MAX_AMPDU_64K) + BA_para_set =3D ba_mask | 0x1000; /* 64 buffer size */ + else if (max_rx_ampdu_factor =3D=3D IEEE80211_HT_MAX_AMPDU_32K) + BA_para_set =3D ba_mask | 0x0800; /* 32 buffer size */ + else if (max_rx_ampdu_factor =3D=3D IEEE80211_HT_MAX_AMPDU_16K) + BA_para_set =3D ba_mask | 0x0400; /* 16 buffer size */ + else if (max_rx_ampdu_factor =3D=3D IEEE80211_HT_MAX_AMPDU_8K) + BA_para_set =3D ba_mask | 0x0200; /* 8 buffer size */ + else + BA_para_set =3D ba_mask | 0x1000; /* 64 buffer size */ + } =20 if (hal_btcoex_IsBTCoexCtrlAMPDUSize(padapter) && padapter->driver_rx_ampdu_factor =3D=3D 0xFF) { @@ -3541,8 +3678,16 @@ void issue_action_BA(struct adapter *padapter, unsig= ned char *raddr, unsigned ch else /* auto */ le_tmp =3D cpu_to_le16(BA_para_set); =20 - pframe =3D rtw_set_fixed_ie(pframe, 2, (unsigned char *)(&(le_tmp)), &(= pattrib->pktlen)); - pframe =3D rtw_set_fixed_ie(pframe, 2, (unsigned char *)(&(pmlmeinfo->A= DDBA_req.BA_timeout_value)), &(pattrib->pktlen)); + pframe =3D rtw_set_fixed_ie(pframe, 2, (unsigned char *)&le_tmp, + &pattrib->pktlen); + { + unsigned char *ba_timeout; + + ba_timeout =3D (unsigned char *) + &pmlmeinfo->ADDBA_req.BA_timeout_value; + pframe =3D rtw_set_fixed_ie(pframe, 2, ba_timeout, + &pattrib->pktlen); + } break; case 2:/* DELBA */ BA_para_set =3D (status & 0x1F) << 3; @@ -3656,7 +3801,13 @@ static void issue_action_BSSCoexistPacket(struct ada= pter *padapter) =20 pbss_network =3D (struct wlan_bssid_ex *)&pnetwork->network; =20 - p =3D rtw_get_ie(pbss_network->ies + _FIXED_IE_LENGTH_, WLAN_EID_HT_CAP= ABILITY, &len, pbss_network->ie_length - _FIXED_IE_LENGTH_); + { + u8 *bss_ie =3D pbss_network->ies + _FIXED_IE_LENGTH_; + int bss_len =3D pbss_network->ie_length - _FIXED_IE_LENGTH_; + + p =3D rtw_get_ie(bss_ie, WLAN_EID_HT_CAPABILITY, + &len, bss_len); + } if (!p || len =3D=3D 0) {/* non-HT */ =20 if (pbss_network->configuration.ds_config <=3D 0) @@ -3694,7 +3845,9 @@ static void issue_action_BSSCoexistPacket(struct adap= ter *padapter) } } =20 - pframe =3D rtw_set_ie(pframe, WLAN_EID_BSS_INTOLERANT_CHL_REPORT, k, In= foContent, &(pattrib->pktlen)); + pframe =3D rtw_set_ie(pframe, + WLAN_EID_BSS_INTOLERANT_CHL_REPORT, + k, InfoContent, &pattrib->pktlen); =20 } =20 @@ -3761,9 +3914,12 @@ unsigned int send_beacon(struct adapter *padapter) cond_resched(); rtw_hal_get_hwreg(padapter, HW_VAR_BCN_VALID, (u8 *)(&bxmitok)); poll++; - } while ((poll%10) !=3D 0 && false =3D=3D bxmitok && !padapter->bSurpris= eRemoved && !padapter->bDriverStopped); + } while ((poll % 10) !=3D 0 && !bxmitok && + !padapter->bSurpriseRemoved && + !padapter->bDriverStopped); =20 - } while (false =3D=3D bxmitok && issue < 100 && !padapter->bSurpriseRemov= ed && !padapter->bDriverStopped); + } while (!bxmitok && issue < 100 && + !padapter->bSurpriseRemoved && !padapter->bDriverStopped); =20 if (padapter->bSurpriseRemoved || padapter->bDriverStopped) return _FAIL; @@ -3803,10 +3959,14 @@ void site_survey(struct adapter *padapter) if (pmlmeext->sitesurvey_res.channel_idx =3D=3D 0) { #ifdef DBG_FIXED_CHAN if (pmlmeext->fixed_chan !=3D 0xff) - set_channel_bwmode(padapter, pmlmeext->fixed_chan, HAL_PRIME_CHNL_OFFS= ET_DONT_CARE, CHANNEL_WIDTH_20); + set_channel_bwmode(padapter, pmlmeext->fixed_chan, + HAL_PRIME_CHNL_OFFSET_DONT_CARE, + CHANNEL_WIDTH_20); else #endif - set_channel_bwmode(padapter, survey_channel, HAL_PRIME_CHNL_OFFSET_DON= T_CARE, CHANNEL_WIDTH_20); + set_channel_bwmode(padapter, survey_channel, + HAL_PRIME_CHNL_OFFSET_DONT_CARE, + CHANNEL_WIDTH_20); } else { #ifdef DBG_FIXED_CHAN if (pmlmeext->fixed_chan !=3D 0xff) @@ -3857,7 +4017,9 @@ void site_survey(struct adapter *padapter) /* switch back to the original channel */ /* SelectChannel(padapter, pmlmeext->cur_channel, pmlmeext->cur_ch_offs= et); */ =20 - set_channel_bwmode(padapter, pmlmeext->cur_channel, pmlmeext->cur_ch_of= fset, pmlmeext->cur_bwmode); + set_channel_bwmode(padapter, pmlmeext->cur_channel, + pmlmeext->cur_ch_offset, + pmlmeext->cur_bwmode); =20 /* flush 4-AC Queue after site_survey */ /* val8 =3D 0; */ @@ -3894,7 +4056,8 @@ void site_survey(struct adapter *padapter) } =20 /* collect bss info from Beacon and Probe request/response frames. */ -u8 collect_bss_info(struct adapter *padapter, union recv_frame *precv_fram= e, struct wlan_bssid_ex *bssid) +u8 collect_bss_info(struct adapter *padapter, union recv_frame *precv_fram= e, + struct wlan_bssid_ex *bssid) { int i; u32 len; @@ -3941,9 +4104,13 @@ u8 collect_bss_info(struct adapter *padapter, union = recv_frame *precv_frame, str memcpy(bssid->ies, (pframe + sizeof(struct ieee80211_hdr_3addr)), bssid->= ie_length); =20 /* get the signal strength */ - bssid->rssi =3D precv_frame->u.hdr.attrib.phy_info.RecvSignalPower; /* i= n dBM.raw data */ - bssid->phy_info.signal_quality =3D precv_frame->u.hdr.attrib.phy_info.Sig= nalQuality;/* in percentage */ - bssid->phy_info.signal_strength =3D precv_frame->u.hdr.attrib.phy_info.Si= gnalStrength;/* in percentage */ + { + struct phy_info *phy =3D &precv_frame->u.hdr.attrib.phy_info; + + bssid->rssi =3D phy->RecvSignalPower; /* in dBM.raw data */ + bssid->phy_info.signal_quality =3D phy->SignalQuality; /* in percentage = */ + bssid->phy_info.signal_strength =3D phy->SignalStrength; /* in percentag= e */ + } =20 /* checking SSID */ p =3D rtw_get_ie(bssid->ies + ie_offset, WLAN_EID_SSID, &len, bssid->ie_l= ength - ie_offset); @@ -3972,7 +4139,8 @@ u8 collect_bss_info(struct adapter *padapter, union r= ecv_frame *precv_frame, str i =3D len; } =20 - p =3D rtw_get_ie(bssid->ies + ie_offset, WLAN_EID_EXT_SUPP_RATES, &len, b= ssid->ie_length - ie_offset); + p =3D rtw_get_ie(bssid->ies + ie_offset, WLAN_EID_EXT_SUPP_RATES, &len, + bssid->ie_length - ie_offset); if (p) { if (len > (NDIS_802_11_LENGTH_RATES_EX-i)) return _FAIL; @@ -4030,7 +4198,8 @@ u8 collect_bss_info(struct adapter *padapter, union r= ecv_frame *precv_frame, str if ((pregistrypriv->wifi_spec =3D=3D 1) && (false =3D=3D pmlmeinfo->bwmod= e_updated)) { struct mlme_priv *pmlmepriv =3D &padapter->mlmepriv; =20 - p =3D rtw_get_ie(bssid->ies + ie_offset, WLAN_EID_HT_CAPABILITY, &len, b= ssid->ie_length - ie_offset); + p =3D rtw_get_ie(bssid->ies + ie_offset, WLAN_EID_HT_CAPABILITY, &len, + bssid->ie_length - ie_offset); if (p && len > 0) { struct HT_caps_element *pHT_caps; =20 @@ -4074,8 +4243,8 @@ void start_create_ibss(struct adapter *padapter) rtw_hal_set_hwreg(padapter, HW_VAR_DO_IQK, NULL); =20 /* switch channel */ - /* SelectChannel(padapter, pmlmeext->cur_channel, HAL_PRIME_CHNL_OFFSET_= DONT_CARE); */ - set_channel_bwmode(padapter, pmlmeext->cur_channel, HAL_PRIME_CHNL_OFFSE= T_DONT_CARE, CHANNEL_WIDTH_20); + set_channel_bwmode(padapter, pmlmeext->cur_channel, + HAL_PRIME_CHNL_OFFSET_DONT_CARE, CHANNEL_WIDTH_20); =20 beacon_timing_control(padapter); =20 @@ -4203,7 +4372,8 @@ void start_clnt_assoc(struct adapter *padapter) set_link_timer(pmlmeext, REASSOC_TO); } =20 -unsigned int receive_disconnect(struct adapter *padapter, unsigned char *M= acAddr, unsigned short reason) +unsigned int receive_disconnect(struct adapter *padapter, unsigned char *M= acAddr, + unsigned short reason) { struct mlme_ext_priv *pmlmeext =3D &padapter->mlmeextpriv; struct mlme_ext_info *pmlmeinfo =3D &pmlmeext->mlmext_info; @@ -4250,7 +4420,8 @@ static void process_80211d(struct adapter *padapter, = struct wlan_bssid_ex *bssid u8 noc; /* number of channel */ u8 j, k; =20 - ie =3D rtw_get_ie(bssid->ies + _FIXED_IE_LENGTH_, WLAN_EID_COUNTRY, &len= , bssid->ie_length - _FIXED_IE_LENGTH_); + ie =3D rtw_get_ie(bssid->ies + _FIXED_IE_LENGTH_, WLAN_EID_COUNTRY, &len, + bssid->ie_length - _FIXED_IE_LENGTH_); if (!ie) return; if (len < 6) @@ -4511,7 +4682,8 @@ void report_join_res(struct adapter *padapter, int re= s) pc2h_evt_hdr->seq =3D atomic_inc_return(&pmlmeext->event_seq); =20 pjoinbss_evt =3D (struct joinbss_event *)(pevtcmd + sizeof(struct C2HEven= t_Header)); - memcpy((unsigned char *)(&(pjoinbss_evt->network.network)), &(pmlmeinfo->= network), sizeof(struct wlan_bssid_ex)); + memcpy((unsigned char *)(&(pjoinbss_evt->network.network)), + &(pmlmeinfo->network), sizeof(struct wlan_bssid_ex)); pjoinbss_evt->network.join_res =3D pjoinbss_evt->network.aid =3D res; =20 =20 @@ -4681,7 +4853,9 @@ void update_sta_info(struct adapter *padapter, struct= sta_info *psta) =20 psta->htpriv.ampdu_enable =3D pmlmepriv->htpriv.ampdu_enable; =20 - psta->htpriv.rx_ampdu_min_spacing =3D (pmlmeinfo->HT_caps.u.HT_cap_eleme= nt.AMPDU_para&IEEE80211_HT_CAP_AMPDU_DENSITY)>>2; + psta->htpriv.rx_ampdu_min_spacing =3D + (pmlmeinfo->HT_caps.u.HT_cap_element.AMPDU_para & + IEEE80211_HT_CAP_AMPDU_DENSITY) >> 2; =20 if (support_short_GI(padapter, &(pmlmeinfo->HT_caps), CHANNEL_WIDTH_20)) psta->htpriv.sgi_20m =3D true; @@ -4896,7 +5070,9 @@ void mlmeext_sta_add_event_callback(struct adapter *p= adapter, struct sta_info *p rtw_hal_update_sta_rate_mask(padapter, psta); =20 /* ToDo: HT for Ad-hoc */ - psta->wireless_mode =3D rtw_check_network_type(psta->bssrateset, psta->bs= sratelen, pmlmeext->cur_channel); + psta->wireless_mode =3D rtw_check_network_type(psta->bssrateset, + psta->bssratelen, + pmlmeext->cur_channel); psta->raid =3D networktype_to_raid_ex(padapter, psta); =20 /* rate radaptive */ @@ -5417,9 +5593,12 @@ u8 disconnect_hdl(struct adapter *padapter, unsigned= char *pbuf) u8 val8; =20 if (is_client_associated_to_ap(padapter)) - issue_deauth_ex(padapter, pnetwork->mac_address, WLAN_REASON_DEAUTH_LEAV= ING, param->deauth_timeout_ms/100, 100); + issue_deauth_ex(padapter, pnetwork->mac_address, + WLAN_REASON_DEAUTH_LEAVING, + param->deauth_timeout_ms / 100, 100); =20 - if (((pmlmeinfo->state&0x03) =3D=3D WIFI_FW_ADHOC_STATE) || ((pmlmeinfo->= state&0x03) =3D=3D WIFI_FW_AP_STATE)) { + if (((pmlmeinfo->state & 0x03) =3D=3D WIFI_FW_ADHOC_STATE) || + ((pmlmeinfo->state & 0x03) =3D=3D WIFI_FW_AP_STATE)) { /* Stop BCN */ val8 =3D 0; rtw_hal_set_hwreg(padapter, HW_VAR_BCN_FUNC, (u8 *)(&val8)); --=20 2.52.0