2021-08-11 13:46:34

by Tuo Li

[permalink] [raw]
Subject: [BUG] scsi: qla4xxx: possible double lock in qla4_82xx_wr_32()

Hello,

Our static analysis tool finds a possible double lock in ql4_nx.c in
Linux 5.14.0-rc3:

ha->hw_lock is first locked in:
418:    write_lock_irqsave(&ha->hw_lock, flags);

And then the function qla4_82xx_crb_win_lock() is called:
419:    qla4_82xx_crb_win_lock(ha);

In this function, the function qla4_82xx_rd_32() is called:
389:    done = qla4_82xx_rd_32(ha, QLA82XX_PCIE_REG(PCIE_SEM7_LOCK));

In this function, ha->hw_lock is locked again:
442:    write_lock_irqsave(&ha->hw_lock, flags);

I am not quite sure whether this possible double lock is real and how to
fix it if it is real.
Any feedback would be appreciated, thanks!

Reported-by: TOTE Robot <[email protected]>

Best wishes,
Tuo Li