]> git.baikalelectronics.ru Git - kernel.git/commit
iwlwifi: always copy first 16 bytes of commands
authorJohannes Berg <johannes.berg@intel.com>
Mon, 25 Feb 2013 15:01:34 +0000 (16:01 +0100)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 26 Feb 2013 21:09:12 +0000 (22:09 +0100)
commit1082fb61d042fceec953b339cae59fa6803e9c15
treedfcd5d77e86358daf79df6810933d1e9ddc86aba
parente3ce76f84ee92d25c77bfd96d078f6b08fe36324
iwlwifi: always copy first 16 bytes of commands

The FH hardware will always write back to the scratch field
in commands, even host commands not just TX commands, which
can overwrite parts of the command. This is problematic if
the command is re-used (with IWL_HCMD_DFL_NOCOPY) and can
cause calibration issues.

Address this problem by always putting at least the first
16 bytes into the buffer we also use for the command header
and therefore make the DMA engine write back into this.

For commands that are smaller than 16 bytes also always map
enough memory for the DMA engine to write back to.

Cc: stable@vger.kernel.org
Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/iwlwifi/iwl-devtrace.h
drivers/net/wireless/iwlwifi/pcie/internal.h
drivers/net/wireless/iwlwifi/pcie/tx.c