* [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.