From: Mark Brown Date: Fri, 1 Aug 2014 16:47:38 +0000 (+0100) Subject: spi/pl022: Explicitly truncate large bitmask X-Git-Tag: v3.17-rc1~114^2~1^3 X-Git-Url: http://git.cascardo.info/?a=commitdiff_plain;h=d555ea05f9d8ebf567eaa6b4e4cb5776aacf2940;p=cascardo%2Flinux.git spi/pl022: Explicitly truncate large bitmask When building on 64 bit architectures the use of bitwise negation generates constants larger than 32 bits which won't fit in u32s used to represent 32 bit register values on the device. Explicitly cast to let the compiler know that the higher bits are not significant and can be discarded. Signed-off-by: Mark Brown --- diff --git a/drivers/spi/spi-pl022.c b/drivers/spi/spi-pl022.c index 66d2ae21e78e..1189cfd96477 100644 --- a/drivers/spi/spi-pl022.c +++ b/drivers/spi/spi-pl022.c @@ -1417,7 +1417,7 @@ static void do_interrupt_dma_transfer(struct pl022 *pl022) * Default is to enable all interrupts except RX - * this will be enabled once TX is complete */ - u32 irqflags = ENABLE_ALL_INTERRUPTS & ~SSP_IMSC_MASK_RXIM; + u32 irqflags = (u32)(ENABLE_ALL_INTERRUPTS & ~SSP_IMSC_MASK_RXIM); /* Enable target chip, if not already active */ if (!pl022->next_msg_cs_active)