All of lore.kernel.org
 help / color / mirror / Atom feed
* [android-common:android13-5.10 1/1] drivers/gpu/drm/ttm/ttm_page_alloc.c:230: warning: bad line:                 pool_index = 0x0;
@ 2026-09-18 16:30 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-09-18 16:30 UTC (permalink / raw)
  To: cros-kernel-buildreports; +Cc: oe-kbuild-all

Hi Lingfeng,

First bad commit (maybe != root cause):

tree:   https://android.googlesource.com/kernel/common android13-5.10
head:   f107467f23d029ae469a0e8acada4336424274ca
commit: 51c9ed876ce194f1f3c6bd778b7bb46a8deb1dd9 [1/1] ANDROID: GKI: Add DRM_TTM config to GKI
config: i386-randconfig-r1307-20260917 (https://download.01.org/0day-ci/archive/20260919/202609190010.DfvE5eyR-lkp@intel.com/config)
compiler: gcc-13 (Debian 13.3.0-16) 13.3.0
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260919/202609190010.DfvE5eyR-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202609190010.DfvE5eyR-lkp@intel.com/

All warnings (new ones prefixed by >>):

   drivers/gpu/drm/ttm/ttm_page_alloc.c:79: warning: Function parameter or member 'name' not described in 'ttm_page_pool'
   drivers/gpu/drm/ttm/ttm_page_alloc.c:79: warning: Function parameter or member 'nfrees' not described in 'ttm_page_pool'
   drivers/gpu/drm/ttm/ttm_page_alloc.c:79: warning: Function parameter or member 'nrefills' not described in 'ttm_page_pool'
   drivers/gpu/drm/ttm/ttm_page_alloc.c:79: warning: Function parameter or member 'order' not described in 'ttm_page_pool'
   drivers/gpu/drm/ttm/ttm_page_alloc.c:87: warning: cannot understand function prototype: 'struct ttm_pool_opts '
   drivers/gpu/drm/ttm/ttm_page_alloc.c:124: warning: Function parameter or member 'kobj' not described in 'ttm_pool_manager'
   drivers/gpu/drm/ttm/ttm_page_alloc.c:124: warning: Function parameter or member 'mm_shrink' not described in 'ttm_pool_manager'
   drivers/gpu/drm/ttm/ttm_page_alloc.c:124: warning: Function parameter or member 'options' not described in 'ttm_pool_manager'
   drivers/gpu/drm/ttm/ttm_page_alloc.c:124: warning: Function parameter or member 'wc_pool' not described in 'ttm_pool_manager'
   drivers/gpu/drm/ttm/ttm_page_alloc.c:124: warning: Function parameter or member 'uc_pool' not described in 'ttm_pool_manager'
   drivers/gpu/drm/ttm/ttm_page_alloc.c:124: warning: Function parameter or member 'wc_pool_dma32' not described in 'ttm_pool_manager'
   drivers/gpu/drm/ttm/ttm_page_alloc.c:124: warning: Function parameter or member 'uc_pool_dma32' not described in 'ttm_pool_manager'
   drivers/gpu/drm/ttm/ttm_page_alloc.c:124: warning: Function parameter or member 'wc_pool_huge' not described in 'ttm_pool_manager'
   drivers/gpu/drm/ttm/ttm_page_alloc.c:124: warning: Function parameter or member 'uc_pool_huge' not described in 'ttm_pool_manager'
   drivers/gpu/drm/ttm/ttm_page_alloc.c:222: warning: bad line:                                           enum ttm_caching_state cstate)
   drivers/gpu/drm/ttm/ttm_page_alloc.c:223: warning: bad line: {
   drivers/gpu/drm/ttm/ttm_page_alloc.c:224: warning: bad line:         int pool_index;
   drivers/gpu/drm/ttm/ttm_page_alloc.c:225: warning: bad line: 
   drivers/gpu/drm/ttm/ttm_page_alloc.c:226: warning: bad line:         if (cstate == tt_cached)
   drivers/gpu/drm/ttm/ttm_page_alloc.c:227: warning: bad line:                 return NULL;
   drivers/gpu/drm/ttm/ttm_page_alloc.c:228: warning: bad line: 
   drivers/gpu/drm/ttm/ttm_page_alloc.c:229: warning: bad line:         if (cstate == tt_wc)
>> drivers/gpu/drm/ttm/ttm_page_alloc.c:230: warning: bad line:                 pool_index = 0x0;
   drivers/gpu/drm/ttm/ttm_page_alloc.c:231: warning: bad line:         else
   drivers/gpu/drm/ttm/ttm_page_alloc.c:232: warning: bad line:                 pool_index = 0x1;
   drivers/gpu/drm/ttm/ttm_page_alloc.c:233: warning: bad line: 
   drivers/gpu/drm/ttm/ttm_page_alloc.c:234: warning: bad line:         if (flags & TTM_PAGE_FLAG_DMA32) {
   drivers/gpu/drm/ttm/ttm_page_alloc.c:235: warning: bad line:                 if (huge)
   drivers/gpu/drm/ttm/ttm_page_alloc.c:236: warning: bad line:                         return NULL;
   drivers/gpu/drm/ttm/ttm_page_alloc.c:237: warning: bad line:                 pool_index |= 0x2;
   drivers/gpu/drm/ttm/ttm_page_alloc.c:238: warning: bad line: 
   drivers/gpu/drm/ttm/ttm_page_alloc.c:239: warning: bad line:         } else if (huge) {
   drivers/gpu/drm/ttm/ttm_page_alloc.c:240: warning: bad line:                 pool_index |= 0x4;
   drivers/gpu/drm/ttm/ttm_page_alloc.c:241: warning: bad line:         }
   drivers/gpu/drm/ttm/ttm_page_alloc.c:242: warning: bad line: 
   drivers/gpu/drm/ttm/ttm_page_alloc.c:243: warning: bad line:         return &_manager->pools[pool_index];
   drivers/gpu/drm/ttm/ttm_page_alloc.c:244: warning: bad line: }
   drivers/gpu/drm/ttm/ttm_page_alloc.c:245: warning: bad line: 
   drivers/gpu/drm/ttm/ttm_page_alloc.c:249: warning: Function parameter or member 'pages' not described in 'ttm_pages_put'
   drivers/gpu/drm/ttm/ttm_page_alloc.c:249: warning: Function parameter or member 'npages' not described in 'ttm_pages_put'
   drivers/gpu/drm/ttm/ttm_page_alloc.c:249: warning: Function parameter or member 'order' not described in 'ttm_pages_put'
>> drivers/gpu/drm/ttm/ttm_page_alloc.c:285: warning: Function parameter or member 'nr_free' not described in 'ttm_page_pool_free'
   drivers/gpu/drm/ttm/ttm_page_alloc.c:285: warning: Excess function parameter 'free_all' description in 'ttm_page_pool_free'
   drivers/gpu/drm/ttm/ttm_page_alloc.c:378: warning: Function parameter or member 'shrink' not described in 'ttm_pool_shrink_scan'
   drivers/gpu/drm/ttm/ttm_page_alloc.c:378: warning: Function parameter or member 'sc' not described in 'ttm_pool_shrink_scan'
   drivers/gpu/drm/ttm/ttm_page_alloc.c:472: warning: Function parameter or member 'pages' not described in 'ttm_handle_caching_state_failure'
   drivers/gpu/drm/ttm/ttm_page_alloc.c:472: warning: Function parameter or member 'ttm_flags' not described in 'ttm_handle_caching_state_failure'
   drivers/gpu/drm/ttm/ttm_page_alloc.c:472: warning: Function parameter or member 'cstate' not described in 'ttm_handle_caching_state_failure'
   drivers/gpu/drm/ttm/ttm_page_alloc.c:472: warning: Function parameter or member 'failed_pages' not described in 'ttm_handle_caching_state_failure'
>> drivers/gpu/drm/ttm/ttm_page_alloc.c:472: warning: Function parameter or member 'cpages' not described in 'ttm_handle_caching_state_failure'
>> drivers/gpu/drm/ttm/ttm_page_alloc.c:490: warning: Function parameter or member 'pages' not described in 'ttm_alloc_new_pages'
   drivers/gpu/drm/ttm/ttm_page_alloc.c:490: warning: Function parameter or member 'gfp_flags' not described in 'ttm_alloc_new_pages'
   drivers/gpu/drm/ttm/ttm_page_alloc.c:490: warning: Function parameter or member 'ttm_flags' not described in 'ttm_alloc_new_pages'
>> drivers/gpu/drm/ttm/ttm_page_alloc.c:490: warning: Function parameter or member 'cstate' not described in 'ttm_alloc_new_pages'
   drivers/gpu/drm/ttm/ttm_page_alloc.c:490: warning: Function parameter or member 'count' not described in 'ttm_alloc_new_pages'
   drivers/gpu/drm/ttm/ttm_page_alloc.c:490: warning: Function parameter or member 'order' not described in 'ttm_alloc_new_pages'
   drivers/gpu/drm/ttm/ttm_page_alloc.c:574: warning: Function parameter or member 'pool' not described in 'ttm_page_pool_fill_locked'
   drivers/gpu/drm/ttm/ttm_page_alloc.c:574: warning: Function parameter or member 'ttm_flags' not described in 'ttm_page_pool_fill_locked'
>> drivers/gpu/drm/ttm/ttm_page_alloc.c:574: warning: Function parameter or member 'cstate' not described in 'ttm_page_pool_fill_locked'
>> drivers/gpu/drm/ttm/ttm_page_alloc.c:574: warning: Function parameter or member 'count' not described in 'ttm_page_pool_fill_locked'
>> drivers/gpu/drm/ttm/ttm_page_alloc.c:574: warning: Function parameter or member 'irq_flags' not described in 'ttm_page_pool_fill_locked'
   drivers/gpu/drm/ttm/ttm_page_alloc.c:634: warning: Function parameter or member 'pool' not described in 'ttm_page_pool_get_pages'
   drivers/gpu/drm/ttm/ttm_page_alloc.c:634: warning: Function parameter or member 'pages' not described in 'ttm_page_pool_get_pages'
>> drivers/gpu/drm/ttm/ttm_page_alloc.c:634: warning: Function parameter or member 'ttm_flags' not described in 'ttm_page_pool_get_pages'
   drivers/gpu/drm/ttm/ttm_page_alloc.c:634: warning: Function parameter or member 'cstate' not described in 'ttm_page_pool_get_pages'
   drivers/gpu/drm/ttm/ttm_page_alloc.c:634: warning: Function parameter or member 'count' not described in 'ttm_page_pool_get_pages'
>> drivers/gpu/drm/ttm/ttm_page_alloc.c:634: warning: Function parameter or member 'order' not described in 'ttm_page_pool_get_pages'
--
   drivers/gpu/drm/ttm/ttm_bo.c:51: warning: Function parameter or member 'ttm_global_mutex' not described in 'DEFINE_MUTEX'
   drivers/gpu/drm/ttm/ttm_bo.c:374: warning: Function parameter or member 'bo' not described in 'ttm_bo_cleanup_memtype_use'
   drivers/gpu/drm/ttm/ttm_bo.c:448: warning: Function parameter or member 'bo' not described in 'ttm_bo_cleanup_refs'
>> drivers/gpu/drm/ttm/ttm_bo.c:448: warning: Function parameter or member 'interruptible' not described in 'ttm_bo_cleanup_refs'
   drivers/gpu/drm/ttm/ttm_bo.c:448: warning: Function parameter or member 'no_wait_gpu' not described in 'ttm_bo_cleanup_refs'
   drivers/gpu/drm/ttm/ttm_bo.c:448: warning: Function parameter or member 'unlock_resv' not described in 'ttm_bo_cleanup_refs'
   drivers/gpu/drm/ttm/ttm_bo.c:513: warning: Function parameter or member 'bdev' not described in 'ttm_bo_delayed_delete'
>> drivers/gpu/drm/ttm/ttm_bo.c:513: warning: Function parameter or member 'remove_all' not described in 'ttm_bo_delayed_delete'
   drivers/gpu/drm/ttm/ttm_bo.c:729: warning: Function parameter or member 'bo' not described in 'ttm_bo_evict_swapout_allowable'
   drivers/gpu/drm/ttm/ttm_bo.c:729: warning: Function parameter or member 'ctx' not described in 'ttm_bo_evict_swapout_allowable'
>> drivers/gpu/drm/ttm/ttm_bo.c:729: warning: Function parameter or member 'locked' not described in 'ttm_bo_evict_swapout_allowable'
   drivers/gpu/drm/ttm/ttm_bo.c:729: warning: Function parameter or member 'busy' not described in 'ttm_bo_evict_swapout_allowable'
>> drivers/gpu/drm/ttm/ttm_bo.c:873: warning: Function parameter or member 'bo' not described in 'ttm_bo_add_move_fence'
   drivers/gpu/drm/ttm/ttm_bo.c:873: warning: Function parameter or member 'man' not described in 'ttm_bo_add_move_fence'
   drivers/gpu/drm/ttm/ttm_bo.c:873: warning: Function parameter or member 'mem' not described in 'ttm_bo_add_move_fence'
   drivers/gpu/drm/ttm/ttm_bo.c:873: warning: Function parameter or member 'no_wait_gpu' not described in 'ttm_bo_add_move_fence'
   drivers/gpu/drm/ttm/ttm_bo.c:908: warning: Function parameter or member 'bo' not described in 'ttm_bo_mem_force_space'
   drivers/gpu/drm/ttm/ttm_bo.c:908: warning: Function parameter or member 'place' not described in 'ttm_bo_mem_force_space'
   drivers/gpu/drm/ttm/ttm_bo.c:908: warning: Function parameter or member 'mem' not described in 'ttm_bo_mem_force_space'
   drivers/gpu/drm/ttm/ttm_bo.c:908: warning: Function parameter or member 'ctx' not described in 'ttm_bo_mem_force_space'
   drivers/gpu/drm/ttm/ttm_bo.c:1037: warning: Function parameter or member 'bo' not described in 'ttm_bo_mem_space'
   drivers/gpu/drm/ttm/ttm_bo.c:1037: warning: Function parameter or member 'placement' not described in 'ttm_bo_mem_space'
   drivers/gpu/drm/ttm/ttm_bo.c:1037: warning: Function parameter or member 'mem' not described in 'ttm_bo_mem_space'
   drivers/gpu/drm/ttm/ttm_bo.c:1037: warning: Function parameter or member 'ctx' not described in 'ttm_bo_mem_space'
   drivers/gpu/drm/ttm/ttm_bo.c:1787: warning: Function parameter or member 'glob' not described in 'ttm_bo_swapout'
   drivers/gpu/drm/ttm/ttm_bo.c:1787: warning: Function parameter or member 'ctx' not described in 'ttm_bo_swapout'

Kconfig warnings: (for reference only)
   WARNING: unmet direct dependencies detected for SND_VMASTER
   Depends on [n]: SOUND [=m] && !UML && SND [=n]
   Selected by [y]:
   - GKI_HIDDEN_SND_CONFIGS [=y]
   WARNING: unmet direct dependencies detected for SND_PCM_IEC958
   Depends on [n]: SOUND [=m] && !UML && SND [=n]
   Selected by [y]:
   - GKI_HIDDEN_SND_SOC_CONFIGS [=y]
   WARNING: unmet direct dependencies detected for SND_JACK
   Depends on [n]: SOUND [=m] && !UML && SND [=n]
   Selected by [y]:
   - GKI_HIDDEN_SND_CONFIGS [=y]
   WARNING: unmet direct dependencies detected for SND_JACK_INPUT_DEV
   Depends on [n]: SOUND [=m] && !UML && SND [=n] && SND_JACK [=y]
   Selected by [y]:
   - GKI_HIDDEN_SND_CONFIGS [=y]
   WARNING: unmet direct dependencies detected for SND_PCM_ELD
   Depends on [n]: SOUND [=m] && !UML && SND [=n]
   Selected by [y]:
   - GKI_HIDDEN_SND_CONFIGS [=y]
   WARNING: unmet direct dependencies detected for SND_INTEL_NHLT
   Depends on [n]: SOUND [=m] && !UML && SND [=n]
   Selected by [y]:
   - GKI_HIDDEN_SND_CONFIGS [=y] && ACPI [=y]


vim +230 drivers/gpu/drm/ttm/ttm_page_alloc.c

1403b1a38e8b19 Pauli Nieminen        2010-04-01  218  
1403b1a38e8b19 Pauli Nieminen        2010-04-01  219  /**
1403b1a38e8b19 Pauli Nieminen        2010-04-01  220   * Select the right pool or requested caching state and ttm flags. */
6ed4e2e673d348 Christian König       2017-10-05  221  static struct ttm_page_pool *ttm_get_pool(int flags, bool huge,
1403b1a38e8b19 Pauli Nieminen        2010-04-01  222  					  enum ttm_caching_state cstate)
1403b1a38e8b19 Pauli Nieminen        2010-04-01  223  {
1403b1a38e8b19 Pauli Nieminen        2010-04-01  224  	int pool_index;
1403b1a38e8b19 Pauli Nieminen        2010-04-01  225  
1403b1a38e8b19 Pauli Nieminen        2010-04-01  226  	if (cstate == tt_cached)
1403b1a38e8b19 Pauli Nieminen        2010-04-01  227  		return NULL;
1403b1a38e8b19 Pauli Nieminen        2010-04-01  228  
1403b1a38e8b19 Pauli Nieminen        2010-04-01  229  	if (cstate == tt_wc)
1403b1a38e8b19 Pauli Nieminen        2010-04-01 @230  		pool_index = 0x0;
1403b1a38e8b19 Pauli Nieminen        2010-04-01  231  	else
1403b1a38e8b19 Pauli Nieminen        2010-04-01  232  		pool_index = 0x1;
1403b1a38e8b19 Pauli Nieminen        2010-04-01  233  
6ed4e2e673d348 Christian König       2017-10-05  234  	if (flags & TTM_PAGE_FLAG_DMA32) {
6ed4e2e673d348 Christian König       2017-10-05  235  		if (huge)
6ed4e2e673d348 Christian König       2017-10-05  236  			return NULL;
1403b1a38e8b19 Pauli Nieminen        2010-04-01  237  		pool_index |= 0x2;
1403b1a38e8b19 Pauli Nieminen        2010-04-01  238  
6ed4e2e673d348 Christian König       2017-10-05  239  	} else if (huge) {
6ed4e2e673d348 Christian König       2017-10-05  240  		pool_index |= 0x4;
6ed4e2e673d348 Christian König       2017-10-05  241  	}
6ed4e2e673d348 Christian König       2017-10-05  242  
5870a4d97da136 Francisco Jerez       2010-07-04  243  	return &_manager->pools[pool_index];
1403b1a38e8b19 Pauli Nieminen        2010-04-01  244  }
1403b1a38e8b19 Pauli Nieminen        2010-04-01  245  
1403b1a38e8b19 Pauli Nieminen        2010-04-01  246  /* set memory back to wb and free the pages. */
444f8ef3f8f175 Roger He              2017-11-21  247  static void ttm_pages_put(struct page *pages[], unsigned npages,
444f8ef3f8f175 Roger He              2017-11-21  248  		unsigned int order)
1403b1a38e8b19 Pauli Nieminen        2010-04-01  249  {
444f8ef3f8f175 Roger He              2017-11-21  250  	unsigned int i, pages_nr = (1 << order);
444f8ef3f8f175 Roger He              2017-11-21  251  
444f8ef3f8f175 Roger He              2017-11-21  252  	if (order == 0) {
d55f9b87428f47 Huang Rui             2018-07-26  253  		if (ttm_set_pages_array_wb(pages, npages))
25d0479a592556 Joe Perches           2012-03-16  254  			pr_err("Failed to set %d pages to wb!\n", npages);
444f8ef3f8f175 Roger He              2017-11-21  255  	}
444f8ef3f8f175 Roger He              2017-11-21  256  
444f8ef3f8f175 Roger He              2017-11-21  257  	for (i = 0; i < npages; ++i) {
444f8ef3f8f175 Roger He              2017-11-21  258  		if (order > 0) {
d55f9b87428f47 Huang Rui             2018-07-26  259  			if (ttm_set_pages_wb(pages[i], pages_nr))
444f8ef3f8f175 Roger He              2017-11-21  260  				pr_err("Failed to set %d pages to wb!\n", pages_nr);
444f8ef3f8f175 Roger He              2017-11-21  261  		}
444f8ef3f8f175 Roger He              2017-11-21  262  		__free_pages(pages[i], order);
444f8ef3f8f175 Roger He              2017-11-21  263  	}
1403b1a38e8b19 Pauli Nieminen        2010-04-01  264  }
1403b1a38e8b19 Pauli Nieminen        2010-04-01  265  
1403b1a38e8b19 Pauli Nieminen        2010-04-01  266  static void ttm_pool_update_free_locked(struct ttm_page_pool *pool,
1403b1a38e8b19 Pauli Nieminen        2010-04-01  267  		unsigned freed_pages)
1403b1a38e8b19 Pauli Nieminen        2010-04-01  268  {
1403b1a38e8b19 Pauli Nieminen        2010-04-01  269  	pool->npages -= freed_pages;
0745866165598b Pauli Nieminen        2010-04-01  270  	pool->nfrees += freed_pages;
1403b1a38e8b19 Pauli Nieminen        2010-04-01  271  }
1403b1a38e8b19 Pauli Nieminen        2010-04-01  272  
1403b1a38e8b19 Pauli Nieminen        2010-04-01  273  /**
1403b1a38e8b19 Pauli Nieminen        2010-04-01  274   * Free pages from pool.
1403b1a38e8b19 Pauli Nieminen        2010-04-01  275   *
1403b1a38e8b19 Pauli Nieminen        2010-04-01  276   * To prevent hogging the ttm_swap process we only free NUM_PAGES_TO_ALLOC
1403b1a38e8b19 Pauli Nieminen        2010-04-01  277   * number of pages in one go.
1403b1a38e8b19 Pauli Nieminen        2010-04-01  278   *
1403b1a38e8b19 Pauli Nieminen        2010-04-01  279   * @pool: to free the pages from
1403b1a38e8b19 Pauli Nieminen        2010-04-01  280   * @free_all: If set to true will free all pages in pool
881fdaa5e4cb0d Tetsuo Handa          2014-11-13  281   * @use_static: Safe to use static buffer
1403b1a38e8b19 Pauli Nieminen        2010-04-01  282   **/
a91576d7916f6c Tetsuo Handa          2014-08-03  283  static int ttm_page_pool_free(struct ttm_page_pool *pool, unsigned nr_free,
881fdaa5e4cb0d Tetsuo Handa          2014-11-13  284  			      bool use_static)
1403b1a38e8b19 Pauli Nieminen        2010-04-01 @285  {
881fdaa5e4cb0d Tetsuo Handa          2014-11-13  286  	static struct page *static_buf[NUM_PAGES_TO_ALLOC];
1403b1a38e8b19 Pauli Nieminen        2010-04-01  287  	unsigned long irq_flags;
1403b1a38e8b19 Pauli Nieminen        2010-04-01  288  	struct page *p;
1403b1a38e8b19 Pauli Nieminen        2010-04-01  289  	struct page **pages_to_free;
1403b1a38e8b19 Pauli Nieminen        2010-04-01  290  	unsigned freed_pages = 0,
1403b1a38e8b19 Pauli Nieminen        2010-04-01  291  		 npages_to_free = nr_free;
1403b1a38e8b19 Pauli Nieminen        2010-04-01  292  
1403b1a38e8b19 Pauli Nieminen        2010-04-01  293  	if (NUM_PAGES_TO_ALLOC < nr_free)
1403b1a38e8b19 Pauli Nieminen        2010-04-01  294  		npages_to_free = NUM_PAGES_TO_ALLOC;
1403b1a38e8b19 Pauli Nieminen        2010-04-01  295  
881fdaa5e4cb0d Tetsuo Handa          2014-11-13  296  	if (use_static)
881fdaa5e4cb0d Tetsuo Handa          2014-11-13  297  		pages_to_free = static_buf;
881fdaa5e4cb0d Tetsuo Handa          2014-11-13  298  	else
6da2ec56059c3c Kees Cook             2018-06-12  299  		pages_to_free = kmalloc_array(npages_to_free,
6da2ec56059c3c Kees Cook             2018-06-12  300  					      sizeof(struct page *),
881fdaa5e4cb0d Tetsuo Handa          2014-11-13  301  					      GFP_KERNEL);
1403b1a38e8b19 Pauli Nieminen        2010-04-01  302  	if (!pages_to_free) {
767601d100a53e Michel Dänzer         2017-11-03  303  		pr_debug("Failed to allocate memory for pool free operation\n");
1403b1a38e8b19 Pauli Nieminen        2010-04-01  304  		return 0;
1403b1a38e8b19 Pauli Nieminen        2010-04-01  305  	}
1403b1a38e8b19 Pauli Nieminen        2010-04-01  306  
1403b1a38e8b19 Pauli Nieminen        2010-04-01  307  restart:
1403b1a38e8b19 Pauli Nieminen        2010-04-01  308  	spin_lock_irqsave(&pool->lock, irq_flags);
1403b1a38e8b19 Pauli Nieminen        2010-04-01  309  
1403b1a38e8b19 Pauli Nieminen        2010-04-01  310  	list_for_each_entry_reverse(p, &pool->list, lru) {
1403b1a38e8b19 Pauli Nieminen        2010-04-01  311  		if (freed_pages >= npages_to_free)
1403b1a38e8b19 Pauli Nieminen        2010-04-01  312  			break;
1403b1a38e8b19 Pauli Nieminen        2010-04-01  313  
1403b1a38e8b19 Pauli Nieminen        2010-04-01  314  		pages_to_free[freed_pages++] = p;
1403b1a38e8b19 Pauli Nieminen        2010-04-01  315  		/* We can only remove NUM_PAGES_TO_ALLOC at a time. */
1403b1a38e8b19 Pauli Nieminen        2010-04-01  316  		if (freed_pages >= NUM_PAGES_TO_ALLOC) {
1403b1a38e8b19 Pauli Nieminen        2010-04-01  317  			/* remove range of pages from the pool */
1403b1a38e8b19 Pauli Nieminen        2010-04-01  318  			__list_del(p->lru.prev, &pool->list);
1403b1a38e8b19 Pauli Nieminen        2010-04-01  319  
1403b1a38e8b19 Pauli Nieminen        2010-04-01  320  			ttm_pool_update_free_locked(pool, freed_pages);
1403b1a38e8b19 Pauli Nieminen        2010-04-01  321  			/**
1403b1a38e8b19 Pauli Nieminen        2010-04-01  322  			 * Because changing page caching is costly
1403b1a38e8b19 Pauli Nieminen        2010-04-01  323  			 * we unlock the pool to prevent stalling.
1403b1a38e8b19 Pauli Nieminen        2010-04-01  324  			 */
1403b1a38e8b19 Pauli Nieminen        2010-04-01  325  			spin_unlock_irqrestore(&pool->lock, irq_flags);
1403b1a38e8b19 Pauli Nieminen        2010-04-01  326  
444f8ef3f8f175 Roger He              2017-11-21  327  			ttm_pages_put(pages_to_free, freed_pages, pool->order);
1403b1a38e8b19 Pauli Nieminen        2010-04-01  328  			if (likely(nr_free != FREE_ALL_PAGES))
1403b1a38e8b19 Pauli Nieminen        2010-04-01  329  				nr_free -= freed_pages;
1403b1a38e8b19 Pauli Nieminen        2010-04-01  330  
1403b1a38e8b19 Pauli Nieminen        2010-04-01  331  			if (NUM_PAGES_TO_ALLOC >= nr_free)
1403b1a38e8b19 Pauli Nieminen        2010-04-01  332  				npages_to_free = nr_free;
1403b1a38e8b19 Pauli Nieminen        2010-04-01  333  			else
1403b1a38e8b19 Pauli Nieminen        2010-04-01  334  				npages_to_free = NUM_PAGES_TO_ALLOC;
1403b1a38e8b19 Pauli Nieminen        2010-04-01  335  
1403b1a38e8b19 Pauli Nieminen        2010-04-01  336  			freed_pages = 0;
1403b1a38e8b19 Pauli Nieminen        2010-04-01  337  
1403b1a38e8b19 Pauli Nieminen        2010-04-01  338  			/* free all so restart the processing */
1403b1a38e8b19 Pauli Nieminen        2010-04-01  339  			if (nr_free)
1403b1a38e8b19 Pauli Nieminen        2010-04-01  340  				goto restart;
1403b1a38e8b19 Pauli Nieminen        2010-04-01  341  
0d74f86f37306d Konrad Rzeszutek Wilk 2011-06-08  342  			/* Not allowed to fall through or break because
1403b1a38e8b19 Pauli Nieminen        2010-04-01  343  			 * following context is inside spinlock while we are
1403b1a38e8b19 Pauli Nieminen        2010-04-01  344  			 * outside here.
1403b1a38e8b19 Pauli Nieminen        2010-04-01  345  			 */
1403b1a38e8b19 Pauli Nieminen        2010-04-01  346  			goto out;
1403b1a38e8b19 Pauli Nieminen        2010-04-01  347  
1403b1a38e8b19 Pauli Nieminen        2010-04-01  348  		}
1403b1a38e8b19 Pauli Nieminen        2010-04-01  349  	}
1403b1a38e8b19 Pauli Nieminen        2010-04-01  350  
1403b1a38e8b19 Pauli Nieminen        2010-04-01  351  	/* remove range of pages from the pool */
1403b1a38e8b19 Pauli Nieminen        2010-04-01  352  	if (freed_pages) {
1403b1a38e8b19 Pauli Nieminen        2010-04-01  353  		__list_del(&p->lru, &pool->list);
1403b1a38e8b19 Pauli Nieminen        2010-04-01  354  
1403b1a38e8b19 Pauli Nieminen        2010-04-01  355  		ttm_pool_update_free_locked(pool, freed_pages);
1403b1a38e8b19 Pauli Nieminen        2010-04-01  356  		nr_free -= freed_pages;
1403b1a38e8b19 Pauli Nieminen        2010-04-01  357  	}
1403b1a38e8b19 Pauli Nieminen        2010-04-01  358  
1403b1a38e8b19 Pauli Nieminen        2010-04-01  359  	spin_unlock_irqrestore(&pool->lock, irq_flags);
1403b1a38e8b19 Pauli Nieminen        2010-04-01  360  
1403b1a38e8b19 Pauli Nieminen        2010-04-01  361  	if (freed_pages)
444f8ef3f8f175 Roger He              2017-11-21  362  		ttm_pages_put(pages_to_free, freed_pages, pool->order);
1403b1a38e8b19 Pauli Nieminen        2010-04-01  363  out:
881fdaa5e4cb0d Tetsuo Handa          2014-11-13  364  	if (pages_to_free != static_buf)
1403b1a38e8b19 Pauli Nieminen        2010-04-01  365  		kfree(pages_to_free);
1403b1a38e8b19 Pauli Nieminen        2010-04-01  366  	return nr_free;
1403b1a38e8b19 Pauli Nieminen        2010-04-01  367  }
1403b1a38e8b19 Pauli Nieminen        2010-04-01  368  

:::::: The code at line 230 was first introduced by commit
:::::: 1403b1a38e8b19a4cc17e2c158e278628943a436 drm/ttm: add pool wc/uc page allocator V3

:::::: TO: Pauli Nieminen <suokkos@gmail.com>
:::::: CC: Dave Airlie <airlied@redhat.com>

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-09-18 16:31 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-18 16:30 [android-common:android13-5.10 1/1] drivers/gpu/drm/ttm/ttm_page_alloc.c:230: warning: bad line: pool_index = 0x0; kernel test robot

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.