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,
1544
1544
u32 cmd_pos ;
1545
1545
const u8 * cmddata [IWL_MAX_CMD_TBS_PER_TFD ];
1546
1546
u16 cmdlen [IWL_MAX_CMD_TBS_PER_TFD ];
1547
+ unsigned long flags2 ;
1547
1548
1548
1549
if (WARN (!trans -> wide_cmd_header &&
1549
1550
group_id > IWL_ALWAYS_LONG_GROUP ,
@@ -1627,10 +1628,10 @@ static int iwl_pcie_enqueue_hcmd(struct iwl_trans *trans,
1627
1628
goto free_dup_buf ;
1628
1629
}
1629
1630
1630
- spin_lock_bh (& txq -> lock );
1631
+ spin_lock_irqsave (& txq -> lock , flags2 );
1631
1632
1632
1633
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 );
1634
1635
1635
1636
IWL_ERR (trans , "No space in command queue\n" );
1636
1637
iwl_op_mode_cmd_queue_full (trans -> op_mode );
@@ -1791,7 +1792,7 @@ static int iwl_pcie_enqueue_hcmd(struct iwl_trans *trans,
1791
1792
spin_unlock_irqrestore (& trans_pcie -> reg_lock , flags );
1792
1793
1793
1794
out :
1794
- spin_unlock_bh (& txq -> lock );
1795
+ spin_unlock_irqrestore (& txq -> lock , flags2 );
1795
1796
free_dup_buf :
1796
1797
if (idx < 0 )
1797
1798
kfree (dup_buf );
You can’t perform that action at this time.
0 commit comments