>Bad patch. The devrequest struct needs to be in DMAable memory, and the
>kernels stack isn't DMAable on all arches.
>usb-storage is broken that way... it's on my TODO list, too...
>Matt
Thanks for catching this so quickly.
I consequently have a bunch of questions for anyone kind enough
to answer them.
1. All USB host controller drivers are currently PCI
drivers. I do not know non-PCI ohci or uhci conformant
controllers are even possible. Am I correct in understanding
that these devices all use bus mastering and can access the first
4GB of RAM, rather than using the motherboard's DMA
controller and only being able to access the first 16MB?
If the kernel stack is almost always accessible from the PCI
bus in practice, it might be worth considering only
kmalloc'ing a USB command when its original address turns
out to be inaccessible from the PCI bus, ideally in such a
way that architectures where all of the memory was guaranteed
to be accessible would have the kmalloc brach of the "if"
statement eliminated by the compiler.
2. Are there really architectures where the kernel stack not
guaranteed necessarily reachable from the PCI bus (e.g,. can
this happen on BIGMEM x86)? That is, aren't the kernel
stack necessarily at least in the first 4GB?
3. Is the situation the same for the kernel's initialized data
segment? I ask because most USB control messages are 16 byte
constants that are precomputable at compile time (including byte
swapping) and I would like to have most places that issues
USB commands eventually just pass pointers and never have most
of these commands never even be read by the CPU. There is only
one kernel initialized data section, so I am a little more
hopeful that it might be guaranteed to be in the memory range
accessible by PCI bus mastering.
Adam J. Richter __ ______________ 4880 Stevens Creek Blvd, Suite 104
[EMAIL PROTECTED] \ / San Jose, California 95129-1034
+1 408 261-6630 | g g d r a s i l United States of America
fax +1 408 261-6631 "Free Software For The Rest Of Us."
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel