Linux Driver DMA allocation - not using GFP_DMA

Today, I remove our DMA_ZONE in Linux Kernel, that provides 48MiB memory using by system & application, MUCH faster then before.

Why DMA_ZONE, I think this because of the usage of dma_alloc_coherent(), try to allocate continues memory, in our old driver, they use GFP_DMA to call this function, This will cause this function allocation memory from DMA_ZONE or failed. even you using GFP_DMA|GFP_KERNEL. 

My change almost change GFP_DMA to GFP_KERNEL or just remove GFP_DMA. 

The DMA_ZONE is a legacy design, it was originally design to support 24-bit ISA bus or some broken PCI device that can't access full 32-bit memory. Because DMA_ZONE always in low memory address, so if your system is not like this, just avoid this DMA_ZONE. 

about DMA memory allocation: 

[1] http://www.linuxjournal.com/article/6930?page=0,2

[2] LDD3 Chapter 15 , 4.3 section.