Commit e2c3c9e2 authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] Use NODES_SHIFT to calculate ZONE_SHIFT

From: jbarnes@sgi.com (Jesse Barnes)

Now that we have a proper NODES_SHIFT value, we need to use it to define
ZONE_SHIFT otherwise we'll spill over 8 bits if we have more than 85 nodes.
parent e403669e
......@@ -322,8 +322,10 @@ static inline void put_page(struct page *page)
/*
* The zone field is never updated after free_area_init_core()
* sets it, so none of the operations on it need to be atomic.
* We'll have up to log2(MAX_NUMNODES * MAX_NR_ZONES) zones
* total, so we use NODES_SHIFT here to get enough bits.
*/
#define ZONE_SHIFT (BITS_PER_LONG - 8)
#define ZONE_SHIFT (BITS_PER_LONG - NODES_SHIFT - MAX_NR_ZONES_SHIFT)
struct zone;
extern struct zone *zone_table[];
......
......@@ -159,7 +159,10 @@ struct zone {
#define ZONE_DMA 0
#define ZONE_NORMAL 1
#define ZONE_HIGHMEM 2
#define MAX_NR_ZONES 3
#define MAX_NR_ZONES 3 /* Sync this with MAX_NR_ZONES_SHIFT */
#define MAX_NR_ZONES_SHIFT 2 /* ceil(log2(MAX_NR_ZONES)) */
#define GFP_ZONEMASK 0x03
/*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment