CC: [email protected]
CC: [email protected]
CC: [email protected]
TO: Hannes Reinecke <[email protected]>
CC: Damien Le Moal <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   0280e3c58f92b2fe0e8fbbdf8d386449168de4a8
commit: 17a1e1be2fc7dc99945b41df0485037dcb6044d0 ata: libata: drop 
ata_msg_probe()
date:   3 weeks ago
:::::: branch date: 11 hours ago
:::::: commit date: 3 weeks ago
config: x86_64-randconfig-c007-20220124 
(https://download.01.org/0day-ci/archive/20220126/[email protected]/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 
7b3d30728816403d1fd73cc5082e9fb761262bce)
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=17a1e1be2fc7dc99945b41df0485037dcb6044d0
        git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 17a1e1be2fc7dc99945b41df0485037dcb6044d0
        # save the config file to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 
clang-analyzer 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


clang-analyzer warnings: (new ones prefixed by >>)
   include/asm-generic/rwonce.h:36:2: note: expanded from macro 
'compiletime_assert_rwonce_type'
           compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long 
long),  \
           ^
   include/linux/compiler_types.h:335:2: note: expanded from macro 
'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, 
__COUNTER__)
           ^
   include/linux/compiler_types.h:323:2: note: expanded from macro 
'_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:307:2: note: expanded from macro 
'__compiletime_assert'
           do {                                                            \
           ^
   include/linux/skbuff.h:2136:2: note: Dereference of null pointer
           WRITE_ONCE(next->prev, prev);
           ^
   include/asm-generic/rwonce.h:61:2: note: expanded from macro 'WRITE_ONCE'
           __WRITE_ONCE(x, val);                                           \
           ^~~~~~~~~~~~~~~~~~~~
   include/asm-generic/rwonce.h:55:30: note: expanded from macro '__WRITE_ONCE'
           *(volatile typeof(x) *)&(x) = (val);                            \
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
   net/ipv6/ip6_output.c:233:7: warning: Access to field 'autoflowlabel_set' 
results in a dereference of a null pointer (loaded from variable 'np') 
[clang-analyzer-core.NullDereference]
           if (!np->autoflowlabel_set)
                ^
   net/ipv6/ip6_output.c:249:32: note: Calling 'inet6_sk'
           const struct ipv6_pinfo *np = inet6_sk(sk);
                                         ^~~~~~~~~~~~
   include/linux/ipv6.h:332:9: note: Assuming the condition is true
           return sk_fullsock(__sk) ? inet_sk(__sk)->pinet6 : NULL;
                  ^~~~~~~~~~~~~~~~~
   include/linux/ipv6.h:332:9: note: '?' condition is true
   include/linux/ipv6.h:332:2: note: Returning pointer
           return sk_fullsock(__sk) ? inet_sk(__sk)->pinet6 : NULL;
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/ipv6/ip6_output.c:249:32: note: Returning from 'inet6_sk'
           const struct ipv6_pinfo *np = inet6_sk(sk);
                                         ^~~~~~~~~~~~
   net/ipv6/ip6_output.c:249:2: note: 'np' initialized here
           const struct ipv6_pinfo *np = inet6_sk(sk);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/ipv6/ip6_output.c:262:6: note: Assuming 'opt' is null
           if (opt)
               ^~~
   net/ipv6/ip6_output.c:262:2: note: Taking false branch
           if (opt)
           ^
   net/ipv6/ip6_output.c:265:15: note: Assuming the condition is false
           if (unlikely(head_room > skb_headroom(skb))) {
                        ^
   include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                                               ^
   net/ipv6/ip6_output.c:265:2: note: Taking false branch
           if (unlikely(head_room > skb_headroom(skb))) {
           ^
   net/ipv6/ip6_output.c:273:6: note: 'opt' is null
           if (opt) {
               ^~~
   net/ipv6/ip6_output.c:273:2: note: Taking false branch
           if (opt) {
           ^
   net/ipv6/ip6_output.c:291:6: note: Assuming 'np' is null
           if (np)
               ^~
   net/ipv6/ip6_output.c:291:2: note: Taking false branch
           if (np)
           ^
   net/ipv6/ip6_output.c:293:6: note: 'hlimit' is < 0
           if (hlimit < 0)
               ^~~~~~
   net/ipv6/ip6_output.c:293:2: note: Taking true branch
           if (hlimit < 0)
           ^
   net/ipv6/ip6_output.c:297:28: note: Passing null pointer value via 2nd 
parameter 'np'
                                   ip6_autoflowlabel(net, np), fl6));
                                                          ^~
   net/ipv6/ip6_output.c:297:5: note: Calling 'ip6_autoflowlabel'
                                   ip6_autoflowlabel(net, np), fl6));
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~
   net/ipv6/ip6_output.c:233:7: note: Access to field 'autoflowlabel_set' 
results in a dereference of a null pointer (loaded from variable 'np')
           if (!np->autoflowlabel_set)
                ^~
   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.
   5 warnings generated.
   Suppressed 5 warnings (5 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.
   Suppressed 5 warnings (5 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.
   Suppressed 5 warnings (5 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.
   Suppressed 5 warnings (5 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.
   Suppressed 5 warnings (5 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.
>> drivers/ata/libata-acpi.c:768:19: warning: Value stored to 'ap' during its 
>> initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct ata_port *ap = dev->link->ap;
                            ^~   ~~~~~~~~~~~~~
   drivers/ata/libata-acpi.c:768:19: note: Value stored to 'ap' during its 
initialization is never read
           struct ata_port *ap = dev->link->ap;
                            ^~   ~~~~~~~~~~~~~
   Suppressed 5 warnings (5 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.
   drivers/hwmon/adm1031.c:245:6: warning: Value stored to 'range' during its 
initialization is never read [clang-analyzer-deadcode.DeadStores]
           int range = val - AUTO_TEMP_MIN_FROM_REG(reg);
               ^~~~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/hwmon/adm1031.c:245:6: note: Value stored to 'range' during its 
initialization is never read
           int range = val - AUTO_TEMP_MIN_FROM_REG(reg);
               ^~~~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   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.
   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.
   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 (1 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.
   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.
   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.
   4 warnings generated.
   net/ipv4/route.c:568:7: warning: Dereference of null pointer 
[clang-analyzer-core.NullDereference]
           rt = rcu_dereference(fnhe->fnhe_rth_input);
                ^
   include/linux/rcupdate.h:597:28: note: expanded from macro 'rcu_dereference'
   #define rcu_dereference(p) rcu_dereference_check(p, 0)
                              ^
   include/linux/rcupdate.h:529:2: note: expanded from macro 
'rcu_dereference_check'
           __rcu_dereference_check((p), (c) || rcu_read_lock_held(), __rcu)
           ^
   include/linux/rcupdate.h:390:48: note: expanded from macro 
'__rcu_dereference_check'
           typeof(*p) *________p1 = (typeof(*p) *__force)READ_ONCE(p); \
                                                         ^
   include/asm-generic/rwonce.h:50:2: note: expanded from macro 'READ_ONCE'
           __READ_ONCE(x);                                                 \
           ^
   include/asm-generic/rwonce.h:44:24: note: expanded from macro '__READ_ONCE'
   #define __READ_ONCE(x)  (*(const volatile __unqual_scalar_typeof(x) *)&(x))
                           ^
   net/ipv4/route.c:585:34: note: 'oldest' initialized to a null pointer value
           struct fib_nh_exception *fnhe, *oldest = NULL;
                                           ^~~~~~
   net/ipv4/route.c:587:2: note: Loop condition is true.  Entering loop body
           for (fnhe_p = &hash->chain; ; fnhe_p = &fnhe->fnhe_next) {
           ^
   net/ipv4/route.c:588:10: note: Assuming the condition is false
                   fnhe = rcu_dereference_protected(*fnhe_p,
                          ^
   include/linux/rcupdate.h:588:2: note: expanded from macro 
'rcu_dereference_protected'
           __rcu_dereference_protected((p), (c), __rcu)
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/rcupdate.h:397:19: note: expanded from macro 
'__rcu_dereference_protected'
           RCU_LOCKDEP_WARN(!(c), "suspicious rcu_dereference_protected() 
usage"); \
           
~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/rcupdate.h:319:8: note: expanded from macro 'RCU_LOCKDEP_WARN'
                   if ((c) && debug_lockdep_rcu_enabled() && !__warned) {  \
                        ^
   net/ipv4/route.c:588:10: note: Left side of '&&' is false
                   fnhe = rcu_dereference_protected(*fnhe_p,
                          ^
   include/linux/rcupdate.h:588:2: note: expanded from macro 
'rcu_dereference_protected'
           __rcu_dereference_protected((p), (c), __rcu)
           ^
   include/linux/rcupdate.h:397:2: note: expanded from macro 
'__rcu_dereference_protected'
           RCU_LOCKDEP_WARN(!(c), "suspicious rcu_dereference_protected() 
usage"); \
           ^
   include/linux/rcupdate.h:319:11: note: expanded from macro 'RCU_LOCKDEP_WARN'
                   if ((c) && debug_lockdep_rcu_enabled() && !__warned) {  \
                           ^
   net/ipv4/route.c:588:10: note: Loop condition is false.  Exiting loop
                   fnhe = rcu_dereference_protected(*fnhe_p,
                          ^
   include/linux/rcupdate.h:588:2: note: expanded from macro 
'rcu_dereference_protected'
           __rcu_dereference_protected((p), (c), __rcu)

vim +/ap +768 drivers/ata/libata-acpi.c

11ef697b37e3c8 Kristen Carlson Accardi 2006-09-28  749  
7ea1fbc2a2449b Kristen Carlson Accardi 2006-09-28  750  /**
7ea1fbc2a2449b Kristen Carlson Accardi 2006-09-28  751   * ata_acpi_push_id - 
send Identify data to drive
3a32a8e96694a2 Tejun Heo               2007-05-05  752   * @dev: target ATA 
device
7ea1fbc2a2449b Kristen Carlson Accardi 2006-09-28  753   *
7ea1fbc2a2449b Kristen Carlson Accardi 2006-09-28  754   * _SDD ACPI object: 
for SATA mode only
7ea1fbc2a2449b Kristen Carlson Accardi 2006-09-28  755   * Must be after 
Identify (Packet) Device -- uses its data
7ea1fbc2a2449b Kristen Carlson Accardi 2006-09-28  756   * ATM this function 
never returns a failure.  It is an optional
7ea1fbc2a2449b Kristen Carlson Accardi 2006-09-28  757   * method and if it 
fails for whatever reason, we should still
7ea1fbc2a2449b Kristen Carlson Accardi 2006-09-28  758   * just keep going.
69b16a5f4c4f1d Tejun Heo               2007-05-15  759   *
69b16a5f4c4f1d Tejun Heo               2007-05-15  760   * LOCKING:
69b16a5f4c4f1d Tejun Heo               2007-05-15  761   * EH context.
69b16a5f4c4f1d Tejun Heo               2007-05-15  762   *
69b16a5f4c4f1d Tejun Heo               2007-05-15  763   * RETURNS:
f2406770a2f62a Tejun Heo               2009-11-18  764   * 0 on success, 
-ENOENT if _SDD doesn't exist, -errno on failure.
7ea1fbc2a2449b Kristen Carlson Accardi 2006-09-28  765   */
6746544c3b143c Tejun Heo               2007-05-15  766  static int 
ata_acpi_push_id(struct ata_device *dev)
7ea1fbc2a2449b Kristen Carlson Accardi 2006-09-28  767  {
9af5c9c97dc9d5 Tejun Heo               2007-08-06 @768          struct ata_port 
*ap = dev->link->ap;
7ea1fbc2a2449b Kristen Carlson Accardi 2006-09-28  769          acpi_status 
status;
7ea1fbc2a2449b Kristen Carlson Accardi 2006-09-28  770          struct 
acpi_object_list input;
7ea1fbc2a2449b Kristen Carlson Accardi 2006-09-28  771          union 
acpi_object in_params[1];
7ea1fbc2a2449b Kristen Carlson Accardi 2006-09-28  772  
a9a79dfec23956 Joe Perches             2011-04-15  773          
ata_dev_dbg(dev, "%s: ix = %d, port#: %d\n",
7f5e4e8d94b601 Harvey Harrison         2008-03-05  774                      
__func__, dev->devno, ap->port_no);
7ea1fbc2a2449b Kristen Carlson Accardi 2006-09-28  775  
7ea1fbc2a2449b Kristen Carlson Accardi 2006-09-28  776          /* Give the 
drive Identify data to the drive via the _SDD method */
7ea1fbc2a2449b Kristen Carlson Accardi 2006-09-28  777          /* _SDD: set up 
input parameters */
7ea1fbc2a2449b Kristen Carlson Accardi 2006-09-28  778          input.count = 1;
7ea1fbc2a2449b Kristen Carlson Accardi 2006-09-28  779          input.pointer = 
in_params;
7ea1fbc2a2449b Kristen Carlson Accardi 2006-09-28  780          
in_params[0].type = ACPI_TYPE_BUFFER;
3a32a8e96694a2 Tejun Heo               2007-05-05  781          
in_params[0].buffer.length = sizeof(dev->id[0]) * ATA_ID_WORDS;
3a32a8e96694a2 Tejun Heo               2007-05-05  782          
in_params[0].buffer.pointer = (u8 *)dev->id;
7ea1fbc2a2449b Kristen Carlson Accardi 2006-09-28  783          /* Output 
buffer: _SDD has no output */
7ea1fbc2a2449b Kristen Carlson Accardi 2006-09-28  784  
7ea1fbc2a2449b Kristen Carlson Accardi 2006-09-28  785          /* It's OK for 
_SDD to be missing too. */
3a32a8e96694a2 Tejun Heo               2007-05-05  786          
swap_buf_le16(dev->id, ATA_ID_WORDS);
30dcf76acc695c Matthew Garrett         2012-06-25  787          status = 
acpi_evaluate_object(ata_dev_acpi_handle(dev), "_SDD", &input,
30dcf76acc695c Matthew Garrett         2012-06-25  788                          
              NULL);
3a32a8e96694a2 Tejun Heo               2007-05-05  789          
swap_buf_le16(dev->id, ATA_ID_WORDS);
7ea1fbc2a2449b Kristen Carlson Accardi 2006-09-28  790  
f2406770a2f62a Tejun Heo               2009-11-18  791          if (status == 
AE_NOT_FOUND)
f2406770a2f62a Tejun Heo               2009-11-18  792                  return 
-ENOENT;
f2406770a2f62a Tejun Heo               2009-11-18  793  
f2406770a2f62a Tejun Heo               2009-11-18  794          if 
(ACPI_FAILURE(status)) {
a9a79dfec23956 Joe Perches             2011-04-15  795                  
ata_dev_warn(dev, "ACPI _SDD failed (AE 0x%x)\n", status);
f2406770a2f62a Tejun Heo               2009-11-18  796                  return 
-EIO;
f2406770a2f62a Tejun Heo               2009-11-18  797          }
7ea1fbc2a2449b Kristen Carlson Accardi 2006-09-28  798  
f2406770a2f62a Tejun Heo               2009-11-18  799          return 0;
6746544c3b143c Tejun Heo               2007-05-15  800  }
6746544c3b143c Tejun Heo               2007-05-15  801  

:::::: The code at line 768 was first introduced by commit
:::::: 9af5c9c97dc9d599281778864c72b385f0c63341 libata-link: introduce ata_link

:::::: TO: Tejun Heo <[email protected]>
:::::: CC: Jeff Garzik <[email protected]>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to