Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753533AbbHESXF (ORCPT ); Wed, 5 Aug 2015 14:23:05 -0400 Received: from mailuogwdur.emc.com ([128.221.224.79]:52654 "EHLO mailuogwdur.emc.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752796AbbHESXB (ORCPT ); Wed, 5 Aug 2015 14:23:01 -0400 X-DKIM: OpenDKIM Filter v2.4.3 mailuogwprd52.lss.emc.com t75IMxgC028670 X-DKIM: OpenDKIM Filter v2.4.3 mailuogwprd52.lss.emc.com t75IMxgC028670 From: Allen Hubbe To: Dan Williams , Dave Jiang Cc: dmaengine@vger.kernel.com, linux-kernel@vger.kernel.org, Allen Hubbe Subject: [PATCH] ioatdma: fix overflow of u16 in ring_reshape Date: Wed, 5 Aug 2015 09:23:04 -0400 Message-Id: X-Mailer: git-send-email 2.5.0.rc1 X-RSA-Classifications: public X-Sentrion-Hostname: mailuogwprd52.lss.emc.com Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1186 Lines: 34 If the allocation order is 16, then the u16 index will overflow and wrap to zero instead of being equal or greater than 1 << 16. The loop condition will always be true, and the loop will run until all the memory resources are depleted. Change the type of index 'i' to u32, so that it is large enough to store a value equal or greater than 1 << 16. Signed-off-by: Allen Hubbe --- drivers/dma/ioat/dma_v2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/dma/ioat/dma_v2.c b/drivers/dma/ioat/dma_v2.c index 69c7dfcad023..13fbd9d5b5b9 100644 --- a/drivers/dma/ioat/dma_v2.c +++ b/drivers/dma/ioat/dma_v2.c @@ -588,7 +588,7 @@ bool reshape_ring(struct ioat2_dma_chan *ioat, int order) const u16 active = ioat2_ring_active(ioat); const u32 new_size = 1 << order; struct ioat_ring_ent **ring; - u16 i; + u32 i; if (order > ioat_get_max_alloc_order()) return false; -- 2.5.0.rc1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/