From ada6deac81c3e1df08af02115e398e64a00bcdc1 Mon Sep 17 00:00:00 2001 From: Orhan K AKYILDIZ Date: Tue, 7 Feb 2017 14:33:11 -0800 Subject: qcacld-3.0: Fix 32-bit crash on markings The offending code did not get the order of operations right. It was: shift 16, cast 64,shift 16 and should have been: cast, shift 16, shift 16. CRs-Fixed: 2000844 Change-Id: I65cf4aaf0c20535070eb63b15d77b8c3c7dcb4e4 --- core/dp/htt/htt_rx.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/core/dp/htt/htt_rx.c b/core/dp/htt/htt_rx.c index 26db4b2273af..5a23681ba05b 100644 --- a/core/dp/htt/htt_rx.c +++ b/core/dp/htt/htt_rx.c @@ -394,8 +394,10 @@ htt_rx_in_ord_paddr_get(uint32_t *u32p) paddr = (qdf_dma_addr_t)HTT_RX_IN_ORD_PADDR_IND_PADDR_GET(*u32p); if (sizeof(qdf_dma_addr_t) > 4) { u32p++; - paddr |= ((qdf_dma_addr_t) - (HTT_RX_IN_ORD_PADDR_IND_PADDR_GET(*u32p) << 16) << 16); + /* 32 bit architectures dont like <<32 */ + paddr |= (((qdf_dma_addr_t) + HTT_RX_IN_ORD_PADDR_IND_PADDR_GET(*u32p)) + << 16 << 16); } paddr = htt_rx_paddr_unmark_high_bits(paddr); -- cgit v1.2.3