mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-11-01 17:08:10 +00:00
scsi: pm80xx: Remove busy wait from mpi_uninit_check()
mpi_uninit_check() is not being called in an atomic context. The only
caller of mpi_uninit_check() is pm80xx_chip_soft_rst().
Callers of pm80xx_chip_soft_rst():
- pm8001_ioctl_soft_reset()
- pm8001_pci_probe()
- pm8001_pci_remove()
- pm8001_pci_suspend()
- pm8001_pci_resume()
There was a similar fix for mpi_init_check() in commit
d71023af4b
("scsi: pm80xx: Do not busy wait in MPI init check")
Link: https://lore.kernel.org/r/20210406180534.1924345-3-ipylypiv@google.com
Reviewed-by: Vishakha Channapattan <vishakhavc@google.com>
Acked-by: Jack Wang <jinpu.wang@ionos.com>
Signed-off-by: Igor Pylypiv <ipylypiv@google.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
3f744a14f3
commit
6f305bf699
1 changed files with 5 additions and 5 deletions
|
@ -1502,12 +1502,12 @@ static int mpi_uninit_check(struct pm8001_hba_info *pm8001_ha)
|
|||
|
||||
/* wait until Inbound DoorBell Clear Register toggled */
|
||||
if (IS_SPCV_12G(pm8001_ha->pdev)) {
|
||||
max_wait_count = 30 * 1000 * 1000; /* 30 sec */
|
||||
max_wait_count = SPCV_DOORBELL_CLEAR_TIMEOUT;
|
||||
} else {
|
||||
max_wait_count = 15 * 1000 * 1000; /* 15 sec */
|
||||
max_wait_count = SPC_DOORBELL_CLEAR_TIMEOUT;
|
||||
}
|
||||
do {
|
||||
udelay(1);
|
||||
msleep(FW_READY_INTERVAL);
|
||||
value = pm8001_cr32(pm8001_ha, 0, MSGU_IBDB_SET);
|
||||
value &= SPCv_MSGU_CFG_TABLE_RESET;
|
||||
} while ((value != 0) && (--max_wait_count));
|
||||
|
@ -1519,9 +1519,9 @@ static int mpi_uninit_check(struct pm8001_hba_info *pm8001_ha)
|
|||
|
||||
/* check the MPI-State for termination in progress */
|
||||
/* wait until Inbound DoorBell Clear Register toggled */
|
||||
max_wait_count = 2 * 1000 * 1000; /* 2 sec for spcv/ve */
|
||||
max_wait_count = 100; /* 2 sec for spcv/ve */
|
||||
do {
|
||||
udelay(1);
|
||||
msleep(FW_READY_INTERVAL);
|
||||
gst_len_mpistate =
|
||||
pm8001_mr32(pm8001_ha->general_stat_tbl_addr,
|
||||
GST_GSTLEN_MPIS_OFFSET);
|
||||
|
|
Loading…
Reference in a new issue