mac80211: remove fragmentation offload functionality
authorJohannes Berg <johannes@sipsolutions.net>
Tue, 9 Dec 2008 11:30:03 +0000 (12:30 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 12 Dec 2008 19:01:33 +0000 (14:01 -0500)
There's no driver that actually does fragmentation on the
device, and the callback is buggy (when it returns an error,
mac80211's fragmentation status is changed so reading the
frag threshold from userspace reads the new value despite
the error). Let's just remove it, if we really find some
hardware supporting it we can add it back later.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
include/net/mac80211.h
net/mac80211/tx.c
net/mac80211/wext.c

index 346f373fb6763bfea5cdf65cd66771a1c359c08e..5ecc686c1f1a117510a87c80fec7a8f73bb51065 100644 (file)
@@ -1258,10 +1258,6 @@ enum ieee80211_ampdu_mlme_action {
  *
  * @set_rts_threshold: Configuration of RTS threshold (if device needs it)
  *
- * @set_frag_threshold: Configuration of fragmentation threshold. Assign this if
- *     the device does fragmentation by itself; if this method is assigned then
- *     the stack will not do fragmentation.
- *
  * @sta_notify: Notifies low level driver about addition or removal of an
  *     associated station, AP, IBSS/WDS/mesh peer etc. Must be atomic.
  *
@@ -1331,7 +1327,6 @@ struct ieee80211_ops {
        void (*get_tkip_seq)(struct ieee80211_hw *hw, u8 hw_key_idx,
                             u32 *iv32, u16 *iv16);
        int (*set_rts_threshold)(struct ieee80211_hw *hw, u32 value);
-       int (*set_frag_threshold)(struct ieee80211_hw *hw, u32 value);
        void (*sta_notify)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
                        enum sta_notify_cmd, struct ieee80211_sta *sta);
        void (*sta_notify_ps)(struct ieee80211_hw *hw,
index d7761e95e4cfa712eca7fe8cb1f800a5cbfa3ed4..b098c58d216f29cb047f986aac4cc740c014212a 100644 (file)
@@ -1001,7 +1001,6 @@ __ieee80211_tx_prepare(struct ieee80211_tx_data *tx,
        if (tx->flags & IEEE80211_TX_FRAGMENTED) {
                if ((tx->flags & IEEE80211_TX_UNICAST) &&
                    skb->len + FCS_LEN > local->fragmentation_threshold &&
-                   !local->ops->set_frag_threshold &&
                    !(info->flags & IEEE80211_TX_CTL_AMPDU))
                        tx->flags |= IEEE80211_TX_FRAGMENTED;
                else
index 4e1fdcfacb0cde01834c6ae6c0d2544b1df92cdc..fbeb927c116bb61a559346af517d9d281af64fe1 100644 (file)
@@ -639,14 +639,6 @@ static int ieee80211_ioctl_siwfrag(struct net_device *dev,
                local->fragmentation_threshold = frag->value & ~0x1;
        }
 
-       /* If the wlan card performs fragmentation in hardware/firmware,
-        * configure it here */
-
-       if (local->ops->set_frag_threshold)
-               return local->ops->set_frag_threshold(
-                       local_to_hw(local),
-                       local->fragmentation_threshold);
-
        return 0;
 }