linux_dsm_epyc7002/drivers/scsi
Can Guo 05d18ae1cc scsi: pm: Balance pm_only counter of request queue during system resume
During system resume, scsi_resume_device() decreases a request queue's
pm_only counter if the scsi device was quiesced before. But after that, if
the scsi device's RPM status is RPM_SUSPENDED, the pm_only counter is still
held (non-zero). Current SCSI resume hook only sets the RPM status of the
scsi_device and its request queue to RPM_ACTIVE, but leaves the pm_only
counter unchanged. This may make the request queue's pm_only counter remain
non-zero after resume hook returns, hence those who are waiting on the
mq_freeze_wq would never be woken up. Fix this by calling
blk_post_runtime_resume() if a sdev's RPM status was RPM_SUSPENDED.

(struct request_queue)0xFFFFFF815B69E938
	pm_only = (counter = 2),
	rpm_status = 0,
	dev = 0xFFFFFF815B0511A0,

((struct device)0xFFFFFF815B0511A0)).power
	is_suspended = FALSE,
	runtime_status = RPM_ACTIVE,

(struct scsi_device)0xffffff815b051000
	request_queue = 0xFFFFFF815B69E938,
	sdev_state = SDEV_RUNNING,
	quiesced_by = 0x0,

B::v.f_/task_0xFFFFFF810C246940
-000|__switch_to(prev = 0xFFFFFF810C246940, next = 0xFFFFFF80A49357C0)
-001|context_switch(inline)
-001|__schedule(?)
-002|schedule()
-003|blk_queue_enter(q = 0xFFFFFF815B69E938, flags = 0)
-004|generic_make_request(?)
-005|submit_bio(bio = 0xFFFFFF80A8195B80)

Link: https://lore.kernel.org/r/1588740936-28846-1-git-send-email-cang@codeaurora.org
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Can Guo <cang@codeaurora.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2020-05-11 19:43:25 -04:00
..
aacraid SCSI misc on 20200410 2020-04-10 12:21:11 -07:00
aic7xxx SCSI misc on 20200410 2020-04-10 12:21:11 -07:00
aic94xx
arcmsr SCSI misc on 20200402 2020-04-02 17:03:53 -07:00
arm
be2iscsi scsi: be2iscsi: Use scnprintf() for avoiding potential buffer overflow 2020-03-17 13:36:09 -04:00
bfa
bnx2fc scsi: bnx2fc: fix boolreturn.cocci warnings 2020-03-31 22:35:02 -04:00
bnx2i
csiostor
cxgbi
cxlflash
device_handler
dpt scsi: docs: convert dpti.txt to ReST 2020-03-11 23:07:59 -04:00
esas2r
fcoe
fnic scsi: fnic: Use scnprintf() for avoiding potential buffer overflow 2020-03-17 13:36:10 -04:00
hisi_sas scsi: hisi_sas: Fix build error without SATA_HOST 2020-04-13 13:28:13 -04:00
ibmvscsi scsi: ibmvscsi: Fix WARN_ON during event pool release 2020-04-28 22:59:55 -04:00
ibmvscsi_tgt
isci SCSI misc on 20200402 2020-04-02 17:03:53 -07:00
libfc SCSI misc on 20200410 2020-04-10 12:21:11 -07:00
libsas ata: make SATA_PMP option selectable only if any SATA host driver is enabled 2020-03-26 10:28:17 -06:00
lpfc SCSI misc on 20200410 2020-04-10 12:21:11 -07:00
megaraid SCSI misc on 20200402 2020-04-02 17:03:53 -07:00
mpt3sas scsi: mpt3sas: Fix kernel panic observed on soft HBA unplug 2020-03-31 22:02:37 -04:00
mvsas scsi: Replace zero-length array with flexible-array member 2020-03-11 23:07:56 -04:00
pcmcia scsi: docs: convert NinjaSCSI.txt to ReST 2020-03-11 23:08:01 -04:00
pm8001 scsi: pm80xx: Introduce read and write length for IOCTL payload structure 2020-03-17 13:57:19 -04:00
qedf
qedi scsi: qedi: Add PCI shutdown handler support 2020-03-26 22:38:54 -04:00
qla2xxx scsi: qla2xxx: Do not log message when reading port speed via sysfs 2020-05-11 19:42:36 -04:00
qla4xxx
smartpqi scsi: smartpqi: Use scnprintf() for avoiding potential buffer overflow 2020-03-17 13:36:13 -04:00
snic scsi: Replace zero-length array with flexible-array member 2020-03-11 23:07:56 -04:00
sym53c8xx_2
ufs SCSI misc on 20200410 2020-04-10 12:21:11 -07:00
.gitignore .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
3w-9xxx.c
3w-9xxx.h
3w-sas.c
3w-sas.h
3w-xxxx.c
3w-xxxx.h
53c700_d.h_shipped
53c700.c
53c700.h
53c700.scr
a100u2w.c
a100u2w.h
a2091.c
a2091.h
a3000.c
a3000.h
a4000t.c
advansys.c
aha152x.c scsi: docs: convert aha152x.txt to ReST 2020-03-11 23:07:58 -04:00
aha152x.h
aha1542.c
aha1542.h
aha1740.c scsi: aha1740: Fix an errro handling path in aha1740_probe() 2020-03-26 21:10:53 -04:00
aha1740.h
am53c974.c
atari_scsi.c
atp870u.c
atp870u.h
BusLogic.c SCSI misc on 20200402 2020-04-02 17:03:53 -07:00
BusLogic.h
bvme6000_scsi.c
ch.c
constants.c scsi: core: Add DID_ALLOC_FAILURE and DID_MEDIUM_ERROR to hostbyte_table 2020-04-01 22:03:04 -04:00
dc395x.c scsi: dc395x: remove dc395x_bios_param 2020-03-26 22:51:18 -04:00
dc395x.h
dmx3191d.c
dpt_i2o.c scsi: docs: convert dpti.txt to ReST 2020-03-11 23:07:59 -04:00
dpti.h scsi: docs: convert dpti.txt to ReST 2020-03-11 23:07:59 -04:00
esp_scsi.c
esp_scsi.h
fdomain_isa.c
fdomain_pci.c
fdomain.c
fdomain.h
FlashPoint.c
g_NCR5380.c scsi: docs: convert g_NCR5380.txt to ReST 2020-03-11 23:08:00 -04:00
gdth_ioctl.h
gdth_proc.c scsi: gdth: Use scnprintf() for avoiding potential buffer overflow 2020-03-17 13:36:10 -04:00
gdth_proc.h
gdth.c
gdth.h
gvp11.c
gvp11.h
hosts.c
hpsa_cmd.h
hpsa.c scsi: hpsa: correct race condition in offload enabled 2020-03-26 22:44:41 -04:00
hpsa.h
hptiop.c
hptiop.h
imm.c
imm.h
initio.c
initio.h
ipr.c SCSI misc on 20200402 2020-04-02 17:03:53 -07:00
ipr.h SCSI misc on 20200402 2020-04-02 17:03:53 -07:00
ips.c
ips.h
iscsi_boot_sysfs.c
iscsi_tcp.c
iscsi_tcp.h
jazz_esp.c
Kconfig scsi: Update referenced link to cdrtools 2020-04-14 21:16:16 -04:00
lasi700.c
libiscsi_tcp.c
libiscsi.c scsi: libiscsi: Fix error count for active session 2020-03-26 22:48:58 -04:00
mac53c94.c
mac53c94.h
mac_esp.c
mac_scsi.c
Makefile
megaraid.c scsi: simplify scsi_partsize 2020-03-24 07:57:07 -06:00
megaraid.h
mesh.c
mesh.h
mvme16x_scsi.c
mvme147.c
mvme147.h
mvumi.c
mvumi.h scsi: Replace zero-length array with flexible-array member 2020-03-11 23:07:56 -04:00
myrb.c
myrb.h
myrs.c
myrs.h
ncr53c8xx.c scsi: docs: convert ncr53c8xx.txt to ReST 2020-03-11 23:08:01 -04:00
ncr53c8xx.h
NCR5380.c
NCR5380.h
nsp32_debug.c
nsp32_io.h
nsp32.c
nsp32.h
pmcraid.c
pmcraid.h scsi: Replace zero-length array with flexible-array member 2020-03-11 23:07:56 -04:00
ppa.c
ppa.h
ps3rom.c
qla1280.c
qla1280.h
qlogicfas408.c
qlogicfas408.h
qlogicfas.c
qlogicpti.c
qlogicpti.h
raid_class.c
script_asm.pl
scsi_common.c
scsi_debug.c block: move struct partition out of genhd.h 2020-03-24 07:57:08 -06:00
scsi_debugfs.c
scsi_debugfs.h
scsi_devinfo.c
scsi_dh.c
scsi_error.c
scsi_ioctl.c
scsi_lib_dma.c
scsi_lib.c scsi: core: Allow the state change from SDEV_QUIESCE to SDEV_BLOCK 2020-04-21 23:44:26 -04:00
scsi_logging.c
scsi_logging.h
scsi_netlink.c
scsi_pm.c scsi: pm: Balance pm_only counter of request queue during system resume 2020-05-11 19:43:25 -04:00
scsi_priv.h
scsi_proc.c
scsi_sas_internal.h
scsi_scan.c
scsi_sysctl.c
scsi_sysfs.c scsi: core: Use scnprintf() for avoiding potential buffer overflow 2020-03-17 13:36:12 -04:00
scsi_trace.c scsi: scsi_trace: Use get_unaligned_be24() 2020-03-16 22:08:36 -04:00
scsi_transport_api.h
scsi_transport_fc.c
scsi_transport_iscsi.c scsi: iscsi: Report unbind session event when the target has been removed 2020-03-31 21:39:58 -04:00
scsi_transport_sas.c
scsi_transport_spi.c
scsi_transport_srp.c
scsi.c
scsi.h
scsicam.c block: move struct partition out of genhd.h 2020-03-24 07:57:08 -06:00
sd_dif.c
sd_zbc.c
sd.c for-5.7/block-2020-03-29 2020-03-30 11:20:13 -07:00
sd.h
sense_codes.h
ses.c
sg.c scsi: sg: add sg_remove_request in sg_write 2020-04-14 21:15:53 -04:00
sgiwd93.c
sim710.c
sni_53c710.c
sr_ioctl.c
sr_vendor.c
sr.c SCSI misc on 20200410 2020-04-10 12:21:11 -07:00
sr.h
st_options.h
st.c scsi: st: Use get_unaligned_be24() and sign_extend32() 2020-03-16 22:08:34 -04:00
st.h
stex.c scsi: Replace zero-length array with flexible-array member 2020-03-11 23:07:56 -04:00
storvsc_drv.c
sun3_scsi_vme.c
sun3_scsi.c
sun3x_esp.c
sun_esp.c
virtio_scsi.c
vmw_pvscsi.c
vmw_pvscsi.h
wd33c93.c
wd33c93.h
wd719x.c
wd719x.h
xen-scsifront.c
zalon.c
zorro7xx.c
zorro_esp.c