CC: [email protected]
BCC: [email protected]
In-Reply-To: <[email protected]>
References: <[email protected]>
TO: Tianyu Lan <[email protected]>

Hi Tianyu,

[FYI, it's a private test report for your RFC patch.]
[auto build test WARNING on next-20220429]
[cannot apply to linus/master v5.18-rc5 v5.18-rc4 v5.18-rc3 v5.18-rc5]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    
https://github.com/intel-lab-lkp/linux/commits/Tianyu-Lan/swiotlb-Add-child-io-tlb-mem-support/20220502-205700
base:    5469f0c06732a077c70a759a81f2a1f00b277694
:::::: branch date: 7 hours ago
:::::: commit date: 7 hours ago
config: i386-randconfig-c001 
(https://download.01.org/0day-ci/archive/20220503/[email protected]/config)
compiler: gcc-11 (Debian 11.2.0-20) 11.2.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>
Reported-by: Julia Lawall <[email protected]>


cocci warnings: (new ones prefixed by >>)
>> kernel/dma/swiotlb.c:1024:20-23: ERROR: reference preceded by free on line 
>> 1022

vim +1024 kernel/dma/swiotlb.c

3349f5b007cd7ec Tianyu Lan 2022-05-02   966  
3349f5b007cd7ec Tianyu Lan 2022-05-02   967  /*
3349f5b007cd7ec Tianyu Lan 2022-05-02   968   * swiotlb_device_allocate - 
Allocate bounce buffer fo device from
3349f5b007cd7ec Tianyu Lan 2022-05-02   969   * default io tlb pool. The 
allocation size should be aligned with
3349f5b007cd7ec Tianyu Lan 2022-05-02   970   * IO_TLB_BLOCK_UNIT.
3349f5b007cd7ec Tianyu Lan 2022-05-02   971   */
3349f5b007cd7ec Tianyu Lan 2022-05-02   972  int swiotlb_device_allocate(struct 
device *dev,
3349f5b007cd7ec Tianyu Lan 2022-05-02   973                         unsigned 
int queue_num,
3349f5b007cd7ec Tianyu Lan 2022-05-02   974                         unsigned 
long size)
3349f5b007cd7ec Tianyu Lan 2022-05-02   975  {
3349f5b007cd7ec Tianyu Lan 2022-05-02   976     struct io_tlb_mem *mem, 
*parent_mem = dev->dma_io_tlb_mem;
3349f5b007cd7ec Tianyu Lan 2022-05-02   977     unsigned long nslabs = 
ALIGN(size >> IO_TLB_SHIFT, IO_TLB_BLOCKSIZE);
3349f5b007cd7ec Tianyu Lan 2022-05-02   978     struct page *page;
3349f5b007cd7ec Tianyu Lan 2022-05-02   979     int ret = -ENOMEM;
3349f5b007cd7ec Tianyu Lan 2022-05-02   980  
3349f5b007cd7ec Tianyu Lan 2022-05-02   981     page = 
swiotlb_alloc_block(parent_mem, nslabs / IO_TLB_BLOCKSIZE);
3349f5b007cd7ec Tianyu Lan 2022-05-02   982     if (!page)
3349f5b007cd7ec Tianyu Lan 2022-05-02   983             return -ENOMEM;
3349f5b007cd7ec Tianyu Lan 2022-05-02   984  
3349f5b007cd7ec Tianyu Lan 2022-05-02   985     mem = kzalloc(sizeof(*mem), 
GFP_KERNEL);
3349f5b007cd7ec Tianyu Lan 2022-05-02   986     if (!mem)
3349f5b007cd7ec Tianyu Lan 2022-05-02   987             goto error_mem;
3349f5b007cd7ec Tianyu Lan 2022-05-02   988  
3349f5b007cd7ec Tianyu Lan 2022-05-02   989     mem->slots = 
kzalloc(array_size(sizeof(*mem->slots), nslabs),
3349f5b007cd7ec Tianyu Lan 2022-05-02   990                          
GFP_KERNEL);
3349f5b007cd7ec Tianyu Lan 2022-05-02   991     if (!mem->slots)
3349f5b007cd7ec Tianyu Lan 2022-05-02   992             goto error_slots;
3349f5b007cd7ec Tianyu Lan 2022-05-02   993  
3349f5b007cd7ec Tianyu Lan 2022-05-02   994     mem->block = kcalloc(nslabs / 
IO_TLB_BLOCKSIZE,
3349f5b007cd7ec Tianyu Lan 2022-05-02   995                             
sizeof(struct io_tlb_block),
3349f5b007cd7ec Tianyu Lan 2022-05-02   996                             
GFP_KERNEL);
3349f5b007cd7ec Tianyu Lan 2022-05-02   997     if (!mem->block)
3349f5b007cd7ec Tianyu Lan 2022-05-02   998             goto error_block;
3349f5b007cd7ec Tianyu Lan 2022-05-02   999  
3349f5b007cd7ec Tianyu Lan 2022-05-02  1000     mem->num_child = queue_num;
3349f5b007cd7ec Tianyu Lan 2022-05-02  1001     mem->child = kcalloc(queue_num,
3349f5b007cd7ec Tianyu Lan 2022-05-02  1002                             
sizeof(struct io_tlb_mem),
3349f5b007cd7ec Tianyu Lan 2022-05-02  1003                             
GFP_KERNEL);
3349f5b007cd7ec Tianyu Lan 2022-05-02  1004     if (!mem->child)
3349f5b007cd7ec Tianyu Lan 2022-05-02  1005             goto error_child;
3349f5b007cd7ec Tianyu Lan 2022-05-02  1006  
3349f5b007cd7ec Tianyu Lan 2022-05-02  1007  
3349f5b007cd7ec Tianyu Lan 2022-05-02  1008     swiotlb_init_io_tlb_mem(mem, 
page_to_phys(page), nslabs, true);
3349f5b007cd7ec Tianyu Lan 2022-05-02  1009     mem->force_bounce = true;
3349f5b007cd7ec Tianyu Lan 2022-05-02  1010     mem->for_alloc = true;
3349f5b007cd7ec Tianyu Lan 2022-05-02  1011  
3349f5b007cd7ec Tianyu Lan 2022-05-02  1012     mem->vaddr = parent_mem->vaddr 
+ page_to_phys(page) -  parent_mem->start;
3349f5b007cd7ec Tianyu Lan 2022-05-02  1013     dev->dma_io_tlb_mem->parent = 
parent_mem;
3349f5b007cd7ec Tianyu Lan 2022-05-02  1014     dev->dma_io_tlb_mem = mem;
3349f5b007cd7ec Tianyu Lan 2022-05-02  1015     return 0;
3349f5b007cd7ec Tianyu Lan 2022-05-02  1016  
3349f5b007cd7ec Tianyu Lan 2022-05-02  1017  error_child:
3349f5b007cd7ec Tianyu Lan 2022-05-02  1018     kfree(mem->block);
3349f5b007cd7ec Tianyu Lan 2022-05-02  1019  error_block:
3349f5b007cd7ec Tianyu Lan 2022-05-02  1020     kfree(mem->slots);
3349f5b007cd7ec Tianyu Lan 2022-05-02  1021  error_slots:
3349f5b007cd7ec Tianyu Lan 2022-05-02 @1022     kfree(mem);
3349f5b007cd7ec Tianyu Lan 2022-05-02  1023  error_mem:
3349f5b007cd7ec Tianyu Lan 2022-05-02 @1024     swiotlb_free_block(mem, 
page_to_phys(page), nslabs / IO_TLB_BLOCKSIZE);
3349f5b007cd7ec Tianyu Lan 2022-05-02  1025     return ret;
3349f5b007cd7ec Tianyu Lan 2022-05-02  1026  }
3349f5b007cd7ec Tianyu Lan 2022-05-02  1027  
EXPORT_SYMBOL_GPL(swiotlb_device_allocate);
3349f5b007cd7ec Tianyu Lan 2022-05-02  1028  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to