[PATCH 00/43] staging: rtl8723au: Clean up becaon frame handling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Jes Sorensen <Jes.Sorensen@xxxxxxxxxx>

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
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel




[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux