* [GIT PULL] first round of SCSI updates for the 4.12+ merge window
@ 2017-07-04 15:24 James Bottomley
0 siblings, 0 replies; only message in thread
From: James Bottomley @ 2017-07-04 15:24 UTC (permalink / raw)
To: Andrew Morton, Linus Torvalds; +Cc: linux-scsi, linux-kernel
This is mostly updates of the usual suspects: lpfc, qla2xxx, bnx2fc,
qedf, hpsa, hisi_sas, smartpqi, cxlflash, aacraid, csiostor along with
a host of minor and miscellaneous changes.
The major problem with this merge is a conflict with the block tree.
It's actually only an API rename in block, but we've changed and
consolidated the code where the rename occurred in scsi_lib.c. I've
attached my proposed resolution below.
The patch is available here:
git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git scsi-misc
The short changelog is:
Adrian Hunter (2):
scsi: ufshcd-pci: Add Intel CNL support
scsi: ufshcd-pci: Fix PM config
Arnd Bergmann (2):
scsi: qla2xxx: avoid unused-function warning
scsi: smartpqi: mark PM functions as __maybe_unused
Arvind Yadav (2):
scsi: ibmvfc: constify dev_pm_ops structures.
scsi: ibmvscsi: constify dev_pm_ops structures.
Bart Van Assche (14):
scsi: Remove the definition of VLC_SA_RECEIVE_CREDENTIAL
scsi: xen-scsifront: Remove code that zeroes driver-private command data
scsi: virtio_scsi: Remove code that zeroes driver-private command data
scsi: snic: Remove code that zeroes driver-private command data
scsi: Make scsi_mq_prep_fn() call scsi_init_command()
scsi: Introduce scsi_mq_sgl_size()
scsi: Only add commands to the device command list if required by the LLD
scsi: Make __scsi_remove_device go straight from BLOCKED to DEL
scsi: Introduce scsi_start_queue()
scsi: Protect SCSI device state changes with a mutex
scsi: Create two versions of scsi_internal_device_unblock()
scsi: Split scsi_internal_device_block()
scsi: Avoid that scsi_exit_rq() triggers a use-after-free
scsi: qla2xxx: Remove an unused structure member
Binoy Jayan (2):
scsi: esas2r: Replace semaphore fs_api_semaphore with mutex
scsi: esas2r: Replace semaphore fm_api_semaphore with mutex
Chad Dupuis (22):
scsi: bnx2fc: Update version number to 2.11.8.
scsi: bnx2fc: Make rport_terminate_io callback a NOOP.
scsi: bnx2fc: If IO is still in cleanup then do not return to SCSI layer.
scsi: bnx2fc: Adjust bnx2fc_npiv_create_vports for WWNNs from NVRAM that are zero.
scsi: bnx2fc: Update copyright for 2017.
scsi: bnx2fc: Check for connection offload before sending RRQ.
scsi: bnx2fc: Add filters to the non-offload FCoE receive path.
scsi: qedf: Update version number to 8.18.22.0.
scsi: qedf: Add change_queue_depth member to scsi_host_template().
scsi: qedf: Change cmd_per_lun in scsi_host_template to 32 to increase performance.
scsi: qedf: Move some prints to a debug level so they do not print when no debugging is enabled.
scsi: qedf: Fixup unnecessary parantheses around test_bit operations.
scsi: qedf: Add non-offload receive filters.
scsi: qedf: Add bus_reset No-op.
scsi: qedf: Use same logic for SCSI host reset and FC lip_reset.
scsi: qedf: Set qed logging level to QED_LEVEL_NOTICE.
scsi: qedf: Add fka_period SCSI host attribute to show fip keep alive period.
scsi: qedf: Check that fcport is offloaded before dereferencing pointers in initiate_abts|cleanup.
scsi: qedf: Look at all descriptors when processing a clear virtual link.
scsi: qedf: Honor qed_ops->common->set_fp_int() return code.
scsi: qedf: Update copyright to 2017.
scsi: qedf: Enable basic FDMI information.
Christoph Hellwig (5):
scsi: default to scsi-mq
scsi: sgiwd93: switch to dma_alloc_attrs
scsi: 53c700: switch to dma_alloc_attrs
scsi: scsi_dh_alua: remove synchronous STPG support
scsi: remove various unused blist flags
Christophe JAILLET (3):
scsi: qedf: Merge a few quoted strings split across lines
scsi: qedf: Use 'dma_zalloc_coherent' to reduce code verbosity.
scsi: qedf: Fix a return value in case of error in 'qedf_alloc_global_queues'
Christos Gkekas (1):
scsi: qedi: Remove comparison of u16 idx with zero.
Colin Ian King (8):
scsi: snic: fix a couple of spelling mistakes/typos
scsi: qla2xxx: fix a bunch of typos and spelling mistakes
scsi: hpsa: fix spelling mistake: "encrypytion" -> "encryption"
scsi: hptiop: make function hptiop_iop_request_callback_itl static
scsi: aacraid: fix leak of data from stack back to userspace
scsi: qla2xxx: remove redundant null check on tgt
scsi: lpfc: make a couple of functions static
scsi: lpfc: fix spelling mistake "entrys" -> "entries"
Corentin Labbe (2):
scsi: qla2xxx: remove writeq/readq function definitions
scsi: smartpqi: remove writeq/readq function definitions
Dan Carpenter (3):
scsi: lpfc: don't double count abort errors
scsi: lpfc: spin_lock_irq() is not nestable
scsi: bnx2i: missing error code in bnx2i_ep_connect()
Don Brace (11):
scsi: hpsa: bump driver version
scsi: hpsa: remove abort handler
scsi: hpsa: send ioaccel requests with 0 length down raid path
scsi: hpsa: correct queue depth for externals
scsi: hpsa: cleanup reset handler
scsi: hpsa: correct resets on retried commands
scsi: hpsa: rescan later if reset in progress
scsi: hpsa: do not reset enclosures
scsi: hpsa: update reset handler
scsi: hpsa: do not get enclosure info for external devices
scsi: hpsa: update identify physical device structure
Duane Grigsby (5):
scsi: qla2xxx: Use FC-NVMe FC4 type for FDMI registration
scsi: qla2xxx: Send FC4 type NVMe to the management server
scsi: qla2xxx: Add FC-NVMe F/W initialization and transport registration
scsi: qla2xxx: Add FC-NVMe command handling
scsi: qla2xxx: Add FC-NVMe port discovery and PRLI handling
Dupuis, Chad (1):
scsi: qedf: Check if sense buffer has been allocated during completion
Ewan D. Milne (1):
scsi: Add STARGET_CREATED_REMOVE state to scsi_target_state
Gustavo A. R. Silva (1):
scsi: hisi_sas: add null check before indirect pointer dereference
Himanshu Madhani (3):
qla2xxx: Fix NVMe entry_type for iocb packet on BE system
scsi: qla2xxx: Update Driver version to 10.00.00.00-k
scsi: qla2xxx: Fix compile warning
James Smart (30):
scsi: lpfc: fix refcount error on node list
scsi: lpfc: Fix nvme io stoppage after link bounce
scsi: lpfc: update to revision to 11.4.0.1
scsi: lpfc: Driver responds LS_RJT to Beacon Off ELS - Linux
scsi: lpfc: Fix crash in lpfc_sli_ringtxcmpl_put when nvmet gets an abort request.
scsi: lpfc: Fix crash doing IO with resets
scsi: lpfc: Fix crash after firmware flash when IO is running.
scsi: lpfc: Fix SLI3 drivers attempting NVME ELS commands.
scsi: lpfc: Break up IO ctx list into a separate get and put list
scsi: lpfc: Reduce time spent in IRQ for received NVME commands
scsi: lpfc: Vport creation is failing with "Link Down" error
scsi: lpfc: Fix nvme_info sysfs output to be consistent
scsi: lpfc: Fix system panic when express lane enabled.
scsi: lpfc: update to revision to 11.4.0.0
scsi: lpfc: Add auto EQ delay logic
scsi: lpfc: Fix defects reported by Coverity Scan
scsi: lpfc: Fix vports not logging into target
scsi: lpfc: Fix PRLI retry handling when target rejects it.
scsi: lpfc: Null pointer dereference when log_verbose is set to 0xffffffff
scsi: lpfc: Fix System panic after loading the driver
scsi: lpfc: Fix crash on powering off BFS VM with passthrough device
scsi: lpfc: Fix return value of board_mode store routine in case of online failure
scsi: lpfc: Fix counters so outstandng NVME IO count is accurate
scsi: lpfc: Fix Port going offline after multiple resets.
scsi: lpfc: Fix nvmet node ref count handling
scsi: lpfc: Fix Lun Priority level shown as NA
scsi: lpfc: Add changes to assist in NVMET debugging
scsi: lpfc: Fix nvme port role handling in sysfs and debugfs handlers.
scsi: lpfc: Fix transition nvme-i rport handling to nport only.
scsi: lpfc: Add nvme initiator devloss support
Jia-Ju Bai (1):
scsi: megaraid: Fix a sleep-in-atomic bug
Joe Carnuccio (1):
scsi: qla2xxx: Retain loop test for fwdump length exceeding buffer length
Johan Hovold (1):
scsi: sun_esp: fix device reference leaks
Johannes Berg (1):
scsi: qla2xxx: don't include <generated/utsrelease.h>
Johannes Thumshirn (2):
scsi: qla2xxx: Protect access to qpair members with qpair->qp_lock
scsi: sas: scsi_queue_work can fail, so make callers aware
John Garry (6):
scsi: hisi_sas: redefine hisi_sas_phy.phy_type as u32
scsi: hisi_sas: add initialisation for v3 pci-based controller
scsi: hisi_sas: add skeleton v3 hw driver
scsi: hisi_sas: create hisi_sas_get_fw_info()
scsi: hisi_sas: add pci_dev in hisi_hba struct
scsi: hisi_sas: define hisi_sas_device.device_id as int
Kees Cook (1):
scsi: csiostor: Avoid content leaks and casts
Kefeng Wang (1):
scsi: fc: drop residual tsk_mgmt_response and it_nexus_response
Kevin Barnett (35):
scsi: smartpqi: bump driver version
scsi: smartpqi: add module parameters
scsi: smartpqi: cleanup list initialization
scsi: smartpqi: add raid level show
scsi: smartpqi: make ioaccel references consistent
scsi: smartpqi: enhance device add and remove messages
scsi: smartpqi: update timeout on admin commands
scsi: smartpqi: map more raid errors to SCSI errors
scsi: smartpqi: cleanup controller branding
scsi: smartpqi: update rescan worker
scsi: smartpqi: update device offline
scsi: smartpqi: correct aio error path
scsi: smartpqi: add lockup action
scsi: smartpqi: remove qdepth calculations for logical volumes
scsi: smartpqi: enhance kdump
scsi: smartpqi: change return value for LUN reset operations
scsi: smartpqi: add ptraid support
scsi: smartpqi: update copyright
scsi: smartpqi: cleanup messages
scsi: smartpqi: add new PCI device IDs
scsi: smartpqi: minor driver cleanup
scsi: smartpqi: correct BMIC identify physical drive
scsi: smartpqi: eliminate redundant error messages
scsi: smartpqi: make pdev pointer names consistent
scsi: smartpqi: add pqi_wait_for_completion_io
scsi: smartpqi: correct bdma hw bug
scsi: smartpqi: add heartbeat check
scsi: smartpqi: add suspend and resume support
scsi: smartpqi: enhance resets
scsi: smartpqi: add supporting events
scsi: smartpqi: ensure controller is in SIS mode at init
scsi: smartpqi: add in controller checkpoint for controller lockups.
scsi: smartpqi: set pci completion timeout
scsi: smartpqi: cleanup interrupt management
scsi: smartpqi: correct remove scsi devices
Kyle Fortin (1):
scsi: libiscsi: use kvzalloc for iscsi_pool_init
Long Li (1):
scsi: storvsc: use default I/O timeout handler for FC devices
Martin K. Petersen (1):
scsi: sd: Use sysfs_match_string()
Matthew R. Ochs (11):
scsi: cxlflash: Update debug prints in reset handlers
scsi: cxlflash: Update send_tmf() parameters
scsi: cxlflash: Avoid double free of character device
scsi: cxlflash: Update TMF command processing
scsi: cxlflash: Remove zeroing of private command data
scsi: cxlflash: Support WS16 unmap
scsi: cxlflash: Support AFU debug
scsi: cxlflash: Support LUN provisioning
scsi: cxlflash: Refactor AFU capability checking
scsi: cxlflash: Introduce host ioctl support
scsi: cxlflash: Separate AFU internal command handling from AFU sync specifics
Maurizio Lombardi (1):
scsi: ses: do not add a device to an enclosure if enclosure_add_links() fails.
Michael Schmitz (1):
scsi: atari_scsi: Use m68k_realnum_memory for FastRAM test
Milan P. Gandhi (2):
scsi: fcoe: Remove an extra out label in _fcoe_create function
scsi: fcoe: Fix few small typos in fcoe.c
Paolo Bonzini (1):
scsi: virtio_scsi: let host do exception handling
Quinn Tran (26):
scsi: qla2xxx: Include Exchange offload/Extended Login into FW dump
scsi: qla2xxx: Move target stat counters from vha to qpair.
scsi: qla2xxx: Remove datasegs_per_cmd and datasegs_per_cont field
scsi: qla2xxx: Remove unused tgt_enable_64bit_addr flag
scsi: qla2xxx: Add debug logging routine for qpair
scsi: qla2xxx: Add function call to qpair for door bell
scsi: qla2xxx: use shadow register for ISP27XX
scsi: qla2xxx: move fields from qla_hw_data to qla_qpair
scsi: qla2xxx: Add fw_started flags to qpair
scsi: qla2xxx: Add debug knob for user control workload
scsi: qla2xxx: Enable Target Multi Queue
scsi: qla2xxx: Preparation for Target MQ.
scsi: qla2xxx: Combine Active command arrays.
scsi: qla2xxx: Remove extra register read
scsi: qla2xxx: Remove unused irq_cmd_count field.
scsi: qla2xxx: Accelerate SCSI BUSY status generation in target mode
scsi: qla2xxx: Remove redundant wait when target is stopped.
scsi: qla2xxx: Add ql2xiniexchg parameter
scsi: qla2xxx: Turn on FW option for exchange check
scsi: qla2xxx: Cleanup debug message IDs
scsi: qla2xxx: Fix name server relogin
scsi: qla2xxx: Convert 32-bit LUN usage to 64-bit
scsi: tcm_qla2xxx: Do not allow aborted cmd to advance.
scsi: qla2xxx: Fix path recovery
scsi: qla2xxx: Replace usage of spin_lock with spin_lock_irqsave
scsi: qla2xxx: Allow ABTS, PURX, RIDA on ATIOQ for ISP83XX/27XX
Raghava Aditya Renukunta (19):
scsi: aacraid: Update driver version to 50834
scsi: aacraid: Remove reference to Series-9
scsi: aacraid: Add reset debugging statements
scsi: aacraid: Enable ctrl reset for both hba and arc
scsi: aacraid: Make sure ioctl returns on controller reset
scsi: aacraid: Use correct function to get ctrl health
scsi: aacraid: Rework aac_src_restart
scsi: aacraid: Rework SOFT reset code
scsi: aacraid: Add periodic checks to see IOP reset status
scsi: aacraid: Rework IOP reset
scsi: aacraid: Using single reset mask for IOP reset
scsi: aacraid: Print ctrl status before eh reset
scsi: aacraid: Log count info of scsi cmds before reset
scsi: aacraid: Change wait time for fib completion
scsi: aacraid: Remove reset support from check_health
scsi: aacraid: Set correct Queue Depth for HBA1000 RAW disks
scsi: aacraid: Added 32 and 64 queue depth for arc natives
scsi: aacraid: Fix DMAR issues with iommu=pt
scsi: aacraid: Remove __GFP_DMA for raw srb memory
Satish Kharat (4):
scsi: fnic: changing queue command to return result DID_IMM_RETRY when rport is init
scsi: fnic: correct speed display and add support for 25,40 and 100G
scsi: fnic: added timestamp reporting in fnic debug stats
scsi: fnic: Zero io_cmpl_skip on fw reset completion
Sawan Chandak (2):
scsi: qla2xxx: Fix mailbox failure while deleting Queue pairs
scsi: qla2xxx: Use flag PFLG_DISCONNECTED.
Scott Teel (1):
scsi: hpsa: separate monitor events from rescan worker
Seth Forshee (1):
scsi: aacraid: Don't copy uninitialized stack memory to userspace
Stephen Hemminger (2):
scsi: storvsc: remove unnecessary channel inbound lock
scsi: storvsc: use in place iterator function
Szymon Mielczarek (1):
scsi: ufs: Tidy clocks list head usage
Tyrel Datwyler (1):
scsi: fix typos and grammar in comments of scsi_transport_fc.c
Uma Krishnan (9):
scsi: cxlflash: Create character device to provide host management interface
scsi: cxlflash: Add scsi command abort handler
scsi: cxlflash: Flush pending commands in cleanup path
scsi: cxlflash: Track pending scsi commands in each hardware queue
scsi: cxlflash: Handle AFU sync failures
scsi: cxlflash: Schedule asynchronous reset of the host
scsi: cxlflash: Reset hardware queue context via specified register
scsi: cxlflash: Update cxlflash_afu_sync() to return errno
scsi: cxlflash: Combine the send queue locks
Varun Prakash (4):
scsi: cxgb4i: assign rxqs in round robin mode
scsi: csiostor: update module version
scsi: csiostor: add check for supported fw version
scsi: csiostor: add support for Chelsio T6 adapters
Xiang Chen (17):
scsi: hisi_sas: modify internal abort dev flow for v3 hw
scsi: hisi_sas: add v3 code to fill some more hw function pointers
scsi: hisi_sas: add get_wideport_bitmap_v3_hw()
scsi: hisi_sas: add v3 code to send internal abort command
scsi: hisi_sas: add v3 code for itct setup and free
scsi: hisi_sas: add v3 code to send ATA frame
scsi: hisi_sas: add v3 code to send SMP frame
scsi: hisi_sas: add v3 code to send SSP frame
scsi: hisi_sas: add v3 cq interrupt handler
scsi: hisi_sas: add phy up/down/bcast and channel ISR
scsi: hisi_sas: add v3 hw PHY init
scsi: hisi_sas: add v3 hw init
scsi: hisi_sas: relocate get_ncq_tag_v2_hw()
scsi: hisi_sas: relocate sata_done_v2_hw()
scsi: hisi_sas: relocate get_ata_protocol()
scsi: hisi_sas: optimise the usage of hisi_hba.lock
scsi: hisi_sas: fix timeout check in hisi_sas_internal_task_abort()
Xiaofei Tan (1):
scsi: hisi_sas: optimise DMA slot memory
Zang Leigang (1):
scsi: ufs: flush eh_work when eh_work scheduled.
himanshu.madhani@cavium.com (1):
scsi: qla2xxx: Update driver version to 9.01.00.00-k
With the diffstat:
Documentation/ioctl/ioctl-number.txt | 2 +-
Documentation/powerpc/cxlflash.txt | 76 +-
drivers/hv/channel_mgmt.c | 1 -
drivers/misc/enclosure.c | 14 +-
drivers/scsi/53c700.c | 8 +-
drivers/scsi/Kconfig | 11 -
drivers/scsi/aacraid/aachba.c | 17 +-
drivers/scsi/aacraid/aacraid.h | 22 +-
drivers/scsi/aacraid/commctrl.c | 19 +-
drivers/scsi/aacraid/comminit.c | 18 +-
drivers/scsi/aacraid/commsup.c | 78 +-
drivers/scsi/aacraid/linit.c | 232 ++-
drivers/scsi/aacraid/src.c | 136 +-
drivers/scsi/atari_scsi.c | 2 +-
drivers/scsi/bnx2fc/57xx_hsi_bnx2fc.h | 3 +-
drivers/scsi/bnx2fc/bnx2fc.h | 5 +-
drivers/scsi/bnx2fc/bnx2fc_constants.h | 3 +-
drivers/scsi/bnx2fc/bnx2fc_debug.c | 3 +-
drivers/scsi/bnx2fc/bnx2fc_debug.h | 3 +-
drivers/scsi/bnx2fc/bnx2fc_els.c | 16 +-
drivers/scsi/bnx2fc/bnx2fc_fcoe.c | 62 +-
drivers/scsi/bnx2fc/bnx2fc_hwi.c | 3 +-
drivers/scsi/bnx2fc/bnx2fc_io.c | 14 +-
drivers/scsi/bnx2fc/bnx2fc_tgt.c | 3 +-
drivers/scsi/bnx2i/bnx2i_iscsi.c | 3 +-
drivers/scsi/csiostor/csio_hw.c | 98 +-
drivers/scsi/csiostor/csio_hw.h | 1 +
drivers/scsi/csiostor/csio_hw_chip.h | 14 +
drivers/scsi/csiostor/csio_hw_t5.c | 29 +-
drivers/scsi/csiostor/csio_init.c | 6 +-
drivers/scsi/csiostor/csio_init.h | 2 +-
drivers/scsi/csiostor/csio_lnode.c | 43 +-
drivers/scsi/csiostor/csio_wr.c | 4 +-
drivers/scsi/cxgbi/cxgb4i/cxgb4i.c | 5 +-
drivers/scsi/cxgbi/libcxgbi.h | 1 +
drivers/scsi/cxlflash/common.h | 48 +-
drivers/scsi/cxlflash/main.c | 1048 ++++++++--
drivers/scsi/cxlflash/main.h | 7 +
drivers/scsi/cxlflash/sislite.h | 27 +-
drivers/scsi/cxlflash/superpipe.c | 34 +-
drivers/scsi/cxlflash/vlun.c | 89 +-
drivers/scsi/device_handler/scsi_dh_alua.c | 27 +-
drivers/scsi/esas2r/esas2r.h | 4 +-
drivers/scsi/esas2r/esas2r_init.c | 4 +-
drivers/scsi/esas2r/esas2r_ioctl.c | 10 +-
drivers/scsi/fcoe/fcoe.c | 12 +-
drivers/scsi/fnic/fnic_debugfs.c | 1 +
drivers/scsi/fnic/fnic_fcs.c | 24 +
drivers/scsi/fnic/fnic_io.h | 9 +
drivers/scsi/fnic/fnic_main.c | 14 +-
drivers/scsi/fnic/fnic_scsi.c | 17 +-
drivers/scsi/fnic/fnic_stats.h | 7 +
drivers/scsi/fnic/fnic_trace.c | 24 +
drivers/scsi/hisi_sas/Kconfig | 10 +-
drivers/scsi/hisi_sas/Makefile | 1 +
drivers/scsi/hisi_sas/hisi_sas.h | 91 +-
drivers/scsi/hisi_sas/hisi_sas_main.c | 436 +++--
drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 82 +-
drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 216 +--
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 1846 ++++++++++++++++++
drivers/scsi/hpsa.c | 851 ++-------
drivers/scsi/hpsa.h | 4 +-
drivers/scsi/hpsa_cmd.h | 20 +-
drivers/scsi/hptiop.c | 2 +-
drivers/scsi/ibmvscsi/ibmvfc.c | 2 +-
drivers/scsi/ibmvscsi/ibmvscsi.c | 2 +-
drivers/scsi/libiscsi.c | 4 +-
drivers/scsi/libsas/sas_event.c | 36 +-
drivers/scsi/libsas/sas_internal.h | 4 +-
drivers/scsi/lpfc/lpfc.h | 23 +-
drivers/scsi/lpfc/lpfc_attr.c | 101 +-
drivers/scsi/lpfc/lpfc_ct.c | 31 +-
drivers/scsi/lpfc/lpfc_debugfs.c | 83 +-
drivers/scsi/lpfc/lpfc_els.c | 55 +-
drivers/scsi/lpfc/lpfc_hbadisc.c | 17 +-
drivers/scsi/lpfc/lpfc_hw4.h | 14 +
drivers/scsi/lpfc/lpfc_init.c | 163 +-
drivers/scsi/lpfc/lpfc_nvme.c | 211 +--
drivers/scsi/lpfc/lpfc_nvme.h | 2 -
drivers/scsi/lpfc/lpfc_nvmet.c | 308 ++-
drivers/scsi/lpfc/lpfc_nvmet.h | 14 +-
drivers/scsi/lpfc/lpfc_scsi.c | 19 +-
drivers/scsi/lpfc/lpfc_sli.c | 106 +-
drivers/scsi/lpfc/lpfc_sli.h | 1 +
drivers/scsi/lpfc/lpfc_sli4.h | 21 +-
drivers/scsi/lpfc/lpfc_version.h | 2 +-
drivers/scsi/megaraid/megaraid_mm.c | 2 +-
drivers/scsi/mpt3sas/mpt3sas_scsih.c | 8 +-
drivers/scsi/qedf/drv_fcoe_fw_funcs.c | 2 +-
drivers/scsi/qedf/drv_fcoe_fw_funcs.h | 2 +-
drivers/scsi/qedf/drv_scsi_fw_funcs.c | 2 +-
drivers/scsi/qedf/drv_scsi_fw_funcs.h | 2 +-
drivers/scsi/qedf/qedf.h | 2 +-
drivers/scsi/qedf/qedf_attr.c | 59 +-
drivers/scsi/qedf/qedf_dbg.h | 2 +-
drivers/scsi/qedf/qedf_debugfs.c | 2 +-
drivers/scsi/qedf/qedf_els.c | 8 +-
drivers/scsi/qedf/qedf_fip.c | 22 +-
drivers/scsi/qedf/qedf_hsi.h | 2 +-
drivers/scsi/qedf/qedf_io.c | 37 +-
drivers/scsi/qedf/qedf_main.c | 203 +-
drivers/scsi/qedf/qedf_version.h | 8 +-
drivers/scsi/qedi/qedi_fw.c | 4 +-
drivers/scsi/qla2xxx/Kconfig | 1 +
drivers/scsi/qla2xxx/Makefile | 2 +-
drivers/scsi/qla2xxx/qla_attr.c | 8 +-
drivers/scsi/qla2xxx/qla_bsg.c | 4 +-
drivers/scsi/qla2xxx/qla_dbg.c | 161 +-
drivers/scsi/qla2xxx/qla_dbg.h | 17 +
drivers/scsi/qla2xxx/qla_def.h | 182 +-
drivers/scsi/qla2xxx/qla_dfs.c | 145 +-
drivers/scsi/qla2xxx/qla_fw.h | 35 +-
drivers/scsi/qla2xxx/qla_gbl.h | 40 +-
drivers/scsi/qla2xxx/qla_gs.c | 275 ++-
drivers/scsi/qla2xxx/qla_init.c | 606 ++++--
drivers/scsi/qla2xxx/qla_inline.h | 60 +
drivers/scsi/qla2xxx/qla_iocb.c | 116 +-
drivers/scsi/qla2xxx/qla_isr.c | 229 ++-
drivers/scsi/qla2xxx/qla_mbx.c | 125 +-
drivers/scsi/qla2xxx/qla_mid.c | 44 +-
drivers/scsi/qla2xxx/qla_nvme.c | 761 ++++++++
drivers/scsi/qla2xxx/qla_nvme.h | 132 ++
drivers/scsi/qla2xxx/qla_nx.c | 4 +-
drivers/scsi/qla2xxx/qla_nx.h | 17 +-
drivers/scsi/qla2xxx/qla_nx2.c | 2 +-
drivers/scsi/qla2xxx/qla_os.c | 368 +++-
drivers/scsi/qla2xxx/qla_target.c | 1438 +++++++-------
drivers/scsi/qla2xxx/qla_target.h | 58 +-
drivers/scsi/qla2xxx/qla_tmpl.c | 16 +-
drivers/scsi/qla2xxx/qla_version.h | 4 +-
drivers/scsi/qla2xxx/tcm_qla2xxx.c | 36 +-
drivers/scsi/scsi.c | 13 +-
drivers/scsi/scsi_error.c | 8 +-
drivers/scsi/scsi_lib.c | 306 +--
drivers/scsi/scsi_priv.h | 3 +
drivers/scsi/scsi_scan.c | 46 +-
drivers/scsi/scsi_sysfs.c | 42 +-
drivers/scsi/scsi_transport_fc.c | 12 +-
drivers/scsi/scsi_transport_srp.c | 7 +-
drivers/scsi/sd.c | 78 +-
drivers/scsi/sgiwd93.c | 10 +-
drivers/scsi/smartpqi/smartpqi.h | 194 +-
drivers/scsi/smartpqi/smartpqi_init.c | 2419 ++++++++++++++++++------
drivers/scsi/smartpqi/smartpqi_sas_transport.c | 2 +-
drivers/scsi/smartpqi/smartpqi_sis.c | 100 +-
drivers/scsi/smartpqi/smartpqi_sis.h | 7 +-
drivers/scsi/snic/snic_isr.c | 4 +-
drivers/scsi/snic/snic_scsi.c | 4 +-
drivers/scsi/storvsc_drv.c | 56 +-
drivers/scsi/sun_esp.c | 9 +-
drivers/scsi/ufs/tc-dwc-g210-pci.c | 2 -
drivers/scsi/ufs/ufshcd-pci.c | 60 +-
drivers/scsi/ufs/ufshcd-pltfrm.c | 2 -
drivers/scsi/ufs/ufshcd.c | 15 +-
drivers/scsi/virtio_scsi.c | 13 +-
drivers/scsi/xen-scsifront.c | 1 -
include/linux/hyperv.h | 1 -
include/scsi/libsas.h | 6 +-
include/scsi/scsi_cmnd.h | 1 +
include/scsi/scsi_device.h | 9 +-
include/scsi/scsi_devinfo.h | 9 -
include/scsi/scsi_proto.h | 3 -
include/scsi/scsi_transport_fc.h | 4 -
include/uapi/scsi/cxlflash_ioctl.h | 85 +-
164 files changed, 11494 insertions(+), 4431 deletions(-)
create mode 100644 drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
create mode 100644 drivers/scsi/qla2xxx/qla_nvme.c
create mode 100644 drivers/scsi/qla2xxx/qla_nvme.h
James
---
diff --cc drivers/scsi/scsi_lib.c
index 550e29f903b7,41c19c75dab4..f6097b89d5d3
--- a/drivers/scsi/scsi_lib.c
+++ b/drivers/scsi/scsi_lib.c
@@@ -1116,20 -1124,35 +1106,49 @@@ err_exit
}
EXPORT_SYMBOL(scsi_init_io);
+/**
+ * scsi_initialize_rq - initialize struct scsi_cmnd.req
+ *
+ * Called from inside blk_get_request().
+ */
+void scsi_initialize_rq(struct request *rq)
+{
+ struct scsi_cmnd *cmd = blk_mq_rq_to_pdu(rq);
+
+ scsi_req_init(&cmd->req);
+}
+EXPORT_SYMBOL(scsi_initialize_rq);
+
+ /* Add a command to the list used by the aacraid and dpt_i2o drivers */
+ void scsi_add_cmd_to_list(struct scsi_cmnd *cmd)
+ {
+ struct scsi_device *sdev = cmd->device;
+ struct Scsi_Host *shost = sdev->host;
+ unsigned long flags;
+
+ if (shost->use_cmd_list) {
+ spin_lock_irqsave(&sdev->list_lock, flags);
+ list_add_tail(&cmd->list, &sdev->cmd_list);
+ spin_unlock_irqrestore(&sdev->list_lock, flags);
+ }
+ }
+
+ /* Remove a command from the list used by the aacraid and dpt_i2o drivers */
+ void scsi_del_cmd_from_list(struct scsi_cmnd *cmd)
+ {
+ struct scsi_device *sdev = cmd->device;
+ struct Scsi_Host *shost = sdev->host;
+ unsigned long flags;
+
+ if (shost->use_cmd_list) {
+ spin_lock_irqsave(&sdev->list_lock, flags);
+ BUG_ON(list_empty(&cmd->list));
+ list_del_init(&cmd->list);
+ spin_unlock_irqrestore(&sdev->list_lock, flags);
+ }
+ }
+
+/* Called after a request has been started. */
void scsi_init_command(struct scsi_device *dev, struct scsi_cmnd *cmd)
{
void *buf = cmd->sense_buffer;
@@@ -2974,10 -2989,7 +2989,7 @@@ int scsi_internal_device_block_nowait(s
* request queue.
*/
if (q->mq_ops) {
- if (wait)
- blk_mq_quiesce_queue(q);
- else
- blk_mq_quiesce_queue_nowait(q);
- blk_mq_stop_hw_queues(q);
++ blk_mq_quiesce_queue_nowait(q);
} else {
spin_lock_irqsave(q->queue_lock, flags);
blk_stop_queue(q);
@@@ -2988,31 -2998,77 +2998,77 @@@
return 0;
}
- EXPORT_SYMBOL_GPL(scsi_internal_device_block);
-
+ EXPORT_SYMBOL_GPL(scsi_internal_device_block_nowait);
+
/**
- * scsi_internal_device_unblock - resume a device after a block request
- * @sdev: device to resume
- * @new_state: state to set devices to after unblocking
+ * scsi_internal_device_block - try to transition to the SDEV_BLOCK state
+ * @sdev: device to block
+ *
+ * Pause SCSI command processing on the specified device and wait until all
+ * ongoing scsi_request_fn() / scsi_queue_rq() calls have finished. May sleep.
*
- * Called by scsi lld's or the midlayer to restart the device queue
- * for the previously suspended scsi device. Called from interrupt or
- * normal process context.
+ * Returns zero if successful or a negative error code upon failure.
*
- * Returns zero if successful or error if not.
+ * Note:
+ * This routine transitions the device to the SDEV_BLOCK state (which must be
+ * a legal transition). When the device is in this state, command processing
+ * is paused until the device leaves the SDEV_BLOCK state. See also
+ * scsi_internal_device_unblock().
*
- * Notes:
- * This routine transitions the device to the SDEV_RUNNING state
- * or to one of the offline states (which must be a legal transition)
- * allowing the midlayer to goose the queue for this device.
+ * To do: avoid that scsi_send_eh_cmnd() calls queuecommand() after
+ * scsi_internal_device_block() has blocked a SCSI device and also
+ * remove the rport mutex lock and unlock calls from srp_queuecommand().
*/
- int
- scsi_internal_device_unblock(struct scsi_device *sdev,
- enum scsi_device_state new_state)
+ static int scsi_internal_device_block(struct scsi_device *sdev)
{
- struct request_queue *q = sdev->request_queue;
+ struct request_queue *q = sdev->request_queue;
+ int err;
+
+ mutex_lock(&sdev->state_mutex);
+ err = scsi_internal_device_block_nowait(sdev);
+ if (err == 0) {
+ if (q->mq_ops)
+ blk_mq_quiesce_queue(q);
+ else
+ scsi_wait_for_queuecommand(sdev);
+ }
+ mutex_unlock(&sdev->state_mutex);
+
+ return err;
+ }
+
+ void scsi_start_queue(struct scsi_device *sdev)
+ {
+ struct request_queue *q = sdev->request_queue;
unsigned long flags;
+ if (q->mq_ops) {
- blk_mq_start_stopped_hw_queues(q, false);
++ blk_mq_unquiesce_queue(q);
+ } else {
+ spin_lock_irqsave(q->queue_lock, flags);
+ blk_start_queue(q);
+ spin_unlock_irqrestore(q->queue_lock, flags);
+ }
+ }
+
+ /**
+ * scsi_internal_device_unblock_nowait - resume a device after a block request
+ * @sdev: device to resume
+ * @new_state: state to set the device to after unblocking
+ *
+ * Restart the device queue for a previously suspended SCSI device. Does not
+ * sleep.
+ *
+ * Returns zero if successful or a negative error code upon failure.
+ *
+ * Notes:
+ * This routine transitions the device to the SDEV_RUNNING state or to one of
+ * the offline states (which must be a legal transition) allowing the midlayer
+ * to goose the queue for this device.
+ */
+ int scsi_internal_device_unblock_nowait(struct scsi_device *sdev,
+ enum scsi_device_state new_state)
+ {
/*
* Try to transition the scsi device to SDEV_RUNNING or one of the
* offlined states and goose the device queue if successful.
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2017-07-04 15:24 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-07-04 15:24 [GIT PULL] first round of SCSI updates for the 4.12+ merge window James Bottomley
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.