mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-28 23:24:50 +00:00
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>
This commit is contained in:
parent
54fb0579b9
commit
3ef5a262ad
3 changed files with 11 additions and 16 deletions
|
@ -530,22 +530,12 @@ int ieee80211_wx_get_name(struct ieee80211_device *ieee,
|
||||||
union iwreq_data *wrqu, char *extra)
|
union iwreq_data *wrqu, char *extra)
|
||||||
{
|
{
|
||||||
strcpy(wrqu->name, "802.11");
|
strcpy(wrqu->name, "802.11");
|
||||||
if(ieee->modulation & IEEE80211_CCK_MODULATION){
|
if(ieee->modulation & IEEE80211_CCK_MODULATION)
|
||||||
strcat(wrqu->name, "b");
|
strcat(wrqu->name, "b");
|
||||||
if(ieee->modulation & IEEE80211_OFDM_MODULATION)
|
if(ieee->modulation & IEEE80211_OFDM_MODULATION)
|
||||||
strcat(wrqu->name, "/g");
|
|
||||||
}else if(ieee->modulation & IEEE80211_OFDM_MODULATION)
|
|
||||||
strcat(wrqu->name, "g");
|
strcat(wrqu->name, "g");
|
||||||
if (ieee->mode & (IEEE_N_24G | IEEE_N_5G))
|
if (ieee->mode & (IEEE_N_24G | IEEE_N_5G))
|
||||||
strcat(wrqu->name, "/n");
|
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..");
|
|
||||||
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -843,7 +843,7 @@ int ieee80211_wx_get_encode_ext(struct ieee80211_device *ieee,
|
||||||
} else
|
} else
|
||||||
idx = ieee->tx_keyidx;
|
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)
|
ext->alg != IW_ENCODE_ALG_WEP)
|
||||||
if (idx != 0 || ieee->iw_mode != IW_MODE_INFRA)
|
if (idx != 0 || ieee->iw_mode != IW_MODE_INFRA)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
|
@ -34,7 +34,9 @@ int rtl8192E_suspend (struct pci_dev *pdev, pm_message_t state)
|
||||||
if (!netif_running(dev))
|
if (!netif_running(dev))
|
||||||
goto out_pci_suspend;
|
goto out_pci_suspend;
|
||||||
|
|
||||||
dev->stop(dev);
|
if (dev->netdev_ops->ndo_stop)
|
||||||
|
dev->netdev_ops->ndo_stop(dev);
|
||||||
|
// dev->stop(dev);
|
||||||
#if 0
|
#if 0
|
||||||
|
|
||||||
netif_carrier_off(dev);
|
netif_carrier_off(dev);
|
||||||
|
@ -150,7 +152,10 @@ int rtl8192E_resume (struct pci_dev *pdev)
|
||||||
|
|
||||||
netif_device_attach(dev);
|
netif_device_attach(dev);
|
||||||
|
|
||||||
dev->open(dev);
|
if (dev->netdev_ops->ndo_open)
|
||||||
|
dev->netdev_ops->ndo_open(dev);
|
||||||
|
|
||||||
|
// dev->open(dev);
|
||||||
out:
|
out:
|
||||||
RT_TRACE(COMP_POWER, "<================r8192E resume call.\n");
|
RT_TRACE(COMP_POWER, "<================r8192E resume call.\n");
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in a new issue