{
        static int smap[PERCPU_DYNAMIC_EARLY_SLOTS] __initdata;
        static int dmap[PERCPU_DYNAMIC_EARLY_SLOTS] __initdata;
-       size_t dyn_size = ai->dyn_size;
-       size_t size_sum = ai->static_size + ai->reserved_size + dyn_size;
+       size_t size_sum = ai->static_size + ai->reserved_size + ai->dyn_size;
        struct pcpu_chunk *schunk, *dchunk = NULL;
        unsigned long *group_offsets;
        size_t *group_sizes;
        bitmap_fill(schunk->populated, pcpu_unit_pages);
        schunk->nr_populated = pcpu_unit_pages;
 
-       if (ai->reserved_size) {
-               schunk->free_size = ai->reserved_size;
-               pcpu_reserved_chunk = schunk;
-       } else {
-               schunk->free_size = dyn_size;
-               dyn_size = 0;                   /* dynamic area covered */
-       }
-
+       schunk->free_size = ai->reserved_size ?: ai->dyn_size;
        schunk->contig_hint = schunk->free_size;
        schunk->map[0] = 1;
        schunk->map[1] = schunk->start_offset;
        schunk->map_used = 2;
 
        /* init dynamic chunk if necessary */
-       if (dyn_size) {
+       if (ai->reserved_size) {
+               pcpu_reserved_chunk = schunk;
+
                dchunk = memblock_virt_alloc(pcpu_chunk_struct_size, 0);
                INIT_LIST_HEAD(&dchunk->list);
                INIT_LIST_HEAD(&dchunk->map_extend_list);
                bitmap_fill(dchunk->populated, pcpu_unit_pages);
                dchunk->nr_populated = pcpu_unit_pages;
 
-               dchunk->contig_hint = dchunk->free_size = dyn_size;
+               dchunk->contig_hint = dchunk->free_size = ai->dyn_size;
                dchunk->map[0] = 1;
                dchunk->map[1] = dchunk->start_offset;
                dchunk->map[2] = (dchunk->start_offset + dchunk->free_size) | 1;