File tree Expand file tree Collapse file tree 1 file changed +4
-3
lines changed
drivers/net/wireless/intel/iwlwifi/pcie Expand file tree Collapse file tree 1 file changed +4
-3
lines changed Original file line number Diff line number Diff line change @@ -1544,6 +1544,7 @@ static int iwl_pcie_enqueue_hcmd(struct iwl_trans *trans,
15441544 u32 cmd_pos ;
15451545 const u8 * cmddata [IWL_MAX_CMD_TBS_PER_TFD ];
15461546 u16 cmdlen [IWL_MAX_CMD_TBS_PER_TFD ];
1547+ unsigned long flags2 ;
15471548
15481549 if (WARN (!trans -> wide_cmd_header &&
15491550 group_id > IWL_ALWAYS_LONG_GROUP ,
@@ -1627,10 +1628,10 @@ static int iwl_pcie_enqueue_hcmd(struct iwl_trans *trans,
16271628 goto free_dup_buf ;
16281629 }
16291630
1630- spin_lock_bh (& txq -> lock );
1631+ spin_lock_irqsave (& txq -> lock , flags2 );
16311632
16321633 if (iwl_queue_space (trans , txq ) < ((cmd -> flags & CMD_ASYNC ) ? 2 : 1 )) {
1633- spin_unlock_bh (& txq -> lock );
1634+ spin_unlock_irqrestore (& txq -> lock , flags2 );
16341635
16351636 IWL_ERR (trans , "No space in command queue\n" );
16361637 iwl_op_mode_cmd_queue_full (trans -> op_mode );
@@ -1791,7 +1792,7 @@ static int iwl_pcie_enqueue_hcmd(struct iwl_trans *trans,
17911792 spin_unlock_irqrestore (& trans_pcie -> reg_lock , flags );
17921793
17931794 out :
1794- spin_unlock_bh (& txq -> lock );
1795+ spin_unlock_irqrestore (& txq -> lock , flags2 );
17951796 free_dup_buf :
17961797 if (idx < 0 )
17971798 kfree (dup_buf );
You can’t perform that action at this time.
0 commit comments