[PATCH 1/1] irq/matrix: Fix memory overallocation

From: Michael Kelley
Date: Wed Oct 31 2018 - 20:42:28 EST


IRQ_MATRIX_SIZE is the number of longs needed for a bitmap,
multiplied by the size of a long, yielding a byte count. But
it is used as the size of an array of longs, which is way more
memory than is needed. Change IRQ_MATRIX_SIZE so it is just the
number of longs needed and the arrays come out the correct size.

Signed-off-by: Michael Kelley <mikelley@xxxxxxxxxxxxx>
---
kernel/irq/matrix.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/irq/matrix.c b/kernel/irq/matrix.c
index 6e6d467..1f0985a 100644
--- a/kernel/irq/matrix.c
+++ b/kernel/irq/matrix.c
@@ -8,7 +8,7 @@
#include <linux/cpu.h>
#include <linux/irq.h>

-#define IRQ_MATRIX_SIZE (BITS_TO_LONGS(IRQ_MATRIX_BITS) * sizeof(unsigned long))
+#define IRQ_MATRIX_SIZE (BITS_TO_LONGS(IRQ_MATRIX_BITS))

struct cpumap {
unsigned int available;
--
1.8.3.1