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]
