aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@suse.de>2009-08-20 06:14:22 -0700
committerGreg Kroah-Hartman <gregkh@suse.de>2009-09-15 12:02:32 -0700
commit3ef5a262ad0061d6147da7e3ee03aead7c160d91 (patch)
tree73c907612c251150cb4d08901ab4ba6c06ff0e77
parent54fb0579b9a35101b01d7b277a933e6af200ae88 (diff)
Staging: rtl8192e: fix for stack bug
This should be a fix for the lockup bug when attaching to an access point. Patch came from a diff from RealTek. Hopefully it resolves the issue. Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/staging/rtl8192e/ieee80211/ieee80211_softmac_wx.c16
-rw-r--r--drivers/staging/rtl8192e/ieee80211/ieee80211_wx.c2
-rw-r--r--drivers/staging/rtl8192e/r8192_pm.c9
3 files changed, 11 insertions, 16 deletions
diff --git a/drivers/staging/rtl8192e/ieee80211/ieee80211_softmac_wx.c b/drivers/staging/rtl8192e/ieee80211/ieee80211_softmac_wx.c
index 7fcda9ba796..7c21aaab906 100644
--- a/drivers/staging/rtl8192e/ieee80211/ieee80211_softmac_wx.c
+++ b/drivers/staging/rtl8192e/ieee80211/ieee80211_softmac_wx.c
@@ -530,22 +530,12 @@ int ieee80211_wx_get_name(struct ieee80211_device *ieee,
union iwreq_data *wrqu, char *extra)
{
strcpy(wrqu->name, "802.11");
- if(ieee->modulation & IEEE80211_CCK_MODULATION){
+ if(ieee->modulation & IEEE80211_CCK_MODULATION)
strcat(wrqu->name, "b");
- if(ieee->modulation & IEEE80211_OFDM_MODULATION)
- strcat(wrqu->name, "/g");
- }else if(ieee->modulation & IEEE80211_OFDM_MODULATION)
+ if(ieee->modulation & IEEE80211_OFDM_MODULATION)
strcat(wrqu->name, "g");
if (ieee->mode & (IEEE_N_24G | IEEE_N_5G))
- strcat(wrqu->name, "/n");
-
- if((ieee->state == IEEE80211_LINKED) ||
- (ieee->state == IEEE80211_LINKED_SCANNING))
- strcat(wrqu->name," linked");
- else if(ieee->state != IEEE80211_NOLINK)
- strcat(wrqu->name," link..");
-
-
+ strcat(wrqu->name, "n");
return 0;
}
diff --git a/drivers/staging/rtl8192e/ieee80211/ieee80211_wx.c b/drivers/staging/rtl8192e/ieee80211/ieee80211_wx.c
index 7162f61edfa..223483126b0 100644
--- a/drivers/staging/rtl8192e/ieee80211/ieee80211_wx.c
+++ b/drivers/staging/rtl8192e/ieee80211/ieee80211_wx.c
@@ -843,7 +843,7 @@ int ieee80211_wx_get_encode_ext(struct ieee80211_device *ieee,
} else
idx = ieee->tx_keyidx;
- if (!ext->ext_flags & IW_ENCODE_EXT_GROUP_KEY &&
+ if (!(ext->ext_flags & IW_ENCODE_EXT_GROUP_KEY) &&
ext->alg != IW_ENCODE_ALG_WEP)
if (idx != 0 || ieee->iw_mode != IW_MODE_INFRA)
return -EINVAL;
diff --git a/drivers/staging/rtl8192e/r8192_pm.c b/drivers/staging/rtl8192e/r8192_pm.c
index f898a19fe3f..feef29b0a89 100644
--- a/drivers/staging/rtl8192e/r8192_pm.c
+++ b/drivers/staging/rtl8192e/r8192_pm.c
@@ -34,7 +34,9 @@ int rtl8192E_suspend (struct pci_dev *pdev, pm_message_t state)
if (!netif_running(dev))
goto out_pci_suspend;
- dev->stop(dev);
+ if (dev->netdev_ops->ndo_stop)
+ dev->netdev_ops->ndo_stop(dev);
+// dev->stop(dev);
#if 0
netif_carrier_off(dev);
@@ -150,7 +152,10 @@ int rtl8192E_resume (struct pci_dev *pdev)
netif_device_attach(dev);
- dev->open(dev);
+ if (dev->netdev_ops->ndo_open)
+ dev->netdev_ops->ndo_open(dev);
+
+// dev->open(dev);
out:
RT_TRACE(COMP_POWER, "<================r8192E resume call.\n");
return 0;