linux/drivers/net/wireless/iwlwifi
Stanislaw Gruszka 3598e1774c iwlwifi: fix enqueue hcmd race conditions
We mark command as huge by using meta->flags from other (non huge) command,
but flags can be possibly overridden, when non huge command is enqueued,
what can lead to:

WARNING: at lib/dma-debug.c:696 dma_debug_device_change+0x1a3/0x1f0()
DMA-API: device driver has pending DMA allocations while released from device [count=1]

To fix introduce additional CMD_MAPPED to mark command as mapped and
serialize iwl_enqueue_hcmd() with iwl_tx_cmd_complete() using
hcmd_lock. Serialization will also fix possible race conditions,
because q->read_ptr, q->write_ptr are modified/used in parallel.

On the way fix whitespace.

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Acked-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2011-04-07 15:34:11 -04:00
..
iwl-1000.c Merge branch 'wireless-next-2.6' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-2.6 2011-04-04 16:10:36 -04:00
iwl-2000.c iwlagn: clean up TX aggregation code 2011-03-25 06:57:30 -07:00
iwl-5000-hw.h
iwl-5000.c Merge branch 'wireless-next-2.6' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-2.6 2011-04-04 16:10:36 -04:00
iwl-6000-hw.h
iwl-6000.c iwlagn: clean up TX aggregation code 2011-03-25 06:57:30 -07:00
iwl-agn-calib.c iwlwifi: introduce iwl_bt_statistics 2011-01-28 15:46:25 -05:00
iwl-agn-calib.h
iwl-agn-debugfs.c iwlwifi: introduce iwl_bt_statistics 2011-01-28 15:46:25 -05:00
iwl-agn-debugfs.h
iwl-agn-eeprom.c iwlwifi: don't read sku information from EEPROM for 4965 2011-01-21 15:05:57 -05:00
iwl-agn-hcmd.c iwlwifi: replace minimum slot time constant 2011-01-21 15:51:08 -08:00
iwl-agn-hw.h
iwl-agn-ict.c iwlwifi: remove legacy isr tasklet 2011-03-25 06:58:24 -07:00
iwl-agn-led.c iwlwifi: use mac80211 throughput trigger 2011-01-21 15:26:39 -08:00
iwl-agn-led.h iwlwifi: use mac80211 throughput trigger 2011-01-21 15:26:39 -08:00
iwl-agn-lib.c Merge branch 'wireless-next-2.6' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-2.6 2011-04-04 16:10:36 -04:00
iwl-agn-rs.c iwlwifi: add RATE_MCS_RATE_MSK 2011-03-25 06:58:06 -07:00
iwl-agn-rs.h iwl3945: do not use agn specific IWL_RATE_COUNT 2011-01-31 15:06:21 -05:00
iwl-agn-rxon.c iwlagn: fix iwlagn_check_needed_chains 2011-02-25 15:33:39 -05:00
iwl-agn-sta.c
iwl-agn-tt.c
iwl-agn-tt.h
iwl-agn-tx.c iwlwifi: cleanup and bugfix tx aggregation code 2011-03-25 06:57:59 -07:00
iwl-agn-ucode.c iwlwifi: check ucode loading error and restart 2011-01-31 13:17:28 -08:00
iwl-agn.c Merge branch 'wireless-next-2.6' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-2.6 2011-04-04 16:10:36 -04:00
iwl-agn.h iwlwifi: add RATE_MCS_RATE_MSK 2011-03-25 06:58:06 -07:00
iwl-commands.h iwlwifi: set default aggregation frame limit to 63 2011-03-25 06:58:15 -07:00
iwl-core.c iwlwifi: move rx handlers code to iwl-rx.c 2011-03-04 14:06:50 -05:00
iwl-core.h iwlagn: remove deprecated module parameters 2011-03-25 06:58:54 -07:00
iwl-csr.h iwlagn: remove reference to 3945 and 4965 2011-03-25 06:58:47 -07:00
iwl-debug.h iwlwifi: add new EEPROM debug log type 2010-12-13 15:52:39 -08:00
iwl-debugfs.c iwlwifi: split the drivers for agn and legacy devices 3945/4965 2011-02-21 11:27:26 -08:00
iwl-dev.h iwlwifi: fix enqueue hcmd race conditions 2011-04-07 15:34:11 -04:00
iwl-devtrace.c
iwl-devtrace.h
iwl-eeprom.c iwlagn: remove reference to 3945 and 4965 2011-03-25 06:58:47 -07:00
iwl-eeprom.h iwlagn: add 2000 series EEPROM version 2011-01-21 15:28:55 -08:00
iwl-fh.h
iwl-hcmd.c iwlwifi: split the drivers for agn and legacy devices 3945/4965 2011-02-21 11:27:26 -08:00
iwl-helpers.h Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2011-01-05 14:35:41 -05:00
iwl-io.h
iwl-led.c iwlwifi: split the drivers for agn and legacy devices 3945/4965 2011-02-21 11:27:26 -08:00
iwl-led.h iwlwifi: use mac80211 throughput trigger 2011-01-21 15:26:39 -08:00
iwl-power.c iwlwifi: split the drivers for agn and legacy devices 3945/4965 2011-02-21 11:27:26 -08:00
iwl-power.h
iwl-prph.h iwlwifi: do not reload fw if WiMAX own the RF 2010-12-13 15:53:24 -08:00
iwl-rx.c iwlwifi: fix iwl-rx.c compilation 2011-03-07 13:51:04 -05:00
iwl-scan.c iwlagn: support off-channel TX 2011-03-11 14:15:55 -05:00
iwl-spectrum.h
iwl-sta.c iwlagn: remove 3945 only station code 2011-03-25 06:58:39 -07:00
iwl-sta.h
iwl-tx.c iwlwifi: fix enqueue hcmd race conditions 2011-04-07 15:34:11 -04:00
Kconfig iwlwifi: split the drivers for agn and legacy devices 3945/4965 2011-02-21 11:27:26 -08:00
Makefile iwlwifi: move remaining iwl-agn-rx.c code into iwl-rx.c 2011-02-28 14:11:36 -05:00