Signed-off-by: Dave Hansen --- memhotplug-dave/include/linux/mmzone.h | 2 ++ memhotplug-dave/mm/page_alloc.c | 1 + 2 files changed, 3 insertions(+) diff -puN include/linux/mmzone.h~J-zone_resize_sem include/linux/mmzone.h --- memhotplug/include/linux/mmzone.h~J-zone_resize_sem 2005-02-17 15:25:48.000000000 -0800 +++ memhotplug-dave/include/linux/mmzone.h 2005-02-17 15:25:48.000000000 -0800 @@ -12,6 +12,7 @@ #include #include #include +#include /* Free memory management - zoned buddy allocator. */ #ifndef CONFIG_FORCE_MAX_ZONEORDER @@ -204,6 +205,7 @@ struct zone { unsigned long spanned_pages; /* total size, including holes */ unsigned long present_pages; /* amount of memory (excluding holes) */ + struct semaphore resize_sem; /* * rarely used fields: diff -puN mm/page_alloc.c~J-zone_resize_sem mm/page_alloc.c --- memhotplug/mm/page_alloc.c~J-zone_resize_sem 2005-02-17 15:25:48.000000000 -0800 +++ memhotplug-dave/mm/page_alloc.c 2005-02-17 15:25:48.000000000 -0800 @@ -1728,6 +1728,7 @@ static void __init free_area_init_core(s zone->name = zone_names[j]; spin_lock_init(&zone->lock); spin_lock_init(&zone->lru_lock); + init_MUTEX(&zone->resize_sem); zone->zone_pgdat = pgdat; zone->free_pages = 0; _