Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751889AbdFHQcY (ORCPT ); Thu, 8 Jun 2017 12:32:24 -0400 Received: from mga14.intel.com ([192.55.52.115]:10049 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751502AbdFHQcV (ORCPT ); Thu, 8 Jun 2017 12:32:21 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.39,315,1493708400"; d="scan'208";a="112537781" Subject: Re: [PATCH 03/44] dmaengine: ioat: don't use DMA_ERROR_CODE To: Christoph Hellwig , "x86@kernel.org" , "linux-arm-kernel@lists.infradead.org" , "xen-devel@lists.xenproject.org" , "linux-c6x-dev@linux-c6x.org" , "linux-hexagon@vger.kernel.org" , "linux-ia64@vger.kernel.org" , "linux-mips@linux-mips.org" , "openrisc@lists.librecores.org" , "linuxppc-dev@lists.ozlabs.org" , "linux-s390@vger.kernel.org" , "linux-sh@vger.kernel.org" , "sparclinux@vger.kernel.org" , "linux-xtensa@linux-xtensa.org" , "dmaengine@vger.kernel.org" , "linux-tegra@vger.kernel.org" , "dri-devel@lists.freedesktop.org" , "linux-samsung-soc@vger.kernel.org" , "iommu@lists.linux-foundation.org" , "netdev@vger.kernel.org" Cc: "linux-kernel@vger.kernel.org" References: <20170608132609.32662-1-hch@lst.de> <20170608132609.32662-4-hch@lst.de> From: Dave Jiang Message-ID: Date: Thu, 8 Jun 2017 09:32:18 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.0 MIME-Version: 1.0 In-Reply-To: <20170608132609.32662-4-hch@lst.de> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2605 Lines: 70 On 06/08/2017 06:25 AM, Christoph Hellwig wrote: > DMA_ERROR_CODE is not a public API and will go away. Instead properly > unwind based on the loop counter. > > Signed-off-by: Christoph Hellwig Acked-by: Dave Jiang > --- > drivers/dma/ioat/init.c | 24 +++++++----------------- > 1 file changed, 7 insertions(+), 17 deletions(-) > > diff --git a/drivers/dma/ioat/init.c b/drivers/dma/ioat/init.c > index 6ad4384b3fa8..ed8ed1192775 100644 > --- a/drivers/dma/ioat/init.c > +++ b/drivers/dma/ioat/init.c > @@ -839,8 +839,6 @@ static int ioat_xor_val_self_test(struct ioatdma_device *ioat_dma) > goto free_resources; > } > > - for (i = 0; i < IOAT_NUM_SRC_TEST; i++) > - dma_srcs[i] = DMA_ERROR_CODE; > for (i = 0; i < IOAT_NUM_SRC_TEST; i++) { > dma_srcs[i] = dma_map_page(dev, xor_srcs[i], 0, PAGE_SIZE, > DMA_TO_DEVICE); > @@ -910,8 +908,6 @@ static int ioat_xor_val_self_test(struct ioatdma_device *ioat_dma) > > xor_val_result = 1; > > - for (i = 0; i < IOAT_NUM_SRC_TEST + 1; i++) > - dma_srcs[i] = DMA_ERROR_CODE; > for (i = 0; i < IOAT_NUM_SRC_TEST + 1; i++) { > dma_srcs[i] = dma_map_page(dev, xor_val_srcs[i], 0, PAGE_SIZE, > DMA_TO_DEVICE); > @@ -965,8 +961,6 @@ static int ioat_xor_val_self_test(struct ioatdma_device *ioat_dma) > op = IOAT_OP_XOR_VAL; > > xor_val_result = 0; > - for (i = 0; i < IOAT_NUM_SRC_TEST + 1; i++) > - dma_srcs[i] = DMA_ERROR_CODE; > for (i = 0; i < IOAT_NUM_SRC_TEST + 1; i++) { > dma_srcs[i] = dma_map_page(dev, xor_val_srcs[i], 0, PAGE_SIZE, > DMA_TO_DEVICE); > @@ -1017,18 +1011,14 @@ static int ioat_xor_val_self_test(struct ioatdma_device *ioat_dma) > goto free_resources; > dma_unmap: > if (op == IOAT_OP_XOR) { > - if (dest_dma != DMA_ERROR_CODE) > - dma_unmap_page(dev, dest_dma, PAGE_SIZE, > - DMA_FROM_DEVICE); > - for (i = 0; i < IOAT_NUM_SRC_TEST; i++) > - if (dma_srcs[i] != DMA_ERROR_CODE) > - dma_unmap_page(dev, dma_srcs[i], PAGE_SIZE, > - DMA_TO_DEVICE); > + while (--i >= 0) > + dma_unmap_page(dev, dma_srcs[i], PAGE_SIZE, > + DMA_TO_DEVICE); > + dma_unmap_page(dev, dest_dma, PAGE_SIZE, DMA_FROM_DEVICE); > } else if (op == IOAT_OP_XOR_VAL) { > - for (i = 0; i < IOAT_NUM_SRC_TEST + 1; i++) > - if (dma_srcs[i] != DMA_ERROR_CODE) > - dma_unmap_page(dev, dma_srcs[i], PAGE_SIZE, > - DMA_TO_DEVICE); > + while (--i >= 0) > + dma_unmap_page(dev, dma_srcs[i], PAGE_SIZE, > + DMA_TO_DEVICE); > } > free_resources: > dma->device_free_chan_resources(dma_chan); >