summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWey-Yi Guy <wey-yi.w.guy@intel.com>2011-07-08 17:46:27 +0200
committerJohn W. Linville <linville@tuxdriver.com>2011-07-11 21:02:09 +0200
commiteedb6e357a4b1bd3d7e4544e77fbd71718492547 (patch)
tree7ccacd314958b6b6a0140e4080b5bd71d9e98c4a
parentiwlagn: allow application own the uCode operation (diff)
downloadlinux-eedb6e357a4b1bd3d7e4544e77fbd71718492547.tar.xz
linux-eedb6e357a4b1bd3d7e4544e77fbd71718492547.zip
iwlagn: block regular host commands if driver don't own uCode
The only host command allow to send to uCode is the one initiated from testmode if testmode is the owner of uCode Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-tx.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-tx.c b/drivers/net/wireless/iwlwifi/iwl-tx.c
index b62d03235b8c..9b07e07f1689 100644
--- a/drivers/net/wireless/iwlwifi/iwl-tx.c
+++ b/drivers/net/wireless/iwlwifi/iwl-tx.c
@@ -328,6 +328,12 @@ int iwl_enqueue_hcmd(struct iwl_priv *priv, struct iwl_host_cmd *cmd)
return -EIO;
}
+ if ((priv->ucode_owner == IWL_OWNERSHIP_TM) &&
+ !(cmd->flags & CMD_ON_DEMAND)) {
+ IWL_DEBUG_HC(priv, "tm own the uCode, no regular hcmd send\n");
+ return -EIO;
+ }
+
copy_size = sizeof(out_cmd->hdr);
cmd_size = sizeof(out_cmd->hdr);