linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: Jens Axboe <axboe@kernel.dk>
Cc: "Martin K. Petersen" <martin.petersen@oracle.com>,
	"Juergen E. Fischer" <fischer@norbit.de>,
	Alan Stern <stern@rowland.harvard.edu>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-block@vger.kernel.org, linux-scsi@vger.kernel.org,
	linux-usb@vger.kernel.org, usb-storage@lists.one-eyed-alien.net,
	linux-mm@kvack.org
Subject: [PATCH 4/7] usb-storage: reject probe of device one non-DMA HCDs when using highmem
Date: Fri,  2 May 2025 07:49:21 +0100	[thread overview]
Message-ID: <20250502064930.2981820-5-hch@lst.de> (raw)
In-Reply-To: <20250502064930.2981820-1-hch@lst.de>

usb-storage is the last user of the block layer bounce buffering now,
and only uses it for HCDs that do not support DMA on highmem configs.

Remove this support and fail the probe so that the block layer bounce
buffering can go away.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 drivers/usb/storage/usb.c | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c
index d36f3b6992bb..49bbfe4610d5 100644
--- a/drivers/usb/storage/usb.c
+++ b/drivers/usb/storage/usb.c
@@ -1057,12 +1057,15 @@ int usb_stor_probe1(struct us_data **pus,
 
 	/*
 	 * Some USB host controllers can't do DMA; they have to use PIO.
-	 * For such controllers we need to make sure the block layer sets
-	 * up bounce buffers in addressable memory.
+	 * We can't support these controllers on highmem systems as the
+	 * usb-storage code lacks the code to kmap or bounce buffer.
 	 */
-	if (!hcd_uses_dma(bus_to_hcd(us->pusb_dev->bus)) ||
-	    bus_to_hcd(us->pusb_dev->bus)->localmem_pool)
-		host->no_highmem = true;
+	if (IS_ENABLED(CONFIG_HIGHMEM) &&
+	    (!hcd_uses_dma(bus_to_hcd(us->pusb_dev->bus)) ||
+	     bus_to_hcd(us->pusb_dev->bus)->localmem_pool)) {
+		dev_warn(&intf->dev, "USB Mass Storage device not support on this HCD\n");
+		goto release;
+	}
 
 	/* Get the unusual_devs entries and the descriptors */
 	result = get_device_info(us, id, unusual_dev);
@@ -1081,6 +1084,7 @@ int usb_stor_probe1(struct us_data **pus,
 
 BadDevice:
 	usb_stor_dbg(us, "storage_probe() failed\n");
+release:
 	release_everything(us);
 	return result;
 }
-- 
2.47.2



  parent reply	other threads:[~2025-05-02  6:49 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-02  6:49 remove block layer bounce buffering Christoph Hellwig
2025-05-02  6:49 ` [PATCH 1/7] scsi: make aha152x depend on !HIGHMEM Christoph Hellwig
2025-05-02  7:24   ` Hannes Reinecke
2025-05-02  6:49 ` [PATCH 2/7] scsi: make imm " Christoph Hellwig
2025-05-02  7:24   ` Hannes Reinecke
2025-05-02  6:49 ` [PATCH 3/7] scsi: make ppa " Christoph Hellwig
2025-05-02  7:25   ` Hannes Reinecke
2025-05-02  6:49 ` Christoph Hellwig [this message]
2025-05-02  7:02   ` [PATCH 4/7] usb-storage: reject probe of device one non-DMA HCDs when using highmem Greg KH
2025-05-02 13:21     ` Alan Stern
2025-05-02  7:25   ` Hannes Reinecke
2025-05-02  8:48   ` Sergey Shtylyov
2025-05-02 13:19   ` [usb-storage] " Alan Stern
2025-05-02  6:49 ` [PATCH 5/7] scsi: remove the no_highmem flag in the host Christoph Hellwig
2025-05-02  7:26   ` Hannes Reinecke
2025-05-02  6:49 ` [PATCH 6/7] block: remove bounce buffering support Christoph Hellwig
2025-05-02  7:27   ` Hannes Reinecke
2025-05-02  6:49 ` [PATCH 7/7] mm: remove NR_BOUNCE zone stat Christoph Hellwig
2025-05-02  7:27   ` Hannes Reinecke
2025-05-02  8:43 ` remove block layer bounce buffering Sergey Shtylyov
2025-05-05  8:36 ` Johannes Thumshirn
2025-05-05  8:11 remove block layer bounce buffering v2 Christoph Hellwig
2025-05-05  8:11 ` [PATCH 4/7] usb-storage: reject probe of device one non-DMA HCDs when using highmem Christoph Hellwig
2025-05-05 14:13   ` Alan Stern

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=20250502064930.2981820-5-hch@lst.de \
    --to=hch@lst.de \
    --cc=akpm@linux-foundation.org \
    --cc=axboe@kernel.dk \
    --cc=fischer@norbit.de \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=stern@rowland.harvard.edu \
    --cc=usb-storage@lists.one-eyed-alien.net \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox