The patch titled count defined zones to size ZONE_SHIFT has been removed from the -mm tree. Its filename is optional-zone_dma-in-the-vm-tidy.patch This patch was dropped because it was folded into optional-zone_dma-in-the-vm.patch ------------------------------------------------------ Subject: count defined zones to size ZONE_SHIFT From: Andy Whitcroft <apw@xxxxxxxxxxxx> Simplify calculation of the number of bits we need for ZONES_SHIFT by adding up the definitions of the defined zones. We make use of the property of defined(X) that its value is one when X is defined and zero otherwise. From the GCC manuals: "defined name and defined (name) are both expressions whose value is 1 if name is defined as a macro at the current point in the program, and 0 otherwise." Signed-off-by: Andy Whitcroft <apw@xxxxxxxxxxxx> Cc: Christoph Lameter <clameter@xxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- include/linux/mmzone.h | 22 +++++++++++++++++----- 1 files changed, 17 insertions(+), 5 deletions(-) diff -puN include/linux/mmzone.h~optional-zone_dma-in-the-vm-tidy include/linux/mmzone.h --- a/include/linux/mmzone.h~optional-zone_dma-in-the-vm-tidy +++ a/include/linux/mmzone.h @@ -149,15 +149,27 @@ enum zone_type { * match the requested limits. See gfp_zone() in include/linux/gfp.h */ -#if !defined(CONFIG_ZONE_DMA32) && !defined(CONFIG_HIGHMEM) -#if !defined(CONFIG_ZONE_DMA) +/* + * Count the active zones. Note that the use of defined(X) outside + * #if and family is not necessarily defined so ensure we cannot use + * it later. Use __ZONE_COUNT to work out how many shift bits we need. + */ +#define __ZONE_COUNT ( \ + defined(CONFIG_ZONE_DMA) \ + + defined(CONFIG_ZONE_DMA32) \ + + 1 \ + + defined(CONFIG_HIGHMEM) \ +) +#if __ZONE_COUNT < 2 #define ZONES_SHIFT 0 -#else +#elif __ZONE_COUNT <= 2 #define ZONES_SHIFT 1 -#endif -#else +#elif __ZONE_COUNT <= 4 #define ZONES_SHIFT 2 +#else +#error ZONES_SHIFT -- too many zones configured adjust calculation #endif +#undef __ZONE_COUNT struct zone { /* Fields commonly accessed by the page allocator */ _ Patches currently in -mm which might be from apw@xxxxxxxxxxxx are origin.patch get-rid-of-zone_table.patch deal-with-cases-of-zone_dma-meaning-the-first-zone.patch get-rid-of-zone_table-fix-3.patch optional-zone_dma-in-the-vm.patch optional-zone_dma-in-the-vm-tidy.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html