diff options
Diffstat (limited to 'package/mac80211/patches/408-mac80211-remove-agg-debugfs.patch')
-rw-r--r-- | package/mac80211/patches/408-mac80211-remove-agg-debugfs.patch | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/package/mac80211/patches/408-mac80211-remove-agg-debugfs.patch b/package/mac80211/patches/408-mac80211-remove-agg-debugfs.patch new file mode 100644 index 0000000000..5cbab6889a --- /dev/null +++ b/package/mac80211/patches/408-mac80211-remove-agg-debugfs.patch @@ -0,0 +1,98 @@ +Subject: mac80211: remove aggregation status write support from debugfs + +This code uses static variables and thus cannot be kept. + +Signed-off-by: Johannes Berg <johannes@sipsolutions.net> +--- + net/mac80211/debugfs_sta.c | 73 --------------------------------------------- + 1 file changed, 1 insertion(+), 72 deletions(-) + +--- everything.orig/net/mac80211/debugfs_sta.c 2008-10-07 20:06:39.000000000 +0200 ++++ everything/net/mac80211/debugfs_sta.c 2008-10-07 20:06:40.000000000 +0200 +@@ -39,13 +39,6 @@ static const struct file_operations sta_ + .open = mac80211_open_file_generic, \ + } + +-#define STA_OPS_WR(name) \ +-static const struct file_operations sta_ ##name## _ops = { \ +- .read = sta_##name##_read, \ +- .write = sta_##name##_write, \ +- .open = mac80211_open_file_generic, \ +-} +- + #define STA_FILE(name, field, format) \ + STA_READ_##format(name, field) \ + STA_OPS(name) +@@ -168,71 +161,7 @@ static ssize_t sta_agg_status_read(struc + + return simple_read_from_buffer(userbuf, count, ppos, buf, p - buf); + } +- +-static ssize_t sta_agg_status_write(struct file *file, +- const char __user *user_buf, size_t count, loff_t *ppos) +-{ +- struct sta_info *sta = file->private_data; +- struct ieee80211_local *local = sta->sdata->local; +- struct ieee80211_hw *hw = &local->hw; +- u8 *da = sta->sta.addr; +- static int tid_static_tx[16] = {0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0}; +- static int tid_static_rx[16] = {1, 1, 1, 1, 1, 1, 1, 1, +- 1, 1, 1, 1, 1, 1, 1, 1}; +- char *endp; +- char buf[32]; +- int buf_size, rs; +- unsigned int tid_num; +- char state[4]; +- +- memset(buf, 0x00, sizeof(buf)); +- buf_size = min(count, (sizeof(buf)-1)); +- if (copy_from_user(buf, user_buf, buf_size)) +- return -EFAULT; +- +- tid_num = simple_strtoul(buf, &endp, 0); +- if (endp == buf) +- return -EINVAL; +- +- if ((tid_num >= 100) && (tid_num <= 115)) { +- /* toggle Rx aggregation command */ +- tid_num = tid_num - 100; +- if (tid_static_rx[tid_num] == 1) { +- strcpy(state, "off "); +- ieee80211_sta_stop_rx_ba_session(sta->sdata, da, tid_num, 0, +- WLAN_REASON_QSTA_REQUIRE_SETUP); +- sta->ampdu_mlme.tid_state_rx[tid_num] |= +- HT_AGG_STATE_DEBUGFS_CTL; +- tid_static_rx[tid_num] = 0; +- } else { +- strcpy(state, "on "); +- sta->ampdu_mlme.tid_state_rx[tid_num] &= +- ~HT_AGG_STATE_DEBUGFS_CTL; +- tid_static_rx[tid_num] = 1; +- } +- printk(KERN_DEBUG "debugfs - try switching tid %u %s\n", +- tid_num, state); +- } else if ((tid_num >= 0) && (tid_num <= 15)) { +- /* toggle Tx aggregation command */ +- if (tid_static_tx[tid_num] == 0) { +- strcpy(state, "on "); +- rs = ieee80211_start_tx_ba_session(hw, da, tid_num); +- if (rs == 0) +- tid_static_tx[tid_num] = 1; +- } else { +- strcpy(state, "off"); +- rs = ieee80211_stop_tx_ba_session(hw, da, tid_num, 1); +- if (rs == 0) +- tid_static_tx[tid_num] = 0; +- } +- printk(KERN_DEBUG "debugfs - switching tid %u %s, return=%d\n", +- tid_num, state, rs); +- } +- +- return count; +-} +-STA_OPS_WR(agg_status); ++STA_OPS(agg_status); + + #define DEBUGFS_ADD(name) \ + sta->debugfs.name = debugfs_create_file(#name, 0400, \ |