Commit 23025cbc authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull SCSI fixes from James Bottomley:
 "Ten small fixes (less the one that cleaned up a reverted removal),
  nine in drivers of which the ufs one is the most critical.

  The single core patch is a minor speedup to error handling"

* tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
  scsi: libsas: Grab the ATA port lock in sas_ata_device_link_abort()
  scsi: hisi_sas: Fix tag freeing for reserved tags
  scsi: ufs: core: WLUN suspend SSU/enter hibern8 fail recovery
  scsi: scsi_debug: Delete unreachable code in inquiry_vpd_b0()
  scsi: mpi3mr: Refer CONFIG_SCSI_MPI3MR in Makefile
  scsi: core: scsi_error: Do not queue pointless abort workqueue functions
  scsi: storvsc: Fix swiotlb bounce buffer leak in confidential VM
  scsi: iscsi: Fix multiple iSCSI session unbind events sent to userspace
  scsi: mpi3mr: Remove usage of dma_get_required_mask() API
  scsi: mpt3sas: Remove usage of dma_get_required_mask() API
parents e8f60cd7 a67aad57
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -162,7 +162,7 @@ static void hisi_sas_slot_index_clear(struct hisi_hba *hisi_hba, int slot_idx)
static void hisi_sas_slot_index_free(struct hisi_hba *hisi_hba, int slot_idx)
static void hisi_sas_slot_index_free(struct hisi_hba *hisi_hba, int slot_idx)
{
{
	if (hisi_hba->hw->slot_index_alloc ||
	if (hisi_hba->hw->slot_index_alloc ||
	    slot_idx >= HISI_SAS_UNRESERVED_IPTT) {
	    slot_idx < HISI_SAS_RESERVED_IPTT) {
		spin_lock(&hisi_hba->lock);
		spin_lock(&hisi_hba->lock);
		hisi_sas_slot_index_clear(hisi_hba, slot_idx);
		hisi_sas_slot_index_clear(hisi_hba, slot_idx);
		spin_unlock(&hisi_hba->lock);
		spin_unlock(&hisi_hba->lock);
+3 −0
Original line number Original line Diff line number Diff line
@@ -889,7 +889,9 @@ void sas_ata_device_link_abort(struct domain_device *device, bool force_reset)
{
{
	struct ata_port *ap = device->sata_dev.ap;
	struct ata_port *ap = device->sata_dev.ap;
	struct ata_link *link = &ap->link;
	struct ata_link *link = &ap->link;
	unsigned long flags;


	spin_lock_irqsave(ap->lock, flags);
	device->sata_dev.fis[2] = ATA_ERR | ATA_DRDY; /* tf status */
	device->sata_dev.fis[2] = ATA_ERR | ATA_DRDY; /* tf status */
	device->sata_dev.fis[3] = ATA_ABORTED; /* tf error */
	device->sata_dev.fis[3] = ATA_ABORTED; /* tf error */


@@ -897,6 +899,7 @@ void sas_ata_device_link_abort(struct domain_device *device, bool force_reset)
	if (force_reset)
	if (force_reset)
		link->eh_info.action |= ATA_EH_RESET;
		link->eh_info.action |= ATA_EH_RESET;
	ata_link_abort(link);
	ata_link_abort(link);
	spin_unlock_irqrestore(ap->lock, flags);
}
}
EXPORT_SYMBOL_GPL(sas_ata_device_link_abort);
EXPORT_SYMBOL_GPL(sas_ata_device_link_abort);


+1 −1
Original line number Original line Diff line number Diff line
# mpi3mr makefile
# mpi3mr makefile
obj-m += mpi3mr.o
obj-$(CONFIG_SCSI_MPI3MR) += mpi3mr.o
mpi3mr-y +=  mpi3mr_os.o     \
mpi3mr-y +=  mpi3mr_os.o     \
		mpi3mr_fw.o \
		mpi3mr_fw.o \
		mpi3mr_app.o \
		mpi3mr_app.o \
+1 −2
Original line number Original line Diff line number Diff line
@@ -3633,8 +3633,7 @@ int mpi3mr_setup_resources(struct mpi3mr_ioc *mrioc)
	int i, retval = 0, capb = 0;
	int i, retval = 0, capb = 0;
	u16 message_control;
	u16 message_control;
	u64 dma_mask = mrioc->dma_mask ? mrioc->dma_mask :
	u64 dma_mask = mrioc->dma_mask ? mrioc->dma_mask :
	    (((dma_get_required_mask(&pdev->dev) > DMA_BIT_MASK(32)) &&
	    ((sizeof(dma_addr_t) > 4) ? DMA_BIT_MASK(64) : DMA_BIT_MASK(32));
	    (sizeof(dma_addr_t) > 4)) ? DMA_BIT_MASK(64) : DMA_BIT_MASK(32));


	if (pci_enable_device_mem(pdev)) {
	if (pci_enable_device_mem(pdev)) {
		ioc_err(mrioc, "pci_enable_device_mem: failed\n");
		ioc_err(mrioc, "pci_enable_device_mem: failed\n");
+1 −2
Original line number Original line Diff line number Diff line
@@ -2992,8 +2992,7 @@ _base_config_dma_addressing(struct MPT3SAS_ADAPTER *ioc, struct pci_dev *pdev)
	struct sysinfo s;
	struct sysinfo s;
	u64 coherent_dma_mask, dma_mask;
	u64 coherent_dma_mask, dma_mask;


	if (ioc->is_mcpu_endpoint || sizeof(dma_addr_t) == 4 ||
	if (ioc->is_mcpu_endpoint || sizeof(dma_addr_t) == 4) {
	    dma_get_required_mask(&pdev->dev) <= DMA_BIT_MASK(32)) {
		ioc->dma_mask = 32;
		ioc->dma_mask = 32;
		coherent_dma_mask = dma_mask = DMA_BIT_MASK(32);
		coherent_dma_mask = dma_mask = DMA_BIT_MASK(32);
	/* Set 63 bit DMA mask for all SAS3 and SAS35 controllers */
	/* Set 63 bit DMA mask for all SAS3 and SAS35 controllers */
Loading