From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Jiang Date: Thu, 08 Jun 2017 16:32:18 +0000 Subject: Re: [PATCH 03/44] dmaengine: ioat: don't use DMA_ERROR_CODE Message-Id: List-Id: References: <20170608132609.32662-1-hch@lst.de> <20170608132609.32662-4-hch@lst.de> In-Reply-To: <20170608132609.32662-4-hch@lst.de> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-arm-kernel@lists.infradead.org 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); > From mboxrd@z Thu Jan 1 00:00:00 1970 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 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); > From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Jiang Subject: Re: [PATCH 03/44] dmaengine: ioat: don't use DMA_ERROR_CODE Date: Thu, 8 Jun 2017 09:32:18 -0700 Message-ID: References: <20170608132609.32662-1-hch@lst.de> <20170608132609.32662-4-hch@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: "linux-kernel@vger.kernel.org" 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" < Return-path: 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 In-Reply-To: <20170608132609.32662-4-hch@lst.de> Content-Language: en-US Sender: netdev-owner@vger.kernel.org List-ID: 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); > From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga05.intel.com ([192.55.52.43]:19897 "EHLO mga05.intel.com" rhost-flags-OK-OK-OK-OK) by eddie.linux-mips.org with ESMTP id S23990509AbdFHQcWAurkp (ORCPT ); Thu, 8 Jun 2017 18:32:22 +0200 Subject: Re: [PATCH 03/44] dmaengine: ioat: don't use DMA_ERROR_CODE 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 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 Return-Path: Sender: linux-mips-bounce@linux-mips.org Errors-to: linux-mips-bounce@linux-mips.org List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-subscribe: List-owner: List-post: List-archive: 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" Message-ID: <20170608163218.uoi-TbpUIrWZQT_9mH8gERKZte_Igv3r-Xp-lAt8BQ4@z> 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); > From mboxrd@z Thu Jan 1 00:00:00 1970 From: dave.jiang@intel.com (Dave Jiang) Date: Thu, 8 Jun 2017 09:32:18 -0700 Subject: [PATCH 03/44] dmaengine: ioat: don't use DMA_ERROR_CODE In-Reply-To: <20170608132609.32662-4-hch@lst.de> References: <20170608132609.32662-1-hch@lst.de> <20170608132609.32662-4-hch@lst.de> Message-ID: To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org 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); > From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Jiang Subject: Re: [PATCH 03/44] dmaengine: ioat: don't use DMA_ERROR_CODE Date: Thu, 8 Jun 2017 09:32:18 -0700 Message-ID: References: <20170608132609.32662-1-hch@lst.de> <20170608132609.32662-4-hch@lst.de> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20170608132609.32662-4-hch@lst.de> Content-Language: en-US Sender: netdev-owner@vger.kernel.org List-ID: Content-Type: text/plain; charset="us-ascii" 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" <> Cc: "linux-kernel@vger.kernel.org" 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); >