All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: arch/x86/xen/mmu_pv.c:1521:3: warning: Value stored to 'pinned' is never read [clang-analyzer-deadcode.DeadStores]
Date: Wed, 11 May 2022 16:54:02 +0800	[thread overview]
Message-ID: <202205111613.hPOB4972-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 15812 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: Juergen Gross <jgross@suse.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   feb9c5e19e913b53cb536a7aa7c9f20107bb51ec
commit: 36c9b5929b7094ea19a78827c0ede20d2e0e6c9c xen: fix usage of pmd_populate in mremap for pv guests
date:   8 months ago
:::::: branch date: 15 hours ago
:::::: commit date: 8 months ago
config: x86_64-randconfig-c007-20220509 (https://download.01.org/0day-ci/archive/20220511/202205111613.hPOB4972-lkp(a)intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project a385645b470e2d3a1534aae618ea56b31177639f)
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=36c9b5929b7094ea19a78827c0ede20d2e0e6c9c
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 36c9b5929b7094ea19a78827c0ede20d2e0e6c9c
        # save the config file
        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 >>)
                         ^       ~~~~~
   arch/x86/include/asm/xen/hypercall.h:261:9: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
           return _hypercall4(int, mmu_update, req, count, success_count, domid);
                  ^
   arch/x86/include/asm/xen/hypercall.h:191:2: note: expanded from macro '_hypercall4'
           __HYPERCALL_DECLS;                                              \
           ^
   arch/x86/include/asm/xen/hypercall.h:113:2: note: expanded from macro '__HYPERCALL_DECLS'
           register unsigned long __arg1 asm(__HYPERCALL_ARG1REG) = __arg1; \
           ^
   arch/x86/xen/mmu_pv.c:1450:2: note: Calling '__xen_set_pte'
           __xen_set_pte(ptep, pte);
           ^~~~~~~~~~~~~~~~~~~~~~~~
   arch/x86/xen/mmu_pv.c:269:2: note: Taking true branch
           if (!xen_batched_set_pte(ptep, pteval)) {
           ^
   arch/x86/xen/mmu_pv.c:278:3: note: Calling 'HYPERVISOR_mmu_update'
                   HYPERVISOR_mmu_update(&u, 1, NULL, DOMID_SELF);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/x86/include/asm/xen/hypercall.h:261:9: note: Assigned value is garbage or undefined
           return _hypercall4(int, mmu_update, req, count, success_count, domid);
                  ^
   arch/x86/include/asm/xen/hypercall.h:191:2: note: expanded from macro '_hypercall4'
           __HYPERCALL_DECLS;                                              \
           ^~~~~~~~~~~~~~~~~
   arch/x86/include/asm/xen/hypercall.h:113:2: note: expanded from macro '__HYPERCALL_DECLS'
           register unsigned long __arg1 asm(__HYPERCALL_ARG1REG) = __arg1; \
           ^                                                        ~~~~~~
   arch/x86/include/asm/xen/hypercall.h:268:9: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
           return _hypercall4(int, mmuext_op, op, count, success_count, domid);
                  ^
   arch/x86/include/asm/xen/hypercall.h:191:2: note: expanded from macro '_hypercall4'
           __HYPERCALL_DECLS;                                              \
           ^
   arch/x86/include/asm/xen/hypercall.h:113:2: note: expanded from macro '__HYPERCALL_DECLS'
           register unsigned long __arg1 asm(__HYPERCALL_ARG1REG) = __arg1; \
           ^
   arch/x86/xen/mmu_pv.c:1477:2: note: Calling 'pin_pagetable_pfn'
           pin_pagetable_pfn(MMUEXT_UNPIN_TABLE, pfn);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/x86/xen/mmu_pv.c:993:6: note: Calling 'HYPERVISOR_mmuext_op'
           if (HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF))
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/x86/include/asm/xen/hypercall.h:268:9: note: Assigned value is garbage or undefined
           return _hypercall4(int, mmuext_op, op, count, success_count, domid);
                  ^
   arch/x86/include/asm/xen/hypercall.h:191:2: note: expanded from macro '_hypercall4'
           __HYPERCALL_DECLS;                                              \
           ^~~~~~~~~~~~~~~~~
   arch/x86/include/asm/xen/hypercall.h:113:2: note: expanded from macro '__HYPERCALL_DECLS'
           register unsigned long __arg1 asm(__HYPERCALL_ARG1REG) = __arg1; \
           ^                                                        ~~~~~~
   arch/x86/include/asm/xen/hypercall.h:334:9: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
           return _hypercall2(long, memory_op, cmd, arg);
                  ^
   arch/x86/include/asm/xen/hypercall.h:169:2: note: expanded from macro '_hypercall2'
           __HYPERCALL_DECLS;                                              \
           ^
   arch/x86/include/asm/xen/hypercall.h:113:2: note: expanded from macro '__HYPERCALL_DECLS'
           register unsigned long __arg1 asm(__HYPERCALL_ARG1REG) = __arg1; \
           ^
   arch/x86/xen/mmu_pv.c:1635:6: note: Calling 'HYPERVISOR_memory_op'
           if (HYPERVISOR_memory_op(XENMEM_machphys_mapping, &mapping) == 0) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/x86/include/asm/xen/hypercall.h:334:9: note: Assigned value is garbage or undefined
           return _hypercall2(long, memory_op, cmd, arg);
                  ^
   arch/x86/include/asm/xen/hypercall.h:169:2: note: expanded from macro '_hypercall2'
           __HYPERCALL_DECLS;                                              \
           ^~~~~~~~~~~~~~~~~
   arch/x86/include/asm/xen/hypercall.h:113:2: note: expanded from macro '__HYPERCALL_DECLS'
           register unsigned long __arg1 asm(__HYPERCALL_ARG1REG) = __arg1; \
           ^                                                        ~~~~~~
   arch/x86/include/asm/xen/hypercall.h:348:10: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
                   return _hypercall3(int, update_va_mapping, va,
                          ^
   arch/x86/include/asm/xen/hypercall.h:180:2: note: expanded from macro '_hypercall3'
           __HYPERCALL_DECLS;                                              \
           ^
   arch/x86/include/asm/xen/hypercall.h:113:2: note: expanded from macro '__HYPERCALL_DECLS'
           register unsigned long __arg1 asm(__HYPERCALL_ARG1REG) = __arg1; \
           ^
   arch/x86/xen/mmu_pv.c:1628:9: note: Calling 'set_page_prot_flags'
           return set_page_prot_flags(addr, prot, UVMF_NONE);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/x86/xen/mmu_pv.c:1623:6: note: Calling 'HYPERVISOR_update_va_mapping'
           if (HYPERVISOR_update_va_mapping((unsigned long)addr, pte, flags))
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/x86/include/asm/xen/hypercall.h:347:2: note: Taking true branch
           if (sizeof(new_val) == sizeof(long))
           ^
   arch/x86/include/asm/xen/hypercall.h:348:10: note: Assigned value is garbage or undefined
                   return _hypercall3(int, update_va_mapping, va,
                          ^
   arch/x86/include/asm/xen/hypercall.h:180:2: note: expanded from macro '_hypercall3'
           __HYPERCALL_DECLS;                                              \
           ^~~~~~~~~~~~~~~~~
   arch/x86/include/asm/xen/hypercall.h:113:2: note: expanded from macro '__HYPERCALL_DECLS'
           register unsigned long __arg1 asm(__HYPERCALL_ARG1REG) = __arg1; \
           ^                                                        ~~~~~~
>> arch/x86/xen/mmu_pv.c:1521:3: warning: Value stored to 'pinned' is never read [clang-analyzer-deadcode.DeadStores]
                   pinned = false;
                   ^        ~~~~~
   arch/x86/xen/mmu_pv.c:1521:3: note: Value stored to 'pinned' is never read
                   pinned = false;
                   ^        ~~~~~
   arch/x86/xen/mmu_pv.c:1523:4: warning: Value stored to 'pinned' is never read [clang-analyzer-deadcode.DeadStores]
                           pinned = PagePinned(page);
                           ^        ~~~~~~~~~~~~~~~~
   arch/x86/xen/mmu_pv.c:1523:4: note: Value stored to 'pinned' is never read
                           pinned = PagePinned(page);
                           ^        ~~~~~~~~~~~~~~~~
   Suppressed 14 warnings (3 in non-user code, 11 with check filters).
   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.
   6 warnings generated.
   fs/udf/super.c:881:2: warning: Value stored to 'ts' is never read [clang-analyzer-deadcode.DeadStores]
           ts = &pvoldesc->recordingDateAndTime;
           ^    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/udf/super.c:881:2: note: Value stored to 'ts' is never read
           ts = &pvoldesc->recordingDateAndTime;
           ^    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/udf/super.c:1769:2: warning: Address of stack memory associated with local variable 'data' returned to caller [clang-analyzer-core.StackAddressEscape]
           return ret;
           ^
   fs/udf/super.c:1800:8: note: Calling 'udf_process_sequence'
           ret = udf_process_sequence(sb, main_s, main_e, fileset);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/udf/super.c:1679:6: note: Assuming field 'part_descs_loc' is non-null
           if (!data.part_descs_loc)
               ^~~~~~~~~~~~~~~~~~~~
   fs/udf/super.c:1679:2: note: Taking false branch
           if (!data.part_descs_loc)
           ^
   fs/udf/super.c:1686:11: note: 'done' is false
           for (; (!done && block <= lastblock); block++) {
                    ^~~~
   fs/udf/super.c:1686:10: note: Left side of '&&' is true
           for (; (!done && block <= lastblock); block++) {
                   ^
   fs/udf/super.c:1686:19: note: Assuming 'block' is <= 'lastblock'
           for (; (!done && block <= lastblock); block++) {
                            ^~~~~~~~~~~~~~~~~~
   fs/udf/super.c:1686:2: note: Loop condition is true.  Entering loop body
           for (; (!done && block <= lastblock); block++) {
           ^
   fs/udf/super.c:1688:7: note: Assuming 'bh' is non-null
                   if (!bh)
                       ^~~
   fs/udf/super.c:1688:3: note: Taking false branch
                   if (!bh)
                   ^
   fs/udf/super.c:1694:3: note: Control jumps to 'case 7:'  at line 1717
                   switch (ident) {
                   ^
   fs/udf/super.c:1720:8: note: Assuming the condition is true
                           if (IS_ERR(curr)) {
                               ^~~~~~~~~~~~
   fs/udf/super.c:1720:4: note: Taking true branch
                           if (IS_ERR(curr)) {
                           ^
   fs/udf/super.c:1723:5: note: Control jumps to line 1768
                                   goto out;
                                   ^
   fs/udf/super.c:1769:2: note: Address of stack memory associated with local variable 'data' returned to caller
           return ret;
           ^      ~~~
   fs/udf/super.c:1769:2: warning: Use of memory after it is freed [clang-analyzer-unix.Malloc]
           return ret;
           ^
   fs/udf/super.c:1800:8: note: Calling 'udf_process_sequence'
           ret = udf_process_sequence(sb, main_s, main_e, fileset);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/udf/super.c:1679:6: note: Assuming field 'part_descs_loc' is non-null
           if (!data.part_descs_loc)
               ^~~~~~~~~~~~~~~~~~~~
   fs/udf/super.c:1679:2: note: Taking false branch
           if (!data.part_descs_loc)
           ^
   fs/udf/super.c:1686:11: note: 'done' is false
           for (; (!done && block <= lastblock); block++) {
                    ^~~~
   fs/udf/super.c:1686:10: note: Left side of '&&' is true
           for (; (!done && block <= lastblock); block++) {
                   ^
   fs/udf/super.c:1686:19: note: Assuming 'block' is <= 'lastblock'
           for (; (!done && block <= lastblock); block++) {
                            ^~~~~~~~~~~~~~~~~~
   fs/udf/super.c:1686:2: note: Loop condition is true.  Entering loop body
           for (; (!done && block <= lastblock); block++) {
           ^
   fs/udf/super.c:1688:7: note: Assuming 'bh' is non-null
                   if (!bh)
                       ^~~
   fs/udf/super.c:1688:3: note: Taking false branch
                   if (!bh)
                   ^
   fs/udf/super.c:1694:3: note: Control jumps to 'case 5:' @line 1718
                   switch (ident) {

vim +/pinned +1521 arch/x86/xen/mmu_pv.c

7e0563dea9c4e6 Vitaly Kuznetsov 2017-04-04  1508  
7e0563dea9c4e6 Vitaly Kuznetsov 2017-04-04  1509  /* This needs to make sure the new pte page is pinned iff its being
7e0563dea9c4e6 Vitaly Kuznetsov 2017-04-04  1510     attached to a pinned pagetable. */
7e0563dea9c4e6 Vitaly Kuznetsov 2017-04-04  1511  static inline void xen_alloc_ptpage(struct mm_struct *mm, unsigned long pfn,
7e0563dea9c4e6 Vitaly Kuznetsov 2017-04-04  1512  				    unsigned level)
7e0563dea9c4e6 Vitaly Kuznetsov 2017-04-04  1513  {
6f84f8d1587f20 Pavel Tatashin   2018-04-10  1514  	bool pinned = xen_page_pinned(mm->pgd);
7e0563dea9c4e6 Vitaly Kuznetsov 2017-04-04  1515  
7e0563dea9c4e6 Vitaly Kuznetsov 2017-04-04  1516  	trace_xen_mmu_alloc_ptpage(mm, pfn, level, pinned);
7e0563dea9c4e6 Vitaly Kuznetsov 2017-04-04  1517  
7e0563dea9c4e6 Vitaly Kuznetsov 2017-04-04  1518  	if (pinned) {
7e0563dea9c4e6 Vitaly Kuznetsov 2017-04-04  1519  		struct page *page = pfn_to_page(pfn);
7e0563dea9c4e6 Vitaly Kuznetsov 2017-04-04  1520  
36c9b5929b7094 Juergen Gross    2021-09-08 @1521  		pinned = false;
36c9b5929b7094 Juergen Gross    2021-09-08  1522  		if (static_branch_likely(&xen_struct_pages_ready)) {
36c9b5929b7094 Juergen Gross    2021-09-08  1523  			pinned = PagePinned(page);
7e0563dea9c4e6 Vitaly Kuznetsov 2017-04-04  1524  			SetPagePinned(page);
36c9b5929b7094 Juergen Gross    2021-09-08  1525  		}
7e0563dea9c4e6 Vitaly Kuznetsov 2017-04-04  1526  
7e0563dea9c4e6 Vitaly Kuznetsov 2017-04-04  1527  		xen_mc_batch();
7e0563dea9c4e6 Vitaly Kuznetsov 2017-04-04  1528  
7e0563dea9c4e6 Vitaly Kuznetsov 2017-04-04  1529  		__set_pfn_prot(pfn, PAGE_KERNEL_RO);
7e0563dea9c4e6 Vitaly Kuznetsov 2017-04-04  1530  
36c9b5929b7094 Juergen Gross    2021-09-08  1531  		if (level == PT_PTE && USE_SPLIT_PTE_PTLOCKS && !pinned)
7e0563dea9c4e6 Vitaly Kuznetsov 2017-04-04  1532  			__pin_pagetable_pfn(MMUEXT_PIN_L1_TABLE, pfn);
7e0563dea9c4e6 Vitaly Kuznetsov 2017-04-04  1533  
7e0563dea9c4e6 Vitaly Kuznetsov 2017-04-04  1534  		xen_mc_issue(PARAVIRT_LAZY_MMU);
7e0563dea9c4e6 Vitaly Kuznetsov 2017-04-04  1535  	}
7e0563dea9c4e6 Vitaly Kuznetsov 2017-04-04  1536  }
7e0563dea9c4e6 Vitaly Kuznetsov 2017-04-04  1537  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

             reply	other threads:[~2022-05-11  8:54 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-11  8:54 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2022-05-11  9:24 arch/x86/xen/mmu_pv.c:1521:3: warning: Value stored to 'pinned' is never read [clang-analyzer-deadcode.DeadStores] kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202205111613.hPOB4972-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.