On Wed, 2015-03-18 at 21:40 -0600, Pat Fruth wrote:
> This patch addresses an issue specific to Apple devices experiencing a 
> wireless disconnect when trying to associate with either 2.4Ghz or 5Ghz wifi 
> of a Linksys WRT1900AC router.
> Apple devices (MacBooks running Mac OS X 10.10.x Yosemite in particular, but 
> there may be others), appear to re-auth/re-associate within approximately 25 
> seconds of initially associating.
> Evidence of this can be seen by the presence of an entry similar to the 
> following in the Apple system logs;
>       MM/DD/YY HH:MM:SS.sss AM kernel[0]: wl0: Roamed or switched channel, 
> reason #8, bssid xx:xx:xx:xx:xx:xx
> The Marvell wifi driver doesn’t generate a NL80211_CMD_FRAME_TX_STATUS event 
> on transmitting a response to auth and/or reassociate requests.  Thus, the 
> respective callback handler functions (in hostapd’s ieee802_11.c) never get 
> driven, ultimately leading to the problem.
> The patch causes a TX_STATUS event to be generated for auth and reassociate 
> request’s responses, in addition to associate request’s responses.
> 
> Signed-off-by: Pat Fruth <p...@patfruth.comt>
> ---
>  .../mwlwifi/patches/002_TX-STATUS-for-reassoc-auth.patch   | 14 
> ++++++++++++++
>  1 file changed, 14 insertions(+)
>  create mode 100644 
> package/kernel/mwlwifi/patches/002_TX-STATUS-for-reassoc-auth.patch
> 
> diff --git 
> a/package/kernel/mwlwifi/patches/002_TX-STATUS-for-reassoc-auth.patch 
> b/package/kernel/mwlwifi/patches/002_TX-STATUS-for-reassoc-auth.patch
> new file mode 100644
> index 0000000..5f0d7fb
> --- /dev/null
> +++ b/package/kernel/mwlwifi/patches/002_TX-STATUS-for-reassoc-auth.patch
> @@ -0,0 +1,14 @@
> +--- a/mwl_tx.c
> ++++ b/mwl_tx.c
> +@@ -395,7 +395,10 @@ void mwl_tx_done(unsigned long data)
> + 
> +                             tr = (struct mwl_dma_data *)done_skb->data;
> + 
> +-                            if 
> (ieee80211_is_assoc_resp(tr->wh.frame_control)) {
> ++                            // if 
> (ieee80211_is_assoc_resp(tr->wh.frame_control)) {
> ++                            if 
> (ieee80211_is_assoc_resp(tr->wh.frame_control) ||
> ++                                
> ieee80211_is_reassoc_resp(tr->wh.frame_control) ||
> ++                                ieee80211_is_auth(tr->wh.frame_control)) {
> + 
> +                                     /* Remove H/W dma header
> +                                     */

I don't think there's anything to be gained by commenting out the
original line. It only adds extra noise and the change that's been made
is evident from the log.

Ian
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to