drivers/staging/rtl8187se: Don't pass huge struct by value
struct ieee80211_network is fairly large (more than half a kilobyte), so let's pass a pointer instead of passing the entire structure by value when ieee80211_is_54g() and ieee80211_is_shortslot() need to look at a few members. Also remove parentheses around the values being returned from those two functions - 'return' is not a function. Signed-off-by: Jesper Juhl <jj@chaosbits.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
9358354858
commit
74d556bc63
|
@ -1339,8 +1339,8 @@ int ieee80211_wx_set_mlme(struct ieee80211_device *ieee,
|
||||||
|
|
||||||
int ieee80211_wx_set_gen_ie(struct ieee80211_device *ieee, u8 *ie, size_t len);
|
int ieee80211_wx_set_gen_ie(struct ieee80211_device *ieee, u8 *ie, size_t len);
|
||||||
/* ieee80211_softmac.c */
|
/* ieee80211_softmac.c */
|
||||||
extern short ieee80211_is_54g(struct ieee80211_network net);
|
extern short ieee80211_is_54g(const struct ieee80211_network *net);
|
||||||
extern short ieee80211_is_shortslot(struct ieee80211_network net);
|
extern short ieee80211_is_shortslot(const struct ieee80211_network *net);
|
||||||
extern int ieee80211_rx_frame_softmac(struct ieee80211_device *ieee, struct sk_buff *skb,
|
extern int ieee80211_rx_frame_softmac(struct ieee80211_device *ieee, struct sk_buff *skb,
|
||||||
struct ieee80211_rx_stats *rx_stats, u16 type,
|
struct ieee80211_rx_stats *rx_stats, u16 type,
|
||||||
u16 stype);
|
u16 stype);
|
||||||
|
|
|
@ -32,14 +32,14 @@ u8 rsn_authen_cipher_suite[16][4] = {
|
||||||
{0x00,0x0F,0xAC,0x05}, //WEP-104
|
{0x00,0x0F,0xAC,0x05}, //WEP-104
|
||||||
};
|
};
|
||||||
|
|
||||||
short ieee80211_is_54g(struct ieee80211_network net)
|
short ieee80211_is_54g(const struct ieee80211_network *net)
|
||||||
{
|
{
|
||||||
return ((net.rates_ex_len > 0) || (net.rates_len > 4));
|
return (net->rates_ex_len > 0) || (net->rates_len > 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
short ieee80211_is_shortslot(struct ieee80211_network net)
|
short ieee80211_is_shortslot(const struct ieee80211_network *net)
|
||||||
{
|
{
|
||||||
return (net.capability & WLAN_CAPABILITY_SHORT_SLOT);
|
return net->capability & WLAN_CAPABILITY_SHORT_SLOT;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* returns the total length needed for pleacing the RATE MFIE
|
/* returns the total length needed for pleacing the RATE MFIE
|
||||||
|
@ -789,7 +789,7 @@ static struct sk_buff* ieee80211_probe_resp(struct ieee80211_device *ieee, u8 *d
|
||||||
else
|
else
|
||||||
atim_len = 0;
|
atim_len = 0;
|
||||||
|
|
||||||
if(ieee80211_is_54g(ieee->current_network))
|
if(ieee80211_is_54g(&ieee->current_network))
|
||||||
erp_len = 3;
|
erp_len = 3;
|
||||||
else
|
else
|
||||||
erp_len = 0;
|
erp_len = 0;
|
||||||
|
@ -1258,7 +1258,7 @@ void ieee80211_associate_complete_wq(struct work_struct *work)
|
||||||
struct ieee80211_device *ieee = container_of(work, struct ieee80211_device, associate_complete_wq);
|
struct ieee80211_device *ieee = container_of(work, struct ieee80211_device, associate_complete_wq);
|
||||||
|
|
||||||
printk(KERN_INFO "Associated successfully\n");
|
printk(KERN_INFO "Associated successfully\n");
|
||||||
if(ieee80211_is_54g(ieee->current_network) &&
|
if(ieee80211_is_54g(&ieee->current_network) &&
|
||||||
(ieee->modulation & IEEE80211_OFDM_MODULATION)){
|
(ieee->modulation & IEEE80211_OFDM_MODULATION)){
|
||||||
|
|
||||||
ieee->rate = 540;
|
ieee->rate = 540;
|
||||||
|
@ -1379,7 +1379,7 @@ inline void ieee80211_softmac_new_net(struct ieee80211_device *ieee, struct ieee
|
||||||
ieee->beinretry = false;
|
ieee->beinretry = false;
|
||||||
queue_work(ieee->wq, &ieee->associate_procedure_wq);
|
queue_work(ieee->wq, &ieee->associate_procedure_wq);
|
||||||
}else{
|
}else{
|
||||||
if(ieee80211_is_54g(ieee->current_network) &&
|
if(ieee80211_is_54g(&ieee->current_network) &&
|
||||||
(ieee->modulation & IEEE80211_OFDM_MODULATION)){
|
(ieee->modulation & IEEE80211_OFDM_MODULATION)){
|
||||||
ieee->rate = 540;
|
ieee->rate = 540;
|
||||||
printk(KERN_INFO"Using G rates\n");
|
printk(KERN_INFO"Using G rates\n");
|
||||||
|
|
|
@ -596,7 +596,7 @@ static void rtl8225_rf_set_chan(struct net_device *dev, short ch)
|
||||||
{
|
{
|
||||||
struct r8180_priv *priv = ieee80211_priv(dev);
|
struct r8180_priv *priv = ieee80211_priv(dev);
|
||||||
short gset = (priv->ieee80211->state == IEEE80211_LINKED &&
|
short gset = (priv->ieee80211->state == IEEE80211_LINKED &&
|
||||||
ieee80211_is_54g(priv->ieee80211->current_network)) ||
|
ieee80211_is_54g(&priv->ieee80211->current_network)) ||
|
||||||
priv->ieee80211->iw_mode == IW_MODE_MONITOR;
|
priv->ieee80211->iw_mode == IW_MODE_MONITOR;
|
||||||
|
|
||||||
rtl8225_SetTXPowerLevel(dev, ch);
|
rtl8225_SetTXPowerLevel(dev, ch);
|
||||||
|
@ -615,7 +615,7 @@ static void rtl8225_rf_set_chan(struct net_device *dev, short ch)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (priv->ieee80211->state == IEEE80211_LINKED &&
|
if (priv->ieee80211->state == IEEE80211_LINKED &&
|
||||||
ieee80211_is_shortslot(priv->ieee80211->current_network))
|
ieee80211_is_shortslot(&priv->ieee80211->current_network))
|
||||||
write_nic_byte(dev, SLOT, 0x9);
|
write_nic_byte(dev, SLOT, 0x9);
|
||||||
else
|
else
|
||||||
write_nic_byte(dev, SLOT, 0x14);
|
write_nic_byte(dev, SLOT, 0x14);
|
||||||
|
|
Reference in New Issue