CC: [email protected]
CC: [email protected]
In-Reply-To: <[email protected]>
References: <[email protected]>
TO: "Tony W Wang-oc" <[email protected]>
TO: [email protected]
TO: [email protected]
TO: [email protected]
TO: [email protected]
CC: [email protected]
CC: [email protected]
CC: [email protected]
CC: [email protected]
CC: [email protected]
CC: [email protected]

Hi Tony,

I love your patch! Perhaps something to improve:

[auto build test WARNING on abelloni/rtc-next]
[also build test WARNING on v5.14-rc6 next-20210816]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    
https://github.com/0day-ci/linux/commits/Tony-W-Wang-oc/rtc-Fix-set-RTC-time-delay-500ms-on-some-Zhaoxin-SOCs/20210816-140350
base:   https://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux.git 
rtc-next
:::::: branch date: 27 hours ago
:::::: commit date: 27 hours ago
config: x86_64-randconfig-c007-20210816 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 
44d0a99a12ec7ead4d2f5ef649ba05b40f6d463d)
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://github.com/0day-ci/linux/commit/f7e050c4ec0065943e88d900811d57e36ad92a36
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review 
Tony-W-Wang-oc/rtc-Fix-set-RTC-time-delay-500ms-on-some-Zhaoxin-SOCs/20210816-140350
        git checkout f7e050c4ec0065943e88d900811d57e36ad92a36
        # save the attached .config 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 >>)
   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.
   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.
   Suppressed 4 warnings (4 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.
   Suppressed 4 warnings (4 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/mfd/vx855.c:89:2: warning: Value stored to 'ret' is never read 
[clang-analyzer-deadcode.DeadStores]
           ret = mfd_add_devices(&pdev->dev, -1, vx855_cells, 
ARRAY_SIZE(vx855_cells),
           ^     
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/mfd/vx855.c:89:2: note: Value stored to 'ret' is never read
           ret = mfd_add_devices(&pdev->dev, -1, vx855_cells, 
ARRAY_SIZE(vx855_cells),
           ^     
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   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.
   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.
   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.
   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.
   Suppressed 4 warnings (4 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.
   Suppressed 4 warnings (4 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.
   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.
   6 warnings generated.
   arch/x86/crypto/des3_ede_glue.c:167:10: warning: Although the value stored 
to 'nbytes' is used in the enclosing expression, the value is never actually 
read from 'nbytes' [clang-analyzer-deadcode.DeadStores]
           while ((nbytes = walk.nbytes)) {
                   ^        ~~~~~~~~~~~
   arch/x86/crypto/des3_ede_glue.c:167:10: note: Although the value stored to 
'nbytes' is used in the enclosing expression, the value is never actually read 
from 'nbytes'
           while ((nbytes = walk.nbytes)) {
                   ^        ~~~~~~~~~~~
   arch/x86/crypto/des3_ede_glue.c:246:10: warning: Although the value stored 
to 'nbytes' is used in the enclosing expression, the value is never actually 
read from 'nbytes' [clang-analyzer-deadcode.DeadStores]
           while ((nbytes = walk.nbytes)) {
                   ^        ~~~~~~~~~~~
   arch/x86/crypto/des3_ede_glue.c:246:10: note: Although the value stored to 
'nbytes' is used in the enclosing expression, the value is never actually read 
from 'nbytes'
           while ((nbytes = walk.nbytes)) {
                   ^        ~~~~~~~~~~~
   Suppressed 4 warnings (3 in non-user code, 1 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.
   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.
   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.
   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.
   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.
   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.
   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.
   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.
   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.
   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.
   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.
   Suppressed 4 warnings (3 in non-user code, 1 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.
   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.
   Suppressed 4 warnings (4 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/rtc/rtc-mc146818-lib.c:227:3: warning: 1st function call argument is 
>> an uninitialized value [clang-analyzer-core.CallAndMessage]
                   CMOS_WRITE(save_freq_select, RTC_FREQ_SELECT);
                   ^
   arch/x86/include/asm/mc146818rtc.h:94:31: note: expanded from macro 
'CMOS_WRITE'
   #define CMOS_WRITE(val, addr) rtc_cmos_write(val, addr)
                                 ^              ~~~
   drivers/rtc/rtc-mc146818-lib.c:128:30: note: 'save_freq_select' declared 
without an initial value
           unsigned char save_control, save_freq_select;
                                       ^~~~~~~~~~~~~~~~
   drivers/rtc/rtc-mc146818-lib.c:142:6: note: Assuming 'yrs' is <= 255
           if (yrs > 255)  /* They are unsigned */
               ^~~~~~~~~
   drivers/rtc/rtc-mc146818-lib.c:142:2: note: Taking false branch
           if (yrs > 255)  /* They are unsigned */
           ^
   drivers/rtc/rtc-mc146818-lib.c:163:6: note: Assuming field 'revision' is < 
FADT2_REVISION_ID
           if (acpi_gbl_FADT.header.revision >= FADT2_REVISION_ID &&
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/rtc/rtc-mc146818-lib.c:163:57: note: Left side of '&&' is false
           if (acpi_gbl_FADT.header.revision >= FADT2_REVISION_ID &&
                                                                  ^
   drivers/rtc/rtc-mc146818-lib.c:173:6: note: Assuming 'yrs' is <= 169
           if (yrs > 169)
               ^~~~~~~~~
   drivers/rtc/rtc-mc146818-lib.c:173:2: note: Taking false branch
           if (yrs > 169)
           ^
   drivers/rtc/rtc-mc146818-lib.c:176:6: note: Assuming 'yrs' is < 100
           if (yrs >= 100)
               ^~~~~~~~~~
   drivers/rtc/rtc-mc146818-lib.c:176:2: note: Taking false branch
           if (yrs >= 100)
           ^
   drivers/rtc/rtc-mc146818-lib.c:179:6: note: Assuming the condition is true
           if (!(CMOS_READ(RTC_CONTROL) & RTC_DM_BINARY)
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/rtc/rtc-mc146818-lib.c:180:6: note: Left side of '||' is true
               || RTC_ALWAYS_BCD) {
               ^
   drivers/rtc/rtc-mc146818-lib.c:181:9: note: '?' condition is false
                   sec = bin2bcd(sec);
                         ^
   include/linux/bcd.h:13:4: note: expanded from macro 'bin2bcd'
                   (__builtin_constant_p((u8 )(x)) ?       \
                    ^
   drivers/rtc/rtc-mc146818-lib.c:182:9: note: '?' condition is false
                   min = bin2bcd(min);
                         ^
   include/linux/bcd.h:13:4: note: expanded from macro 'bin2bcd'
                   (__builtin_constant_p((u8 )(x)) ?       \
                    ^
   drivers/rtc/rtc-mc146818-lib.c:183:9: note: '?' condition is false
                   hrs = bin2bcd(hrs);
                         ^
   include/linux/bcd.h:13:4: note: expanded from macro 'bin2bcd'
                   (__builtin_constant_p((u8 )(x)) ?       \
                    ^
   drivers/rtc/rtc-mc146818-lib.c:184:9: note: '?' condition is false
                   day = bin2bcd(day);
                         ^
   include/linux/bcd.h:13:4: note: expanded from macro 'bin2bcd'
                   (__builtin_constant_p((u8 )(x)) ?       \
                    ^
   drivers/rtc/rtc-mc146818-lib.c:185:9: note: '?' condition is false
                   mon = bin2bcd(mon);
                         ^
   include/linux/bcd.h:13:4: note: expanded from macro 'bin2bcd'
                   (__builtin_constant_p((u8 )(x)) ?       \
                    ^
   drivers/rtc/rtc-mc146818-lib.c:186:9: note: '?' condition is false
                   yrs = bin2bcd(yrs);
                         ^
   include/linux/bcd.h:13:4: note: expanded from macro 'bin2bcd'
                   (__builtin_constant_p((u8 )(x)) ?       \
                    ^
   drivers/rtc/rtc-mc146818-lib.c:187:13: note: '?' condition is false
                   century = bin2bcd(century);
                             ^
   include/linux/bcd.h:13:4: note: expanded from macro 'bin2bcd'
                   (__builtin_constant_p((u8 )(x)) ?       \
                    ^
   drivers/rtc/rtc-mc146818-lib.c:190:2: note: Loop condition is false.  
Exiting loop
           spin_lock_irqsave(&rtc_lock, flags);
           ^
   include/linux/spinlock.h:384:2: note: expanded from macro 'spin_lock_irqsave'
           raw_spin_lock_irqsave(spinlock_check(lock), flags);     \
           ^
   include/linux/spinlock.h:250:2: note: expanded from macro 
'raw_spin_lock_irqsave'
           do {                                            \
           ^
   drivers/rtc/rtc-mc146818-lib.c:190:2: note: Loop condition is false.  
Exiting loop
           spin_lock_irqsave(&rtc_lock, flags);
           ^
   include/linux/spinlock.h:382:43: note: expanded from macro 
'spin_lock_irqsave'
   #define spin_lock_irqsave(lock, flags)                          \
                                                                   ^
   drivers/rtc/rtc-mc146818-lib.c:195:9: note: Assuming field 'x86_vendor' is 
equal to X86_VENDOR_CENTAUR
           if (!((boot_cpu_data.x86_vendor == X86_VENDOR_CENTAUR ||
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/rtc/rtc-mc146818-lib.c:195:56: note: Left side of '||' is true
           if (!((boot_cpu_data.x86_vendor == X86_VENDOR_CENTAUR ||

vim +227 drivers/rtc/rtc-mc146818-lib.c

d6faca40f40b62 Arnd Bergmann  2016-06-01  220  
d6faca40f40b62 Arnd Bergmann  2016-06-01  221   CMOS_WRITE(save_control, 
RTC_CONTROL);
f7e050c4ec0065 Tony W Wang-oc 2021-08-16  222  
f7e050c4ec0065 Tony W Wang-oc 2021-08-16  223  #ifdef CONFIG_X86
f7e050c4ec0065 Tony W Wang-oc 2021-08-16  224   if (!((boot_cpu_data.x86_vendor 
== X86_VENDOR_CENTAUR ||
f7e050c4ec0065 Tony W Wang-oc 2021-08-16  225           
boot_cpu_data.x86_vendor == X86_VENDOR_ZHAOXIN) &&
f7e050c4ec0065 Tony W Wang-oc 2021-08-16  226           (boot_cpu_data.x86 <= 7 
&& boot_cpu_data.x86_model <= 59)))
d6faca40f40b62 Arnd Bergmann  2016-06-01 @227           
CMOS_WRITE(save_freq_select, RTC_FREQ_SELECT);

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to