diff for duplicates of <1453832409.3824.59.camel@intel.com> diff --git a/a/1.txt b/N1/1.txt index d3d3386..762ba18 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -6,12 +6,12 @@ On Tue, 2016-01-26 at 10:31 +0100, Arnd Bergmann wrote: > drivers/ntb/test/ntb_perf.c: In function 'perf_copy': > drivers/ntb/test/ntb_perf.c:213:10: error: cast from pointer to > integer of different size [-Werror=pointer-to-int-cast] -> vbase = (u64)(u64 *)mw->vbase; -> ^ +> ? vbase = (u64)(u64 *)mw->vbase; +> ??????????^ > drivers/ntb/test/ntb_perf.c:214:14: error: cast from pointer to > integer of different size [-Werror=pointer-to-int-cast] -> dst_vaddr = (u64)(u64 *)dst; -> ^ +> ? dst_vaddr = (u64)(u64 *)dst; +> ??????????????^ > > This adds __iomem annotations where needed and changes the temporary > variables to iomem pointers to avoid casting them to u64. I did not @@ -24,8 +24,8 @@ Acked-by: Dave Jiang <dave.jiang@intel.com> > Fixes: 8a7b6a778a85 ("ntb: ntb perf tool") > --- -> drivers/ntb/test/ntb_perf.c | 21 +++++++++++---------- -> 1 file changed, 11 insertions(+), 10 deletions(-) +> ?drivers/ntb/test/ntb_perf.c | 21 +++++++++++---------- +> ?1 file changed, 11 insertions(+), 10 deletions(-) > > diff --git a/drivers/ntb/test/ntb_perf.c > b/drivers/ntb/test/ntb_perf.c @@ -33,79 +33,79 @@ Acked-by: Dave Jiang <dave.jiang@intel.com> > --- a/drivers/ntb/test/ntb_perf.c > +++ b/drivers/ntb/test/ntb_perf.c > @@ -178,7 +178,7 @@ static void perf_copy_callback(void *data) -> atomic_dec(&pctx->dma_sync); -> } -> +> ? atomic_dec(&pctx->dma_sync); +> ?} +> ? > -static ssize_t perf_copy(struct pthr_ctx *pctx, char *dst, > +static ssize_t perf_copy(struct pthr_ctx *pctx, char __iomem *dst, -> char *src, size_t size) -> { -> struct perf_ctx *perf = pctx->perf; +> ? ?char *src, size_t size) +> ?{ +> ? struct perf_ctx *perf = pctx->perf; > @@ -189,7 +189,8 @@ static ssize_t perf_copy(struct pthr_ctx *pctx, > char *dst, -> dma_cookie_t cookie; -> size_t src_off, dst_off; -> struct perf_mw *mw = &perf->mw; +> ? dma_cookie_t cookie; +> ? size_t src_off, dst_off; +> ? struct perf_mw *mw = &perf->mw; > - u64 vbase, dst_vaddr; > + void __iomem *vbase; > + void __iomem *dst_vaddr; -> dma_addr_t dst_phys; -> int retries = 0; -> +> ? dma_addr_t dst_phys; +> ? int retries = 0; +> ? > @@ -204,14 +205,14 @@ static ssize_t perf_copy(struct pthr_ctx *pctx, > char *dst, -> } -> -> device = chan->device; +> ? } +> ? +> ? device = chan->device; > - src_off = (size_t)src & ~PAGE_MASK; > - dst_off = (size_t)dst & ~PAGE_MASK; > + src_off = (uintptr_t)src & ~PAGE_MASK; > + dst_off = (uintptr_t __force)dst & ~PAGE_MASK; -> -> if (!is_dma_copy_aligned(device, src_off, dst_off, size)) -> return -ENODEV; -> +> ? +> ? if (!is_dma_copy_aligned(device, src_off, dst_off, size)) +> ? return -ENODEV; +> ? > - vbase = (u64)(u64 *)mw->vbase; > - dst_vaddr = (u64)(u64 *)dst; > + vbase = mw->vbase; > + dst_vaddr = dst; -> dst_phys = mw->phys_addr + (dst_vaddr - vbase); -> -> unmap = dmaengine_get_unmap_data(device->dev, 1, +> ? dst_phys = mw->phys_addr + (dst_vaddr - vbase); +> ? +> ? unmap = dmaengine_get_unmap_data(device->dev, 1, > GFP_NOWAIT); > @@ -261,13 +262,13 @@ err_get_unmap: -> return 0; -> } -> +> ? return 0; +> ?} +> ? > -static int perf_move_data(struct pthr_ctx *pctx, char *dst, char > *src, > +static int perf_move_data(struct pthr_ctx *pctx, char __iomem *dst, > char *src, -> u64 buf_size, u64 win_size, u64 total) -> { -> int chunks, total_chunks, i; -> int copied_chunks = 0; -> u64 copied = 0, result; +> ? ??u64 buf_size, u64 win_size, u64 total) +> ?{ +> ? int chunks, total_chunks, i; +> ? int copied_chunks = 0; +> ? u64 copied = 0, result; > - char *tmp = dst; > + char __iomem *tmp = dst; -> u64 perf, diff_us; -> ktime_t kstart, kstop, kdiff; -> +> ? u64 perf, diff_us; +> ? ktime_t kstart, kstop, kdiff; +> ? > @@ -324,7 +325,7 @@ static int ntb_perf_thread(void *data) -> struct perf_ctx *perf = pctx->perf; -> struct pci_dev *pdev = perf->ntb->pdev; -> struct perf_mw *mw = &perf->mw; +> ? struct perf_ctx *perf = pctx->perf; +> ? struct pci_dev *pdev = perf->ntb->pdev; +> ? struct perf_mw *mw = &perf->mw; > - char *dst; > + char __iomem *dst; -> u64 win_size, buf_size, total; -> void *src; -> int rc, node, i; +> ? u64 win_size, buf_size, total; +> ? void *src; +> ? int rc, node, i; > @@ -364,7 +365,7 @@ static int ntb_perf_thread(void *data) -> if (buf_size > MAX_TEST_SIZE) -> buf_size = MAX_TEST_SIZE; -> +> ? if (buf_size > MAX_TEST_SIZE) +> ? buf_size = MAX_TEST_SIZE; +> ? > - dst = (char *)mw->vbase; > + dst = (char __iomem *)mw->vbase; -> -> atomic_inc(&perf->tsync); -> while (atomic_read(&perf->tsync) != perf->perf_threads) +> ? +> ? atomic_inc(&perf->tsync); +> ? while (atomic_read(&perf->tsync) != perf->perf_threads) diff --git a/a/content_digest b/N1/content_digest index 24fba9e..2c65699 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,13 +1,8 @@ "ref\01453800729-2501235-1-git-send-email-arnd@arndb.de\0" - "From\0Jiang, Dave <dave.jiang@intel.com>\0" - "Subject\0Re: [PATCH] ntb: perf test: fix address space confusion\0" + "From\0dave.jiang@intel.com (Jiang, Dave)\0" + "Subject\0[PATCH] ntb: perf test: fix address space confusion\0" "Date\0Tue, 26 Jan 2016 18:20:12 +0000\0" - "To\0Allen.Hubbe@emc.com <Allen.Hubbe@emc.com>" - jdmason@kudzu.us <jdmason@kudzu.us> - " arnd@arndb.de <arnd@arndb.de>\0" - "Cc\0linux-arm-kernel@lists.infradead.org <linux-arm-kernel@lists.infradead.org>" - linux-kernel@vger.kernel.org <linux-kernel@vger.kernel.org> - " linux-ntb@googlegroups.com <linux-ntb@googlegroups.com>\0" + "To\0linux-arm-kernel@lists.infradead.org\0" "\00:1\0" "b\0" "On Tue, 2016-01-26 at 10:31 +0100, Arnd Bergmann wrote:\n" @@ -18,12 +13,12 @@ "> drivers/ntb/test/ntb_perf.c: In function 'perf_copy':\n" "> drivers/ntb/test/ntb_perf.c:213:10: error: cast from pointer to\n" "> integer of different size [-Werror=pointer-to-int-cast]\n" - "> \302\240 vbase = (u64)(u64 *)mw->vbase;\n" - "> \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240^\n" + "> ? vbase = (u64)(u64 *)mw->vbase;\n" + "> ??????????^\n" "> drivers/ntb/test/ntb_perf.c:214:14: error: cast from pointer to\n" "> integer of different size [-Werror=pointer-to-int-cast]\n" - "> \302\240 dst_vaddr = (u64)(u64 *)dst;\n" - "> \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240^\n" + "> ? dst_vaddr = (u64)(u64 *)dst;\n" + "> ??????????????^\n" "> \n" "> This adds __iomem annotations where needed and changes the temporary\n" "> variables to iomem pointers to avoid casting them to u64. I did not\n" @@ -36,8 +31,8 @@ "\n" "> Fixes: 8a7b6a778a85 (\"ntb: ntb perf tool\")\n" "> ---\n" - "> \302\240drivers/ntb/test/ntb_perf.c | 21 +++++++++++----------\n" - "> \302\2401 file changed, 11 insertions(+), 10 deletions(-)\n" + "> ?drivers/ntb/test/ntb_perf.c | 21 +++++++++++----------\n" + "> ?1 file changed, 11 insertions(+), 10 deletions(-)\n" "> \n" "> diff --git a/drivers/ntb/test/ntb_perf.c\n" "> b/drivers/ntb/test/ntb_perf.c\n" @@ -45,81 +40,81 @@ "> --- a/drivers/ntb/test/ntb_perf.c\n" "> +++ b/drivers/ntb/test/ntb_perf.c\n" "> @@ -178,7 +178,7 @@ static void perf_copy_callback(void *data)\n" - "> \302\240\tatomic_dec(&pctx->dma_sync);\n" - "> \302\240}\n" - "> \302\240\n" + "> ?\tatomic_dec(&pctx->dma_sync);\n" + "> ?}\n" + "> ?\n" "> -static ssize_t perf_copy(struct pthr_ctx *pctx, char *dst,\n" "> +static ssize_t perf_copy(struct pthr_ctx *pctx, char __iomem *dst,\n" - "> \302\240\t\t\t\302\240char *src, size_t size)\n" - "> \302\240{\n" - "> \302\240\tstruct perf_ctx *perf = pctx->perf;\n" + "> ?\t\t\t?char *src, size_t size)\n" + "> ?{\n" + "> ?\tstruct perf_ctx *perf = pctx->perf;\n" "> @@ -189,7 +189,8 @@ static ssize_t perf_copy(struct pthr_ctx *pctx,\n" "> char *dst,\n" - "> \302\240\tdma_cookie_t cookie;\n" - "> \302\240\tsize_t src_off, dst_off;\n" - "> \302\240\tstruct perf_mw *mw = &perf->mw;\n" + "> ?\tdma_cookie_t cookie;\n" + "> ?\tsize_t src_off, dst_off;\n" + "> ?\tstruct perf_mw *mw = &perf->mw;\n" "> -\tu64 vbase, dst_vaddr;\n" "> +\tvoid __iomem *vbase;\n" "> +\tvoid __iomem *dst_vaddr;\n" - "> \302\240\tdma_addr_t dst_phys;\n" - "> \302\240\tint retries = 0;\n" - "> \302\240\n" + "> ?\tdma_addr_t dst_phys;\n" + "> ?\tint retries = 0;\n" + "> ?\n" "> @@ -204,14 +205,14 @@ static ssize_t perf_copy(struct pthr_ctx *pctx,\n" "> char *dst,\n" - "> \302\240\t}\n" - "> \302\240\n" - "> \302\240\tdevice = chan->device;\n" + "> ?\t}\n" + "> ?\n" + "> ?\tdevice = chan->device;\n" "> -\tsrc_off = (size_t)src & ~PAGE_MASK;\n" "> -\tdst_off = (size_t)dst & ~PAGE_MASK;\n" "> +\tsrc_off = (uintptr_t)src & ~PAGE_MASK;\n" "> +\tdst_off = (uintptr_t __force)dst & ~PAGE_MASK;\n" - "> \302\240\n" - "> \302\240\tif (!is_dma_copy_aligned(device, src_off, dst_off, size))\n" - "> \302\240\t\treturn -ENODEV;\n" - "> \302\240\n" + "> ?\n" + "> ?\tif (!is_dma_copy_aligned(device, src_off, dst_off, size))\n" + "> ?\t\treturn -ENODEV;\n" + "> ?\n" "> -\tvbase = (u64)(u64 *)mw->vbase;\n" "> -\tdst_vaddr = (u64)(u64 *)dst;\n" "> +\tvbase = mw->vbase;\n" "> +\tdst_vaddr = dst;\n" - "> \302\240\tdst_phys = mw->phys_addr + (dst_vaddr - vbase);\n" - "> \302\240\n" - "> \302\240\tunmap = dmaengine_get_unmap_data(device->dev, 1,\n" + "> ?\tdst_phys = mw->phys_addr + (dst_vaddr - vbase);\n" + "> ?\n" + "> ?\tunmap = dmaengine_get_unmap_data(device->dev, 1,\n" "> GFP_NOWAIT);\n" "> @@ -261,13 +262,13 @@ err_get_unmap:\n" - "> \302\240\treturn 0;\n" - "> \302\240}\n" - "> \302\240\n" + "> ?\treturn 0;\n" + "> ?}\n" + "> ?\n" "> -static int perf_move_data(struct pthr_ctx *pctx, char *dst, char\n" "> *src,\n" "> +static int perf_move_data(struct pthr_ctx *pctx, char __iomem *dst,\n" "> char *src,\n" - "> \302\240\t\t\t\302\240\302\240u64 buf_size, u64 win_size, u64 total)\n" - "> \302\240{\n" - "> \302\240\tint chunks, total_chunks, i;\n" - "> \302\240\tint copied_chunks = 0;\n" - "> \302\240\tu64 copied = 0, result;\n" + "> ?\t\t\t??u64 buf_size, u64 win_size, u64 total)\n" + "> ?{\n" + "> ?\tint chunks, total_chunks, i;\n" + "> ?\tint copied_chunks = 0;\n" + "> ?\tu64 copied = 0, result;\n" "> -\tchar *tmp = dst;\n" "> +\tchar __iomem *tmp = dst;\n" - "> \302\240\tu64 perf, diff_us;\n" - "> \302\240\tktime_t kstart, kstop, kdiff;\n" - "> \302\240\n" + "> ?\tu64 perf, diff_us;\n" + "> ?\tktime_t kstart, kstop, kdiff;\n" + "> ?\n" "> @@ -324,7 +325,7 @@ static int ntb_perf_thread(void *data)\n" - "> \302\240\tstruct perf_ctx *perf = pctx->perf;\n" - "> \302\240\tstruct pci_dev *pdev = perf->ntb->pdev;\n" - "> \302\240\tstruct perf_mw *mw = &perf->mw;\n" + "> ?\tstruct perf_ctx *perf = pctx->perf;\n" + "> ?\tstruct pci_dev *pdev = perf->ntb->pdev;\n" + "> ?\tstruct perf_mw *mw = &perf->mw;\n" "> -\tchar *dst;\n" "> +\tchar __iomem *dst;\n" - "> \302\240\tu64 win_size, buf_size, total;\n" - "> \302\240\tvoid *src;\n" - "> \302\240\tint rc, node, i;\n" + "> ?\tu64 win_size, buf_size, total;\n" + "> ?\tvoid *src;\n" + "> ?\tint rc, node, i;\n" "> @@ -364,7 +365,7 @@ static int ntb_perf_thread(void *data)\n" - "> \302\240\tif (buf_size > MAX_TEST_SIZE)\n" - "> \302\240\t\tbuf_size = MAX_TEST_SIZE;\n" - "> \302\240\n" + "> ?\tif (buf_size > MAX_TEST_SIZE)\n" + "> ?\t\tbuf_size = MAX_TEST_SIZE;\n" + "> ?\n" "> -\tdst = (char *)mw->vbase;\n" "> +\tdst = (char __iomem *)mw->vbase;\n" - "> \302\240\n" - "> \302\240\tatomic_inc(&perf->tsync);\n" - "> \302\240\twhile (atomic_read(&perf->tsync) != perf->perf_threads)" + "> ?\n" + "> ?\tatomic_inc(&perf->tsync);\n" + "> ?\twhile (atomic_read(&perf->tsync) != perf->perf_threads)" -a32c4813a0fb9b358e1ebcc07855b284e6f794a2c48e3e482d79e1bbbd2812a4 +ad47f8c021d72bab738a0290d2d57194366ecddf93bd73f8eb57092349d8daae
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.