All of lore.kernel.org
 help / color / mirror / Atom feed
* drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:497:3: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
@ 2022-04-17  0:58 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2022-04-17  0:58 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 24501 bytes --]

CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: linux-kernel(a)vger.kernel.org
TO: Lucas De Marchi <lucas.demarchi@intel.com>
CC: Matthew Brost <matthew.brost@intel.com>

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/202204170838.eGf0l1iG-lkp(a)intel.com/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 <lkp@intel.com>


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(&gt->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

^ permalink raw reply	[flat|nested] 2+ messages in thread

* drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:497:3: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
@ 2022-04-12 20:14 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2022-04-12 20:14 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 24198 bytes --]

CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: linux-kernel(a)vger.kernel.org
TO: Lucas De Marchi <lucas.demarchi@intel.com>
CC: Matthew Brost <matthew.brost@intel.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   ce522ba9ef7e2d9fb22a39eb3371c0c64e2a433e
commit: d9a5696e7d52edf68776599f2a38b9aee1382be9 drm/i915/guc: Convert golden context prep to iosys_map
date:   7 weeks ago
:::::: branch date: 2 days ago
:::::: commit date: 7 weeks ago
config: x86_64-randconfig-c007-20220411 (https://download.01.org/0day-ci/archive/20220413/202204130410.GgQjsQnq-lkp(a)intel.com/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 <lkp@intel.com>


clang-analyzer warnings: (new ones prefixed by >>)
                   if (is_acpi_data_node(child)) {
                   ^
   drivers/acpi/property.c:616:8: note: Calling 'acpi_data_node_match'
                           if (acpi_data_node_match(child, childname))
                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/acpi/acpi_bus.h:446:9: note: Assuming the condition is true
           return is_acpi_data_node(fwnode) ?
                  ^~~~~~~~~~~~~~~~~~~~~~~~~
   include/acpi/acpi_bus.h:446:9: note: '?' condition is true
   include/acpi/acpi_bus.h:447:12: note: Assuming the condition is false
                   (!strcmp(to_acpi_data_node(fwnode)->name, name)) : false;
                            ^
   include/acpi/acpi_bus.h:431:3: note: expanded from macro 'to_acpi_data_node'
                   is_acpi_data_node(__to_acpi_data_node_fwnode) ?         \
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/acpi/acpi_bus.h:447:12: note: '?' condition is false
                   (!strcmp(to_acpi_data_node(fwnode)->name, name)) : false;
                            ^
   include/acpi/acpi_bus.h:431:3: note: expanded from macro 'to_acpi_data_node'
                   is_acpi_data_node(__to_acpi_data_node_fwnode) ?         \
                   ^
   include/acpi/acpi_bus.h:447:12: note: Access to field 'name' results in a dereference of a null pointer
                   (!strcmp(to_acpi_data_node(fwnode)->name, name)) : false;
                            ^
   include/acpi/acpi_bus.h:428:2: note: expanded from macro 'to_acpi_data_node'
           ({                                                              \
           ^
   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(&gt->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.
   mm/mmu_gather.c:86:3: warning: Value stored to 'batch' is never read [clang-analyzer-deadcode.DeadStores]
                   batch = tlb->active;
                   ^       ~~~~~~~~~~~
   mm/mmu_gather.c:86:3: note: Value stored to 'batch' is never read
                   batch = tlb->active;
                   ^       ~~~~~~~~~~~
   3 warnings generated.
   mm/vmalloc.c:300:2: warning: Value stored to 'start' is never read [clang-analyzer-deadcode.DeadStores]
           start = addr;
           ^       ~~~~
   mm/vmalloc.c:300:2: note: Value stored to 'start' is never read
           start = addr;
           ^       ~~~~
   mm/vmalloc.c:582:18: warning: Value stored to 'nr' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           unsigned int i, nr = (end - addr) >> PAGE_SHIFT;
                           ^~   ~~~~~~~~~~~~~~~~~~~~~~~~~~
   mm/vmalloc.c:582:18: note: Value stored to 'nr' during its initialization is never read
           unsigned int i, nr = (end - addr) >> PAGE_SHIFT;
                           ^~   ~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 1 warnings (1 with check filters).
   6 warnings generated.
   mm/page_alloc.c:1151:13: warning: 2nd function call argument is an uninitialized value [clang-analyzer-core.CallAndMessage]
                   to_tail = buddy_merge_likely(pfn, buddy_pfn, page, order);
                             ^
   mm/page_alloc.c:8287:2: note: Calling 'drain_pages'
           drain_pages(cpu);

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

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-04-17  0:58 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-17  0:58 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c:497:3: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign] kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2022-04-12 20:14 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.