From: kernel test robot <lkp@intel.com>
To: <kernel@openeuler.org>, Xie XiuQi <xiexiuqi@huawei.com>
Cc: <oe-kbuild-all@lists.linux.dev>
Subject: [openeuler:openEuler-1.0-LTS 1521/21575] drivers/scsi/libsas/sas_expander.c:2079: undefined reference to `ata_dev_same_device'
Date: Mon, 29 Jan 2024 12:42:54 +0800 [thread overview]
Message-ID: <ZbcszvbokECwxmAF@rli9-mobl> (raw)
[-- Attachment #1: Type: text/plain, Size: 8802 bytes --]
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: e0207e2784d0f836e732608faf1a6966546a8eb3
commit: d856ec500c97835c591ffacc005f514509f1a931 [1521/21575] scsi: libsas: check if the same sata device when flutter
:::::: branch date: 13 hours ago
:::::: commit date: 4 years, 1 month ago
config: x86_64-randconfig-r113-20240125 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build): (attached as reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202401261034.TNcmiPjc-lkp@intel.com/
All errors (new ones prefixed by >>):
ld: warning: arch/x86/lib/csum-copy_64.o: missing .note.GNU-stack section implies executable stack
ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
ld: warning: arch/x86/lib/csum-copy_64.o: missing .note.GNU-stack section implies executable stack
ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
ld: warning: .tmp_vmlinux1 has a LOAD segment with RWX permissions
ld: drivers/scsi/libsas/sas_expander.o: in function `sas_rediscover_dev':
>> drivers/scsi/libsas/sas_expander.c:2079: undefined reference to `ata_dev_same_device'
vim +2079 drivers/scsi/libsas/sas_expander.c
354cf82980e244 Dan Williams 2012-01-12 2011
19252de6818ced Tom Peng 2009-07-17 2012 static int sas_rediscover_dev(struct domain_device *dev, int phy_id, bool last)
2908d778ab3e24 James Bottomley 2006-08-29 2013 {
2908d778ab3e24 James Bottomley 2006-08-29 2014 struct expander_device *ex = &dev->ex_dev;
2908d778ab3e24 James Bottomley 2006-08-29 2015 struct ex_phy *phy = &ex->ex_phy[phy_id];
d12b2bcfd3801c Jason Yan 2018-12-28 2016 struct asd_sas_port *port = dev->port;
d12b2bcfd3801c Jason Yan 2018-12-28 2017 struct asd_sas_phy *sas_phy;
aa9f8328fc5146 James Bottomley 2013-05-07 2018 enum sas_device_type type = SAS_PHY_UNUSED;
354cf82980e244 Dan Williams 2012-01-12 2019 u8 sas_addr[8];
2908d778ab3e24 James Bottomley 2006-08-29 2020 int res;
2908d778ab3e24 James Bottomley 2006-08-29 2021
b2311a287553af Jeff Skirvin 2012-06-21 2022 memset(sas_addr, 0, 8);
354cf82980e244 Dan Williams 2012-01-12 2023 res = sas_get_phy_attached_dev(dev, phy_id, sas_addr, &type);
2908d778ab3e24 James Bottomley 2006-08-29 2024 switch (res) {
2908d778ab3e24 James Bottomley 2006-08-29 2025 case SMP_RESP_NO_PHY:
2908d778ab3e24 James Bottomley 2006-08-29 2026 phy->phy_state = PHY_NOT_PRESENT;
19252de6818ced Tom Peng 2009-07-17 2027 sas_unregister_devs_sas_addr(dev, phy_id, last);
354cf82980e244 Dan Williams 2012-01-12 2028 return res;
2908d778ab3e24 James Bottomley 2006-08-29 2029 case SMP_RESP_PHY_VACANT:
2908d778ab3e24 James Bottomley 2006-08-29 2030 phy->phy_state = PHY_VACANT;
19252de6818ced Tom Peng 2009-07-17 2031 sas_unregister_devs_sas_addr(dev, phy_id, last);
354cf82980e244 Dan Williams 2012-01-12 2032 return res;
2908d778ab3e24 James Bottomley 2006-08-29 2033 case SMP_RESP_FUNC_ACC:
2908d778ab3e24 James Bottomley 2006-08-29 2034 break;
b2311a287553af Jeff Skirvin 2012-06-21 2035 case -ECOMM:
b2311a287553af Jeff Skirvin 2012-06-21 2036 break;
b2311a287553af Jeff Skirvin 2012-06-21 2037 default:
b2311a287553af Jeff Skirvin 2012-06-21 2038 return res;
2908d778ab3e24 James Bottomley 2006-08-29 2039 }
2908d778ab3e24 James Bottomley 2006-08-29 2040
b2311a287553af Jeff Skirvin 2012-06-21 2041 if ((SAS_ADDR(sas_addr) == 0) || (res == -ECOMM)) {
2908d778ab3e24 James Bottomley 2006-08-29 2042 phy->phy_state = PHY_EMPTY;
19252de6818ced Tom Peng 2009-07-17 2043 sas_unregister_devs_sas_addr(dev, phy_id, last);
354cf82980e244 Dan Williams 2012-01-12 2044 return res;
354cf82980e244 Dan Williams 2012-01-12 2045 } else if (SAS_ADDR(sas_addr) == SAS_ADDR(phy->attached_sas_addr) &&
354cf82980e244 Dan Williams 2012-01-12 2046 dev_type_flutter(type, phy->attached_dev_type)) {
354cf82980e244 Dan Williams 2012-01-12 2047 struct domain_device *ata_dev = sas_ex_to_ata(dev, phy_id);
354cf82980e244 Dan Williams 2012-01-12 2048 char *action = "";
354cf82980e244 Dan Williams 2012-01-12 2049
a01e70e570a72b James Bottomley 2006-09-06 2050 sas_ex_phy_discover(dev, phy_id);
354cf82980e244 Dan Williams 2012-01-12 2051
aa9f8328fc5146 James Bottomley 2013-05-07 2052 if (ata_dev && phy->attached_dev_type == SAS_SATA_PENDING)
354cf82980e244 Dan Williams 2012-01-12 2053 action = ", needs recovery";
354cf82980e244 Dan Williams 2012-01-12 2054 SAS_DPRINTK("ex %016llx phy 0x%x broadcast flutter%s\n",
354cf82980e244 Dan Williams 2012-01-12 2055 SAS_ADDR(dev->sas_addr), phy_id, action);
d856ec500c9783 Jason Yan 2018-12-28 2056
d856ec500c9783 Jason Yan 2018-12-28 2057 /* the phy attached address will be updated by sas_ex_phy_discover()
d856ec500c9783 Jason Yan 2018-12-28 2058 * and sometimes become abnormal
d856ec500c9783 Jason Yan 2018-12-28 2059 */
d856ec500c9783 Jason Yan 2018-12-28 2060 if (SAS_ADDR(phy->attached_sas_addr) != SAS_ADDR(sas_addr) ||
d856ec500c9783 Jason Yan 2018-12-28 2061 SAS_ADDR(phy->attached_sas_addr) == 0) {
d856ec500c9783 Jason Yan 2018-12-28 2062 /* if attached_sas_addr become abnormal, we must set the
d856ec500c9783 Jason Yan 2018-12-28 2063 * original address back so that the device can be unregistered
d856ec500c9783 Jason Yan 2018-12-28 2064 */
d856ec500c9783 Jason Yan 2018-12-28 2065 memcpy(phy->attached_sas_addr, sas_addr, SAS_ADDR_SIZE);
d856ec500c9783 Jason Yan 2018-12-28 2066 SAS_DPRINTK("phy address(%016llx) abnormal, origin:%016llx\n",
d856ec500c9783 Jason Yan 2018-12-28 2067 SAS_ADDR(phy->attached_sas_addr),
d856ec500c9783 Jason Yan 2018-12-28 2068 SAS_ADDR(sas_addr));
d856ec500c9783 Jason Yan 2018-12-28 2069 goto unregister;
d856ec500c9783 Jason Yan 2018-12-28 2070 }
d856ec500c9783 Jason Yan 2018-12-28 2071
d856ec500c9783 Jason Yan 2018-12-28 2072
d856ec500c9783 Jason Yan 2018-12-28 2073 if (ata_dev) {
d856ec500c9783 Jason Yan 2018-12-28 2074 struct ata_device *adev = sas_to_ata_dev(ata_dev);
d856ec500c9783 Jason Yan 2018-12-28 2075 unsigned int class = ata_dev->sata_dev.class;
d856ec500c9783 Jason Yan 2018-12-28 2076 u16 *id = ata_dev->sata_dev.id;
d856ec500c9783 Jason Yan 2018-12-28 2077
d856ec500c9783 Jason Yan 2018-12-28 2078 /* to see if the disk is replaced with another one */
d856ec500c9783 Jason Yan 2018-12-28 @2079 if (!ata_dev_same_device(adev, class, id))
d856ec500c9783 Jason Yan 2018-12-28 2080 goto unregister;
d856ec500c9783 Jason Yan 2018-12-28 2081 }
d856ec500c9783 Jason Yan 2018-12-28 2082
2908d778ab3e24 James Bottomley 2006-08-29 2083 return res;
2908d778ab3e24 James Bottomley 2006-08-29 2084 }
2908d778ab3e24 James Bottomley 2006-08-29 2085
d856ec500c9783 Jason Yan 2018-12-28 2086 unregister:
24b7c4b6e22de5 Jason Yan 2018-12-28 2087 /* we always have to delete the old device when we went here */
c666aae6919114 Dan Williams 2012-01-19 2088 SAS_DPRINTK("ex %016llx phy 0x%x replace %016llx\n",
c666aae6919114 Dan Williams 2012-01-19 2089 SAS_ADDR(dev->sas_addr), phy_id,
c666aae6919114 Dan Williams 2012-01-19 2090 SAS_ADDR(phy->attached_sas_addr));
c666aae6919114 Dan Williams 2012-01-19 2091 sas_unregister_devs_sas_addr(dev, phy_id, last);
c666aae6919114 Dan Williams 2012-01-19 2092
d12b2bcfd3801c Jason Yan 2018-12-28 2093 /* force the next revalidation find this phy and bring it up */
d12b2bcfd3801c Jason Yan 2018-12-28 2094 phy->phy_change_count = -1;
d12b2bcfd3801c Jason Yan 2018-12-28 2095 ex->ex_change_count = -1;
d12b2bcfd3801c Jason Yan 2018-12-28 2096 sas_phy = container_of(port->phy_list.next, struct asd_sas_phy,
d12b2bcfd3801c Jason Yan 2018-12-28 2097 port_phy_el);
d12b2bcfd3801c Jason Yan 2018-12-28 2098 port->ha->notify_port_event(sas_phy, PORTE_BROADCAST_RCVD);
d12b2bcfd3801c Jason Yan 2018-12-28 2099
d12b2bcfd3801c Jason Yan 2018-12-28 2100 return 0;
354cf82980e244 Dan Williams 2012-01-12 2101 }
354cf82980e244 Dan Williams 2012-01-12 2102
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 27744 bytes --]
[-- Attachment #3: reproduce --]
[-- Type: text/plain, Size: 675 bytes --]
reproduce:
# apt-get install sparse
# sparse version: v0.6.4-52-g1cf3d98c-dirty
git remote add openeuler https://gitee.com/openeuler/kernel.git
git fetch --no-tags openeuler openEuler-1.0-LTS
git checkout d856ec500c97835c591ffacc005f514509f1a931
# save the config file
mkdir build_dir && cp config build_dir/.config
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__ -fmax-errors=unlimited -fmax-warnings=unlimited' O=build_dir ARCH=x86_64 olddefconfig
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__ -fmax-errors=unlimited -fmax-warnings=unlimited' O=build_dir ARCH=x86_64 SHELL=/bin/bash
reply other threads:[~2024-01-29 4:43 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=ZbcszvbokECwxmAF@rli9-mobl \
--to=lkp@intel.com \
--cc=kernel@openeuler.org \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=xiexiuqi@huawei.com \
/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.