|
@@ -1530,10 +1530,12 @@ int iwlagn_txfifo_flush(struct iwl_priv *priv, u16 flush_control)
|
|
|
might_sleep();
|
|
|
|
|
|
memset(&flush_cmd, 0, sizeof(flush_cmd));
|
|
|
- flush_cmd.fifo_control = IWL_SCD_VO_MSK | IWL_SCD_VI_MSK |
|
|
|
+ if (flush_control & BIT(IWL_RXON_CTX_BSS))
|
|
|
+ flush_cmd.fifo_control = IWL_SCD_VO_MSK | IWL_SCD_VI_MSK |
|
|
|
IWL_SCD_BE_MSK | IWL_SCD_BK_MSK |
|
|
|
IWL_SCD_MGMT_MSK;
|
|
|
- if (priv->valid_contexts != BIT(IWL_RXON_CTX_BSS))
|
|
|
+ if ((flush_control & BIT(IWL_RXON_CTX_PAN)) &&
|
|
|
+ (priv->valid_contexts != BIT(IWL_RXON_CTX_BSS)))
|
|
|
flush_cmd.fifo_control |= IWL_PAN_SCD_VO_MSK |
|
|
|
IWL_PAN_SCD_VI_MSK | IWL_PAN_SCD_BE_MSK |
|
|
|
IWL_PAN_SCD_BK_MSK | IWL_PAN_SCD_MGMT_MSK |
|