[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <201712060819.S40pUs16%fengguang.wu@intel.com>
Date: Wed, 6 Dec 2017 09:17:37 +0800
From: kbuild test robot <lkp@...el.com>
To: Serge Semin <fancer.lancer@...il.com>
Cc: kbuild-all@...org, jdmason@...zu.us, dave.jiang@...el.com,
Allen.Hubbe@....com, Shyam-sundar.S-k@....com,
Xiangliang.Yu@....com, gary.hook@....com,
Sergey.Semin@...latforms.ru, linux-ntb@...glegroups.com,
linux-kernel@...r.kernel.org, Serge Semin <fancer.lancer@...il.com>
Subject: Re: [PATCH v2 06/15] NTB: ntb_perf: Add full multi-port NTB API
support
Hi Serge,
I love your patch! Perhaps something to improve:
[auto build test WARNING on linus/master]
[also build test WARNING on v4.15-rc2]
[cannot apply to ntb/ntb-next next-20171205]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Serge-Semin/NTB-Add-full-multi-port-API-support-to-the-test-drivers/20171206-081300
config: x86_64-randconfig-x004-201749 (attached as .config)
compiler: gcc-7 (Debian 7.2.0-12) 7.2.1 20171025
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64
Note: it may well be a FALSE warning. FWIW you are at least aware of it now.
http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings
All warnings (new ones prefixed by >>):
drivers/ntb/test/ntb_perf.c: In function 'perf_thread_work':
>> drivers/ntb/test/ntb_perf.c:821:22: warning: 'try' may be used uninitialized in this function [-Wmaybe-uninitialized]
} while (!tx && (try++ < DMA_TRIES));
~~~^~
drivers/ntb/test/ntb_perf.c:782:6: note: 'try' was declared here
int try, ret = 0;
^~~
vim +/try +821 drivers/ntb/test/ntb_perf.c
775
776 static int perf_copy_chunk(struct perf_thread *pthr,
777 void __iomem *dst, void *src, size_t len)
778 {
779 struct dma_async_tx_descriptor *tx;
780 struct dmaengine_unmap_data *unmap;
781 struct device *dma_dev;
782 int try, ret = 0;
783
784 if (!use_dma) {
785 memcpy_toio(dst, src, len);
786 goto ret_check_tsync;
787 }
788
789 dma_dev = pthr->dma_chan->device->dev;
790
791 if (!is_dma_copy_aligned(pthr->dma_chan->device, offset_in_page(src),
792 offset_in_page(dst), len))
793 return -EIO;
794
795 unmap = dmaengine_get_unmap_data(dma_dev, 2, GFP_NOWAIT);
796 if (!unmap)
797 return -ENOMEM;
798
799 unmap->len = len;
800 unmap->addr[0] = dma_map_page(dma_dev, virt_to_page(src),
801 offset_in_page(src), len, DMA_TO_DEVICE);
802 if (dma_mapping_error(dma_dev, unmap->addr[0])) {
803 ret = -EIO;
804 goto err_free_resource;
805 }
806 unmap->to_cnt = 1;
807
808 unmap->addr[1] = dma_map_page(dma_dev, virt_to_page(dst),
809 offset_in_page(dst), len, DMA_FROM_DEVICE);
810 if (dma_mapping_error(dma_dev, unmap->addr[1])) {
811 ret = -EIO;
812 goto err_free_resource;
813 }
814 unmap->from_cnt = 1;
815
816 do {
817 tx = dmaengine_prep_dma_memcpy(pthr->dma_chan, unmap->addr[1],
818 unmap->addr[0], len, DMA_PREP_INTERRUPT | DMA_CTRL_ACK);
819 if (!tx)
820 msleep(DMA_MDELAY);
> 821 } while (!tx && (try++ < DMA_TRIES));
822
823 if (!tx) {
824 ret = -EIO;
825 goto err_free_resource;
826 }
827
828 tx->callback = perf_dma_copy_callback;
829 tx->callback_param = pthr;
830 dma_set_unmap(tx, unmap);
831
832 if (dma_submit_error(dmaengine_submit(tx))) {
833 dmaengine_unmap_put(unmap);
834 goto err_free_resource;
835 }
836
837 dmaengine_unmap_put(unmap);
838
839 atomic_inc(&pthr->dma_sync);
840 dma_async_issue_pending(pthr->dma_chan);
841
842 ret_check_tsync:
843 return likely(atomic_read(&pthr->perf->tsync) > 0) ? 0 : -EINTR;
844
845 err_free_resource:
846 dmaengine_unmap_put(unmap);
847
848 return ret;
849 }
850
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
Download attachment ".config.gz" of type "application/gzip" (25952 bytes)
Powered by blists - more mailing lists