diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index 12a80fdae11cc7c0d4d76b34d4cae37c2343d1dd..07c1611f38992ac98e5e8bb716d4d41f01290ea4 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -1051,6 +1051,7 @@ __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new)
 	register_irq_proc(irq, desc);
 	new->dir = NULL;
 	register_handler_proc(irq, new);
+	free_cpumask_var(mask);
 
 	return 0;