X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/813fb2f63a553c957e917ede5f119b021d6ce391..008676633c2ad2c325837c2b64915f7ded690a8f:/osfmk/kern/zalloc.c diff --git a/osfmk/kern/zalloc.c b/osfmk/kern/zalloc.c index f9649749f..be40d8260 100644 --- a/osfmk/kern/zalloc.c +++ b/osfmk/kern/zalloc.c @@ -356,14 +356,13 @@ struct zone_free_element { }; /* - * Protects num_zones, zone_array and zone_array_index + * Protects num_zones and zone_array */ decl_simple_lock_data(, all_zones_lock) unsigned int num_zones; #define MAX_ZONES 256 struct zone zone_array[MAX_ZONES]; -static int zone_array_index = 0; #define MULTIPAGE_METADATA_MAGIC (0xff) @@ -1565,9 +1564,10 @@ zinit( zone_t z; simple_lock(&all_zones_lock); - z = &(zone_array[zone_array_index]); - zone_array_index++; - assert(zone_array_index != MAX_ZONES); + assert(num_zones < MAX_ZONES); + z = &(zone_array[num_zones]); + z->index = num_zones; + num_zones++; simple_unlock(&all_zones_lock); /* Zone elements must fit both a next pointer and a backup pointer */ @@ -1640,14 +1640,6 @@ zinit( lock_zone_init(z); - /* - * Add the zone to the all-zones list. - */ - simple_lock(&all_zones_lock); - z->index = num_zones; - num_zones++; - simple_unlock(&all_zones_lock); - /* * Check for and set up zone leak detection if requested via boot-args. We recognized two * boot-args: