mac80211: Deinline drv_sta_rc_update()
authorDenys Vlasenko <dvlasenk@redhat.com>
Fri, 18 Sep 2015 13:19:35 +0000 (15:19 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 29 Sep 2015 13:56:45 +0000 (15:56 +0200)
With this .config: http://busybox.net/~vda/kernel_config_ALLYES_Os,
after deinlining the function size is 706 bytes and there are
2 callsites, reducing code size by about 700 bytes.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
CC: John Linville <linville@tuxdriver.com>
CC: Michal Kazior <michal.kazior@tieto.com>
CC: Johannes Berg <johannes.berg@intel.com>
CC: linux-wireless@vger.kernel.org
CC: linux-kernel@vger.kernel.org
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/driver-ops.c
net/mac80211/driver-ops.h

index b28e66c..b85f6ff 100644 (file)
@@ -40,6 +40,26 @@ int drv_sta_state(struct ieee80211_local *local,
        return ret;
 }
 
+void drv_sta_rc_update(struct ieee80211_local *local,
+                      struct ieee80211_sub_if_data *sdata,
+                      struct ieee80211_sta *sta, u32 changed)
+{
+       sdata = get_bss_sdata(sdata);
+       if (!check_sdata_in_driver(sdata))
+               return;
+
+       WARN_ON(changed & IEEE80211_RC_SUPP_RATES_CHANGED &&
+               (sdata->vif.type != NL80211_IFTYPE_ADHOC &&
+                sdata->vif.type != NL80211_IFTYPE_MESH_POINT));
+
+       trace_drv_sta_rc_update(local, sdata, sta, changed);
+       if (local->ops->sta_rc_update)
+               local->ops->sta_rc_update(&local->hw, &sdata->vif,
+                                         sta, changed);
+
+       trace_drv_return_void(local);
+}
+
 int drv_conf_tx(struct ieee80211_local *local,
                struct ieee80211_sub_if_data *sdata, u16 ac,
                const struct ieee80211_tx_queue_params *params)
index 6cc6bd4..2937bcb 100644 (file)
@@ -596,25 +596,9 @@ int drv_sta_state(struct ieee80211_local *local,
                  enum ieee80211_sta_state old_state,
                  enum ieee80211_sta_state new_state);
 
-static inline void drv_sta_rc_update(struct ieee80211_local *local,
-                                    struct ieee80211_sub_if_data *sdata,
-                                    struct ieee80211_sta *sta, u32 changed)
-{
-       sdata = get_bss_sdata(sdata);
-       if (!check_sdata_in_driver(sdata))
-               return;
-
-       WARN_ON(changed & IEEE80211_RC_SUPP_RATES_CHANGED &&
-               (sdata->vif.type != NL80211_IFTYPE_ADHOC &&
-                sdata->vif.type != NL80211_IFTYPE_MESH_POINT));
-
-       trace_drv_sta_rc_update(local, sdata, sta, changed);
-       if (local->ops->sta_rc_update)
-               local->ops->sta_rc_update(&local->hw, &sdata->vif,
-                                         sta, changed);
-
-       trace_drv_return_void(local);
-}
+void drv_sta_rc_update(struct ieee80211_local *local,
+                      struct ieee80211_sub_if_data *sdata,
+                      struct ieee80211_sta *sta, u32 changed);
 
 static inline void drv_sta_rate_tbl_update(struct ieee80211_local *local,
                                           struct ieee80211_sub_if_data *sdata,