OpenCloudOS-Kernel/drivers/net/wireless/iwlwifi
Johannes Berg 94597ab23e iwlagn: fix rts cts protection
Currently the driver will try to protect all frames,
which leads to a lot of odd things like sending an
RTS with a zeroed RA before multicast frames, which
is clearly bogus.

In order to fix all of this, we need to take a step
back and see what we need to achieve:
 * we need RTS/CTS protection if requested by
   the AP for the BSS, mac80211 tells us this
 * in that case, CTS-to-self should only be
   enabled when mac80211 tells us
 * additionally, as a hardware workaround, on
   some devices we have to protect aggregated
   frames with RTS

To achieve the first two items, set up the RXON
accordingly and set the protection required flag
in the transmit command when mac80211 requests
protection for the frame.

To achieve the last item, set the rate-control
RTS-requested flag for all stations that we have
aggregation sessions with, and set the protection
required flag when sending aggregated frames (on
those devices where this is required).

Since otherwise bugs can occur, do not allow the
user to override the RTS-for-aggregation setting
from sysfs any more.

Finally, also clean up the way all these flags get
set in the driver and move everything into the
device-specific functions.

Cc: stable@kernel.org [2.6.35]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2010-08-09 15:18:57 -04:00
..
Kconfig iwlagn: more generic description for iwlagn devices 2010-07-09 10:17:09 -07:00
Makefile iwlwifi: move calibration from iwlcore to iwlagn 2010-06-21 10:47:32 -07:00
iwl-1000.c iwlagn: fix rts cts protection 2010-08-09 15:18:57 -04:00
iwl-3945-debugfs.c iwlwifi: separate statistics flag function for agn & 3945 2010-05-13 10:42:55 -07:00
iwl-3945-debugfs.h iwl3945: add ucode statistics 2010-04-30 15:34:31 -07:00
iwl-3945-fh.h drivers/net: use __packed annotation 2010-06-03 03:18:23 -07:00
iwl-3945-hw.h drivers/net: use __packed annotation 2010-06-03 03:18:23 -07:00
iwl-3945-led.c
iwl-3945-led.h
iwl-3945-rs.c drivers/net: Remove unnecessary returns from void function()s 2010-05-14 00:19:28 -07:00
iwl-3945.c iwlagn: fix rts cts protection 2010-08-09 15:18:57 -04:00
iwl-3945.h iwlwifi: track station IDs 2010-05-10 15:09:04 -07:00
iwl-4965-hw.h drivers/net: use __packed annotation 2010-06-03 03:18:23 -07:00
iwl-4965.c iwlagn: fix rts cts protection 2010-08-09 15:18:57 -04:00
iwl-5000-hw.h
iwl-5000.c iwlagn: fix rts cts protection 2010-08-09 15:18:57 -04:00
iwl-6000-hw.h
iwl-6000.c iwlagn: fix rts cts protection 2010-08-09 15:18:57 -04:00
iwl-agn-calib.c iwlagn: Add support for bluetooth statistics notification 2010-07-23 08:41:18 -07:00
iwl-agn-debugfs.c iwlagn: fix typo in ucode_bt_stats_read debugfs 2010-08-04 15:27:38 -04:00
iwl-agn-debugfs.h iwlagn: add bluetooth stats to debugfs 2010-07-23 08:41:32 -07:00
iwl-agn-hcmd.c iwlagn: fix rts cts protection 2010-08-09 15:18:57 -04:00
iwl-agn-hw.h drivers/net: use __packed annotation 2010-06-03 03:18:23 -07:00
iwl-agn-ict.c wireless: update gfp/slab.h includes 2010-05-24 14:59:26 -04:00
iwl-agn-led.c
iwl-agn-led.h
iwl-agn-lib.c iwlwifi: fix locking assertions 2010-08-06 13:53:58 -04:00
iwl-agn-rs.c iwlagn: Improve aggregation failure error messages 2010-08-04 15:30:55 -04:00
iwl-agn-rs.h
iwl-agn-rx.c iwlagn: Add support for bluetooth statistics notification 2010-07-23 08:41:18 -07:00
iwl-agn-tx.c iwlagn: fix rts cts protection 2010-08-09 15:18:57 -04:00
iwl-agn-ucode.c iwlwifi: move ucode related function to iwl-agn-ucode.c 2010-05-13 10:45:36 -07:00
iwl-agn.c iwlagn: fix rts cts protection 2010-08-09 15:18:57 -04:00
iwl-agn.h iwlwifi: enable 6050 series Gen2 devices 2010-07-09 10:16:39 -07:00
iwl-calib.h iwlagn: Add support for bluetooth statistics notification 2010-07-23 08:41:18 -07:00
iwl-commands.h Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/holtmann/bluetooth-next-2.6 2010-07-27 11:59:19 -04:00
iwl-core.c iwlagn: fix rts cts protection 2010-08-09 15:18:57 -04:00
iwl-core.h iwlagn: fix rts cts protection 2010-08-09 15:18:57 -04:00
iwl-csr.h iwlwifi: enable 6050 series Gen2 devices 2010-07-09 10:16:39 -07:00
iwl-debug.h iwlwifi: fix compile warning 2010-08-04 15:27:37 -04:00
iwl-debugfs.c iwlagn: add bluetooth stats to debugfs 2010-07-23 08:41:32 -07:00
iwl-dev.h Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/holtmann/bluetooth-next-2.6 2010-07-27 11:59:19 -04:00
iwl-devtrace.c
iwl-devtrace.h iwlwifi: fix TX tracer 2010-08-06 13:53:58 -04:00
iwl-eeprom.c iwlwifi: enable DC calibration based on config parameter 2010-06-25 14:52:18 -07:00
iwl-eeprom.h Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/holtmann/bluetooth-next-2.6 2010-07-27 11:59:19 -04:00
iwl-fh.h Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem 2010-07-13 15:57:29 -04:00
iwl-hcmd.c iwlwifi: tx fifo queue flush command 2010-07-02 11:10:15 -07:00
iwl-helpers.h iwlwifi: beacon format related helper function 2010-06-05 23:15:49 -07:00
iwl-io.h
iwl-led.c
iwl-led.h
iwl-power.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem 2010-05-17 13:57:43 -04:00
iwl-power.h
iwl-prph.h
iwl-rx.c iwlwifi: fix fw_restart module parameter 2010-07-02 11:08:52 -07:00
iwl-scan.c iwlwifi: fix locking assertions 2010-08-06 13:53:58 -04:00
iwl-spectrum.h drivers/net: use __packed annotation 2010-06-03 03:18:23 -07:00
iwl-sta.c iwlwifi: fix locking assertions 2010-08-06 13:53:58 -04:00
iwl-sta.h Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2010-07-13 15:31:51 -04:00
iwl-tx.c iwlwifi: kzalloc txb array 2010-06-05 23:18:11 -07:00
iwl3945-base.c iwlagn: fix rts cts protection 2010-08-09 15:18:57 -04:00