[GIT PULL] first round of SCSI updates for the 4.18+ merge window

From: James Bottomley
Date: Wed Aug 15 2018 - 14:58:24 EST


This is mostly updates to the usual drivers: mpt3sas, lpfc, qla2xxx,
hisi_sas, smartpqi, megaraid_sas, arcmsr. In addition, with the
continuing absence of Nic we have target updates for tcmu and target
core (all with reviews and acks). The biggest observable change is
going to be that we're (again) trying to switch to mulitqueue as the
default (a user can still override the setting on the kernel command
line). Other major core stuff is the removal of the remaining
Microchannel drivers, an update of the internal timers and some reworks
of completion and result handling.

There's a conflict between this patch and your tree (mostly around some
of the fixes we've already sent you). I attach the proposed resolution
below, just in case you need it.

The patch is available here:

git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git scsi-misc

The short changelog is:

Anton Vasilyev (1):
ÂÂÂÂÂÂscsi: 3ware: fix return 0 on the error path of probe

Arjun Vynipadath (1):
ÂÂÂÂÂÂscsi: csiostor: update csio_get_flash_params()

Arnd Bergmann (5):
ÂÂÂÂÂÂscsi: snic: fix printing time intervals
ÂÂÂÂÂÂscsi: target: sbitmap: add seq_file forward declaration
ÂÂÂÂÂÂscsi: lpfc: use monotonic timestamps for statistics
ÂÂÂÂÂÂscsi: scsi_transport_fc: use 64-bit timestamps consistently
ÂÂÂÂÂÂscsi: aacraid: stop using deprated get_seconds()

Bart Van Assche (37):
ÂÂÂÂÂÂscsi: core: Avoid that SCSI device removal through sysfs triggers a deadlock
ÂÂÂÂÂÂscsi: sysfs: Introduce sysfs_{un,}break_active_protection()
ÂÂÂÂÂÂRevert "scsi: target/iscsi: Reduce number of __iscsit_free_cmd() callers"
ÂÂÂÂÂÂscsi: libiscsi: Annotate fall-through
ÂÂÂÂÂÂscsi: libiscsi: Annotate locking assumptions
ÂÂÂÂÂÂscsi: target: Remove se_dev_entry.ua_count
ÂÂÂÂÂÂscsi: target: Fix handling of removed LUNs
ÂÂÂÂÂÂscsi: target: Send unit attention condition even if the sense buffer is too small
ÂÂÂÂÂÂscsi: target: Do not duplicate the code that marks that a command has sense data
ÂÂÂÂÂÂscsi: target/tcm_loop: Avoid that static checkers warn about dead code
ÂÂÂÂÂÂscsi: target: Remove second argument from fabric_make_tpg()
ÂÂÂÂÂÂscsi: target/iscsi: Make iscsit_ta_authentication() respect the output buffer size
ÂÂÂÂÂÂscsi: target/iscsi: Reduce number of __iscsit_free_cmd() callers
ÂÂÂÂÂÂscsi: target: Simplify the code for waiting for command completion
ÂÂÂÂÂÂscsi: target: Simplify transport_generic_free_cmd() (2/2)
ÂÂÂÂÂÂscsi: target: Simplify transport_generic_free_cmd() (1/2)
ÂÂÂÂÂÂscsi: target: Fold core_tmr_handle_tas_abort() into transport_cmd_finish_abort()
ÂÂÂÂÂÂscsi: target: Simplify core_tmr_handle_tas_abort()
ÂÂÂÂÂÂscsi: target: Document when CMD_T_STOP and CMD_T_COMPLETE are set
ÂÂÂÂÂÂscsi: target: Make the session shutdown code also wait for commands that are being aborted
ÂÂÂÂÂÂscsi: target: Introduce transport_init_session()
ÂÂÂÂÂÂscsi: target: Rename transport_init_session() into transport_alloc_session()
ÂÂÂÂÂÂscsi: target: Move a list_del_init() statement
ÂÂÂÂÂÂscsi: target: Avoid that EXTENDED COPY commands trigger lock inversion
ÂÂÂÂÂÂscsi: target: Use config_item_name() instead of open-coding it
ÂÂÂÂÂÂscsi: klist: Make it safe to use klists in atomic context
ÂÂÂÂÂÂscsi: sd_zbc: Remove an assignment from sd_zbc_setup_report_cmnd()
ÂÂÂÂÂÂscsi: sd: Remove a superfluous assignment
ÂÂÂÂÂÂscsi: qedi: Fix misleading indentation
ÂÂÂÂÂÂscsi: mpt3sas: Improve kernel-doc headers
ÂÂÂÂÂÂscsi: mpt3sas: Split _base_reset_handler(), mpt3sas_scsih_reset_handler() and mpt3sas_ctl_reset_handler()
ÂÂÂÂÂÂscsi: mpt3sas: Fix a race condition in mpt3sas_base_hard_reset_handler()
ÂÂÂÂÂÂscsi: mpt3sas: Fix _transport_smp_handler() error path
ÂÂÂÂÂÂscsi: mpt3sas: Introduce struct mpt3sas_nvme_cmd
ÂÂÂÂÂÂscsi: mpt3sas: Annotate switch/case fall-through
ÂÂÂÂÂÂscsi: mpt3sas: Remove set-but-not-used variables
ÂÂÂÂÂÂscsi: mpt3sas: Fix indentation

Breno Leitao (1):
ÂÂÂÂÂÂscsi: ibmvscsi: Improve strings handling

Chaitra P B (7):
ÂÂÂÂÂÂscsi: mpt3sas: Fix for regression caused by sparse cleanups
ÂÂÂÂÂÂscsi: mpt3sas: Update driver version "26.100.00.00"
ÂÂÂÂÂÂscsi: mpt3sas: As per MPI-spec, use combined reply queue for SAS3.5 controllers when HBA supports more than 16 MSI-x vectors.
ÂÂÂÂÂÂscsi: mpt3sas: Fix, False timeout prints for ioctl and other internal commands during controller reset.
ÂÂÂÂÂÂscsi: mpt3sas: Don't access the structure after decrementing it's instance reference count.
ÂÂÂÂÂÂscsi: mpt3sas: Incorrect command status was set/marked as not used.
ÂÂÂÂÂÂscsi: mpt3sas: Don't abort I/Os issued to NVMe drives while processing Async Broadcast primitive event.

Ching Huang (2):
ÂÂÂÂÂÂscsi: arcmsr: Update driver version to v1.40.00.09-20180709
ÂÂÂÂÂÂscsi: arcmsr: Fix error of resuming from hibernation for adapter type E

Colin Ian King (3):
ÂÂÂÂÂÂscsi: st: remove redundant pointer STbuffer
ÂÂÂÂÂÂscsi: sym53c8xx: remove some redundant variables
ÂÂÂÂÂÂscsi: lpfc: remove null check on nvmebuf

Dan Carpenter (2):
ÂÂÂÂÂÂscsi: aic94xx: fix an error code in aic94xx_init()
ÂÂÂÂÂÂscsi: qedi: tidy up a size calculation

Dominique Martinet (2):
ÂÂÂÂÂÂscsi: ibmvscsi: change strncpy+truncation to strlcpy
ÂÂÂÂÂÂscsi: mptctl: change strncpy+truncation to strlcpy

Don Brace (1):
ÂÂÂÂÂÂscsi: smartpqi: bump driver version to 1.1.4-130

Dongliang Mu (1):
ÂÂÂÂÂÂscsi: aacraid: Spelling fix in comment

Douglas Gilbert (9):
ÂÂÂÂÂÂscsi: scsi_debug: add cmd abort option to every_nth
ÂÂÂÂÂÂscsi: scsi_debug: skip long delays when ndelay small
ÂÂÂÂÂÂscsi: core: scsi_io_completion convert BUGs to WARNs
ÂÂÂÂÂÂscsi: core: scsi_io_completion hints on fastpath
ÂÂÂÂÂÂscsi: core: add scsi_io_completion_reprep helper
ÂÂÂÂÂÂscsi: core: add scsi_io_completion_action helper
ÂÂÂÂÂÂscsi: core: add scsi_io_completion_nz_result function
ÂÂÂÂÂÂscsi: core: scsi_io_completion: rename variables
ÂÂÂÂÂÂscsi: core: scsi_io_completion: comment on end_request return

Gustavo A. R. Silva (1):
ÂÂÂÂÂÂscsi: mptfusion: mark expected switch fall-throughs

Hannes Reinecke (6):
ÂÂÂÂÂÂscsi: fcoe: hold disc_mutex when traversing rport lists
ÂÂÂÂÂÂscsi: libfc: Add WARN_ON() when deleting rports
ÂÂÂÂÂÂscsi: libfc: hold disc_mutex in fc_disc_stop_rports()
ÂÂÂÂÂÂscsi: libfc: fixup lockdep annotations
ÂÂÂÂÂÂscsi: libfc: fixup 'sleeping function called from invalid context'
ÂÂÂÂÂÂscsi: libfc: Add lockdep annotations

Himanshu Madhani (3):
ÂÂÂÂÂÂscsi: qla2xxx: Update driver version to 10.00.00.08-k
ÂÂÂÂÂÂscsi: qla2xxx: Fix stalled relogin
ÂÂÂÂÂÂscsi: qla2xxx: Cleanup for N2N code

James Smart (18):
ÂÂÂÂÂÂscsi: lpfc: update driver version to 12.0.0.6
ÂÂÂÂÂÂscsi: lpfc: Remove lpfc_enable_pbde as module parameter
ÂÂÂÂÂÂscsi: lpfc: Correct LCB ACCept payload
ÂÂÂÂÂÂscsi: lpfc: Limit tracking of tgt queue depth in fast path
ÂÂÂÂÂÂscsi: lpfc: Fix driver crash when re-registering NVME rports.
ÂÂÂÂÂÂscsi: lpfc: Fix list corruption on the completion queue.
ÂÂÂÂÂÂscsi: lpfc: Fix sysfs Speed value on CNA ports
ÂÂÂÂÂÂscsi: lpfc: Fix ELS abort on SLI-3 adapters
ÂÂÂÂÂÂscsi: lpfc: Revise copyright for new company language
ÂÂÂÂÂÂscsi: lpfc: update driver version to 12.0.0.5
ÂÂÂÂÂÂscsi: lpfc: devloss timeout race condition caused null pointer reference
ÂÂÂÂÂÂscsi: lpfc: Fix NVME Target crash in defer rcv logic
ÂÂÂÂÂÂscsi: lpfc: Support duration field in Link Cable Beacon V1 command
ÂÂÂÂÂÂscsi: lpfc: Make PBDE optimizations configurable
ÂÂÂÂÂÂscsi: lpfc: Fix abort error path for NVMET
ÂÂÂÂÂÂscsi: lpfc: Fix panic if driver unloaded when port is offline
ÂÂÂÂÂÂscsi: lpfc: Fix driver not setting dpp bits correctly in doorbell word
ÂÂÂÂÂÂscsi: lpfc: Add Buffer overflow check, when nvme_info larger than PAGE_SIZE

Jason Yan (1):
ÂÂÂÂÂÂscsi: libsas: dynamically allocate and free ata host

Jeff Moyer (1):
ÂÂÂÂÂÂscsi: sg: clean up gfp_mask in sg_build_indirect

Jia-Ju Bai (3):
ÂÂÂÂÂÂscsi: atp870u: Replace mdelay() with msleep()
ÂÂÂÂÂÂscsi: a100u2w: Replace mdelay() with msleep()
ÂÂÂÂÂÂscsi: message: fusion: Replace GFP_ATOMIC with GFP_KERNEL

Jianchao Wang (1):
ÂÂÂÂÂÂscsi: core: use blk_mq_run_hw_queues in scsi_kick_queue

Jitendra Bhivare (1):
ÂÂÂÂÂÂscsi: be2iscsi: Include null char in SET_HOST_DATA

Johannes Thumshirn (10):
ÂÂÂÂÂÂscsi: remove NCR_Q720 driver
ÂÂÂÂÂÂscsi: remove NCR_D700 driver
ÂÂÂÂÂÂscsi: ncr53c8xx: remove ScsiResult macro
ÂÂÂÂÂÂscsi: lpfc: remove ScsiResult macro
ÂÂÂÂÂÂscsi: bfa: remove ScsiResult macro
ÂÂÂÂÂÂscsi: aacraid: remove AAC_STAT_GOOD define
ÂÂÂÂÂÂscsi: core: switch to scsi-mq by default
ÂÂÂÂÂÂscsi: don't add scsi command result bytes
ÂÂÂÂÂÂscsi: core: check for equality of result byte values
ÂÂÂÂÂÂscsi: core: remove Scsi_Cmnd typedef

John Garry (3):
ÂÂÂÂÂÂscsi: hisi_sas: Drop hisi_sas_slot_abort()
ÂÂÂÂÂÂscsi: hisi_sas: Update a couple of register settings for v3 hw
ÂÂÂÂÂÂscsi: hisi_sas: Add missing PHY spinlock init

Ketan Mukadam (1):
ÂÂÂÂÂÂscsi: be2iscsi: Update copyright

Kevin Barnett (4):
ÂÂÂÂÂÂscsi: smartpqi: fix critical ARM issue reading PQI index registers
ÂÂÂÂÂÂscsi: smartpqi: add inspur advantech ids
ÂÂÂÂÂÂscsi: smartpqi: improve error checking for sync requests
ÂÂÂÂÂÂscsi: smartpqi: improve handling for sync requests

Matthew Wilcox (3):
ÂÂÂÂÂÂscsi: Remove percpu_ida
ÂÂÂÂÂÂscsi: target: Convert target drivers to use sbitmap
ÂÂÂÂÂÂscsi: target: Abstract tag freeing

Mike Christie (24):
ÂÂÂÂÂÂscsi: target: loop, usb, vhost, xen: use target_remove_session
ÂÂÂÂÂÂscsi: tcm_fc: use target_remove_session
ÂÂÂÂÂÂscsi: target: srp, vscsi, sbp, qla: use target_remove_session
ÂÂÂÂÂÂscsi: target: add session removal function
ÂÂÂÂÂÂscsi: target: rename target_alloc_session
ÂÂÂÂÂÂscsi: target: make transport_init_session_tags static
ÂÂÂÂÂÂscsi: iscsi target: have iscsit_start_nopin_timer call __iscsit_start_nopin_timer
ÂÂÂÂÂÂscsi: target: fix __transport_register_session locking
ÂÂÂÂÂÂscsi: tcmu: use u64 for dev_size
ÂÂÂÂÂÂscsi: tcmu: use match_int for dev params
ÂÂÂÂÂÂscsi: tcmu: do not set max_blocks if data_bitmap has been setup
ÂÂÂÂÂÂscsi: tcmu: unmap if dev is configured
ÂÂÂÂÂÂscsi: tcmu: check if dev is configured before block/reset
ÂÂÂÂÂÂscsi: tcmu: use lio core se_device configuration helper
ÂÂÂÂÂÂscsi: target: add helper to check if dev is configured
ÂÂÂÂÂÂscsi: tcmu: initialize list head
ÂÂÂÂÂÂscsi: target_core_user: fix double unlock
ÂÂÂÂÂÂscsi: tcmu: Don't pass KERN_ERR to pr_err
ÂÂÂÂÂÂscsi: target: remove target_find_device
ÂÂÂÂÂÂscsi: tcmu: add module wide block/reset_netlink support
ÂÂÂÂÂÂscsi: tcmu: misc nl code cleanup
ÂÂÂÂÂÂscsi: tcmu: simplify nl interface
ÂÂÂÂÂÂscsi: tcmu: track nl commands
ÂÂÂÂÂÂscsi: tcmu: delete unused __wait

Ming Lei (3):
ÂÂÂÂÂÂscsi: core: fix scsi_host_queue_ready
ÂÂÂÂÂÂscsi: core: avoid host-wide host_busy counter for scsi_mq
ÂÂÂÂÂÂscsi: read host_busy via scsi_host_busy()

Ohad Sharabi (1):
ÂÂÂÂÂÂscsi: ufs: remove unnecessary query(DM) UPIU trace

Quinn Tran (14):
ÂÂÂÂÂÂscsi: qla2xxx: Fix issue reported by static checker for qla2x00_els_dcmd2_sp_done()
ÂÂÂÂÂÂscsi: qla2xxx: Migrate NVME N2N handling into state machine
ÂÂÂÂÂÂscsi: qla2xxx: Save frame payload size from ICB
ÂÂÂÂÂÂscsi: qla2xxx: Fix race between switch cmd completion and timeout
ÂÂÂÂÂÂscsi: qla2xxx: Fix Management Server NPort handle reservation logic
ÂÂÂÂÂÂscsi: qla2xxx: Flush mailbox commands on chip reset
ÂÂÂÂÂÂscsi: qla2xxx: Fix unintended Logout
ÂÂÂÂÂÂscsi: qla2xxx: Fix session state stuck in Get Port DB
ÂÂÂÂÂÂscsi: qla2xxx: Fix redundant fc_rport registration
ÂÂÂÂÂÂscsi: qla2xxx: Silent erroneous message
ÂÂÂÂÂÂscsi: qla2xxx: Prevent sysfs access when chip is down
ÂÂÂÂÂÂscsi: qla2xxx: Add longer window for chip reset
ÂÂÂÂÂÂscsi: qla2xxx: Fix login retry count
ÂÂÂÂÂÂscsi: qla2xxx: Fix N2N link re-connect

Sebastian Andrzej Siewior (2):
ÂÂÂÂÂÂscsi: qla2xxx: remove irq save in qla2x00_poll()
ÂÂÂÂÂÂscsi: libsas: remove irq save in sas_ata_qc_issue()

Shivasharan S (5):
ÂÂÂÂÂÂscsi: megaraid_sas: driver version upgrade
ÂÂÂÂÂÂscsi: megaraid_sas: Support FW provided TM timeout values
ÂÂÂÂÂÂscsi: megaraid_sas: Return immediately from wait_for_adapter_operational after kill adapter
ÂÂÂÂÂÂscsi: megaraid_sas: Update controller info during resume
ÂÂÂÂÂÂscsi: megaraid_sas: Do not do Kill adapter if GET_CTRL_INFO times out

Souptick Joarder (1):
ÂÂÂÂÂÂscsi: cxlflash: Change return type for fault handler

Sreekanth Reddy (1):
ÂÂÂÂÂÂscsi: mpt3sas: Fix calltrace observed while running IO & reset

Tomas Winkler (1):
ÂÂÂÂÂÂscsi: ufs: ufshcd_dump_regs to use memcpy_fromio

Varun Prakash (1):
ÂÂÂÂÂÂscsi: csiostor: update ingress pack and pad boundary value

Wen Xiong (1):
ÂÂÂÂÂÂscsi: ipr: Format HCAM overlay ID 0x41

Xiang Chen (4):
ÂÂÂÂÂÂscsi: hisi_sas: Add SATA FIS check for v3 hw
ÂÂÂÂÂÂscsi: hisi_sas: Tidy hisi_sas_task_prep()
ÂÂÂÂÂÂscsi: hisi_sas: Pre-allocate slot DMA buffers
ÂÂÂÂÂÂscsi: hisi_sas: Use dmam_alloc_coherent()

Xiaofei Tan (11):
ÂÂÂÂÂÂscsi: hisi_sas: add memory barrier in task delivery function
ÂÂÂÂÂÂscsi: hisi_sas: Implement handlers of PCIe FLR for v3 hw
ÂÂÂÂÂÂscsi: hisi_sas: relocate some common code for v3 hw
ÂÂÂÂÂÂscsi: hisi_sas: tidy host controller reset function a bit
ÂÂÂÂÂÂscsi: hisi_sas: Fix the failure of recovering PHY from STP link timeout
ÂÂÂÂÂÂscsi: hisi_sas: tidy channel interrupt handler for v3 hw
ÂÂÂÂÂÂscsi: hisi_sas: Release all remaining resources in clear nexus ha
ÂÂÂÂÂÂscsi: hisi_sas: Add a flag to filter PHY events during reset
ÂÂÂÂÂÂscsi: hisi_sas: Adjust task reject period during host reset
ÂÂÂÂÂÂscsi: hisi_sas: Fix the conflict between dev gone and host reset
ÂÂÂÂÂÂscsi: hisi_sas: Only process broadcast change in phy_bcast_v3_hw()

Xiubo Li (1):
ÂÂÂÂÂÂscsi: tcmu: remove useless code and clean up the code style.

Zhouyang Jia (1):
ÂÂÂÂÂÂscsi: bnx2i: add error handling for ioremap_nocache

liwei (4):
ÂÂÂÂÂÂscsi: arm64: defconfig: enable configs for Hisilicon ufs
ÂÂÂÂÂÂscsi: arm64: dts: add ufs dts node
ÂÂÂÂÂÂscsi: ufs: dt-bindings: add document for hisi-ufs
ÂÂÂÂÂÂscsi: ufs: add Hisilicon ufs driver code

And the diffstat:

Documentation/devicetree/bindings/ufs/ufs-hisi.txt | 41 ++
.../devicetree/bindings/ufs/ufshcd-pltfrm.txt | 10 +-
MAINTAINERS | 6 -
arch/arm64/boot/dts/hisilicon/hi3660.dtsi | 18 +
arch/arm64/configs/defconfig | 1 +
drivers/ata/libata-core.c | 3 +
drivers/ata/libata.h | 2 -
drivers/infiniband/ulp/srpt/ib_srpt.c | 11 +-
drivers/message/fusion/mptbase.c | 5 +-
drivers/message/fusion/mptctl.c | 4 +-
drivers/message/fusion/mptfc.c | 2 +-
drivers/message/fusion/mptsas.c | 1 +
drivers/scsi/3w-9xxx.c | 6 +-
drivers/scsi/3w-sas.c | 3 +
drivers/scsi/3w-xxxx.c | 4 +-
drivers/scsi/Kconfig | 33 +-
drivers/scsi/Makefile | 3 -
drivers/scsi/NCR_D700.c | 405 ------------
drivers/scsi/NCR_D700.h | 30 -
drivers/scsi/NCR_Q720.c | 376 -----------
drivers/scsi/NCR_Q720.h | 29 -
drivers/scsi/a100u2w.c | 4 +-
drivers/scsi/aacraid/aachba.c | 41 +-
drivers/scsi/aacraid/commsup.c | 2 +-
drivers/scsi/aacraid/dpcsup.c | 2 +-
drivers/scsi/aacraid/rx.c | 2 +-
drivers/scsi/aacraid/sa.c | 2 +-
drivers/scsi/aacraid/src.c | 6 +-
drivers/scsi/advansys.c | 10 +-
drivers/scsi/aha152x.c | 71 +-
drivers/scsi/aha1740.c | 9 +-
drivers/scsi/aha1740.h | 4 +-
drivers/scsi/aic94xx/aic94xx_init.c | 4 +-
drivers/scsi/arcmsr/arcmsr.h | 2 +-
drivers/scsi/arcmsr/arcmsr_hba.c | 7 +
drivers/scsi/atp870u.c | 16 +-
drivers/scsi/be2iscsi/be_cmds.c | 2 +-
drivers/scsi/be2iscsi/be_iscsi.c | 15 +-
drivers/scsi/be2iscsi/be_main.c | 23 +-
drivers/scsi/be2iscsi/be_mgmt.c | 23 +-
drivers/scsi/bfa/bfad_im.c | 19 +-
drivers/scsi/bfa/bfad_im.h | 1 -
drivers/scsi/bnx2i/bnx2i_hwi.c | 2 +
drivers/scsi/ch.c | 2 +-
drivers/scsi/csiostor/csio_hw.c | 115 +++-
drivers/scsi/csiostor/csio_wr.c | 84 ++-
drivers/scsi/cxlflash/ocxl_hw.c | 5 +-
drivers/scsi/cxlflash/superpipe.c | 6 +-
drivers/scsi/dc395x.c | 5 +-
drivers/scsi/fcoe/fcoe_ctlr.c | 12 +-
drivers/scsi/gdth.c | 67 +-
drivers/scsi/gdth.h | 10 +-
drivers/scsi/gdth_proc.c | 2 +-
drivers/scsi/hisi_sas/hisi_sas.h | 14 +-
drivers/scsi/hisi_sas/hisi_sas_main.c | 319 ++++-----
drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 23 +-
drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 21 +-
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 290 ++++----
drivers/scsi/hosts.c | 32 +
drivers/scsi/ibmvscsi/ibmvfc.c | 2 +-
drivers/scsi/ibmvscsi/ibmvscsi.c | 12 +-
drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c | 6 +-
drivers/scsi/imm.c | 2 +-
drivers/scsi/ipr.c | 25 +
drivers/scsi/ipr.h | 7 +
drivers/scsi/libfc/fc_disc.c | 47 +-
drivers/scsi/libfc/fc_lport.c | 108 ++-
drivers/scsi/libfc/fc_rport.c | 100 ++-
drivers/scsi/libiscsi.c | 2 +
drivers/scsi/libiscsi_tcp.c | 2 +-
drivers/scsi/libsas/sas_ata.c | 47 +-
drivers/scsi/libsas/sas_discover.c | 2 +
drivers/scsi/libsas/sas_scsi_host.c | 4 +-
drivers/scsi/lpfc/Makefile | 4 +-
drivers/scsi/lpfc/lpfc.h | 5 +-
drivers/scsi/lpfc/lpfc_attr.c | 462 +++++++------
drivers/scsi/lpfc/lpfc_attr.h | 4 +-
drivers/scsi/lpfc/lpfc_bsg.c | 2 +-
drivers/scsi/lpfc/lpfc_bsg.h | 4 +-
drivers/scsi/lpfc/lpfc_compat.h | 4 +-
drivers/scsi/lpfc/lpfc_crtn.h | 3 +-
drivers/scsi/lpfc/lpfc_ct.c | 2 +-
drivers/scsi/lpfc/lpfc_debugfs.h | 2 +-
drivers/scsi/lpfc/lpfc_disc.h | 7 +-
drivers/scsi/lpfc/lpfc_els.c | 68 +-
drivers/scsi/lpfc/lpfc_hbadisc.c | 2 +-
drivers/scsi/lpfc/lpfc_hw.h | 20 +-
drivers/scsi/lpfc/lpfc_hw4.h | 46 +-
drivers/scsi/lpfc/lpfc_ids.h | 2 +-
drivers/scsi/lpfc/lpfc_init.c | 28 +-
drivers/scsi/lpfc/lpfc_logmsg.h | 4 +-
drivers/scsi/lpfc/lpfc_mbox.c | 2 +-
drivers/scsi/lpfc/lpfc_mem.c | 2 +-
drivers/scsi/lpfc/lpfc_nl.h | 4 +-
drivers/scsi/lpfc/lpfc_nportdisc.c | 11 +-
drivers/scsi/lpfc/lpfc_nvme.c | 76 ++-
drivers/scsi/lpfc/lpfc_nvme.h | 1 +
drivers/scsi/lpfc/lpfc_nvmet.c | 60 +-
drivers/scsi/lpfc/lpfc_nvmet.h | 2 +-
drivers/scsi/lpfc/lpfc_scsi.c | 181 +++--
drivers/scsi/lpfc/lpfc_scsi.h | 2 +
drivers/scsi/lpfc/lpfc_sli.c | 50 +-
drivers/scsi/lpfc/lpfc_sli.h | 6 +-
drivers/scsi/lpfc/lpfc_sli4.h | 5 +-
drivers/scsi/lpfc/lpfc_version.h | 6 +-
drivers/scsi/lpfc/lpfc_vport.c | 4 +-
drivers/scsi/lpfc/lpfc_vport.h | 4 +-
drivers/scsi/megaraid.c | 29 +-
drivers/scsi/megaraid.h | 14 +-
drivers/scsi/megaraid/megaraid_sas.h | 33 +-
drivers/scsi/megaraid/megaraid_sas_base.c | 61 +-
drivers/scsi/megaraid/megaraid_sas_fusion.c | 36 +-
drivers/scsi/mesh.c | 4 +-
drivers/scsi/mpt3sas/mpt3sas_base.c | 450 ++++++-------
drivers/scsi/mpt3sas/mpt3sas_base.h | 30 +-
drivers/scsi/mpt3sas/mpt3sas_config.c | 81 ++-
drivers/scsi/mpt3sas/mpt3sas_ctl.c | 395 ++++++-----
drivers/scsi/mpt3sas/mpt3sas_scsih.c | 461 +++++--------
drivers/scsi/mpt3sas/mpt3sas_transport.c | 62 +-
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c | 18 +-
drivers/scsi/mpt3sas/mpt3sas_warpdrive.c | 3 -
drivers/scsi/ncr53c8xx.c | 10 +-
drivers/scsi/nsp32_debug.c | 2 +-
drivers/scsi/qedi/qedi_fw_api.c | 30 +-
drivers/scsi/qedi/qedi_main.c | 2 +-
drivers/scsi/qla2xxx/qla_attr.c | 33 +-
drivers/scsi/qla2xxx/qla_dbg.c | 3 +
drivers/scsi/qla2xxx/qla_def.h | 22 +-
drivers/scsi/qla2xxx/qla_fw.h | 5 +
drivers/scsi/qla2xxx/qla_gbl.h | 6 +-
drivers/scsi/qla2xxx/qla_gs.c | 68 +-
drivers/scsi/qla2xxx/qla_init.c | 729 +++++++++++++--------
drivers/scsi/qla2xxx/qla_inline.h | 12 +-
drivers/scsi/qla2xxx/qla_iocb.c | 154 +++--
drivers/scsi/qla2xxx/qla_isr.c | 3 +-
drivers/scsi/qla2xxx/qla_mbx.c | 155 +++--
drivers/scsi/qla2xxx/qla_mid.c | 2 +-
drivers/scsi/qla2xxx/qla_nvme.c | 15 +-
drivers/scsi/qla2xxx/qla_nvme.h | 2 +-
drivers/scsi/qla2xxx/qla_os.c | 133 ++--
drivers/scsi/qla2xxx/qla_target.c | 29 +-
drivers/scsi/qla2xxx/qla_tmpl.c | 13 +-
drivers/scsi/qla2xxx/qla_version.h | 2 +-
drivers/scsi/qla2xxx/tcm_qla2xxx.c | 20 +-
drivers/scsi/qlogicpti.c | 2 +-
drivers/scsi/scsi.c | 4 +-
drivers/scsi/scsi.h | 3 -
drivers/scsi/scsi_debug.c | 57 +-
drivers/scsi/scsi_error.c | 6 +-
drivers/scsi/scsi_ioctl.c | 4 +-
drivers/scsi/scsi_lib.c | 405 +++++++-----
drivers/scsi/scsi_scan.c | 2 +-
drivers/scsi/scsi_sysfs.c | 22 +-
drivers/scsi/scsi_transport_fc.c | 4 +-
drivers/scsi/scsi_transport_spi.c | 2 +-
drivers/scsi/scsi_typedefs.h | 2 -
drivers/scsi/sd.c | 15 +-
drivers/scsi/sd_zbc.c | 6 -
drivers/scsi/sg.c | 7 +-
drivers/scsi/smartpqi/smartpqi.h | 12 +-
drivers/scsi/smartpqi/smartpqi_init.c | 160 +++--
drivers/scsi/snic/snic_debugfs.c | 10 +-
drivers/scsi/snic/snic_trc.c | 6 +-
drivers/scsi/st.c | 3 -
drivers/scsi/sym53c8xx_2/sym_fw.c | 4 -
drivers/scsi/sym53c8xx_2/sym_glue.c | 2 +-
drivers/scsi/sym53c8xx_2/sym_glue.h | 2 +-
drivers/scsi/sym53c8xx_2/sym_hipd.c | 3 +-
drivers/scsi/ufs/Kconfig | 9 +
drivers/scsi/ufs/Makefile | 1 +
drivers/scsi/ufs/ufs-hisi.c | 619 +++++++++++++++++
drivers/scsi/ufs/ufs-hisi.h | 115 ++++
drivers/scsi/ufs/ufs-qcom.c | 21 +-
drivers/scsi/ufs/ufshcd.c | 52 +-
drivers/scsi/ufs/ufshcd.h | 3 +
drivers/target/iscsi/iscsi_target_configfs.c | 6 +-
drivers/target/iscsi/iscsi_target_login.c | 2 +-
drivers/target/iscsi/iscsi_target_tpg.c | 3 +-
drivers/target/iscsi/iscsi_target_util.c | 55 +-
drivers/target/loopback/tcm_loop.c | 15 +-
drivers/target/sbp/sbp_target.c | 18 +-
drivers/target/target_core_configfs.c | 12 +-
drivers/target/target_core_device.c | 53 +-
drivers/target/target_core_fabric_configfs.c | 5 +-
drivers/target/target_core_internal.h | 2 +-
drivers/target/target_core_sbc.c | 7 +-
drivers/target/target_core_tmr.c | 30 +-
drivers/target/target_core_transport.c | 285 ++++----
drivers/target/target_core_ua.c | 43 +-
drivers/target/target_core_ua.h | 3 +-
drivers/target/target_core_user.c | 377 +++++++----
drivers/target/target_core_xcopy.c | 5 +-
drivers/target/tcm_fc/tfc_cmd.c | 10 +-
drivers/target/tcm_fc/tfc_conf.c | 5 +-
drivers/target/tcm_fc/tfc_sess.c | 5 +-
drivers/usb/gadget/function/f_tcm.c | 19 +-
drivers/vhost/scsi.c | 16 +-
drivers/xen/xen-scsiback.c | 17 +-
fs/sysfs/file.c | 44 ++
include/linux/libata.h | 2 +
include/linux/percpu_ida.h | 83 ---
include/linux/sbitmap.h | 2 +
include/linux/sysfs.h | 14 +
include/scsi/libsas.h | 2 +-
include/scsi/scsi_host.h | 1 +
include/target/iscsi/iscsi_target_core.h | 1 +
include/target/target_core_backend.h | 6 +-
include/target/target_core_base.h | 16 +-
include/target/target_core_fabric.h | 10 +-
lib/Makefile | 2 +-
lib/klist.c | 10 +-
lib/percpu_ida.c | 370 -----------
212 files changed, 5299 insertions(+), 4665 deletions(-)
create mode 100644 Documentation/devicetree/bindings/ufs/ufs-hisi.txt
delete mode 100644 drivers/scsi/NCR_D700.c
delete mode 100644 drivers/scsi/NCR_D700.h
delete mode 100644 drivers/scsi/NCR_Q720.c
delete mode 100644 drivers/scsi/NCR_Q720.h
delete mode 100644 drivers/scsi/scsi_typedefs.h
create mode 100644 drivers/scsi/ufs/ufs-hisi.c
create mode 100644 drivers/scsi/ufs/ufs-hisi.h
delete mode 100644 include/linux/percpu_ida.h
delete mode 100644 lib/percpu_ida.c

James

---

commit 8360ebc8cce888e883d2b274445eace901276237
Merge: 94710cac0ef4 51372570ac3c
Author: James Bottomley <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 15 10:29:51 2018 -0700

Merge branch 'misc' into for-next

diff --cc MAINTAINERS
index 544cac829cf4,f3de5d37179a..eeb54037b62d
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@@ -9751,17 -9750,6 +9751,11 @@@ F: drivers/scsi/mac_scsi.
F: drivers/scsi/sun3_scsi.*
F: drivers/scsi/sun3_scsi_vme.c

- NCR DUAL 700 SCSI DRIVER (MICROCHANNEL)
- M: "James E.J. Bottomley" <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx>
- L: linux-scsi@xxxxxxxxxxxxxxx
- S: Maintained
- F: drivers/scsi/NCR_D700.*
-
+NCSI LIBRARY:
+M: Samuel Mendoza-Jonas <sam@xxxxxxxxxxxxxxxx>
+S: Maintained
+F: net/ncsi/
+
NCT6775 HARDWARE MONITOR DRIVER
M: Guenter Roeck <linux@xxxxxxxxxxxx>
L: linux-hwmon@xxxxxxxxxxxxxxx
diff --cc drivers/scsi/qla2xxx/qla_gbl.h
index 2660a48d918a,035ab18bd534..178974896b5c
--- a/drivers/scsi/qla2xxx/qla_gbl.h
+++ b/drivers/scsi/qla2xxx/qla_gbl.h
@@@ -212,9 -212,8 +212,9 @@@ extern int qla24xx_post_upd_fcport_work
void qla2x00_handle_login_done_event(struct scsi_qla_host *, fc_port_t *,
uint16_t *);
int qla24xx_post_gnl_work(struct scsi_qla_host *, fc_port_t *);
- int qla24xx_async_abort_cmd(srb_t *);
+ int qla24xx_async_abort_cmd(srb_t *, bool);
int qla24xx_post_relogin_work(struct scsi_qla_host *vha);
+void qla2x00_wait_for_sess_deletion(scsi_qla_host_t *);

/*
* Global Functions in qla_mid.c source file.
diff --cc drivers/scsi/qla2xxx/qla_gs.c
index 7a3744006419,407eb705f1be..a0038d879b9d
--- a/drivers/scsi/qla2xxx/qla_gs.c
+++ b/drivers/scsi/qla2xxx/qla_gs.c
@@@ -3394,19 -3383,40 +3391,40 @@@ int qla24xx_post_gpnid_work(struct scsi

void qla24xx_sp_unmap(scsi_qla_host_t *vha, srb_t *sp)
{
- if (sp->u.iocb_cmd.u.ctarg.req) {
- dma_free_coherent(&vha->hw->pdev->dev,
- sp->u.iocb_cmd.u.ctarg.req_allocated_size,
- sp->u.iocb_cmd.u.ctarg.req,
- sp->u.iocb_cmd.u.ctarg.req_dma);
- sp->u.iocb_cmd.u.ctarg.req = NULL;
- }
- if (sp->u.iocb_cmd.u.ctarg.rsp) {
- dma_free_coherent(&vha->hw->pdev->dev,
- sp->u.iocb_cmd.u.ctarg.rsp_allocated_size,
- sp->u.iocb_cmd.u.ctarg.rsp,
- sp->u.iocb_cmd.u.ctarg.rsp_dma);
- sp->u.iocb_cmd.u.ctarg.rsp = NULL;
+ struct srb_iocb *c = &sp->u.iocb_cmd;
+
+ switch (sp->type) {
+ case SRB_ELS_DCMD:
+ if (c->u.els_plogi.els_plogi_pyld)
+ dma_free_coherent(&vha->hw->pdev->dev,
+ c->u.els_plogi.tx_size,
+ c->u.els_plogi.els_plogi_pyld,
+ c->u.els_plogi.els_plogi_pyld_dma);
+
+ if (c->u.els_plogi.els_resp_pyld)
+ dma_free_coherent(&vha->hw->pdev->dev,
+ c->u.els_plogi.rx_size,
+ c->u.els_plogi.els_resp_pyld,
+ c->u.els_plogi.els_resp_pyld_dma);
+ break;
+ case SRB_CT_PTHRU_CMD:
+ default:
+ if (sp->u.iocb_cmd.u.ctarg.req) {
+ dma_free_coherent(&vha->hw->pdev->dev,
- sizeof(struct ct_sns_pkt),
++ sp->u.iocb_cmd.u.ctarg.req_allocated_size,
+ sp->u.iocb_cmd.u.ctarg.req,
+ sp->u.iocb_cmd.u.ctarg.req_dma);
+ sp->u.iocb_cmd.u.ctarg.req = NULL;
+ }
+
+ if (sp->u.iocb_cmd.u.ctarg.rsp) {
+ dma_free_coherent(&vha->hw->pdev->dev,
- sizeof(struct ct_sns_pkt),
++ sp->u.iocb_cmd.u.ctarg.rsp_allocated_size,
+ sp->u.iocb_cmd.u.ctarg.rsp,
+ sp->u.iocb_cmd.u.ctarg.rsp_dma);
+ sp->u.iocb_cmd.u.ctarg.rsp = NULL;
+ }
+ break;
}

sp->free(sp);
diff --cc drivers/scsi/qla2xxx/qla_init.c
index 1b19b954bbae,f52c68b4da44..c09e86f7fdb7
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@@ -578,34 -693,76 +693,79 @@@ static void qla24xx_handle_gnl_done_eve
}

if (!found) {
- /* fw has no record of this port */
- for (i = 0; i < n; i++) {
- e = &vha->gnl.l[i];
- id.b.domain = e->port_id[0];
- id.b.area = e->port_id[1];
- id.b.al_pa = e->port_id[2];
- id.b.rsvd_1 = 0;
- loop_id = le16_to_cpu(e->nport_handle);
-
- if (fcport->d_id.b24 == id.b24) {
- conflict_fcport =
- qla2x00_find_fcport_by_wwpn(vha,
- e->port_name, 0);
- if (conflict_fcport) {
- qlt_schedule_sess_for_deletion
- (conflict_fcport);
- ql_dbg(ql_dbg_disc, vha, 0x20e6,
- "%s %d %8phC post del sess\n",
- __func__, __LINE__,
- conflict_fcport->port_name);
+ switch (vha->hw->current_topology) {
+ case ISP_CFG_F:
+ case ISP_CFG_FL:
+ for (i = 0; i < n; i++) {
+ e = &vha->gnl.l[i];
+ id.b.domain = e->port_id[0];
+ id.b.area = e->port_id[1];
+ id.b.al_pa = e->port_id[2];
+ id.b.rsvd_1 = 0;
+ loop_id = le16_to_cpu(e->nport_handle);
+
+ if (fcport->d_id.b24 == id.b24) {
+ conflict_fcport =
+ qla2x00_find_fcport_by_wwpn(vha,
+ e->port_name, 0);
- ql_dbg(ql_dbg_disc + ql_dbg_verbose,
- vha, 0x20e5,
- "%s %d %8phC post del sess\n",
- __func__, __LINE__,
- conflict_fcport->port_name);
- qlt_schedule_sess_for_deletion
- (conflict_fcport);
++ if (conflict_fcport) {
++ ql_dbg(ql_dbg_disc
++ + ql_dbg_verbose,
++ vha, 0x20e5,
++ "%s %d %8phC post del sess\n",
++ __func__, __LINE__,
++ conflict_fcport->port_name);
++ qlt_schedule_sess_for_deletion
++ (conflict_fcport);
++ }
}
+ /*
+ * FW already picked this loop id for
+ * another fcport
+ */
+ if (fcport->loop_id == loop_id)
+ fcport->loop_id = FC_NO_LOOP_ID;
}
-
- /* FW already picked this loop id for another fcport */
- if (fcport->loop_id == loop_id)
- fcport->loop_id = FC_NO_LOOP_ID;
+ qla24xx_fcport_handle_login(vha, fcport);
+ break;
+ case ISP_CFG_N:
+ fcport->disc_state = DSC_DELETED;
+ if (time_after_eq(jiffies, fcport->dm_login_expire)) {
+ if (fcport->n2n_link_reset_cnt < 2) {
+ fcport->n2n_link_reset_cnt++;
+ /*
+ * remote port is not sending PLOGI.
+ * Reset link to kick start his state
+ * machine
+ */
+ set_bit(N2N_LINK_RESET,
+ &vha->dpc_flags);
+ } else {
+ if (fcport->n2n_chip_reset < 1) {
+ ql_log(ql_log_info, vha, 0x705d,
+ "Chip reset to bring laser down");
+ set_bit(ISP_ABORT_NEEDED,
+ &vha->dpc_flags);
+ fcport->n2n_chip_reset++;
+ } else {
+ ql_log(ql_log_info, vha, 0x705d,
+ "Remote port %8ph is not coming back\n",
+ fcport->port_name);
+ fcport->scan_state = 0;
+ }
+ }
+ qla2xxx_wake_dpc(vha);
+ } else {
+ /*
+ * report port suppose to do PLOGI. Give him
+ * more time. FW will catch it.
+ */
+ set_bit(RELOGIN_NEEDED, &vha->dpc_flags);
+ }
+ break;
+ default:
+ break;
}
- qla24xx_fcport_handle_login(vha, fcport);
}
} /* gnl_event */