From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christoph Lameter Date: Mon, 10 Nov 2008 22:06:52 +0000 Subject: Re: [Q] Why does dma_alloc_coherent() of ia64 GFP_DMA? Message-Id: List-Id: References: <20081110121123.F82A.E1E9C6FF@jp.fujitsu.com> In-Reply-To: <20081110121123.F82A.E1E9C6FF@jp.fujitsu.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Yasunori Goto Cc: "Luck, Tony" , FUJITA Tomonori , linux-ia64@vger.kernel.org, Linux Kernel ML , Joerg Roedel On Mon, 10 Nov 2008, Yasunori Goto wrote: > Even if a device allows over 4G access and the driver doesn't specify > GFP_DMA, dma_alloc_coherent() returns under 4G area. GFP_DMA can become 0 for configurations that have !CONFIG_ZONE_DMA. Then all of memory is available. The call is subarch specific. So f.e. Altix sn_dma_alloc_coherent does not set __GFP_DMA. If you have an IA64 arch that only support 32bit I/O then __GFP_DMA in dma_alloc_coherent makes sense.