All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com
Subject: arch/x86/kernel/fpu/xstate.c:605:7: warning: Redundant initialization for 'size'. The initialized value is overwritten before it is read. [redundantInitialization]
Date: Wed, 2 Nov 2022 16:09:50 +0800	[thread overview]
Message-ID: <202211021651.O2lwiQqp-lkp@intel.com> (raw)

:::::: 
:::::: Manual check reason: "low confidence static check warning: arch/x86/kernel/fpu/xstate.c:605:7: warning: Redundant initialization for 'size'. The initialized value is overwritten before it is read. [redundantInitialization]"
:::::: 

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Thomas Gleixner <tglx@linutronix.de>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   8f71a2b3f435f29b787537d1abedaa7d8ebe6647
commit: 8ad7e8f696951f192c6629a0cbda9ac94c773159 x86/fpu/xsave: Support XSAVEC in the kernel
date:   6 months ago
:::::: branch date: 10 hours ago
:::::: commit date: 6 months ago
compiler: gcc-11 (Debian 11.3.0-8) 11.3.0
reproduce (cppcheck warning):
        # apt-get install cppcheck
        git checkout 8ad7e8f696951f192c6629a0cbda9ac94c773159
        cppcheck --quiet --enable=style,performance,portability --template=gcc FILE

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>

cppcheck warnings: (new ones prefixed by >>)
>> arch/x86/mm/pat/set_memory.c:1036:17: warning: Local variable 'pfn' shadows outer variable [shadowVariable]
     unsigned long pfn = PFN_DOWN(__pa(address));
                   ^
   arch/x86/mm/pat/set_memory.c:974:40: note: Shadowed declaration
    unsigned long lpaddr, lpinc, ref_pfn, pfn, pfninc = 1;
                                          ^
   arch/x86/mm/pat/set_memory.c:1036:17: note: Shadow variable
     unsigned long pfn = PFN_DOWN(__pa(address));
                   ^
>> arch/x86/mm/pat/set_memory.c:385:17: warning: Local variable 'addr' shadows outer variable [shadowVariable]
     unsigned long addr = __cpa_addr(cpa, i);
                   ^
   arch/x86/mm/pat/cpa-test.c:110:22: note: Shadowed declaration
   static unsigned long addr[NTEST];
                        ^
   arch/x86/mm/pat/set_memory.c:385:17: note: Shadow variable
     unsigned long addr = __cpa_addr(cpa, i);
                   ^
   arch/x86/mm/pat/set_memory.c:2063:16: warning: Local variable 'addr' shadows outer variable [shadowVariable]
    unsigned long addr = (unsigned long)page_address(page);
                  ^
   arch/x86/mm/pat/cpa-test.c:110:22: note: Shadowed declaration
   static unsigned long addr[NTEST];
                        ^
   arch/x86/mm/pat/set_memory.c:2063:16: note: Shadow variable
    unsigned long addr = (unsigned long)page_address(page);
                  ^
   arch/x86/mm/pat/set_memory.c:2129:16: warning: Local variable 'addr' shadows outer variable [shadowVariable]
    unsigned long addr = (unsigned long)page_address(page);
                  ^
   arch/x86/mm/pat/cpa-test.c:110:22: note: Shadowed declaration
   static unsigned long addr[NTEST];
                        ^
   arch/x86/mm/pat/set_memory.c:2129:16: note: Shadow variable
    unsigned long addr = (unsigned long)page_address(page);
                  ^
   arch/x86/mm/pat/set_memory.c:2162:16: warning: Local variable 'addr' shadows outer variable [shadowVariable]
    unsigned long addr = (unsigned long)page_address(page);
                  ^
   arch/x86/mm/pat/cpa-test.c:110:22: note: Shadowed declaration
   static unsigned long addr[NTEST];
                        ^
   arch/x86/mm/pat/set_memory.c:2162:16: note: Shadow variable
    unsigned long addr = (unsigned long)page_address(page);
                  ^
   arch/x86/mm/pat/set_memory.c:2169:16: warning: Local variable 'addr' shadows outer variable [shadowVariable]
    unsigned long addr = (unsigned long)page_address(page);
                  ^
   arch/x86/mm/pat/cpa-test.c:110:22: note: Shadowed declaration
   static unsigned long addr[NTEST];
                        ^
   arch/x86/mm/pat/set_memory.c:2169:16: note: Shadow variable
    unsigned long addr = (unsigned long)page_address(page);
                  ^
>> arch/x86/mm/pat/cpa-test.c:58:17: warning: Local variable 'addr' shadows outer variable [shadowVariable]
     unsigned long addr = (unsigned long)__va(i << PAGE_SHIFT);
                   ^
   arch/x86/mm/pat/cpa-test.c:110:22: note: Shadowed declaration
   static unsigned long addr[NTEST];
                        ^
   arch/x86/mm/pat/cpa-test.c:58:17: note: Shadow variable
     unsigned long addr = (unsigned long)__va(i << PAGE_SHIFT);
                   ^
--
   arch/x86/kernel/fpu/xstate.c:1236:7: warning: Local variable 'mask' shadows outer variable [shadowVariable]
     u64 mask = ((u64)1 << i);
         ^
   arch/x86/kernel/fpu/xstate.c:1205:6: note: Shadowed declaration
    u64 mask;
        ^
   arch/x86/kernel/fpu/xstate.c:1236:7: note: Shadow variable
     u64 mask = ((u64)1 << i);
         ^
>> mm/huge_memory.c:1719:15: warning: Local variable 'entry' shadows outer variable [shadowVariable]
     swp_entry_t entry = pmd_to_swp_entry(*pmd);
                 ^
   mm/huge_memory.c:1700:8: note: Shadowed declaration
    pmd_t entry;
          ^
   mm/huge_memory.c:1719:15: note: Shadow variable
     swp_entry_t entry = pmd_to_swp_entry(*pmd);
                 ^

cppcheck possible warnings: (new ones prefixed by >>, may not real problems)

>> arch/x86/kernel/ptrace.c:1352:1: warning: Found a exit path from function with non-void return type that has missing return statement [missingReturn]
   }
   ^
>> arch/x86/kernel/ptrace.c:451:49: warning: Parameter 'bp' can be declared as pointer to const [constParameter]
   static void ptrace_triggered(struct perf_event *bp,
                                                   ^
>> arch/x86/kernel/ptrace.c:920:7: warning: Return value of function offsetof() is not used. [ignoredReturnValue]
    case offsetof(struct user32, u_debugreg[0]) ...
         ^
   arch/x86/kernel/ptrace.c:979:7: warning: Return value of function offsetof() is not used. [ignoredReturnValue]
    case offsetof(struct user32, u_debugreg[0]) ...
         ^
   arch/x86/kernel/ptrace.c:1347:0: warning: Found a exit path from function with non-void return type that has missing return statement [missingReturn]
     return &user_x86_32_view;
   ^
--
>> arch/x86/kernel/signal.c:197:1: warning: Label 'Efault' is not used. There is #if in function body so the label might be used in code that is removed by the preprocessor. [unusedLabelConfiguration]
   Efault:
   ^
--
>> drivers/platform/x86/wmi.c:590:30: warning: Redundant condition: wmi_status==AE_OK. 'A || (!A && B)' is equivalent to 'A || B' [redundantCondition]
      if ((wmi_status != AE_OK) ||
                                ^
   drivers/platform/x86/wmi.c:633:31: warning: Redundant condition: wmi_status==AE_OK. 'A || (!A && B)' is equivalent to 'A || B' [redundantCondition]
       if ((wmi_status != AE_OK) ||
                                 ^
>> drivers/platform/x86/wmi.c:1144:50: warning: Parameter 'device' can be declared as pointer to const [constParameter]
   static void wmi_free_devices(struct acpi_device *device)
                                                    ^
>> drivers/platform/x86/wmi.c:178:27: warning: Uninitialized variable: &dummy_info [uninitvar]
    info_ptr = info ? info : &dummy_info;
                             ^
>> drivers/platform/x86/wmi.c:660:16: warning: Uninitialized variable: gblock->flags [uninitvar]
     if ((gblock->flags & ACPI_WMI_EVENT) && gblock->notify_id == event)
                  ^
   drivers/platform/x86/wmi.c:658:31: note: Assignment 'gblock=&wblock->gblock', assigned value is <Uninit>
     struct guid_block *gblock = &wblock->gblock;
                                 ^
   drivers/platform/x86/wmi.c:660:16: note: Uninitialized variable: gblock->flags
     if ((gblock->flags & ACPI_WMI_EVENT) && gblock->notify_id == event)
                  ^
>> drivers/platform/x86/wmi.c:661:26: warning: Uninitialized variables: wblock.dev, wblock.list, wblock.gblock, wblock.char_dev, wblock.char_mutex, wblock.acpi_device, wblock.handler, wblock.handler_data, wblock.req_buf_size, wblock.flags [uninitvar]
      return get_event_data(wblock, out);
                            ^
>> drivers/platform/x86/wmi.c:861:16: warning: Uninitialized variable: wblock->dev [uninitvar]
     if (!wblock->dev.dev.driver)
                  ^
>> drivers/platform/x86/wmi.c:1150:15: warning: Uninitialized variable: wblock->acpi_device [uninitvar]
     if (wblock->acpi_device == device) {
                 ^
   drivers/platform/x86/wmi.c:1317:15: warning: Uninitialized variable: wblock->acpi_device [uninitvar]
     if (wblock->acpi_device->handle == handle &&
                 ^
>> drivers/platform/x86/wmi.c:1318:15: warning: Uninitialized variable: block->flags [uninitvar]
         (block->flags & ACPI_WMI_EVENT) &&
                 ^
   drivers/platform/x86/wmi.c:1315:30: note: Assignment 'block=&wblock->gblock', assigned value is <Uninit>
     struct guid_block *block = &wblock->gblock;
                                ^
   drivers/platform/x86/wmi.c:1318:15: note: Uninitialized variable: block->flags
         (block->flags & ACPI_WMI_EVENT) &&
                 ^
>> arch/x86/mm/pat/set_memory.c:402:52: warning: Same expression on both sides of '||' because 'r1_start<=r2_end&&r1_end>=r2_start' and 'r2_start<=r1_end&&r2_end>=r1_start' represent the same value. [knownConditionTrueFalse]
    return (r1_start <= r2_end && r1_end >= r2_start) ||
                                                      ^
>> arch/x86/kernel/fpu/xstate.c:605:7: warning: Redundant initialization for 'size'. The initialized value is overwritten before it is read. [redundantInitialization]
    size = xstate_calculate_size(fpu_kernel_cfg.max_features, compacted);
         ^
   arch/x86/kernel/fpu/xstate.c:590:20: note: size is initialized
    unsigned int size = FXSAVE_SIZE + XSAVE_HDR_SIZE;
                      ^
   arch/x86/kernel/fpu/xstate.c:605:7: note: size is overwritten
    size = xstate_calculate_size(fpu_kernel_cfg.max_features, compacted);
         ^
>> arch/x86/kernel/fpu/xstate.c:589:7: warning: Local variable 'xsaves' shadows outer function [shadowFunction]
    bool xsaves = cpu_feature_enabled(X86_FEATURE_XSAVES);
         ^
   arch/x86/kernel/fpu/xstate.c:1310:6: note: Shadowed declaration
   void xsaves(struct xregs_state *xstate, u64 mask)
        ^
   arch/x86/kernel/fpu/xstate.c:589:7: note: Shadow variable
    bool xsaves = cpu_feature_enabled(X86_FEATURE_XSAVES);
         ^
   arch/x86/kernel/fpu/xstate.c:1708:43: warning: Parameter 'tsk' can be declared as pointer to const [constParameter]
   long fpu_xstate_prctl(struct task_struct *tsk, int option, unsigned long arg2)
                                             ^
>> fs/binfmt_elf.c:2144:24: warning: Uninitialized variable: ets->num_notes [uninitvar]
     for (i = 0; i < ets->num_notes; i++)
                          ^
   fs/binfmt_elf.c:2139:7: note: Assuming condition is false
     if (!writenote(info->notes + i, cprm))
         ^
   fs/binfmt_elf.c:2144:24: note: Uninitialized variable: ets->num_notes
     for (i = 0; i < ets->num_notes; i++)
                          ^
--
>> mm/huge_memory.c:1615:54: warning: Parameter 'new_pmd_ptl' can be declared as pointer to const [constParameter]
   static inline int pmd_move_must_withdraw(spinlock_t *new_pmd_ptl,
                                                        ^
>> mm/huge_memory.c:1616:19: warning: Parameter 'old_pmd_ptl' can be declared as pointer to const [constParameter]
         spinlock_t *old_pmd_ptl,
                     ^
>> mm/huge_memory.c:2973:9: warning: Local variable 'buf' shadows outer argument [shadowArgument]
     char *buf = input_buf;
           ^
   mm/huge_memory.c:2949:77: note: Shadowed declaration
   static ssize_t split_huge_pages_write(struct file *file, const char __user *buf,
                                                                               ^
   mm/huge_memory.c:2973:9: note: Shadow variable
     char *buf = input_buf;
           ^

vim +/size +605 arch/x86/kernel/fpu/xstate.c

84e4dccc8fce20 Chang S. Bae    2021-10-21  576  
65ac2e9baa7dee Dave Hansen     2015-09-02  577  /*
65ac2e9baa7dee Dave Hansen     2015-09-02  578   * This essentially double-checks what the cpu told us about
65ac2e9baa7dee Dave Hansen     2015-09-02  579   * how large the XSAVE buffer needs to be.  We are recalculating
65ac2e9baa7dee Dave Hansen     2015-09-02  580   * it to be safe.
76d10256a97a7c Kan Liang       2020-07-20  581   *
01707b66535872 Andy Lutomirski 2021-06-23  582   * Independent XSAVE features allocate their own buffers and are not
76d10256a97a7c Kan Liang       2020-07-20  583   * covered by these checks. Only the size of the buffer for task->fpu
76d10256a97a7c Kan Liang       2020-07-20  584   * is checked here.
65ac2e9baa7dee Dave Hansen     2015-09-02  585   */
cd9ae761744912 Thomas Gleixner 2021-10-15  586  static bool __init paranoid_xstate_size_valid(unsigned int kernel_size)
65ac2e9baa7dee Dave Hansen     2015-09-02  587  {
8ad7e8f696951f Thomas Gleixner 2022-04-04  588  	bool compacted = cpu_feature_enabled(X86_FEATURE_XCOMPACTED);
8ad7e8f696951f Thomas Gleixner 2022-04-04 @589  	bool xsaves = cpu_feature_enabled(X86_FEATURE_XSAVES);
cd9ae761744912 Thomas Gleixner 2021-10-15  590  	unsigned int size = FXSAVE_SIZE + XSAVE_HDR_SIZE;
65ac2e9baa7dee Dave Hansen     2015-09-02  591  	int i;
65ac2e9baa7dee Dave Hansen     2015-09-02  592  
1c253ff2287fe3 Thomas Gleixner 2021-10-15  593  	for_each_extended_xfeature(i, fpu_kernel_cfg.max_features) {
cd9ae761744912 Thomas Gleixner 2021-10-15  594  		if (!check_xstate_against_struct(i))
cd9ae761744912 Thomas Gleixner 2021-10-15  595  			return false;
65ac2e9baa7dee Dave Hansen     2015-09-02  596  		/*
65ac2e9baa7dee Dave Hansen     2015-09-02  597  		 * Supervisor state components can be managed only by
02b93c0b00df22 Thomas Gleixner 2021-06-23  598  		 * XSAVES.
65ac2e9baa7dee Dave Hansen     2015-09-02  599  		 */
8ad7e8f696951f Thomas Gleixner 2022-04-04  600  		if (!xsaves && xfeature_is_supervisor(i)) {
cd9ae761744912 Thomas Gleixner 2021-10-15  601  			XSTATE_WARN_ON(1);
cd9ae761744912 Thomas Gleixner 2021-10-15  602  			return false;
cd9ae761744912 Thomas Gleixner 2021-10-15  603  		}
65ac2e9baa7dee Dave Hansen     2015-09-02  604  	}
84e4dccc8fce20 Chang S. Bae    2021-10-21 @605  	size = xstate_calculate_size(fpu_kernel_cfg.max_features, compacted);
cd9ae761744912 Thomas Gleixner 2021-10-15  606  	XSTATE_WARN_ON(size != kernel_size);
cd9ae761744912 Thomas Gleixner 2021-10-15  607  	return size == kernel_size;
65ac2e9baa7dee Dave Hansen     2015-09-02  608  }
65ac2e9baa7dee Dave Hansen     2015-09-02  609  

:::::: The code at line 605 was first introduced by commit
:::::: 84e4dccc8fce20b497388d756e12de5c9006eb48 x86/fpu/xstate: Provide xstate_calculate_size()

:::::: TO: Chang S. Bae <chang.seok.bae@intel.com>
:::::: CC: Borislav Petkov <bp@suse.de>

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

             reply	other threads:[~2022-11-02  8:10 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-02  8:09 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2022-11-07  5:33 arch/x86/kernel/fpu/xstate.c:605:7: warning: Redundant initialization for 'size'. The initialized value is overwritten before it is read. [redundantInitialization] kernel test robot
2022-08-09  7:14 kernel test robot
2022-06-27 14:31 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=202211021651.O2lwiQqp-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=oe-kbuild@lists.linux.dev \
    /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.