>What does GFP_DMA do on s390 and s390x?
On s390, nothing.
On s390x, it makes sure the allocated memory resides at
addresses below 2 GB. This is necessary, as many of the
I/O subsystem data structures as defined by the hardware
contain pointer fields that are still 31-bit, even on
64-bit machines. Thus we have to make sure those data
structures are allocated below 2 GB. Using the GFP_DMA
mechanism for that purpose seemed to be the way to go ...
Note that contrary to the usual purpose of GFP_DMA on Intel,
the actual *data* that is being transferred via the I/O
subsystem can reside at arbitrary addresses (which are
specified via indirect-addressing lists); it is only the
control data structures that need to go below 2 GB.
Bye,
Ulrich
-- Dr. Ulrich Weigand weigand@informatik.uni-erlangen.de - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/