diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2009-08-20 06:14:22 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-09-15 12:02:32 -0700 |
commit | 3ef5a262ad0061d6147da7e3ee03aead7c160d91 (patch) | |
tree | 73c907612c251150cb4d08901ab4ba6c06ff0e77 | |
parent | 54fb0579b9a35101b01d7b277a933e6af200ae88 (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.c | 16 | ||||
-rw-r--r-- | drivers/staging/rtl8192e/ieee80211/ieee80211_wx.c | 2 | ||||
-rw-r--r-- | drivers/staging/rtl8192e/r8192_pm.c | 9 |
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; |