]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ENGR00158360 imx MSL: fix __arch_adjust_zones function
authorJason Chen <b02280@freescale.com>
Fri, 4 Nov 2011 08:27:04 +0000 (16:27 +0800)
committerLothar Waßmann <LW@KARO-electronics.de>
Fri, 24 May 2013 06:33:23 +0000 (08:33 +0200)
fix __arch_adjust_zones if MXC_DMA_ZONE_SIZE if bigger than system memory

Signed-off-by: Jason Chen <b02280@freescale.com>
arch/arm/plat-mxc/include/mach/memory.h

index 5a17215929004e9620581ffcfee7ee93430bce1d..55b08d9fc7fc655930a4d8df31bb905493eb1c94 100755 (executable)
 static inline void __arch_adjust_zones(unsigned long *zone_size,
                unsigned long *zhole_size)
 {
+#ifdef CONFIG_ZONE_DMA
        /* Create separate zone to reserve memory for DMA */
-       zone_size[1] = zone_size[0] - MXC_DMA_ZONE_SIZE;
-       zone_size[0] = MXC_DMA_ZONE_SIZE;
-       zhole_size[1] = zhole_size[0];
-       zhole_size[0] = 0;
+       if ((zone_size[0] - zhole_size[0]) > MXC_DMA_ZONE_SIZE) {
+               zone_size[1] = zone_size[0] - MXC_DMA_ZONE_SIZE;
+               zone_size[0] = MXC_DMA_ZONE_SIZE;
+               zhole_size[1] = zhole_size[0];
+               zhole_size[0] = 0;
+       }
+#endif
 }
 
 #define arch_adjust_zones(size, holes) \