Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c17416ef authored by Larry Finger's avatar Larry Finger Committed by Greg Kroah-Hartman
Browse files

staging: r8723au: Additional source patches



These changes are fixes that were discovered late in the testing
cycle.

Signed-off-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
Cc: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 364e30eb
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -842,10 +842,10 @@ int rtw_check_beacon_data23a(struct rtw_adapter *padapter, u8 *pbuf, int len)
	/* beacon interval */
	/* ie + 8;  8: TimeStamp, 2: Beacon Interval 2:Capability */
	p = rtw_get_beacon_interval23a_from_ie(ie);
	pbss_network->Configuration.BeaconPeriod = RTW_GET_LE16(p);
	pbss_network->Configuration.BeaconPeriod = get_unaligned_le16(p);

	/* capability */
	cap = RTW_GET_LE16(ie);
	cap = get_unaligned_le16(ie);

	/* SSID */
	p = rtw_get_ie23a(ie + _BEACON_IE_OFFSET_, _SSID_IE_, &ie_len,
+5 −3
Original line number Diff line number Diff line
@@ -447,7 +447,7 @@ int rtw_cmd_thread23a(void *context)

		pcmdpriv->cmd_issued_cnt++;

		pcmd->cmdsz = _RND4(pcmd->cmdsz);/* _RND4 */
		pcmd->cmdsz = ALIGN(pcmd->cmdsz, 4);

		memcpy(pcmdbuf, pcmd->parmbuf, pcmd->cmdsz);

@@ -1141,7 +1141,9 @@ static void traffic_status_watchdog(struct rtw_adapter *padapter)
	u8 bHigherBusyTraffic = false, bHigherBusyRxTraffic = false;
	u8 bHigherBusyTxTraffic = false;
	struct mlme_priv *pmlmepriv = &padapter->mlmepriv;

#ifndef CONFIG_8723AU_BT_COEXIST
	int BusyThreshold = 100;
#endif
	/*  */
	/*  Determine if our traffic is busy now */
	/*  */
@@ -1638,12 +1640,12 @@ u8 rtw_drvextra_cmd_hdl23a(struct rtw_adapter *padapter, unsigned char *pbuf)
	case P2P_PS_WK_CID:
		p2p_ps_wk_hdl23a(padapter, pdrvextra_cmd->type_size);
		break;
#endif /*  CONFIG_8723AU_P2P */
	case P2P_PROTO_WK_CID:
		/*	Commented by Albert 2011/07/01 */
		/*	I used the type_size as the type command */
		p2p_protocol_wk_hdl23a(padapter, pdrvextra_cmd->type_size);
		break;
#endif /*  CONFIG_8723AU_P2P */
#ifdef CONFIG_8723AU_AP_MODE
	case CHECK_HIQ_WK_CID:
		rtw_chk_hi_queue_hdl(padapter);
+0 −2
Original line number Diff line number Diff line
@@ -108,7 +108,6 @@ ReadEFuseByte23a(struct rtw_adapter *Adapter, u16 _offset, u8 *pbuf)
	u32	value32;
	u8	readbyte;
	u16	retry;
	/* u32 start = rtw_get_current_time(); */

	/* Write Address */
	rtw_write8(Adapter, EFUSE_CTRL+1, (_offset & 0xff));
@@ -137,7 +136,6 @@ ReadEFuseByte23a(struct rtw_adapter *Adapter, u16 _offset, u8 *pbuf)
	value32 = rtw_read32(Adapter, EFUSE_CTRL);

	*pbuf = (u8)(value32 & 0xff);
	/* DBG_8723A("ReadEFuseByte23a _offset:%08u, in %d ms\n", _offset , rtw_get_passing_time_ms23a(start)); */
}

/*  */
+12 −12
Original line number Diff line number Diff line
@@ -196,8 +196,8 @@ inline u8 *rtw_set_ie23a_mesh_ch_switch_parm(u8 *buf, u32 *buf_len, u8 ttl,

	ie_data[0] = ttl;
	ie_data[1] = flags;
	RTW_PUT_LE16((u8*)&ie_data[2], reason);
	RTW_PUT_LE16((u8*)&ie_data[4], precedence);
	put_unaligned_le16(reason, (u8*)&ie_data[2]);
	put_unaligned_le16(precedence, (u8*)&ie_data[4]);

	return rtw_set_ie23a(buf, 0x118,  6, ie_data, buf_len);
}
@@ -585,7 +585,7 @@ int rtw_parse_wpa_ie23a(u8* wpa_ie, int wpa_ie_len, int *group_cipher, int *pair
	/* pairwise_cipher */
	if (left >= 2) {
                /* count = le16_to_cpu(*(u16*)pos); */
		count = RTW_GET_LE16(pos);
		count = get_unaligned_le16(pos);
		pos += 2;
		left -= 2;

@@ -661,7 +661,7 @@ int rtw_parse_wpa2_ie23a(u8* rsn_ie, int rsn_ie_len, int *group_cipher,
	/* pairwise_cipher */
	if (left >= 2) {
	        /* count = le16_to_cpu(*(u16*)pos); */
		count = RTW_GET_LE16(pos);
		count = get_unaligned_le16(pos);
		pos += 2;
		left -= 2;

@@ -876,8 +876,8 @@ u8 *rtw_get_wps_attr23a(u8 *wps_ie, uint wps_ielen, u16 target_attr_id,

	while (attr_ptr - wps_ie < wps_ielen) {
		/*  4 = 2(Attribute ID) + 2(Length) */
		u16 attr_id = RTW_GET_BE16(attr_ptr);
		u16 attr_data_len = RTW_GET_BE16(attr_ptr + 2);
		u16 attr_id = get_unaligned_be16(attr_ptr);
		u16 attr_data_len = get_unaligned_be16(attr_ptr + 2);
		u16 attr_len = attr_data_len + 4;

		/* DBG_8723A("%s attr_ptr:%p, id:%u, length:%u\n", __func__, attr_ptr, attr_id, attr_data_len); */
@@ -1246,8 +1246,8 @@ void dump_wps_ie23a(u8 *ie, u32 ie_len) {

	pos+= 6;
	while (pos-ie < ie_len) {
		id = RTW_GET_BE16(pos);
		len = RTW_GET_BE16(pos + 2);
		id = get_unaligned_be16(pos);
		len = get_unaligned_be16(pos + 2);

		DBG_8723A("%s ID:0x%04x, LEN:%u\n", __func__, id, len);

@@ -1271,7 +1271,7 @@ void dump_p2p_ie23a(u8 *ie, u32 ie_len) {
	pos += 6;
	while (pos-ie < ie_len) {
		id = *pos;
		len = RTW_GET_LE16(pos+1);
		len = get_unaligned_le16(pos+1);

		DBG_8723A("%s ID:%u, LEN:%u\n", __func__, id, len);

@@ -1362,7 +1362,7 @@ u8 *rtw_get_p2p_attr23a(u8 *p2p_ie, uint p2p_ielen, u8 target_attr_id,
	while (attr_ptr - p2p_ie < p2p_ielen) {
		/*  3 = 1(Attribute ID) + 2(Length) */
		u8 attr_id = *attr_ptr;
		u16 attr_data_len = RTW_GET_LE16(attr_ptr + 1);
		u16 attr_data_len = get_unaligned_le16(attr_ptr + 1);
		u16 attr_len = attr_data_len + 3;

		/* DBG_8723A("%s attr_ptr:%p, id:%u, length:%u\n", __func__, attr_ptr, attr_id, attr_data_len); */
@@ -1429,7 +1429,7 @@ u32 rtw_set_p2p_attr_content23a(u8 *pbuf, u8 attr_id, u16 attr_len, u8 *pdata_at
	*pbuf = attr_id;

	/* u16*)(pbuf + 1) = cpu_to_le16(attr_len); */
	RTW_PUT_LE16(pbuf + 1, attr_len);
	put_unaligned_le16(attr_len, pbuf + 1);

	if (pdata_attr)
		memcpy(pbuf + 3, pdata_attr, attr_len);
@@ -1561,7 +1561,7 @@ int rtw_get_wfd_attr_content(u8 *wfd_ie, uint wfd_ielen, u8 target_attr_id,
	/*	1 (WFD IE) + 1 (Length) + 3 (OUI) + 1 (OUI Type) */
	cnt = 6;
	while (cnt < wfd_ielen) {
		u16 attrlen = RTW_GET_BE16(wfd_ie + cnt + 1);
		u16 attrlen = get_unaligned_be16(wfd_ie + cnt + 1);

		attr_id = wfd_ie[cnt];
		if (attr_id == target_attr_id) {
+7 −6
Original line number Diff line number Diff line
@@ -69,6 +69,7 @@ int _rtw_init_mlme_priv23a(struct rtw_adapter *padapter)
	return res;
}

#ifdef CONFIG_8723AU_AP_MODE
static void rtw_free_mlme_ie_data(u8 **ppie, u32 *plen)
{
	if(*ppie)
@@ -78,6 +79,7 @@ static void rtw_free_mlme_ie_data(u8 **ppie, u32 *plen)
		*ppie=NULL;
	}
}
#endif

void rtw23a_free_mlme_priv_ie_data(struct mlme_priv *pmlmepriv)
{
@@ -94,9 +96,7 @@ void rtw23a_free_mlme_priv_ie_data(struct mlme_priv *pmlmepriv)
	rtw_free_mlme_ie_data(&pmlmepriv->p2p_probe_resp_ie, &pmlmepriv->p2p_probe_resp_ie_len);
	rtw_free_mlme_ie_data(&pmlmepriv->p2p_go_probe_resp_ie, &pmlmepriv->p2p_go_probe_resp_ie_len);
	rtw_free_mlme_ie_data(&pmlmepriv->p2p_assoc_req_ie, &pmlmepriv->p2p_assoc_req_ie_len);
#endif

#if defined(CONFIG_8723AU_P2P)
	rtw_free_mlme_ie_data(&pmlmepriv->wfd_beacon_ie, &pmlmepriv->wfd_beacon_ie_len);
	rtw_free_mlme_ie_data(&pmlmepriv->wfd_probe_req_ie, &pmlmepriv->wfd_probe_req_ie_len);
	rtw_free_mlme_ie_data(&pmlmepriv->wfd_probe_resp_ie, &pmlmepriv->wfd_probe_resp_ie_len);
@@ -941,7 +941,7 @@ void rtw_indicate_disconnect23a(struct rtw_adapter *padapter)

		/* set ips_deny_time to avoid enter IPS before LPS leave */
		padapter->pwrctrlpriv.ips_deny_time =
			rtw_get_current_time() + rtw_ms_to_systime23a(3000);
			jiffies + msecs_to_jiffies(3000);

		_clr_fwstate_(pmlmepriv, _FW_LINKED);

@@ -1675,7 +1675,7 @@ static int rtw_check_join_candidate(struct mlme_priv *pmlmepriv
	}

	/* check ssid, if needed */
	if (pmlmepriv->assoc_ssid.ssid && pmlmepriv->assoc_ssid.ssid_len) {
	if (pmlmepriv->assoc_ssid.ssid_len) {
		if (competitor->network.Ssid.ssid_len !=
		    pmlmepriv->assoc_ssid.ssid_len ||
		    memcmp(competitor->network.Ssid.ssid,
@@ -1839,8 +1839,7 @@ int rtw_set_key23a(struct rtw_adapter *adapter,
		res = _FAIL;  /* try again */
		goto exit;
	}
	psetkeyparm = (struct setkey_parm *)
		kzalloc(sizeof(struct setkey_parm), GFP_KERNEL);
	psetkeyparm = kzalloc(sizeof(struct setkey_parm), GFP_KERNEL);
	if (!psetkeyparm) {
		kfree(pcmd);
		res = _FAIL;
@@ -1902,6 +1901,8 @@ int rtw_set_key23a(struct rtw_adapter *adapter,
			  "%x (must be 1 or 2 or 4 or 5)\n",
			  psecuritypriv->dot11PrivacyAlgrthm));
		res = _FAIL;
		kfree(pcmd);
		kfree(psetkeyparm);
		goto exit;
	}

Loading