patch "staging: rtl8192e: fix 2 byte alignment of register BSSIDR." added to staging-linus
Subsystems (2)
This is a note to let you know that I've just added the patch titled
staging: rtl8192e: fix 2 byte alignment of register BSSIDR.
to my staging git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git
in the staging-linus branch.
The patch will show up in the next release of the linux-next tree (usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the next -rc kernel release.
If you have any questions about this process, please let me know.
Quoted 1 line
From
867510bde14e7b7fc6dd0f50b48f6753cfbd227aMon Sep 17 00:00:00 2001
From: Malcolm Priestley <[email protected]>
Date: Thu, 11 May 2017 18:57:44 +0100
Subject: staging: rtl8192e: fix 2 byte alignment of register BSSIDR.
BSSIDR has two byte alignment on PCI ioremap correct the write by swapping to 16 bits first.
This fixes a problem that the device associates fail because the filter is not set correctly.
--- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)
drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c +5 -4
@@ -97,8 +97,9 @@ void rtl92e_set_reg(struct net_device *dev, u8 variable, u8 *val)switch (variable) {case HW_VAR_BSSID : -rtl92e_writel (dev,BSSIDR , ((u32 *)(val))[0 ]); -rtl92e_writew (dev,BSSIDR +2 , ((u16 *)(val+2 ))[0 ]); +/* BSSIDR 2 byte alignment */ +rtl92e_writew (dev,BSSIDR , *(u16 *)val); +rtl92e_writel (dev,BSSIDR +2 , *(u32 *)(val +2 ));break ;case HW_VAR_MEDIA_STATUS :
@@ -961,8 +962,8 @@ static void _rtl92e_net_update(struct net_device *dev)rtl92e_config_rate (dev, &rate_config); priv->dot11CurrentPreambleMode =PREAMBLE_AUTO ; priv->basic_rate = rate_config &=0x15f ; -rtl92e_writel (dev,BSSIDR , ((u32 *)net->bssid)[0 ]); -rtl92e_writew (dev,BSSIDR +4 , ((u16 *)net->bssid)[2 ]); +rtl92e_writew (dev,BSSIDR , *(u16 *)net->bssid); +rtl92e_writel (dev,BSSIDR +2 , *(u32 *)(net->bssid +2 ));if (priv->rtllib->iw_mode ==IW_MODE_ADHOC ) {rtl92e_writew (dev,ATIMWND ,2 );
Signature · 1 line
2.13.0