drivers/staging/rtl8187se: Don't pass huge struct by value
authorJesper Juhl <jj@chaosbits.net>
Fri, 12 Aug 2011 22:51:40 +0000 (00:51 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 23 Aug 2011 21:46:05 +0000 (14:46 -0700)
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>
drivers/staging/rtl8187se/ieee80211/ieee80211.h
drivers/staging/rtl8187se/ieee80211/ieee80211_softmac.c
drivers/staging/rtl8187se/r8180_rtl8225z2.c

index e79a7e2129796e144d3ec4a823f45238a983ec6c..40dd715d9df7bd6d9c18965a8441ca13ce74b0cd 100644 (file)
@@ -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);
 /* ieee80211_softmac.c */
-extern short ieee80211_is_54g(struct ieee80211_network net);
-extern short ieee80211_is_shortslot(struct ieee80211_network net);
+extern short ieee80211_is_54g(const 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,
                        struct ieee80211_rx_stats *rx_stats, u16 type,
                        u16 stype);
index 38e67f0bf6246381ff29d2c569c925a6c028de46..26bacb96d2478856e155546de5e6be0bc8420196 100644 (file)
@@ -32,14 +32,14 @@ u8 rsn_authen_cipher_suite[16][4] = {
        {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
@@ -789,7 +789,7 @@ static struct sk_buff* ieee80211_probe_resp(struct ieee80211_device *ieee, u8 *d
        else
                atim_len = 0;
 
-       if(ieee80211_is_54g(ieee->current_network))
+       if(ieee80211_is_54g(&ieee->current_network))
                erp_len = 3;
        else
                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);
 
        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->rate = 540;
@@ -1379,7 +1379,7 @@ inline void ieee80211_softmac_new_net(struct ieee80211_device *ieee, struct ieee
                                ieee->beinretry = false;
                                queue_work(ieee->wq, &ieee->associate_procedure_wq);
                        }else{
-                               if(ieee80211_is_54g(ieee->current_network) &&
+                               if(ieee80211_is_54g(&ieee->current_network) &&
                                                (ieee->modulation & IEEE80211_OFDM_MODULATION)){
                                        ieee->rate = 540;
                                        printk(KERN_INFO"Using G rates\n");
index 3f09f76080afc6fa3ca997f747479aaf538c02bf..ee5b867fd0d41f34f0723ab5e6ba0f9b9da61b02 100644 (file)
@@ -596,7 +596,7 @@ static void rtl8225_rf_set_chan(struct net_device *dev, short ch)
 {
        struct r8180_priv *priv = ieee80211_priv(dev);
        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;
 
        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 &&
-           ieee80211_is_shortslot(priv->ieee80211->current_network))
+           ieee80211_is_shortslot(&priv->ieee80211->current_network))
                write_nic_byte(dev, SLOT, 0x9);
        else
                write_nic_byte(dev, SLOT, 0x14);