From: Tom Yan <tom.ty89@gmail.com>
To: hdegoede@redhat.com, hch@lst.de, gregkh@linuxfoundation.org,
linux-usb@vger.kernel.org
Cc: mathias.nyman@intel.com, linux-kernel@vger.kernel.org,
linux-pci@vger.kernel.org, baolu.lu@linux.intel.com,
Tom Yan <tom.ty89@gmail.com>
Subject: [PATCH 1/2] uas: revert from scsi_add_host_with_dma() to scsi_add_host()
Date: Sat, 28 Nov 2020 23:48:48 +0800 [thread overview]
Message-ID: <20201128154849.3193-1-tom.ty89@gmail.com> (raw)
In-Reply-To: <09992cec-65e4-2757-aae6-8fb02a42f961@redhat.com>
Apparently the former (with the chosen dma_dev) may cause problem in certain
case (e.g. where thunderbolt dock and intel iommu are involved). The error
observed was:
XHCI swiotlb buffer is full / DMAR: Device bounce map failed
For now we retain the clamp for hw_max_sectors against the dma_max_mapping_size.
Since the device/size for the clamp that is applied when the scsi request queue
is initialized/allocated is different than the one used here, we invalidate the
early clamping by making a fallback blk_queue_max_hw_sectors() call.
Signed-off-by: Tom Yan <tom.ty89@gmail.com>
---
drivers/usb/storage/uas.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/drivers/usb/storage/uas.c b/drivers/usb/storage/uas.c
index c8a577309e8f..5db1325cea20 100644
--- a/drivers/usb/storage/uas.c
+++ b/drivers/usb/storage/uas.c
@@ -843,18 +843,21 @@ static int uas_slave_alloc(struct scsi_device *sdev)
static int uas_slave_configure(struct scsi_device *sdev)
{
struct uas_dev_info *devinfo = sdev->hostdata;
- struct device *dev = sdev->host->dma_dev;
+ struct usb_device *udev = devinfo->udev;
if (devinfo->flags & US_FL_MAX_SECTORS_64)
blk_queue_max_hw_sectors(sdev->request_queue, 64);
else if (devinfo->flags & US_FL_MAX_SECTORS_240)
blk_queue_max_hw_sectors(sdev->request_queue, 240);
- else if (devinfo->udev->speed >= USB_SPEED_SUPER)
+ else if (udev->speed >= USB_SPEED_SUPER)
blk_queue_max_hw_sectors(sdev->request_queue, 2048);
+ else
+ blk_queue_max_hw_sectors(sdev->request_queue,
+ SCSI_DEFAULT_MAX_SECTORS);
blk_queue_max_hw_sectors(sdev->request_queue,
min_t(size_t, queue_max_hw_sectors(sdev->request_queue),
- dma_max_mapping_size(dev) >> SECTOR_SHIFT));
+ dma_max_mapping_size(udev->bus->sysdev) >> SECTOR_SHIFT));
if (devinfo->flags & US_FL_NO_REPORT_OPCODES)
sdev->no_report_opcodes = 1;
@@ -1040,7 +1043,7 @@ static int uas_probe(struct usb_interface *intf, const struct usb_device_id *id)
shost->can_queue = devinfo->qdepth - 2;
usb_set_intfdata(intf, shost);
- result = scsi_add_host_with_dma(shost, &intf->dev, udev->bus->sysdev);
+ result = scsi_add_host(shost, &intf->dev);
if (result)
goto free_streams;
--
2.29.2
next prev parent reply other threads:[~2020-11-28 22:07 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-10 11:36 5.10 regression, many XHCI swiotlb buffer is full / DMAR: Device bounce map failed errors on thunderbolt connected XHCI controller Hans de Goede
2020-11-18 21:43 ` Hans de Goede
2020-11-23 14:49 ` Hans de Goede
2020-11-24 10:27 ` Christoph Hellwig
2020-11-24 10:31 ` Hans de Goede
2020-11-24 12:17 ` Mathias Nyman
2020-11-27 11:41 ` Hans de Goede
2020-11-27 12:32 ` 5.10 regression caused by: "uas: fix sdev->host->dma_dev": " Hans de Goede
2020-11-27 16:19 ` Christoph Hellwig
2020-11-27 18:12 ` Hans de Goede
2020-11-28 1:25 ` Tom Yan
2020-11-28 10:43 ` Hans de Goede
2020-11-28 15:48 ` Tom Yan [this message]
2020-11-28 15:48 ` [PATCH 2/2] usb-storage: revert from scsi_add_host_with_dma() to scsi_add_host() Tom Yan
2020-11-30 9:50 ` Hans de Goede
2020-11-30 12:58 ` Tom Yan
2020-11-30 13:23 ` Hans de Goede
2020-11-30 13:30 ` Greg KH
2020-11-30 13:36 ` Hans de Goede
2020-11-30 13:53 ` Greg KH
2020-11-30 13:55 ` Hans de Goede
2020-12-04 15:02 ` Greg KH
2020-11-30 17:20 ` Alan Stern
2020-11-30 17:24 ` Christoph Hellwig
2020-11-30 18:18 ` Hans de Goede
2020-11-30 18:57 ` Tom Yan
2020-11-30 19:01 ` Tom Yan
2020-11-30 20:36 ` Alan Stern
2021-02-25 16:35 ` Alan Stern
2021-02-26 5:53 ` Christoph Hellwig
2021-03-01 15:59 ` Alan Stern
2020-11-30 14:39 ` Tom Yan
2020-11-30 9:48 ` [PATCH 1/2] uas: " Hans de Goede
2020-11-30 19:30 ` Tom Yan
2020-12-01 11:09 ` Hans de Goede
2020-11-28 17:15 ` 5.10 regression caused by: "uas: fix sdev->host->dma_dev": many XHCI swiotlb buffer is full / DMAR: Device bounce map failed errors on thunderbolt connected XHCI controller Christoph Hellwig
2020-11-30 8:43 ` Hans de Goede
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201128154849.3193-1-tom.ty89@gmail.com \
--to=tom.ty89@gmail.com \
--cc=baolu.lu@linux.intel.com \
--cc=gregkh@linuxfoundation.org \
--cc=hch@lst.de \
--cc=hdegoede@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=mathias.nyman@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.