Hi all, this series converts the SCSI midlayer and LLDDs to use atomic queue limits API. It is pretty straight forward, except for the mpt3mr driver which does really weird and probably already broken things by setting limits from unlocked device iteration callbacks. I will probably defer the (more complicated) ULD changes to the next merge window as they would heavily conflict with Damien's zone write plugging series. With that the series could go in through the SCSI tree if Jens' ACKs the core block layer bits. Changes since v2: - rebased on top of the scsi-queue tree with libsas cleanups - fix another commit log typo Changes since v1: - print a different warning message for queue_limits_commit failure vs ->device_configure failure - cancel the queue limits update when ->device_configure fails - spelling fixes - improve comments Diffstat: block/blk-settings.c | 245 ---------------------------- block/bsg-lib.c | 6 drivers/ata/ahci.h | 2 drivers/ata/libata-sata.c | 11 - drivers/ata/libata-scsi.c | 19 +- drivers/ata/libata.h | 3 drivers/ata/pata_macio.c | 11 - drivers/ata/sata_mv.c | 2 drivers/ata/sata_nv.c | 24 +- drivers/ata/sata_sil24.c | 2 drivers/firewire/sbp2.c | 13 - drivers/message/fusion/mptfc.c | 1 drivers/message/fusion/mptsas.c | 1 drivers/message/fusion/mptscsih.c | 2 drivers/message/fusion/mptspi.c | 1 drivers/s390/block/dasd_eckd.c | 6 drivers/scsi/aha152x.c | 8 drivers/scsi/aic94xx/aic94xx_init.c | 2 drivers/scsi/hisi_sas/hisi_sas.h | 3 drivers/scsi/hisi_sas/hisi_sas_main.c | 7 drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 2 drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 2 drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 7 drivers/scsi/hosts.c | 6 drivers/scsi/hptiop.c | 8 drivers/scsi/ibmvscsi/ibmvfc.c | 5 drivers/scsi/imm.c | 12 - drivers/scsi/ipr.c | 10 - drivers/scsi/isci/init.c | 2 drivers/scsi/iscsi_tcp.c | 2 drivers/scsi/libsas/sas_scsi_host.c | 7 drivers/scsi/megaraid/megaraid_sas.h | 2 drivers/scsi/megaraid/megaraid_sas_base.c | 29 +-- drivers/scsi/megaraid/megaraid_sas_fusion.c | 3 drivers/scsi/mpi3mr/mpi3mr.h | 1 drivers/scsi/mpi3mr/mpi3mr_app.c | 12 - drivers/scsi/mpi3mr/mpi3mr_os.c | 76 +++----- drivers/scsi/mpt3sas/mpt3sas_scsih.c | 18 -- drivers/scsi/mvsas/mv_init.c | 2 drivers/scsi/pm8001/pm8001_init.c | 2 drivers/scsi/pmcraid.c | 11 - drivers/scsi/ppa.c | 8 drivers/scsi/qla2xxx/qla_os.c | 6 drivers/scsi/scsi_lib.c | 40 +--- drivers/scsi/scsi_scan.c | 74 ++++---- drivers/scsi/scsi_transport_fc.c | 15 + drivers/scsi/scsi_transport_iscsi.c | 6 drivers/scsi/scsi_transport_sas.c | 4 drivers/staging/rts5208/rtsx.c | 24 +- drivers/ufs/core/ufs_bsg.c | 3 drivers/ufs/core/ufshcd.c | 3 drivers/ufs/host/ufs-exynos.c | 8 drivers/usb/image/microtek.c | 8 drivers/usb/storage/scsiglue.c | 57 ++---- drivers/usb/storage/uas.c | 29 +-- drivers/usb/storage/usb.c | 10 + include/linux/blkdev.h | 26 +- include/linux/bsg-lib.h | 3 include/linux/libata.h | 10 - include/linux/mmc/host.h | 4 include/scsi/libsas.h | 3 include/scsi/scsi_host.h | 9 + include/scsi/scsi_transport.h | 2 include/scsi/scsi_transport_fc.h | 1 include/ufs/ufshcd.h | 1 65 files changed, 347 insertions(+), 595 deletions(-)