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 <dvlas...@redhat.com>
CC: John Linville <linvi...@tuxdriver.com>
CC: Michal Kazior <michal.kaz...@tieto.com>
CC: Johannes Berg <johannes.b...@intel.com>
CC: linux-wireless@vger.kernel.org
CC: linux-ker...@vger.kernel.org
---
 net/mac80211/driver-ops.c | 20 ++++++++++++++++++++
 net/mac80211/driver-ops.h | 22 +++-------------------
 2 files changed, 23 insertions(+), 19 deletions(-)

diff --git a/net/mac80211/driver-ops.c b/net/mac80211/driver-ops.c
index b28e66ca..b85f6ff 100644
--- a/net/mac80211/driver-ops.c
+++ b/net/mac80211/driver-ops.c
@@ -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)
diff --git a/net/mac80211/driver-ops.h b/net/mac80211/driver-ops.h
index bac456b..fdde11e 100644
--- a/net/mac80211/driver-ops.h
+++ b/net/mac80211/driver-ops.h
@@ -580,25 +580,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,
-- 
1.8.1.4

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to