Commit 58af5800 authored by Jesper Juhl's avatar Jesper Juhl Committed by Greg Kroah-Hartman

drivers/staging/rtl8192u: 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: default avatarJesper Juhl <jj@chaosbits.net>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 74d556bc
...@@ -2416,8 +2416,8 @@ extern int ieee80211_wx_set_mlme(struct ieee80211_device *ieee, ...@@ -2416,8 +2416,8 @@ extern int ieee80211_wx_set_mlme(struct ieee80211_device *ieee,
extern int ieee80211_wx_set_gen_ie(struct ieee80211_device *ieee, u8 *ie, size_t len); extern 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);
......
...@@ -31,14 +31,14 @@ u8 rsn_authen_cipher_suite[16][4] = { ...@@ -31,14 +31,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
...@@ -718,7 +718,7 @@ static struct sk_buff* ieee80211_probe_resp(struct ieee80211_device *ieee, u8 *d ...@@ -718,7 +718,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;
...@@ -1333,7 +1333,7 @@ void ieee80211_associate_complete_wq(struct work_struct *work) ...@@ -1333,7 +1333,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 = 108; ieee->rate = 108;
...@@ -1489,7 +1489,7 @@ inline void ieee80211_softmac_new_net(struct ieee80211_device *ieee, struct ieee ...@@ -1489,7 +1489,7 @@ inline void ieee80211_softmac_new_net(struct ieee80211_device *ieee, struct ieee
ieee->state = IEEE80211_ASSOCIATING; ieee->state = IEEE80211_ASSOCIATING;
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 = 108; ieee->rate = 108;
ieee->SetWirelessMode(ieee->dev, IEEE_G); ieee->SetWirelessMode(ieee->dev, IEEE_G);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment