CC: kbuild-...@lists.01.org
CC: linux-ker...@vger.kernel.org
TO: David Rientjes <rient...@google.com>
CC: Christoph Hellwig <h...@lst.de>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   e8878ab825450c9ac07a0fc22e1f66fdb62b4f72
commit: 54adadf9b08571fb8b11dc9d0d3a2ddd39825efd dma-pool: dynamically 
expanding atomic pools
date:   5 months ago
:::::: branch date: 3 hours ago
:::::: commit date: 5 months ago
compiler: nds32le-linux-gcc (GCC) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <l...@intel.com>


cppcheck warnings: (new ones prefixed by >>)

>> kernel/dma/pool.c:62:6: warning: Variable 'ret' is reassigned a value before 
>> the old one has been used. [redundantAssignment]
    ret = gen_pool_add_virt(pool, (unsigned long)addr, page_to_phys(page),
        ^
   kernel/dma/pool.c:37:0: note: Variable 'ret' is reassigned a value before 
the old one has been used.
    int ret = -ENOMEM;
   ^
   kernel/dma/pool.c:62:6: note: Variable 'ret' is reassigned a value before 
the old one has been used.
    ret = gen_pool_add_virt(pool, (unsigned long)addr, page_to_phys(page),
        ^

# 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=54adadf9b08571fb8b11dc9d0d3a2ddd39825efd
git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 54adadf9b08571fb8b11dc9d0d3a2ddd39825efd
vim +/ret +62 kernel/dma/pool.c

e860c299ac0d73 David Rientjes 2020-04-14  30  
54adadf9b08571 David Rientjes 2020-04-20  31  static int 
atomic_pool_expand(struct gen_pool *pool, size_t pool_size,
54adadf9b08571 David Rientjes 2020-04-20  32                          gfp_t gfp)
e860c299ac0d73 David Rientjes 2020-04-14  33  {
54adadf9b08571 David Rientjes 2020-04-20  34    unsigned int order;
e860c299ac0d73 David Rientjes 2020-04-14  35    struct page *page;
e860c299ac0d73 David Rientjes 2020-04-14  36    void *addr;
54adadf9b08571 David Rientjes 2020-04-20  37    int ret = -ENOMEM;
54adadf9b08571 David Rientjes 2020-04-20  38  
54adadf9b08571 David Rientjes 2020-04-20  39    /* Cannot allocate larger than 
MAX_ORDER-1 */
54adadf9b08571 David Rientjes 2020-04-20  40    order = 
min(get_order(pool_size), MAX_ORDER-1);
54adadf9b08571 David Rientjes 2020-04-20  41  
54adadf9b08571 David Rientjes 2020-04-20  42    do {
54adadf9b08571 David Rientjes 2020-04-20  43            pool_size = 1 << 
(PAGE_SHIFT + order);
e860c299ac0d73 David Rientjes 2020-04-14  44  
e860c299ac0d73 David Rientjes 2020-04-14  45            if 
(dev_get_cma_area(NULL))
54adadf9b08571 David Rientjes 2020-04-20  46                    page = 
dma_alloc_from_contiguous(NULL, 1 << order,
54adadf9b08571 David Rientjes 2020-04-20  47                                    
                 order, false);
e860c299ac0d73 David Rientjes 2020-04-14  48            else
c84dc6e68a1d24 David Rientjes 2020-04-14  49                    page = 
alloc_pages(gfp, order);
54adadf9b08571 David Rientjes 2020-04-20  50    } while (!page && order-- > 0);
e860c299ac0d73 David Rientjes 2020-04-14  51    if (!page)
e860c299ac0d73 David Rientjes 2020-04-14  52            goto out;
e860c299ac0d73 David Rientjes 2020-04-14  53  
c84dc6e68a1d24 David Rientjes 2020-04-14  54    arch_dma_prep_coherent(page, 
pool_size);
e860c299ac0d73 David Rientjes 2020-04-14  55  
c84dc6e68a1d24 David Rientjes 2020-04-14  56    addr = 
dma_common_contiguous_remap(page, pool_size,
e860c299ac0d73 David Rientjes 2020-04-14  57                                    
   pgprot_dmacoherent(PAGE_KERNEL),
e860c299ac0d73 David Rientjes 2020-04-14  58                                    
   __builtin_return_address(0));
e860c299ac0d73 David Rientjes 2020-04-14  59    if (!addr)
54adadf9b08571 David Rientjes 2020-04-20  60            goto free_page;
e860c299ac0d73 David Rientjes 2020-04-14  61  
54adadf9b08571 David Rientjes 2020-04-20 @62    ret = gen_pool_add_virt(pool, 
(unsigned long)addr, page_to_phys(page),
54adadf9b08571 David Rientjes 2020-04-20  63                            
pool_size, NUMA_NO_NODE);
e860c299ac0d73 David Rientjes 2020-04-14  64    if (ret)
e860c299ac0d73 David Rientjes 2020-04-14  65            goto remove_mapping;
e860c299ac0d73 David Rientjes 2020-04-14  66  
e860c299ac0d73 David Rientjes 2020-04-14  67    return 0;
e860c299ac0d73 David Rientjes 2020-04-14  68  
e860c299ac0d73 David Rientjes 2020-04-14  69  remove_mapping:
c84dc6e68a1d24 David Rientjes 2020-04-14  70    dma_common_free_remap(addr, 
pool_size);
e860c299ac0d73 David Rientjes 2020-04-14  71  free_page:
54adadf9b08571 David Rientjes 2020-04-20  72    if 
(!dma_release_from_contiguous(NULL, page, 1 << order))
c84dc6e68a1d24 David Rientjes 2020-04-14  73            __free_pages(page, 
order);
e860c299ac0d73 David Rientjes 2020-04-14  74  out:
54adadf9b08571 David Rientjes 2020-04-20  75    return ret;
54adadf9b08571 David Rientjes 2020-04-20  76  }
54adadf9b08571 David Rientjes 2020-04-20  77  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org
_______________________________________________
kbuild mailing list -- kbuild@lists.01.org
To unsubscribe send an email to kbuild-le...@lists.01.org

Reply via email to