Index: linux-2.6.16-rc2/mm/mempolicy.c =================================================================== --- linux-2.6.16-rc2.orig/mm/mempolicy.c 2006-02-02 22:03:08.000000000 -0800 +++ linux-2.6.16-rc2/mm/mempolicy.c 2006-02-08 07:55:29.000000000 -0800 @@ -143,8 +143,12 @@ static struct zonelist *bind_zonelist(no if (!zl) return NULL; num = 0; - for_each_node_mask(nd, *nodes) - zl->zones[num++] = &NODE_DATA(nd)->node_zones[policy_zone]; + for_each_node_mask(nd, *nodes) { + struct zone *zone = &NODE_DATA(nd)->node_zones[policy_zone]; + + if (zone->present_pages) + zl->zones[num++] = &NODE_DATA(nd)->node_zones[policy_zone]; + } zl->zones[num] = NULL; return zl; }