percpu: fix first chunk size calculation for populated bitmap
authorSunghyun Jin <mcsmonk@gmail.com>
Thu, 3 Sep 2020 12:41:16 +0000 (21:41 +0900)
committerDennis Zhou <dennis@kernel.org>
Thu, 17 Sep 2020 17:34:39 +0000 (17:34 +0000)
Variable populated, which is a member of struct pcpu_chunk, is used as a
unit of size of unsigned long.
However, size of populated is miscounted. So, I fix this minor part.

Fixes: 8ab16c43ea79 ("percpu: change the number of pages marked in the first_chunk pop bitmap")
Cc: <stable@vger.kernel.org> # 4.14+
Signed-off-by: Sunghyun Jin <mcsmonk@gmail.com>
Signed-off-by: Dennis Zhou <dennis@kernel.org>
mm/percpu.c

index f4709629e6deea6f3ac7cc36baf719905f18d42f..1ed1a349eab83c0eecd0de37358ac83d4ddc7e06 100644 (file)
@@ -1316,7 +1316,7 @@ static struct pcpu_chunk * __init pcpu_alloc_first_chunk(unsigned long tmp_addr,
 
        /* allocate chunk */
        alloc_size = sizeof(struct pcpu_chunk) +
-               BITS_TO_LONGS(region_size >> PAGE_SHIFT);
+               BITS_TO_LONGS(region_size >> PAGE_SHIFT) * sizeof(unsigned long);
        chunk = memblock_alloc(alloc_size, SMP_CACHE_BYTES);
        if (!chunk)
                panic("%s: Failed to allocate %zu bytes\n", __func__,