Re: [linux-usb-devel] Re: [Bug 1412] Copy from USB1 CF/SM readerstalls, no actual content is read (only directory structure)

From: David Brownell
Date: Fri Nov 07 2003 - 18:58:00 EST


Jens Axboe wrote:
No that looks alright, given you are allocating low memory pages. The
devices can probably do full 32-bit dma I bet, though.

Typically ... most usb host controllers you'll see are on
PCI (OHCI, UHCI, EHCI) with no restrictions, and only some
EHCI controllers can do 64-bit DMA. That's all visible in
the the dma_mask for each interface in the device with the
mass storage support, usually still at its "32-bit dma is ok"
pci controller default.

But it seems that most current 2.6 DMA API implementations
have some problems in those areas. See for example:

http://marc.theaimsgroup.com/?l=linux-kernel&m=106746453218943&w=2
http://marc.theaimsgroup.com/?l=linux-usb-devel&m=106789996221347&w=2

That second patch is a partial workaround for the first patch
presumably not getting applied before 2.6.0-final. Net result,
some systems with gobs of memory and no IOMMU may do needless
buffer copies during USB I/O.

Though a quick glance suggested to me that SCSI infrastructure
is consulting dma_mask directly, instead of using the DMA API
calls which do that. I'm not sure I'd trust it to be any
more correct, given GIGO ...

- Dave

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/