staging: rtl8821ae: Pass large struct by const reference
authorRasmus Villemoes <linux@rasmusvillemoes.dk>
Tue, 1 Jul 2014 10:25:44 +0000 (12:25 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 8 Jul 2014 23:51:48 +0000 (16:51 -0700)
struct rtl_stats is rather huge (152 bytes), and since
rtl8812ae_rx_command_packet_handler() does not modify it, it might as
well be passed by const reference.

Reported by Coverity: CID 1167285

Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/rtl8821ae/pci.c
drivers/staging/rtl8821ae/rtl8821ae/sw.c
drivers/staging/rtl8821ae/wifi.h

index e194ffe..f9847d1 100644 (file)
@@ -861,7 +861,7 @@ static void _rtl_pci_rx_interrupt(struct ieee80211_hw *hw)
                        break;
                }
 
-               rtlpriv->cfg->ops->rx_command_packet_handler(hw, status, skb);
+               rtlpriv->cfg->ops->rx_command_packet_handler(hw, &status, skb);
 
                /*
                 *NOTICE This can not be use for mac80211,
index 2621275..115002f 100644 (file)
@@ -227,14 +227,14 @@ void rtl8821ae_deinit_sw_vars(struct ieee80211_hw *hw)
 
 static u32 rtl8812ae_rx_command_packet_handler(
        struct ieee80211_hw *hw,
-       struct rtl_stats status,
+       const struct rtl_stats *status,
        struct sk_buff *skb
        )
 {
        u32 result = 0;
        struct rtl_priv *rtlpriv = rtl_priv(hw);
 
-       switch (status.packet_report_type) {
+       switch (status->packet_report_type) {
                case NORMAL_RX:
                        result = 0;
                        break;
index e8250da..218cd44 100644 (file)
@@ -1853,7 +1853,7 @@ struct rtl_hal_ops {
                             u32 cmd_len, u8 *p_cmdbuffer);
        bool (*get_btc_status)(void);
        u32 (*rx_command_packet_handler)(struct ieee80211_hw *hw,
-                                        struct rtl_stats status,
+                                        const struct rtl_stats *status,
                                         struct sk_buff *skb);
 };