Revert "ring-buffer: Prevent overflow of size in ring_buffer_resize()"
authorMarek Szyprowski <m.szyprowski@samsung.com>
Wed, 25 Apr 2018 10:20:27 +0000 (12:20 +0200)
committerMarek Szyprowski <m.szyprowski@samsung.com>
Wed, 25 Apr 2018 10:24:55 +0000 (12:24 +0200)
This reverts commit ab2cfdb8ef5da3d4cd237a3f15cc2d7ad4623260.

kernel/trace/ring_buffer.c

index fb147c7811d2af633cda6377c180b2161bb2a9ef..07d70d1dc9b93909b8ff107ab59ccb2c23f0849d 100644 (file)
@@ -1690,13 +1690,14 @@ int ring_buffer_resize(struct ring_buffer *buffer, unsigned long size,
            !cpumask_test_cpu(cpu_id, buffer->cpumask))
                return size;
 
-       nr_pages = DIV_ROUND_UP(size, BUF_PAGE_SIZE);
+       size = DIV_ROUND_UP(size, BUF_PAGE_SIZE);
+       size *= BUF_PAGE_SIZE;
 
        /* we need a minimum of two pages */
-       if (nr_pages < 2)
-               nr_pages = 2;
+       if (size < BUF_PAGE_SIZE * 2)
+               size = BUF_PAGE_SIZE * 2;
 
-       size = nr_pages * BUF_PAGE_SIZE;
+       nr_pages = DIV_ROUND_UP(size, BUF_PAGE_SIZE);
 
        /*
         * Don't succeed if resizing is disabled, as a reader might be