cma: fix calculation of aligned offset
[platform/kernel/linux-starfive.git] / mm / percpu-km.c
index d66911f..eb58aa4 100644 (file)
@@ -72,6 +72,9 @@ static struct pcpu_chunk *pcpu_create_chunk(void)
        pcpu_chunk_populated(chunk, 0, nr_pages);
        spin_unlock_irq(&pcpu_lock);
 
+       pcpu_stats_chunk_alloc();
+       trace_percpu_create_chunk(chunk->base_addr);
+
        return chunk;
 }
 
@@ -79,7 +82,13 @@ static void pcpu_destroy_chunk(struct pcpu_chunk *chunk)
 {
        const int nr_pages = pcpu_group_sizes[0] >> PAGE_SHIFT;
 
-       if (chunk && chunk->data)
+       if (!chunk)
+               return;
+
+       pcpu_stats_chunk_dealloc();
+       trace_percpu_destroy_chunk(chunk->base_addr);
+
+       if (chunk->data)
                __free_pages(chunk->data, order_base_2(nr_pages));
        pcpu_free_chunk(chunk);
 }