mac80211: Deinline drv_conf_tx()
[cascardo/linux.git] / net / mac80211 / driver-ops.h
index 32a2e70..6cc6bd4 100644 (file)
@@ -260,6 +260,22 @@ static inline void drv_configure_filter(struct ieee80211_local *local,
        trace_drv_return_void(local);
 }
 
+static inline void drv_config_iface_filter(struct ieee80211_local *local,
+                                          struct ieee80211_sub_if_data *sdata,
+                                          unsigned int filter_flags,
+                                          unsigned int changed_flags)
+{
+       might_sleep();
+
+       trace_drv_config_iface_filter(local, sdata, filter_flags,
+                                     changed_flags);
+       if (local->ops->config_iface_filter)
+               local->ops->config_iface_filter(&local->hw, &sdata->vif,
+                                               filter_flags,
+                                               changed_flags);
+       trace_drv_return_void(local);
+}
+
 static inline int drv_set_tim(struct ieee80211_local *local,
                              struct ieee80211_sta *sta, bool set)
 {
@@ -573,37 +589,12 @@ static inline void drv_sta_pre_rcu_remove(struct ieee80211_local *local,
        trace_drv_return_void(local);
 }
 
-static inline __must_check
+__must_check
 int drv_sta_state(struct ieee80211_local *local,
                  struct ieee80211_sub_if_data *sdata,
                  struct sta_info *sta,
                  enum ieee80211_sta_state old_state,
-                 enum ieee80211_sta_state new_state)
-{
-       int ret = 0;
-
-       might_sleep();
-
-       sdata = get_bss_sdata(sdata);
-       if (!check_sdata_in_driver(sdata))
-               return -EIO;
-
-       trace_drv_sta_state(local, sdata, &sta->sta, old_state, new_state);
-       if (local->ops->sta_state) {
-               ret = local->ops->sta_state(&local->hw, &sdata->vif, &sta->sta,
-                                           old_state, new_state);
-       } else if (old_state == IEEE80211_STA_AUTH &&
-                  new_state == IEEE80211_STA_ASSOC) {
-               ret = drv_sta_add(local, sdata, &sta->sta);
-               if (ret == 0)
-                       sta->uploaded = true;
-       } else if (old_state == IEEE80211_STA_ASSOC &&
-                  new_state == IEEE80211_STA_AUTH) {
-               drv_sta_remove(local, sdata, &sta->sta);
-       }
-       trace_drv_return_int(local, ret);
-       return ret;
-}
+                 enum ieee80211_sta_state new_state);
 
 static inline void drv_sta_rc_update(struct ieee80211_local *local,
                                     struct ieee80211_sub_if_data *sdata,
@@ -655,30 +646,9 @@ static inline void drv_sta_statistics(struct ieee80211_local *local,
        trace_drv_return_void(local);
 }
 
-static inline int drv_conf_tx(struct ieee80211_local *local,
-                             struct ieee80211_sub_if_data *sdata, u16 ac,
-                             const struct ieee80211_tx_queue_params *params)
-{
-       int ret = -EOPNOTSUPP;
-
-       might_sleep();
-
-       if (!check_sdata_in_driver(sdata))
-               return -EIO;
-
-       if (WARN_ONCE(params->cw_min == 0 ||
-                     params->cw_min > params->cw_max,
-                     "%s: invalid CW_min/CW_max: %d/%d\n",
-                     sdata->name, params->cw_min, params->cw_max))
-               return -EINVAL;
-
-       trace_drv_conf_tx(local, sdata, ac, params);
-       if (local->ops->conf_tx)
-               ret = local->ops->conf_tx(&local->hw, &sdata->vif,
-                                         ac, params);
-       trace_drv_return_int(local, ret);
-       return ret;
-}
+int drv_conf_tx(struct ieee80211_local *local,
+               struct ieee80211_sub_if_data *sdata, u16 ac,
+               const struct ieee80211_tx_queue_params *params);
 
 static inline u64 drv_get_tsf(struct ieee80211_local *local,
                              struct ieee80211_sub_if_data *sdata)
@@ -743,7 +713,7 @@ static inline int drv_ampdu_action(struct ieee80211_local *local,
                                   struct ieee80211_sub_if_data *sdata,
                                   enum ieee80211_ampdu_mlme_action action,
                                   struct ieee80211_sta *sta, u16 tid,
-                                  u16 *ssn, u8 buf_size)
+                                  u16 *ssn, u8 buf_size, bool amsdu)
 {
        int ret = -EOPNOTSUPP;
 
@@ -753,11 +723,12 @@ static inline int drv_ampdu_action(struct ieee80211_local *local,
        if (!check_sdata_in_driver(sdata))
                return -EIO;
 
-       trace_drv_ampdu_action(local, sdata, action, sta, tid, ssn, buf_size);
+       trace_drv_ampdu_action(local, sdata, action, sta, tid,
+                              ssn, buf_size, amsdu);
 
        if (local->ops->ampdu_action)
                ret = local->ops->ampdu_action(&local->hw, &sdata->vif, action,
-                                              sta, tid, ssn, buf_size);
+                                              sta, tid, ssn, buf_size, amsdu);
 
        trace_drv_return_int(local, ret);