Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 91d11792 authored by Gavin Li's avatar Gavin Li Committed by Jason Cooper
Browse files

irqchip: atmel-aic-common: Prevent clobbering of priority when changing IRQ type



This patch makes the bitmask for AIC_SRCTYPE consistent
with that of its valid values, and prevents the priority
field at bits 2:0 from being clobbered by an incorrect
AND with the AIC_SRCTYPE mask.

Signed-off-by: default avatarGavin Li <gavinli@thegavinli.com>
Cc: <stable@vger.kernel.org> # v3.17+
Acked-by: default avatarBoris Brezillon <boris.brezillon@free-electrons.com>
Acked-by: default avatarNicolas Ferre <nicolas.ferre@atmel.com>
Link: https://lkml.kernel.org/r/1420598843-8409-1-git-send-email-gavinli@thegavinli.com


Signed-off-by: default avatarJason Cooper <jason@lakedaemon.net>
parent 4b149e41
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -28,7 +28,7 @@
#define AT91_AIC_IRQ_MIN_PRIORITY	0
#define AT91_AIC_IRQ_MAX_PRIORITY	7

#define AT91_AIC_SRCTYPE		GENMASK(7, 6)
#define AT91_AIC_SRCTYPE		GENMASK(6, 5)
#define AT91_AIC_SRCTYPE_LOW		(0 << 5)
#define AT91_AIC_SRCTYPE_FALLING	(1 << 5)
#define AT91_AIC_SRCTYPE_HIGH		(2 << 5)
@@ -74,7 +74,7 @@ int aic_common_set_type(struct irq_data *d, unsigned type, unsigned *val)
		return -EINVAL;
	}

	*val &= AT91_AIC_SRCTYPE;
	*val &= ~AT91_AIC_SRCTYPE;
	*val |= aic_type;

	return 0;