>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

Reply via email to