Staging: rtl8192e: fix for stack bug
authorGreg Kroah-Hartman <gregkh@suse.de>
Thu, 20 Aug 2009 13:14:22 +0000 (06:14 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 15 Sep 2009 19:02:32 +0000 (12:02 -0700)
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>
drivers/staging/rtl8192e/ieee80211/ieee80211_softmac_wx.c
drivers/staging/rtl8192e/ieee80211/ieee80211_wx.c
drivers/staging/rtl8192e/r8192_pm.c

index 7fcda9ba7964fc79981080009e17a261d403a804..7c21aaab906345ddc6ffe00a208987889a25cbb2 100644 (file)
@@ -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;
 }
 
index 7162f61edfafe476146229e8acc5e490c8690972..223483126b0e774975472a6352754b81c2162a34 100644 (file)
@@ -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;
index f898a19fe3fd7dd7f82fd26b191447fbd0f77c65..feef29b0a8939335966a62f166b5acd6c89aad3f 100644 (file)
@@ -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;