CC: [email protected] CC: [email protected] BCC: [email protected] CC: [email protected] TO: Lucas De Marchi <[email protected]> CC: Matthew Brost <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 90ea17a9e27b5778ec517efb1ce0b81d36905654 commit: d9a5696e7d52edf68776599f2a38b9aee1382be9 drm/i915/guc: Convert golden context prep to iosys_map date: 7 weeks ago :::::: branch date: 4 hours ago :::::: commit date: 7 weeks ago config: x86_64-randconfig-c007-20220411 (https://download.01.org/0day-ci/archive/20220417/[email protected]/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project c6e83f560f06cdfe8aa47b248d8bdc58f947274b) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d9a5696e7d52edf68776599f2a38b9aee1382be9 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout d9a5696e7d52edf68776599f2a38b9aee1382be9 # save the config file to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 clang-analyzer If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> clang-analyzer warnings: (new ones prefixed by >>) include/linux/list.h:638:2: note: expanded from macro 'list_for_each_entry' for (pos = list_first_entry(head, typeof(*pos), member); \ ^ drivers/misc/mei/interrupt.c:432:6: note: Assuming the condition is false if (&cl->link == &dev->file_list) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/misc/mei/interrupt.c:432:2: note: Taking false branch if (&cl->link == &dev->file_list) { ^ drivers/misc/mei/interrupt.c:450:41: note: Passing null pointer value via 3rd parameter 'meta' ret = mei_cl_irq_read_msg(cl, mei_hdr, meta_hdr, cmpl_list); ^~~~~~~~ drivers/misc/mei/interrupt.c:450:8: note: Calling 'mei_cl_irq_read_msg' ret = mei_cl_irq_read_msg(cl, mei_hdr, meta_hdr, cmpl_list); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/misc/mei/interrupt.c:107:6: note: Assuming field 'extended' is not equal to 0 if (mei_hdr->extended) { ^~~~~~~~~~~~~~~~~ drivers/misc/mei/interrupt.c:107:2: note: Taking true branch if (mei_hdr->extended) { ^ drivers/misc/mei/interrupt.c:108:44: note: Access to field 'size' results in a dereference of a null pointer (loaded from variable 'meta') ext_len = sizeof(*meta) + mei_slots2data(meta->size); ^~~~ 3 warnings generated. Suppressed 3 warnings (3 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. drivers/gpu/drm/i915/gt/uc/intel_uc.c:80:3: warning: Dereference of null pointer [clang-analyzer-core.NullDereference] i915->params.enable_guc, ^ drivers/gpu/drm/i915/gt/uc/intel_uc.c:122:2: note: Value assigned to field 'i915' intel_huc_init_early(&uc->huc); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/gt/uc/intel_uc.c:124:2: note: Calling '__confirm_options' __confirm_options(uc); ^~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/gt/uc/intel_uc.c:76:2: note: 'i915' initialized here struct drm_i915_private *i915 = uc_to_gt(uc)->i915; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/gt/uc/intel_uc.c:78:10: note: Assuming pointer value is null drm_dbg(&i915->drm, ^ include/drm/drm_print.h:461:15: note: expanded from macro 'drm_dbg' drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_DRIVER, fmt, ##__VA_ARGS__) ^~~ drivers/gpu/drm/i915/gt/uc/intel_uc.c:78:2: note: '?' condition is false drm_dbg(&i915->drm, ^ include/drm/drm_print.h:461:14: note: expanded from macro 'drm_dbg' drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_DRIVER, fmt, ##__VA_ARGS__) ^ drivers/gpu/drm/i915/gt/uc/intel_uc.c:80:3: note: Dereference of null pointer i915->params.enable_guc, ^ include/drm/drm_print.h:461:63: note: expanded from macro 'drm_dbg' drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_DRIVER, fmt, ##__VA_ARGS__) ^~~~~~~~~~~ Suppressed 3 warnings (3 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 1 warning generated. Suppressed 1 warnings (1 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c:267:27: warning: Value stored to 'i915' during its initialization is never read [clang-analyzer-deadcode.DeadStores] struct drm_i915_private *i915 = __uc_fw_to_gt(uc_fw)->i915; ^~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c:267:27: note: Value stored to 'i915' during its initialization is never read struct drm_i915_private *i915 = __uc_fw_to_gt(uc_fw)->i915; ^~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~ Suppressed 3 warnings (3 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 3 warnings generated. Suppressed 3 warnings (3 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:203:2: warning: Undefined or garbage value returned to caller [clang-analyzer-core.uninitialized.UndefReturn] return ret; ^ ~~~ drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:187:2: note: 'ret' declared without an initial value int ret; ^~~~~~~ drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:189:2: note: Taking false branch if (iosys_map_is_null(&guc->ads_map)) ^ drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:197:6: note: Assuming the condition is false if (!intel_guc_is_ready(guc)) ^~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:197:2: note: Taking false branch if (!intel_guc_is_ready(guc)) ^ drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:200:2: note: Loop condition is false. Execution continues on line 203 with_intel_runtime_pm(>->i915->runtime_pm, wakeref) ^ drivers/gpu/drm/i915/intel_runtime_pm.h:184:2: note: expanded from macro 'with_intel_runtime_pm' for ((wf) = intel_runtime_pm_get(rpm); (wf); \ ^ drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:203:2: note: Undefined or garbage value returned to caller return ret; ^ ~~~ >> drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:497:3: warning: Assigned value is >> garbage or undefined [clang-analyzer-core.uninitialized.Assign] ads_blob_write(guc, ads.golden_context_lrca[guc_class], ^ drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:67:2: note: expanded from macro 'ads_blob_write' iosys_map_wr_field(&(guc_)->ads_map, 0, struct __guc_ads_blob, \ ^ include/linux/iosys-map.h:456:8: note: expanded from macro 'iosys_map_wr_field' typeof(s->field__), val__); \ ^ drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:743:6: note: Assuming field 'ads_vma' is non-null if (!guc->ads_vma) ^~~~~~~~~~~~~ drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:743:2: note: Taking false branch if (!guc->ads_vma) ^ drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:746:2: note: Calling '__guc_ads_init' __guc_ads_init(guc); ^~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:619:3: note: '?' condition is false hweight8(gt->info.sseu.slice_mask); ^ include/asm-generic/bitops/const_hweight.h:26:23: note: expanded from macro 'hweight8' #define hweight8(w) (__builtin_constant_p(w) ? __const_hweight8(w) : __arch_hweight8(w)) ^ drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:623:6: note: Assuming field 'ver' is < 12 if (GRAPHICS_VER(i915) >= 12 && !IS_DGFX(i915)) { ^ drivers/gpu/drm/i915/i915_drv.h:943:29: note: expanded from macro 'GRAPHICS_VER' #define GRAPHICS_VER(i915) (INTEL_INFO(i915)->graphics.ver) ^ drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:623:31: note: Left side of '&&' is false if (GRAPHICS_VER(i915) >= 12 && !IS_DGFX(i915)) { ^ drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:632:2: note: Calling 'guc_prep_golden_context' guc_prep_golden_context(guc); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:439:6: note: 'addr_ggtt' declared without an initial value u32 addr_ggtt, offset; ^~~~~~~~~ drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:457:2: note: Taking false branch if (!iosys_map_is_null(&guc->ads_map)) { ^ drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:468:2: note: Loop condition is true. Entering loop body for (engine_class = 0; engine_class <= MAX_ENGINE_CLASS; ++engine_class) { ^ drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:469:7: note: 'engine_class' is not equal to OTHER_CLASS if (engine_class == OTHER_CLASS) ^~~~~~~~~~~~ drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:469:3: note: Taking false branch if (engine_class == OTHER_CLASS) ^ drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:474:7: note: Assuming the condition is false if (!info_map_read(&info_map, engine_enabled_masks[guc_class])) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:474:3: note: Taking false branch if (!info_map_read(&info_map, engine_enabled_masks[guc_class])) ^ drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:481:3: note: Taking false branch if (iosys_map_is_null(&guc->ads_map)) ^ drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:497:3: note: Assigned value is garbage or undefined ads_blob_write(guc, ads.golden_context_lrca[guc_class], ^ drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:67:2: note: expanded from macro 'ads_blob_write' iosys_map_wr_field(&(guc_)->ads_map, 0, struct __guc_ads_blob, \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/iosys-map.h:456:8: note: expanded from macro 'iosys_map_wr_field' typeof(s->field__), val__); \ ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/iosys-map.h:367:2: note: expanded from macro 'iosys_map_wr' type__ val = (val__); \ ^ ~~~~~~~ Suppressed 3 warnings (3 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 1 warning generated. Suppressed 1 warnings (1 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 1 warning generated. Suppressed 1 warnings (1 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 3 warnings generated. drivers/gpu/drm/vmwgfx/vmwgfx_drv.h:1103:9: warning: Called function pointer is null (null dereference) [clang-analyzer-core.CallAndMessage] return viter->dma_address(viter); ^ drivers/gpu/drm/vmwgfx/vmwgfx_mob.c:128:9: note: Assuming field 'page_table' is equal to null BUG_ON(otable->page_table != NULL); ^ include/asm-generic/bug.h:65:45: note: expanded from macro 'BUG_ON' #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0) ~~~~~~~~~^~~~~~~~~~ include/linux/compiler.h:78:42: note: expanded from macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) vim +497 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 433 d135865cb8e396 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Matthew Brost 2021-09-09 434 #define LR_HW_CONTEXT_SIZE (80 * sizeof(u32)) d135865cb8e396 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Matthew Brost 2021-09-09 435 #define LRC_SKIP_SIZE (LRC_PPHWSP_SZ * PAGE_SIZE + LR_HW_CONTEXT_SIZE) d9a5696e7d52ed drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Lucas De Marchi 2022-02-16 436 static int guc_prep_golden_context(struct intel_guc *guc) 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 437 { 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 438 struct intel_gt *gt = guc_to_gt(guc); 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 439 u32 addr_ggtt, offset; 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 440 u32 total_size = 0, alloc_size, real_size; 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 441 u8 engine_class, guc_class; d9a5696e7d52ed drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Lucas De Marchi 2022-02-16 442 struct guc_gt_system_info local_info; d9a5696e7d52ed drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Lucas De Marchi 2022-02-16 443 struct iosys_map info_map; 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 444 c24f0c1de481c1 drivers/gpu/drm/i915/intel_guc_ads.c Sujaritha Sundaresan 2018-01-02 445 /* 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 446 * Reserve the memory for the golden contexts and point GuC at it but 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 447 * leave it empty for now. The context data will be filled in later 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 448 * once there is something available to put there. 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 449 * 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 450 * Note that the HWSP and ring context are not included. 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 451 * 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 452 * Note also that the storage must be pinned in the GGTT, so that the 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 453 * address won't change after GuC has been told where to find it. The 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 454 * GuC will also validate that the LRC base + size fall within the 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 455 * allowed GGTT range. c24f0c1de481c1 drivers/gpu/drm/i915/intel_guc_ads.c Sujaritha Sundaresan 2018-01-02 456 */ d9a5696e7d52ed drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Lucas De Marchi 2022-02-16 457 if (!iosys_map_is_null(&guc->ads_map)) { 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 458 offset = guc_ads_golden_ctxt_offset(guc); 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 459 addr_ggtt = intel_guc_ggtt_offset(guc, guc->ads_vma) + offset; d9a5696e7d52ed drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Lucas De Marchi 2022-02-16 460 info_map = IOSYS_MAP_INIT_OFFSET(&guc->ads_map, d9a5696e7d52ed drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Lucas De Marchi 2022-02-16 461 offsetof(struct __guc_ads_blob, system_info)); 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 462 } else { 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 463 memset(&local_info, 0, sizeof(local_info)); d9a5696e7d52ed drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Lucas De Marchi 2022-02-16 464 iosys_map_set_vaddr(&info_map, &local_info); d9a5696e7d52ed drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Lucas De Marchi 2022-02-16 465 fill_engine_enable_masks(gt, &info_map); 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 466 } c24f0c1de481c1 drivers/gpu/drm/i915/intel_guc_ads.c Sujaritha Sundaresan 2018-01-02 467 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 468 for (engine_class = 0; engine_class <= MAX_ENGINE_CLASS; ++engine_class) { 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 469 if (engine_class == OTHER_CLASS) 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 470 continue; 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 471 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 472 guc_class = engine_class_to_guc_class(engine_class); 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 473 d9a5696e7d52ed drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Lucas De Marchi 2022-02-16 474 if (!info_map_read(&info_map, engine_enabled_masks[guc_class])) 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 475 continue; 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 476 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 477 real_size = intel_engine_context_size(gt, engine_class); 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 478 alloc_size = PAGE_ALIGN(real_size); 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 479 total_size += alloc_size; 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 480 d9a5696e7d52ed drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Lucas De Marchi 2022-02-16 481 if (iosys_map_is_null(&guc->ads_map)) 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 482 continue; 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 483 d135865cb8e396 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Matthew Brost 2021-09-09 484 /* d135865cb8e396 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Matthew Brost 2021-09-09 485 * This interface is slightly confusing. We need to pass the d135865cb8e396 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Matthew Brost 2021-09-09 486 * base address of the full golden context and the size of just d135865cb8e396 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Matthew Brost 2021-09-09 487 * the engine state, which is the section of the context image d135865cb8e396 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Matthew Brost 2021-09-09 488 * that starts after the execlists context. This is required to d135865cb8e396 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Matthew Brost 2021-09-09 489 * allow the GuC to restore just the engine state when a d135865cb8e396 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Matthew Brost 2021-09-09 490 * watchdog reset occurs. d135865cb8e396 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Matthew Brost 2021-09-09 491 * We calculate the engine state size by removing the size of d135865cb8e396 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Matthew Brost 2021-09-09 492 * what comes before it in the context image (which is identical d135865cb8e396 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Matthew Brost 2021-09-09 493 * on all engines). d135865cb8e396 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Matthew Brost 2021-09-09 494 */ d9a5696e7d52ed drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Lucas De Marchi 2022-02-16 495 ads_blob_write(guc, ads.eng_state_size[guc_class], d9a5696e7d52ed drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Lucas De Marchi 2022-02-16 496 real_size - LRC_SKIP_SIZE); d9a5696e7d52ed drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Lucas De Marchi 2022-02-16 @497 ads_blob_write(guc, ads.golden_context_lrca[guc_class], d9a5696e7d52ed drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Lucas De Marchi 2022-02-16 498 addr_ggtt); d9a5696e7d52ed drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Lucas De Marchi 2022-02-16 499 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 500 addr_ggtt += alloc_size; 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 501 } 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 502 d9a5696e7d52ed drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c Lucas De Marchi 2022-02-16 503 if (iosys_map_is_null(&guc->ads_map)) 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 504 return total_size; 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 505 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 506 GEM_BUG_ON(guc->ads_golden_ctxt_size != total_size); 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 507 return total_size; 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 508 } 481d458caede24 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c John Harrison 2021-07-26 509 -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
