From: Jes Sorensen <[email protected]>
Greg,
Please find attach my latest changeset for the rtl8723au. The primary
change is how we handle the beacon frame information within the
driver. Previously the driver would keep half of the ieee80211
management frame plus the IE (information elements), which was a mess
since it relied on custom hardcoded offsets into this array. Now we
only store the IE elements and keep the beacon information in the data
structure describing the network. This is something I have wanted to
clean up for a long time - I think I caught all the cases of hard
coded offsets into the array, and at least I haven't experienced any
crashes after having run with this for a few days.
The second part of the patch attempts to clean up the key handling a
bit. It's not perfect, but a good chunk better than what it was
before.
This should apply cleanly to the staging-next tree as of today.
Cheers,
Jes
Jes Sorensen (43):
staging: rtl8723au: Remove unused size defines for mgmt frame elements
staging: rtl8723au: Remove usage of _{RE,}ASOCREQ_IE_OFFSET_
staging: rtl8723au: Remove unused IE offset #defines
staging: rtl8723au: rtw_get_cur_max_rate(): Use _FIXED_IE_LENGTH_
instead of hardcoded value
staging: rtl8723au: rtw_add_beacon(): Construct a full beacon frame
for validation
staging: rtl8723au: rtw_check_beacon_data23a(): Capability is already
uptodate in cur_network
staging: rtl8723au: Use _FIXED_IE_LEN_ instead of hard coded value
staging: rtl8723au: ConstructProbeRsp(): Use struct ieee80211_mgmt
staging: rtl8723au: Remove no-op CheckFwRsvdPageContent23a()
staging: rtl8723au: Remove unused dump_txrpt_ccx_8723a()
staging: rtl8723au: issue_beacon23a(): Fix another case issuing a
corrupted beacon
staging: rtl8723au: issue_beacon23a(): Determine ie buffer location
using 80211_mgmt
staging: rtl8723au: rtw_generate_ie23a(): update network info as well
as IE
staging: rtl8723au: Stop carrying half the beacon frame header in the
stored IE array
staging: rtl8723au: Get rid of obsolete _FIXED_IE_LENGTH_ +
_BEACON_IE_OFFSET
staging: rtl8723au: Remove unused #define EID_BSSIntolerantChlReport
staging: rtl8723au: Remove unused #define P80211CAPTURE_VERSION
staging: rtl8723au: rtw_get_wps_attr_content23a(): Remove unused
argument
staging: rtl8723au: Remove unused RSN_VERSION_BSD23A
staging: rtl8723au: rtw_cfg80211_ap_set_encryption(): Use
key_params->cipher to determine encryption
staging: rtl8723au: rtw_cfg80211_ap_set_encryption() is only called
for WIFI_AP_STATE
staging: rtl8723au: rtw_cfg80211_ap_set_encryption(): Use key len from
struct key_params
staging: rtl8723au: rtw_cfg80211_ap_set_encryption(): Stop using
param->u.crypt.alg
staging: rtl8723au: rtw_cfg80211_ap_set_encryption(): Use
keyparms->cipher to set WEP size
staging: rtl8723au: rtw_cfg80211_set_encryption(): Pass additional
struct key_params
staging: rtl8723au: rtw_cfg80211_set_encryption(): Obtain key_len from
struct key_params
staging: rtl8723au: rtw_cfg80211_set_encryption(): Use
key_params->cipher
staging: rtl8723au: rtw_cfg80211_set_encryption(): Obtain key from
key_params->key
staging: rtl8723au: rtw_cfg80211_set_encryption(): Pass key_index as
argument
staging: rtl8723au: rtw_cfg80211_ap_set_encryption(): Pass key_index
argument
staging: rtl8723au: rtw_cfg80211_ap_set_encryption(): obtain key from
key_params
staging: rtl8723au: rtw_cfg80211_{ap_}set_encryption(): Add set_tx
argument
staging: rtl8723au: Stop setting ieee_parm arguments that aren't used
staging: rtl8723au: rtw_cfg80211_{ap_}set_encryption(): No more string
parsing to determine cipher
staging: rtl8723au: rtw_cfg80211_{ap_}set_encryption(): Add sta_addr
argument
staging: rtl8723au: rtw_cfg80211_{ap_}set_encryption(): Stop passing
ieee_parms argument
staging: rtl8723au: Remove obsolete struct ieee_parm
staging: rtl8723au: Validate keys in cfg80211_rtw_add_key()
staging: rtl8723au: Eliminate set_wep_key() and call set_group_key()
directly
staging: rtl8723au: rtw_restruct_wmm_ie23a(): Use
cfg80211_find_vendor_ie()
staging: rtl8723au: rtw_append_pmkid(): Adjust for IEs array not
arrying fixed elements
staging: rtl8723au: Only validate vendor specific ies, when they it is
vendor specific
staging: rtl8723au: OnAssocReq23a(): Use cfg80211_find_vendor_ie() to
locate VMM
drivers/staging/rtl8723au/core/rtw_ap.c | 85 ++-
drivers/staging/rtl8723au/core/rtw_ieee80211.c | 51 +-
drivers/staging/rtl8723au/core/rtw_mlme.c | 80 +--
drivers/staging/rtl8723au/core/rtw_mlme_ext.c | 202 ++++---
drivers/staging/rtl8723au/core/rtw_wlan_util.c | 29 +-
drivers/staging/rtl8723au/hal/rtl8723a_cmd.c | 44 +-
drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c | 2 -
drivers/staging/rtl8723au/hal/rtl8723a_xmit.c | 21 -
drivers/staging/rtl8723au/include/ieee80211.h | 53 +-
drivers/staging/rtl8723au/include/rtl8723a_cmd.h | 2 -
drivers/staging/rtl8723au/include/rtl8723a_xmit.h | 1 -
drivers/staging/rtl8723au/include/rtw_ap.h | 3 +-
drivers/staging/rtl8723au/include/wifi.h | 30 --
drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c | 622 ++++++++--------------
14 files changed, 413 insertions(+), 812 deletions(-)
--
1.9.3
_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel