CC: kbuild-...@lists.01.org
BCC: l...@intel.com
CC: dri-de...@lists.freedesktop.org
TO: Arunpravin Paneer Selvam <arunpravin.paneersel...@amd.com>
CC: "Christian König" <christian.koe...@amd.com>

tree:   git://anongit.freedesktop.org/drm/drm-misc for-linux-next-fixes
head:   925b6e59138cefa47275c67891c65d48d3266d57
commit: 925b6e59138cefa47275c67891c65d48d3266d57 [1/1] Revert "drm/amdgpu: add 
drm buddy support to amdgpu"
:::::: branch date: 2 days ago
:::::: commit date: 2 days ago
config: arc-randconfig-m031-20220707 
(https://download.01.org/0day-ci/archive/20220710/202207101212.iuo5ovzj-...@intel.com/config)
compiler: arc-elf-gcc (GCC) 11.3.0

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <l...@intel.com>
Reported-by: Dan Carpenter <dan.carpen...@oracle.com>

smatch warnings:
drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c:405 amdgpu_vram_mgr_new() warn: 
Please consider using kvzalloc instead of kvmalloc

vim +405 drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c

925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  355  
6a7f76e70fac0b Christian König          2016-08-24  356  /**
6a7f76e70fac0b Christian König          2016-08-24  357   * amdgpu_vram_mgr_new 
- allocate new ranges
6a7f76e70fac0b Christian König          2016-08-24  358   *
6a7f76e70fac0b Christian König          2016-08-24  359   * @man: TTM memory 
type manager
6a7f76e70fac0b Christian König          2016-08-24  360   * @tbo: TTM BO we 
need this range for
6a7f76e70fac0b Christian König          2016-08-24  361   * @place: placement 
flags and restrictions
6333a495f53347 Yifan Zhang              2021-08-26  362   * @res: the resulting 
mem object
6a7f76e70fac0b Christian König          2016-08-24  363   *
6a7f76e70fac0b Christian König          2016-08-24  364   * Allocate VRAM for 
the given BO.
6a7f76e70fac0b Christian König          2016-08-24  365   */
9de59bc201496f Dave Airlie              2020-08-04  366  static int 
amdgpu_vram_mgr_new(struct ttm_resource_manager *man,
6a7f76e70fac0b Christian König          2016-08-24  367                         
       struct ttm_buffer_object *tbo,
6a7f76e70fac0b Christian König          2016-08-24  368                         
       const struct ttm_place *place,
cb1c81467af355 Christian König          2021-04-30  369                         
       struct ttm_resource **res)
6a7f76e70fac0b Christian König          2016-08-24  370  {
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  371         unsigned long 
lpfn, num_nodes, pages_per_node, pages_left, pages;
0af135b892bf06 Dave Airlie              2020-08-04  372         struct 
amdgpu_vram_mgr *mgr = to_vram_mgr(man);
373627930f0208 Dave Airlie              2020-08-07  373         struct 
amdgpu_device *adev = to_amdgpu_device(mgr);
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  374         uint64_t 
vis_usage = 0, mem_bytes, max_bytes;
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  375         struct 
ttm_range_mgr_node *node;
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  376         struct drm_mm 
*mm = &mgr->mm;
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  377         enum 
drm_mm_insert_mode mode;
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  378         unsigned i;
6a7f76e70fac0b Christian König          2016-08-24  379         int r;
6a7f76e70fac0b Christian König          2016-08-24  380  
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  381         lpfn = 
place->lpfn;
6a7f76e70fac0b Christian König          2016-08-24  382         if (!lpfn)
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  383                 lpfn = 
man->size >> PAGE_SHIFT;
6a7f76e70fac0b Christian König          2016-08-24  384  
9d1b3c78052e87 Christian König          2019-08-30  385         max_bytes = 
adev->gmc.mc_vram_size;
9d1b3c78052e87 Christian König          2019-08-30  386         if (tbo->type 
!= ttm_bo_type_kernel)
9d1b3c78052e87 Christian König          2019-08-30  387                 
max_bytes -= AMDGPU_VM_RESERVED_VRAM;
9d1b3c78052e87 Christian König          2019-08-30  388  
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  389         mem_bytes = 
tbo->base.size;
b4559a16467a13 Tom St Denis             2019-06-04  390         if 
(place->flags & TTM_PL_FLAG_CONTIGUOUS) {
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  391                 
pages_per_node = ~0ul;
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  392                 
num_nodes = 1;
6a7f76e70fac0b Christian König          2016-08-24  393         } else {
b4559a16467a13 Tom St Denis             2019-06-04  394  #ifdef 
CONFIG_TRANSPARENT_HUGEPAGE
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  395                 
pages_per_node = HPAGE_PMD_NR;
b4559a16467a13 Tom St Denis             2019-06-04  396  #else
b4559a16467a13 Tom St Denis             2019-06-04  397                 /* 
default to 2MB */
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  398                 
pages_per_node = 2UL << (20UL - PAGE_SHIFT);
b4559a16467a13 Tom St Denis             2019-06-04  399  #endif
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  400                 
pages_per_node = max_t(uint32_t, pages_per_node,
c777dc9e793342 Christian König          2021-02-05  401                         
               tbo->page_alignment);
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  402                 
num_nodes = DIV_ROUND_UP_ULL(PFN_UP(mem_bytes), pages_per_node);
6a7f76e70fac0b Christian König          2016-08-24  403         }
6a7f76e70fac0b Christian König          2016-08-24  404  
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08 @405         node = 
kvmalloc(struct_size(node, mm_nodes, num_nodes),
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  406                         
GFP_KERNEL | __GFP_ZERO);
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  407         if (!node)
7db47b838896ec Christian König          2021-07-12  408                 return 
-ENOMEM;
6a7f76e70fac0b Christian König          2016-08-24  409  
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  410         
ttm_resource_init(tbo, place, &node->base);
267501ec2b9cfa Christian König          2021-04-26  411  
7db47b838896ec Christian König          2021-07-12  412         /* bail out 
quickly if there's likely not enough VRAM for this BO */
7db47b838896ec Christian König          2021-07-12  413         if 
(ttm_resource_manager_usage(man) > max_bytes) {
7db47b838896ec Christian König          2021-07-12  414                 r = 
-ENOSPC;
7db47b838896ec Christian König          2021-07-12  415                 goto 
error_fini;
7db47b838896ec Christian König          2021-07-12  416         }
7db47b838896ec Christian König          2021-07-12  417  
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  418         mode = 
DRM_MM_INSERT_BEST;
4e64e5539d152e Chris Wilson             2017-02-02  419         if 
(place->flags & TTM_PL_FLAG_TOPDOWN)
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  420                 mode = 
DRM_MM_INSERT_HIGH;
6a7f76e70fac0b Christian König          2016-08-24  421  
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  422         pages_left = 
node->base.num_pages;
6a7f76e70fac0b Christian König          2016-08-24  423  
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  424         /* Limit 
maximum size to 2GB due to SG table limitations */
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  425         pages = 
min(pages_left, 2UL << (30 - PAGE_SHIFT));
433ca054949a6c Christian König          2018-09-07  426  
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  427         i = 0;
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  428         
spin_lock(&mgr->lock);
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  429         while 
(pages_left) {
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  430                 
uint32_t alignment = tbo->page_alignment;
6a7f76e70fac0b Christian König          2016-08-24  431  
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  432                 if 
(pages >= pages_per_node)
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  433                         
alignment = pages_per_node;
6a7f76e70fac0b Christian König          2016-08-24  434  
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  435                 r = 
drm_mm_insert_node_in_range(mm, &node->mm_nodes[i], pages,
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  436                         
                        alignment, 0, place->fpfn,
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  437                         
                        lpfn, mode);
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  438                 if 
(unlikely(r)) {
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  439                         
if (pages > pages_per_node) {
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  440                         
        if (is_power_of_2(pages))
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  441                         
                pages = pages / 2;
dd03daec0ff170 Christian König          2021-04-26  442                         
        else
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  443                         
                pages = rounddown_pow_of_two(pages);
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  444                         
        continue;
dd03daec0ff170 Christian König          2021-04-26  445                         
}
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  446                         
goto error_free;
6a7f76e70fac0b Christian König          2016-08-24  447                 }
6a7f76e70fac0b Christian König          2016-08-24  448  
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  449                 
vis_usage += amdgpu_vram_mgr_vis_size(adev, &node->mm_nodes[i]);
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  450                 
amdgpu_vram_mgr_virt_start(&node->base, &node->mm_nodes[i]);
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  451                 
pages_left -= pages;
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  452                 ++i;
c9cad937c0c586 Arunpravin Paneer Selvam 2022-04-08  453  
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  454                 if 
(pages > pages_left)
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  455                         
pages = pages_left;
c9cad937c0c586 Arunpravin Paneer Selvam 2022-04-08  456         }
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  457         
spin_unlock(&mgr->lock);
c9cad937c0c586 Arunpravin Paneer Selvam 2022-04-08  458  
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  459         if (i == 1)
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  460                 
node->base.placement |= TTM_PL_FLAG_CONTIGUOUS;
3c848bb38aca1f Christian König          2017-08-07  461  
8dbe43e99f0f62 Oak Zeng                 2021-06-28  462         if 
(adev->gmc.xgmi.connected_to_cpu)
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  463                 
node->base.bus.caching = ttm_cached;
8dbe43e99f0f62 Oak Zeng                 2021-06-28  464         else
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  465                 
node->base.bus.caching = ttm_write_combined;
8dbe43e99f0f62 Oak Zeng                 2021-06-28  466  
abf91e0d33166b Christian König          2021-04-27  467         
atomic64_add(vis_usage, &mgr->vis_usage);
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  468         *res = 
&node->base;
6a7f76e70fac0b Christian König          2016-08-24  469         return 0;
6a7f76e70fac0b Christian König          2016-08-24  470  
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  471  error_free:
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  472         while (i--)
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  473                 
drm_mm_remove_node(&node->mm_nodes[i]);
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  474         
spin_unlock(&mgr->lock);
7db47b838896ec Christian König          2021-07-12  475  error_fini:
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  476         
ttm_resource_fini(man, &node->base);
925b6e59138cef Arunpravin Paneer Selvam 2022-07-08  477         kvfree(node);
6a7f76e70fac0b Christian König          2016-08-24  478  
58e4d686d456c3 Christian König          2020-06-16  479         return r;
6a7f76e70fac0b Christian König          2016-08-24  480  }
6a7f76e70fac0b Christian König          2016-08-24  481  

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

Reply via email to