This series consists of the usual driver updates (ufs, pm80xx, lpfc, mpi3mr, mpt3sas, hisi_sas, libsas) and minor updates and bug fixes. The most impactful change is likely the switch from GFP_DMA to GFP_KERNEL in a bunch of drivers, but even that shouldn't affect too many people. The patch is available here: git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git scsi-misc Adrian Hunter (4): scsi: ufs: ufs-pci: Add support for Intel ADL scsi: ufs: Let devices remain runtime suspended during system suspend scsi: ufs: core: Fix another task management completion race scsi: ufs: core: Fix task management completion timeout race Alan Stern (1): scsi: block: pm: Always set request queue runtime active in blk_post_runtime_resume() Bart Van Assche (31): scsi: ufs: Implement polling support scsi: ufs: Optimize the command queueing code scsi: ufs: Stop using the clock scaling lock in the error handler scsi: ufs: Fix a kernel crash during shutdown scsi: ufs: Improve SCSI abort handling further scsi: ufs: Introduce ufshcd_release_scsi_cmd() scsi: ufs: Remove the 'update_scaling' local variable scsi: ufs: Remove hba->cmd_queue scsi: ufs: Fix a deadlock in the error handler scsi: ufs: Rework ufshcd_change_queue_depth() scsi: ufs: Remove ufshcd_any_tag_in_use() scsi: ufs: Fix race conditions related to driver data scsi: ufs: Remove dead code scsi: ufs: Remove the sdev_rpmb member scsi: ufs: Remove is_rpmb_wlun() scsi: ufs: Rename a function argument scsi: core: Fix scsi_device_max_queue_depth() scsi: Remove superfluous #include <linux/async.h> directives scsi: pmcraid: Fix a kernel-doc warning scsi: pm8001: Fix kernel-doc warnings scsi: megaraid: Fix a kernel-doc warning scsi: initio: Fix a kernel-doc warning scsi: dc395x: Fix a kernel-doc warning scsi: bfa: Declare 'bfad_im_vport_attrs' static scsi: atp870u: Fix a kernel-doc warning scsi: a100u2w: Fix a kernel-doc warning scsi: core: Show SCMD_LAST in text form scsi: core: Declare 'scsi_scan_type' static scsi: core: Suppress a kernel-doc warning scsi: core: Remove Scsi_Host.shost_dev_attr_groups scsi: ufs: core: Improve SCSI abort handling Bean Huo (2): scsi: ufs: core: Fix deadlock issue in ufshcd_wait_for_doorbell_clr() scsi: ufs: ufshpb: Fix warning in ufshpb_set_hpb_read_to_upiu() Changyuan Lyu (2): scsi: pm80xx: Add pm80xx_mpi_build_cmd() tracepoint scsi: pm80xx: Add tracepoints Christoph Hellwig (8): scsi: pmcraid: Don't use GFP_DMA in pmcraid_alloc_sglist() scsi: snic: Don't use GFP_DMA in snic_queue_report_tgt_req() scsi: myrs: Don't use GFP_DMA scsi: myrb: Don't use GFP_DMA in myrb_pdev_slave_alloc() scsi: initio: Don't use GFP_DMA in initio_probe_one() scsi: sr: Don't use GFP_DMA scsi: ch: Don't use GFP_DMA scsi: efct: Don't pass GFP_DMA to dma_alloc_coherent() Christophe JAILLET (4): scsi: hpsa: Remove an unused variable in hpsa_update_scsi_devices() scsi: hisi_sas: Use non-atomic bitmap functions when possible scsi: hisi_sas: Remove some useless code in hisi_sas_alloc() scsi: hisi_sas: Use devm_bitmap_zalloc() when applicable Chunguang Xu (1): scsi: core: Use eh_timeout for START STOP UNIT Colin Ian King (1): scsi: mptfusion: Remove redundant variable r Dan Carpenter (2): scsi: target: configfs: Delete unnecessary checks for NULL scsi: qla2xxx: edif: Fix off by one bug in qla_edif_app_getfcinfo() Ewan D. Milne (2): scsi: core: Simplify control flow in scmd_eh_abort_handler() scsi: qla2xxx: Fix mailbox direction flags in qla2xxx_get_adapter_id() Florian Fainelli (3): scsi: qla4xxx: Format SYSFS_FLAG_FW_SEL_BOOT as byte scsi: qedi: Fix SYSFS_FLAG_FW_SEL_BOOT formatting scsi: qedi: Remove set but unused 'page' variable Geert Uytterhoeven (2): scsi: ufs: Fix double space in SCSI_UFS_HWMON description scsi: ufs: Wrap Universal Flash Storage drivers in SCSI_UFSHCD George Kennedy (2): scsi: scsi_debug: Sanity check block descriptor length in resp_mode_select() scsi: scsi_debug: Fix type in min_t to avoid stack OOB Hannes Reinecke (1): scsi: qla2xxx: Synchronize rport dev_loss_tmo setting Igor Pylypiv (5): scsi: pm80xx: Do not call scsi_remove_host() in pm8001_alloc() scsi: pm80xx: Use bitmap_zalloc() for tags bitmap allocation scsi: pm80xx: Update WARN_ON check in pm8001_mpi_build_cmd() scsi: pm80xx: Do not check the address-of value for NULL scsi: pm80xx: Apply byte mask for phy ID in mpi_phy_start_resp() James Smart (10): scsi: lpfc: Update lpfc version to 14.0.0.4 scsi: lpfc: Add additional debugfs support for CMF scsi: lpfc: Cap CMF read bytes to MBPI scsi: lpfc: Adjust CMF total bytes and rxmonitor scsi: lpfc: Trigger SLI4 firmware dump before doing driver cleanup scsi: lpfc: Fix NPIV port deletion crash scsi: lpfc: Fix lpfc_force_rscn ndlp kref imbalance scsi: lpfc: Change return code on I/Os received during link bounce scsi: lpfc: Fix leaked lpfc_dmabuf mbox allocations with NPIV scsi: lpfc: Fix non-recovery of remote ports following an unsolicited LOGO John Garry (7): scsi: Revert "scsi: hisi_sas: Filter out new PHY up events during suspend" scsi: libsas: Don't always drain event workqueue for HA resume scsi: libsas: Decode SAM status and host byte codes scsi: hisi_sas: Factor out task prep and delivery code scsi: hisi_sas: Pass abort structure for internal abort scsi: hisi_sas: Make internal abort have no task proto scsi: hisi_sas: Start delivery hisi_sas_task_exec() directly Kees Cook (2): scsi: lpfc: Use struct_group to isolate cast to larger object scsi: lpfc: Use struct_group() to initialize struct lpfc_cgn_info Manish Rangankar (1): scsi: qedi: Fix cmd_cleanup_cmpl counter mismatch issue Mike Christie (4): scsi: core: sysfs: Fix setting device state to SDEV_RUNNING scsi: target: core: Use RCU helpers for INQUIRY t10_alua_tg_pt_gp scsi: core: sysfs: Fix hang when device state is set via sysfs scsi: iscsi: Unblock session then wake up error handler Niklas Cassel (2): scsi: sd_zbc: Clean up sd_zbc_parse_report() setting of wp scsi: sd_zbc: Simplify zone full condition check Qi Liu (3): scsi: hisi_sas: Fix phyup timeout on FPGA scsi: hisi_sas: Prevent parallel FLR and controller reset scsi: hisi_sas: Prevent parallel controller reset and control phy command Roman Bolshakov (1): scsi: qla2xxx: Format log strings only if needed Sebastian Andrzej Siewior (1): scsi: be2iscsi: Remove maintainers Shin'ichiro Kawasaki (2): scsi: scsi_debug: Fix buffer size of REPORT ZONES command scsi: scsi_debug: Zero clear zones at reset write pointer Sreekanth Reddy (28): scsi: mpi3mr: Bump driver version to 8.0.0.61.0 scsi: mpi3mr: Fixes around reply request queues scsi: mpi3mr: Enhanced Task Management Support Reply handling scsi: mpi3mr: Use TM response codes from MPI3 headers scsi: mpi3mr: Add io_uring interface support in I/O-polled mode scsi: mpi3mr: Print cable mngnt and temp threshold events scsi: mpi3mr: Support Prepare for Reset event scsi: mpi3mr: Add Event acknowledgment logic scsi: mpi3mr: Gracefully handle online FW update operation scsi: mpi3mr: Detect async reset that occurred in firmware scsi: mpi3mr: Add IOC reinit function scsi: mpi3mr: Handle offline FW activation in graceful manner scsi: mpi3mr: Code refactor of IOC init - part2 scsi: mpi3mr: Code refactor of IOC init - part1 scsi: mpi3mr: Fault IOC when internal command gets timeout scsi: mpi3mr: Display IOC firmware package version scsi: mpi3mr: Handle unaligned PLL in unmap cmnds scsi: mpi3mr: Increase internal cmnds timeout to 60s scsi: mpi3mr: Do access status validation before adding devices scsi: mpi3mr: Add support for PCIe Managed Switch SES device scsi: mpi3mr: Update MPI3 headers - part2 scsi: mpi3mr: Update MPI3 headers - part1 scsi: mpi3mr: Don't reset IOC if cmnds flush with reset status scsi: mpi3mr: Replace spin_lock() with spin_lock_irqsave() scsi: mpi3mr: Add debug APIs based on logging_level bits scsi: mpt3sas: Fix incorrect system timestamp scsi: mpt3sas: Fix system going into read-only mode scsi: mpt3sas: Fix kernel panic during drive powercycle test Xiang Chen (12): scsi: hisi_sas: Use autosuspend for the host controller scsi: libsas: Keep host active while processing events scsi: hisi_sas: Keep controller active between ISR of phyup and the event being processed scsi: libsas: Defer works of new phys during suspend scsi: libsas: Refactor sas_queue_deferred_work() scsi: libsas: Add flag SAS_HA_RESUMING scsi: libsas: Resume host while sending SMP I/Os scsi: hisi_sas: Add more logs for runtime suspend/resume scsi: libsas: Insert PORTE_BROADCAST_RCVD event for resuming host scsi: mvsas: Add spin_lock/unlock() to protect asd_sas_port->phy_list scsi: hisi_sas: Fix some issues related to asd_sas_port->phy_list scsi: libsas: Add spin_lock/unlock() to protect asd_sas_port->phy_list Ye Guojin (1): scsi: ufs: ufs-mediatek: Add put_device() after of_find_device_by_node() And the diffstat: MAINTAINERS | 2 - block/blk-pm.c | 22 +- drivers/message/fusion/mptbase.c | 6 +- drivers/scsi/a100u2w.c | 2 - drivers/scsi/atp870u.c | 1 - drivers/scsi/bfa/bfad_attr.c | 2 +- drivers/scsi/ch.c | 6 +- drivers/scsi/dc395x.c | 3 +- drivers/scsi/elx/efct/efct_driver.c | 2 +- drivers/scsi/elx/efct/efct_hw.c | 10 +- drivers/scsi/elx/efct/efct_io.c | 2 +- drivers/scsi/elx/libefc/efc_cmds.c | 4 +- drivers/scsi/elx/libefc/efc_els.c | 4 +- drivers/scsi/elx/libefc_sli/sli4.c | 14 +- drivers/scsi/hisi_sas/hisi_sas.h | 7 +- drivers/scsi/hisi_sas/hisi_sas_main.c | 396 ++++--- drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 35 +- drivers/scsi/hosts.c | 15 +- drivers/scsi/hpsa.c | 2 - drivers/scsi/initio.c | 5 +- drivers/scsi/libsas/sas_discover.c | 1 - drivers/scsi/libsas/sas_event.c | 77 +- drivers/scsi/libsas/sas_expander.c | 3 + drivers/scsi/libsas/sas_init.c | 49 +- drivers/scsi/libsas/sas_internal.h | 2 + drivers/scsi/libsas/sas_scsi_host.c | 7 +- drivers/scsi/lpfc/lpfc.h | 97 +- drivers/scsi/lpfc/lpfc_attr.c | 62 +- drivers/scsi/lpfc/lpfc_debugfs.c | 27 +- drivers/scsi/lpfc/lpfc_debugfs.h | 2 +- drivers/scsi/lpfc/lpfc_els.c | 31 +- drivers/scsi/lpfc/lpfc_hbadisc.c | 10 +- drivers/scsi/lpfc/lpfc_hw.h | 29 +- drivers/scsi/lpfc/lpfc_init.c | 41 +- drivers/scsi/lpfc/lpfc_nportdisc.c | 6 + drivers/scsi/lpfc/lpfc_scsi.c | 8 +- drivers/scsi/lpfc/lpfc_sli.c | 38 +- drivers/scsi/lpfc/lpfc_version.h | 2 +- drivers/scsi/lpfc/lpfc_vport.c | 83 +- drivers/scsi/megaraid/megaraid_mbox.c | 1 - drivers/scsi/mpi3mr/mpi/mpi30_cnfg.h | 603 +++++++++-- drivers/scsi/mpi3mr/mpi/mpi30_image.h | 59 +- drivers/scsi/mpi3mr/mpi/mpi30_init.h | 15 +- drivers/scsi/mpi3mr/mpi/mpi30_ioc.h | 128 ++- drivers/scsi/mpi3mr/mpi/mpi30_pci.h | 44 + drivers/scsi/mpi3mr/mpi/mpi30_sas.h | 14 + drivers/scsi/mpi3mr/mpi/mpi30_transport.h | 31 +- drivers/scsi/mpi3mr/mpi3mr.h | 126 ++- drivers/scsi/mpi3mr/mpi3mr_debug.h | 133 ++- drivers/scsi/mpi3mr/mpi3mr_fw.c | 1451 +++++++++++++++++--------- drivers/scsi/mpi3mr/mpi3mr_os.c | 771 +++++++++++--- drivers/scsi/mpt3sas/mpt3sas_base.c | 4 +- drivers/scsi/mpt3sas/mpt3sas_base.h | 4 + drivers/scsi/mpt3sas/mpt3sas_scsih.c | 59 +- drivers/scsi/mvsas/mv_sas.c | 5 + drivers/scsi/myrb.c | 2 +- drivers/scsi/myrs.c | 10 +- drivers/scsi/pm8001/Makefile | 7 +- drivers/scsi/pm8001/pm8001_ctl.c | 24 +- drivers/scsi/pm8001/pm8001_hwi.c | 33 +- drivers/scsi/pm8001/pm8001_init.c | 10 +- drivers/scsi/pm8001/pm8001_sas.c | 16 + drivers/scsi/pm8001/pm80xx_hwi.c | 38 +- drivers/scsi/pm8001/pm80xx_tracepoints.c | 10 + drivers/scsi/pm8001/pm80xx_tracepoints.h | 113 ++ drivers/scsi/pmcraid.c | 5 +- drivers/scsi/qedi/qedi_fw.c | 37 +- drivers/scsi/qedi/qedi_iscsi.c | 2 +- drivers/scsi/qedi/qedi_iscsi.h | 2 +- drivers/scsi/qedi/qedi_main.c | 8 +- drivers/scsi/qla2xxx/qla_attr.c | 6 + drivers/scsi/qla2xxx/qla_dbg.c | 3 + drivers/scsi/qla2xxx/qla_edif.c | 2 +- drivers/scsi/qla2xxx/qla_init.c | 10 +- drivers/scsi/qla2xxx/qla_mbx.c | 6 +- drivers/scsi/qla2xxx/qla_nvme.c | 5 +- drivers/scsi/qla4xxx/ql4_os.c | 4 +- drivers/scsi/scsi.c | 5 +- drivers/scsi/scsi_debug.c | 45 +- drivers/scsi/scsi_debugfs.c | 1 + drivers/scsi/scsi_error.c | 112 +- drivers/scsi/scsi_pm.c | 3 +- drivers/scsi/scsi_priv.h | 3 +- drivers/scsi/scsi_scan.c | 4 +- drivers/scsi/scsi_sysfs.c | 37 +- drivers/scsi/scsi_transport_iscsi.c | 6 +- drivers/scsi/sd.c | 1 - drivers/scsi/sd_zbc.c | 6 +- drivers/scsi/snic/snic_disc.c | 2 +- drivers/scsi/sr.c | 2 +- drivers/scsi/sr_vendor.c | 4 +- drivers/scsi/ufs/Kconfig | 15 +- drivers/scsi/ufs/tc-dwc-g210-pci.c | 1 - drivers/scsi/ufs/ufs-exynos.c | 4 +- drivers/scsi/ufs/ufs-hisi.c | 8 +- drivers/scsi/ufs/ufs-mediatek.c | 1 + drivers/scsi/ufs/ufshcd-pci.c | 20 +- drivers/scsi/ufs/ufshcd-pltfrm.c | 2 - drivers/scsi/ufs/ufshcd.c | 354 ++++--- drivers/scsi/ufs/ufshcd.h | 20 +- drivers/scsi/ufs/ufshpb.c | 3 +- drivers/target/target_core_fabric_configfs.c | 16 +- drivers/target/target_core_spc.c | 14 +- include/linux/blk-pm.h | 2 +- include/scsi/libsas.h | 2 + include/scsi/scsi_host.h | 6 - 106 files changed, 3889 insertions(+), 1726 deletions(-) create mode 100644 drivers/scsi/mpi3mr/mpi/mpi30_pci.h create mode 100644 drivers/scsi/pm8001/pm80xx_tracepoints.c create mode 100644 drivers/scsi/pm8001/pm80xx_tracepoints.h James