mailweb.openeuler.org
Manage this list

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview

Kernel

Threads by month
  • ----- 2025 -----
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2024 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2023 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2022 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2021 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2020 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2019 -----
  • December
kernel@openeuler.org

  • 23 participants
  • 18540 discussions
[PATCH openEuler-1.0-LTS v2] fs:/dcache.c: fix negative dentry limit not complete problem
by Long Li 29 Jan '24

29 Jan '24
hulk inclusion category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/I8WPQW CVE: NA -------------------------------- Restrictions of negative dentry can avoid softlock when too many dentry in memory, but restrictions before do not always take effect. For example, removing files which has been created would not enter retain_dentry(), because the dentry of file maybe has been added to lru list of superblock, it caused that fast_dput() reutrn true in last dput(). So, add restriction logic for the file which has been added to the lru list in fast_dput(), it prevents the negative dentry exceeding the limit when deleting existing file. Factor out negative dentry limit logic into limit_negative_dentry(), make the code more clean. Fixes: 7ba5d5d0e8b5 ("fs/dcache.c: avoid softlock since too many negative dentry") Signed-off-by: Long Li <leo.lilong(a)huawei.com> --- fs/dcache.c | 70 ++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 48 insertions(+), 22 deletions(-) diff --git a/fs/dcache.c b/fs/dcache.c index ef1641398eda..2a7eaac0c3ef 100644 --- a/fs/dcache.c +++ b/fs/dcache.c @@ -636,10 +636,36 @@ static inline struct dentry *lock_parent(struct dentry *dentry) return __lock_parent(dentry); } -static inline bool retain_dentry(struct dentry *dentry) +/* + * Return true if dentry is negative and exceed negative dentry limit. + */ +static inline bool limit_negative_dentry(struct dentry *dentry) { struct dentry *parent; + parent = dentry->d_parent; + if (unlikely(!parent)) + return false; + + WARN_ON((atomic_read(&parent->d_neg_dnum) < 0)); + if (!dentry->d_inode) { + if (!(dentry->d_flags & DCACHE_NEGATIVE_ACCOUNT)) { + unsigned int flags = READ_ONCE(dentry->d_flags); + + flags |= DCACHE_NEGATIVE_ACCOUNT; + WRITE_ONCE(dentry->d_flags, flags); + atomic_inc(&parent->d_neg_dnum); + } + + if (atomic_read(&parent->d_neg_dnum) >= NEG_DENTRY_LIMIT) + return true; + } + + return false; +} + +static inline bool retain_dentry(struct dentry *dentry) +{ WARN_ON(d_in_lookup(dentry)); /* Unreachable? Get rid of it */ @@ -654,27 +680,9 @@ static inline bool retain_dentry(struct dentry *dentry) return false; } - if (unlikely(!dentry->d_parent)) - goto noparent; - - parent = dentry->d_parent; - /* Return false if it's negative */ - WARN_ON((atomic_read(&parent->d_neg_dnum) < 0)); - if (!dentry->d_inode) { - if (!(dentry->d_flags & DCACHE_NEGATIVE_ACCOUNT)) { - unsigned flags = READ_ONCE(dentry->d_flags); - - flags |= DCACHE_NEGATIVE_ACCOUNT; - WRITE_ONCE(dentry->d_flags, flags); - atomic_inc(&parent->d_neg_dnum); - } - } - - if (!dentry->d_inode && - atomic_read(&parent->d_neg_dnum) >= NEG_DENTRY_LIMIT) + if (unlikely(limit_negative_dentry(dentry))) return false; -noparent: /* retain; LRU fodder */ dentry->d_lockref.count--; if (unlikely(!(dentry->d_flags & DCACHE_LRU_LIST))) @@ -808,8 +816,25 @@ static inline bool fast_dput(struct dentry *dentry) d_flags &= DCACHE_REFERENCED | DCACHE_LRU_LIST | DCACHE_DISCONNECTED; /* Nothing to do? Dropping the reference was all we needed? */ - if (d_flags == (DCACHE_REFERENCED | DCACHE_LRU_LIST) && !d_unhashed(dentry)) - return true; + if (d_flags == (DCACHE_REFERENCED | DCACHE_LRU_LIST) && !d_unhashed(dentry)) { + /* + * If the dentry is not negative dentry, return true directly, + * avoid holding dentry lock in the fast put path. + */ + if (dentry->d_inode) + return true; + /* + * If dentry is negative and need to be limitted, it maybe need + * to be killed, so shouldn't fast put and retain in memory. + */ + spin_lock(&dentry->d_lock); + if (likely(!limit_negative_dentry(dentry))) { + spin_unlock(&dentry->d_lock); + return true; + } + + goto dentry_locked; + } /* * Not the fast normal case? Get the lock. We've already decremented @@ -818,6 +843,7 @@ static inline bool fast_dput(struct dentry *dentry) */ spin_lock(&dentry->d_lock); +dentry_locked: /* * Did somebody else grab a reference to it in the meantime, and * we're no longer the last user after all? Alternatively, somebody -- 2.31.1
1 0
0 0
[openeuler:openEuler-1.0-LTS 6076/21575] net/ipv4/tcp_metrics.o: warning: objtool: tcp_metrics_nl_cmd_get() falls through to next function tcp_metrics_nl_dump()
by kernel test robot 29 Jan '24

29 Jan '24
First bad commit (maybe != root cause): tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS head: e0207e2784d0f836e732608faf1a6966546a8eb3 commit: d2bc250666ee233e0ee440ab9de9255dffa9af7f [6076/21575] objtool: Fix function fallthrough detection config: x86_64-randconfig-001-20240125 (attached as .config) compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18) 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(a)intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202401260200.WMl341pL-lkp@intel.com/ All warnings (new ones prefixed by >>): >> net/ipv4/tcp_metrics.o: warning: objtool: tcp_metrics_nl_cmd_get() falls through to next function tcp_metrics_nl_dump() >> net/ipv4/tcp_metrics.o: warning: objtool: tcp_metrics_nl_cmd_del() falls through to next function tcp_metrics_fill_info() -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:openEuler-1.0-LTS 1521/21575] drivers/scsi/libsas/sas_expander.c:2079: undefined reference to `ata_dev_same_device'
by kernel test robot 29 Jan '24

29 Jan '24
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(a)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
1 0
0 0
[openeuler:openEuler-1.0-LTS 1581/21575] drivers/pci/probe.c:2223:3: sparse: sparse: symbol 'skip_1620_bus_num' was not declared. Should it be static?
by kernel test robot 29 Jan '24

29 Jan '24
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS head: e0207e2784d0f836e732608faf1a6966546a8eb3 commit: da5e23f4c7511cbc1a199bb4d5d5477e191dc26c [1581/21575] Hi1620 CS FPGA PCIe Skip Bus :::::: branch date: 16 hours ago :::::: commit date: 4 years, 1 month ago config: x86_64-randconfig-121-20240125 (attached as .config) compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18) 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(a)intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202401261304.VfCawDjG-lkp@intel.com/ sparse warnings: (new ones prefixed by >>) >> drivers/pci/probe.c:2223:3: sparse: sparse: symbol 'skip_1620_bus_num' was not declared. Should it be static? drivers/pci/probe.c:448:21: sparse: sparse: self-comparison always evaluates to false vim +/skip_1620_bus_num +2223 drivers/pci/probe.c ^1da177e4c3f41 Linus Torvalds 2005-04-16 2214 da5e23f4c7511c Dong Bo 2018-01-30 2215 static int skip_bus_flag = 0; da5e23f4c7511c Dong Bo 2018-01-30 2216 #define HOSTBRIGE_1620_NUM 48 da5e23f4c7511c Dong Bo 2018-01-30 2217 struct skip_bus_num { da5e23f4c7511c Dong Bo 2018-01-30 2218 char module_name[32]; da5e23f4c7511c Dong Bo 2018-01-30 2219 char label[4]; da5e23f4c7511c Dong Bo 2018-01-30 2220 int bus_num; da5e23f4c7511c Dong Bo 2018-01-30 2221 int dev_num; da5e23f4c7511c Dong Bo 2018-01-30 2222 int skip; da5e23f4c7511c Dong Bo 2018-01-30 @2223 } skip_1620_bus_num[HOSTBRIGE_1620_NUM] = { da5e23f4c7511c Dong Bo 2018-01-30 2224 /*chip 0*/ da5e23f4c7511c Dong Bo 2018-01-30 2225 { da5e23f4c7511c Dong Bo 2018-01-30 2226 .module_name = "chip0_pcie", da5e23f4c7511c Dong Bo 2018-01-30 2227 .label = "a0", da5e23f4c7511c Dong Bo 2018-01-30 2228 .bus_num = 0, da5e23f4c7511c Dong Bo 2018-01-30 2229 .dev_num = 0xff, da5e23f4c7511c Dong Bo 2018-01-30 2230 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2231 }, da5e23f4c7511c Dong Bo 2018-01-30 2232 { da5e23f4c7511c Dong Bo 2018-01-30 2233 .module_name = "chip0_pcie_dma", da5e23f4c7511c Dong Bo 2018-01-30 2234 .label = "a1", da5e23f4c7511c Dong Bo 2018-01-30 2235 .bus_num = 0x7b, da5e23f4c7511c Dong Bo 2018-01-30 2236 .dev_num = 0xff, da5e23f4c7511c Dong Bo 2018-01-30 2237 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2238 }, da5e23f4c7511c Dong Bo 2018-01-30 2239 { da5e23f4c7511c Dong Bo 2018-01-30 2240 .module_name = "chip0_pcie_sdi", da5e23f4c7511c Dong Bo 2018-01-30 2241 .label = "a2", da5e23f4c7511c Dong Bo 2018-01-30 2242 .bus_num = 0x7b, da5e23f4c7511c Dong Bo 2018-01-30 2243 .dev_num = 0x1, da5e23f4c7511c Dong Bo 2018-01-30 2244 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2245 }, da5e23f4c7511c Dong Bo 2018-01-30 2246 { da5e23f4c7511c Dong Bo 2018-01-30 2247 .module_name = "chip0_USB", da5e23f4c7511c Dong Bo 2018-01-30 2248 .label = "a3", da5e23f4c7511c Dong Bo 2018-01-30 2249 .bus_num = 0x7a, da5e23f4c7511c Dong Bo 2018-01-30 2250 .dev_num = 0xff, da5e23f4c7511c Dong Bo 2018-01-30 2251 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2252 }, da5e23f4c7511c Dong Bo 2018-01-30 2253 { da5e23f4c7511c Dong Bo 2018-01-30 2254 .module_name = "chip0_hpre", da5e23f4c7511c Dong Bo 2018-01-30 2255 .label = "a4", da5e23f4c7511c Dong Bo 2018-01-30 2256 .bus_num = 0x78, da5e23f4c7511c Dong Bo 2018-01-30 2257 .dev_num = 0x0, da5e23f4c7511c Dong Bo 2018-01-30 2258 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2259 }, da5e23f4c7511c Dong Bo 2018-01-30 2260 { da5e23f4c7511c Dong Bo 2018-01-30 2261 .module_name = "chip0_rde", da5e23f4c7511c Dong Bo 2018-01-30 2262 .label = "a5", da5e23f4c7511c Dong Bo 2018-01-30 2263 .bus_num = 0x78, da5e23f4c7511c Dong Bo 2018-01-30 2264 .dev_num = 0x1, da5e23f4c7511c Dong Bo 2018-01-30 2265 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2266 }, da5e23f4c7511c Dong Bo 2018-01-30 2267 { da5e23f4c7511c Dong Bo 2018-01-30 2268 .module_name = "chip0_nic", da5e23f4c7511c Dong Bo 2018-01-30 2269 .label = "aa", da5e23f4c7511c Dong Bo 2018-01-30 2270 .bus_num = 0x7c, da5e23f4c7511c Dong Bo 2018-01-30 2271 .dev_num = 0xff, da5e23f4c7511c Dong Bo 2018-01-30 2272 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2273 }, da5e23f4c7511c Dong Bo 2018-01-30 2274 { da5e23f4c7511c Dong Bo 2018-01-30 2275 .module_name = "chip0_sas", da5e23f4c7511c Dong Bo 2018-01-30 2276 .label = "a6", da5e23f4c7511c Dong Bo 2018-01-30 2277 .bus_num = 0x74, da5e23f4c7511c Dong Bo 2018-01-30 2278 .dev_num = 0x02, da5e23f4c7511c Dong Bo 2018-01-30 2279 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2280 }, da5e23f4c7511c Dong Bo 2018-01-30 2281 { da5e23f4c7511c Dong Bo 2018-01-30 2282 .module_name = "chip0_sas1", da5e23f4c7511c Dong Bo 2018-01-30 2283 .label = "ab", da5e23f4c7511c Dong Bo 2018-01-30 2284 .bus_num = 0x74, da5e23f4c7511c Dong Bo 2018-01-30 2285 .dev_num = 0x04, da5e23f4c7511c Dong Bo 2018-01-30 2286 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2287 }, da5e23f4c7511c Dong Bo 2018-01-30 2288 { da5e23f4c7511c Dong Bo 2018-01-30 2289 .module_name = "chip0_sata", da5e23f4c7511c Dong Bo 2018-01-30 2290 .label = "a7", da5e23f4c7511c Dong Bo 2018-01-30 2291 .bus_num = 0x74, da5e23f4c7511c Dong Bo 2018-01-30 2292 .dev_num = 0x03, da5e23f4c7511c Dong Bo 2018-01-30 2293 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2294 }, da5e23f4c7511c Dong Bo 2018-01-30 2295 { da5e23f4c7511c Dong Bo 2018-01-30 2296 .module_name = "chip0_zip", da5e23f4c7511c Dong Bo 2018-01-30 2297 .label = "a8", da5e23f4c7511c Dong Bo 2018-01-30 2298 .bus_num = 0x74, da5e23f4c7511c Dong Bo 2018-01-30 2299 .dev_num = 0x0, da5e23f4c7511c Dong Bo 2018-01-30 2300 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2301 }, da5e23f4c7511c Dong Bo 2018-01-30 2302 { da5e23f4c7511c Dong Bo 2018-01-30 2303 .module_name = "chip0_sec", da5e23f4c7511c Dong Bo 2018-01-30 2304 .label = "a9", da5e23f4c7511c Dong Bo 2018-01-30 2305 .bus_num = 0x74, da5e23f4c7511c Dong Bo 2018-01-30 2306 .dev_num = 0x1, da5e23f4c7511c Dong Bo 2018-01-30 2307 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2308 }, da5e23f4c7511c Dong Bo 2018-01-30 2309 /*chip 1*/ da5e23f4c7511c Dong Bo 2018-01-30 2310 { da5e23f4c7511c Dong Bo 2018-01-30 2311 .module_name = "chip1_pcie", da5e23f4c7511c Dong Bo 2018-01-30 2312 .label = "b0", da5e23f4c7511c Dong Bo 2018-01-30 2313 .bus_num = 0x80, da5e23f4c7511c Dong Bo 2018-01-30 2314 .dev_num = 0xff, da5e23f4c7511c Dong Bo 2018-01-30 2315 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2316 }, da5e23f4c7511c Dong Bo 2018-01-30 2317 { da5e23f4c7511c Dong Bo 2018-01-30 2318 .module_name = "chip1_pcie_dma", da5e23f4c7511c Dong Bo 2018-01-30 2319 .label = "b1", da5e23f4c7511c Dong Bo 2018-01-30 2320 .bus_num = 0xbb, da5e23f4c7511c Dong Bo 2018-01-30 2321 .dev_num = 0xff, da5e23f4c7511c Dong Bo 2018-01-30 2322 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2323 }, da5e23f4c7511c Dong Bo 2018-01-30 2324 { da5e23f4c7511c Dong Bo 2018-01-30 2325 .module_name = "chip1_pcie_sdi", da5e23f4c7511c Dong Bo 2018-01-30 2326 .label = "b2", da5e23f4c7511c Dong Bo 2018-01-30 2327 .bus_num = 0xbb, da5e23f4c7511c Dong Bo 2018-01-30 2328 .dev_num = 0x1, da5e23f4c7511c Dong Bo 2018-01-30 2329 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2330 }, da5e23f4c7511c Dong Bo 2018-01-30 2331 { da5e23f4c7511c Dong Bo 2018-01-30 2332 .module_name = "chip1_USB", da5e23f4c7511c Dong Bo 2018-01-30 2333 .label = "b3", da5e23f4c7511c Dong Bo 2018-01-30 2334 .bus_num = 0xba, da5e23f4c7511c Dong Bo 2018-01-30 2335 .dev_num = 0xff, da5e23f4c7511c Dong Bo 2018-01-30 2336 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2337 }, da5e23f4c7511c Dong Bo 2018-01-30 2338 { da5e23f4c7511c Dong Bo 2018-01-30 2339 .module_name = "chip1_hpre", da5e23f4c7511c Dong Bo 2018-01-30 2340 .label = "b4", da5e23f4c7511c Dong Bo 2018-01-30 2341 .bus_num = 0xb8, da5e23f4c7511c Dong Bo 2018-01-30 2342 .dev_num = 0x0, da5e23f4c7511c Dong Bo 2018-01-30 2343 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2344 }, da5e23f4c7511c Dong Bo 2018-01-30 2345 { da5e23f4c7511c Dong Bo 2018-01-30 2346 .module_name = "chip1_rde", da5e23f4c7511c Dong Bo 2018-01-30 2347 .label = "b5", da5e23f4c7511c Dong Bo 2018-01-30 2348 .bus_num = 0xb8, da5e23f4c7511c Dong Bo 2018-01-30 2349 .dev_num = 0x1, da5e23f4c7511c Dong Bo 2018-01-30 2350 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2351 }, da5e23f4c7511c Dong Bo 2018-01-30 2352 { da5e23f4c7511c Dong Bo 2018-01-30 2353 .module_name = "chip1_nic", da5e23f4c7511c Dong Bo 2018-01-30 2354 .label = "ba", da5e23f4c7511c Dong Bo 2018-01-30 2355 .bus_num = 0xbc, da5e23f4c7511c Dong Bo 2018-01-30 2356 .dev_num = 0xff, da5e23f4c7511c Dong Bo 2018-01-30 2357 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2358 }, da5e23f4c7511c Dong Bo 2018-01-30 2359 { da5e23f4c7511c Dong Bo 2018-01-30 2360 .module_name = "chip1_sas", da5e23f4c7511c Dong Bo 2018-01-30 2361 .label = "b6", da5e23f4c7511c Dong Bo 2018-01-30 2362 .bus_num = 0xb4, da5e23f4c7511c Dong Bo 2018-01-30 2363 .dev_num = 0x02, da5e23f4c7511c Dong Bo 2018-01-30 2364 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2365 }, da5e23f4c7511c Dong Bo 2018-01-30 2366 { da5e23f4c7511c Dong Bo 2018-01-30 2367 .module_name = "chip1_sas1", da5e23f4c7511c Dong Bo 2018-01-30 2368 .label = "bb", da5e23f4c7511c Dong Bo 2018-01-30 2369 .bus_num = 0xb4, da5e23f4c7511c Dong Bo 2018-01-30 2370 .dev_num = 0x04, da5e23f4c7511c Dong Bo 2018-01-30 2371 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2372 }, da5e23f4c7511c Dong Bo 2018-01-30 2373 { da5e23f4c7511c Dong Bo 2018-01-30 2374 .module_name = "chip1_sata", da5e23f4c7511c Dong Bo 2018-01-30 2375 .label = "b7", da5e23f4c7511c Dong Bo 2018-01-30 2376 .bus_num = 0xb4, da5e23f4c7511c Dong Bo 2018-01-30 2377 .dev_num = 0x03, da5e23f4c7511c Dong Bo 2018-01-30 2378 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2379 }, da5e23f4c7511c Dong Bo 2018-01-30 2380 { da5e23f4c7511c Dong Bo 2018-01-30 2381 .module_name = "chip1_zip", da5e23f4c7511c Dong Bo 2018-01-30 2382 .label = "b8", da5e23f4c7511c Dong Bo 2018-01-30 2383 .bus_num = 0xb4, da5e23f4c7511c Dong Bo 2018-01-30 2384 .dev_num = 0x0, da5e23f4c7511c Dong Bo 2018-01-30 2385 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2386 }, da5e23f4c7511c Dong Bo 2018-01-30 2387 { da5e23f4c7511c Dong Bo 2018-01-30 2388 .module_name = "chip0_sec", da5e23f4c7511c Dong Bo 2018-01-30 2389 .label = "b9", da5e23f4c7511c Dong Bo 2018-01-30 2390 .bus_num = 0xb4, da5e23f4c7511c Dong Bo 2018-01-30 2391 .dev_num = 0x1, da5e23f4c7511c Dong Bo 2018-01-30 2392 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2393 }, da5e23f4c7511c Dong Bo 2018-01-30 2394 da5e23f4c7511c Dong Bo 2018-01-30 2395 /*chip 2*/ da5e23f4c7511c Dong Bo 2018-01-30 2396 { da5e23f4c7511c Dong Bo 2018-01-30 2397 .module_name = "chip2_pcie", da5e23f4c7511c Dong Bo 2018-01-30 2398 .label = "c0", da5e23f4c7511c Dong Bo 2018-01-30 2399 .bus_num = 0xc0, da5e23f4c7511c Dong Bo 2018-01-30 2400 .dev_num = 0xff, da5e23f4c7511c Dong Bo 2018-01-30 2401 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2402 }, da5e23f4c7511c Dong Bo 2018-01-30 2403 { da5e23f4c7511c Dong Bo 2018-01-30 2404 .module_name = "chip2_pcie_dma", da5e23f4c7511c Dong Bo 2018-01-30 2405 .label = "c1", da5e23f4c7511c Dong Bo 2018-01-30 2406 .bus_num = 0xdb, da5e23f4c7511c Dong Bo 2018-01-30 2407 .dev_num = 0xff, da5e23f4c7511c Dong Bo 2018-01-30 2408 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2409 }, da5e23f4c7511c Dong Bo 2018-01-30 2410 { da5e23f4c7511c Dong Bo 2018-01-30 2411 .module_name = "chip2_pcie_sdi", da5e23f4c7511c Dong Bo 2018-01-30 2412 .label = "c2", da5e23f4c7511c Dong Bo 2018-01-30 2413 .bus_num = 0xdb, da5e23f4c7511c Dong Bo 2018-01-30 2414 .dev_num = 0x1, da5e23f4c7511c Dong Bo 2018-01-30 2415 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2416 }, da5e23f4c7511c Dong Bo 2018-01-30 2417 { da5e23f4c7511c Dong Bo 2018-01-30 2418 .module_name = "chip2_USB", da5e23f4c7511c Dong Bo 2018-01-30 2419 .label = "c3", da5e23f4c7511c Dong Bo 2018-01-30 2420 .bus_num = 0xda, da5e23f4c7511c Dong Bo 2018-01-30 2421 .dev_num = 0xff, da5e23f4c7511c Dong Bo 2018-01-30 2422 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2423 }, da5e23f4c7511c Dong Bo 2018-01-30 2424 { da5e23f4c7511c Dong Bo 2018-01-30 2425 .module_name = "chip2_hpre", da5e23f4c7511c Dong Bo 2018-01-30 2426 .label = "c4", da5e23f4c7511c Dong Bo 2018-01-30 2427 .bus_num = 0xd8, da5e23f4c7511c Dong Bo 2018-01-30 2428 .dev_num = 0x0, da5e23f4c7511c Dong Bo 2018-01-30 2429 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2430 }, da5e23f4c7511c Dong Bo 2018-01-30 2431 { da5e23f4c7511c Dong Bo 2018-01-30 2432 .module_name = "chip2_rde", da5e23f4c7511c Dong Bo 2018-01-30 2433 .label = "c5", da5e23f4c7511c Dong Bo 2018-01-30 2434 .bus_num = 0xd8, da5e23f4c7511c Dong Bo 2018-01-30 2435 .dev_num = 0x1, da5e23f4c7511c Dong Bo 2018-01-30 2436 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2437 }, da5e23f4c7511c Dong Bo 2018-01-30 2438 { da5e23f4c7511c Dong Bo 2018-01-30 2439 .module_name = "chip2_nic", da5e23f4c7511c Dong Bo 2018-01-30 2440 .label = "ca", da5e23f4c7511c Dong Bo 2018-01-30 2441 .bus_num = 0xdc, da5e23f4c7511c Dong Bo 2018-01-30 2442 .dev_num = 0xff, da5e23f4c7511c Dong Bo 2018-01-30 2443 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2444 }, da5e23f4c7511c Dong Bo 2018-01-30 2445 { da5e23f4c7511c Dong Bo 2018-01-30 2446 .module_name = "chip2_sas", da5e23f4c7511c Dong Bo 2018-01-30 2447 .label = "c6", da5e23f4c7511c Dong Bo 2018-01-30 2448 .bus_num = 0xd4, da5e23f4c7511c Dong Bo 2018-01-30 2449 .dev_num = 0x02, da5e23f4c7511c Dong Bo 2018-01-30 2450 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2451 }, da5e23f4c7511c Dong Bo 2018-01-30 2452 { da5e23f4c7511c Dong Bo 2018-01-30 2453 .module_name = "chip2_sas1", da5e23f4c7511c Dong Bo 2018-01-30 2454 .label = "cb", da5e23f4c7511c Dong Bo 2018-01-30 2455 .bus_num = 0xd4, da5e23f4c7511c Dong Bo 2018-01-30 2456 .dev_num = 0x04, da5e23f4c7511c Dong Bo 2018-01-30 2457 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2458 }, da5e23f4c7511c Dong Bo 2018-01-30 2459 { da5e23f4c7511c Dong Bo 2018-01-30 2460 .module_name = "chip2_sata", da5e23f4c7511c Dong Bo 2018-01-30 2461 .label = "c7", da5e23f4c7511c Dong Bo 2018-01-30 2462 .bus_num = 0xd4, da5e23f4c7511c Dong Bo 2018-01-30 2463 .dev_num = 0x03, da5e23f4c7511c Dong Bo 2018-01-30 2464 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2465 }, da5e23f4c7511c Dong Bo 2018-01-30 2466 { da5e23f4c7511c Dong Bo 2018-01-30 2467 .module_name = "chip2_zip", da5e23f4c7511c Dong Bo 2018-01-30 2468 .label = "c8", da5e23f4c7511c Dong Bo 2018-01-30 2469 .bus_num = 0xd4, da5e23f4c7511c Dong Bo 2018-01-30 2470 .dev_num = 0x0, da5e23f4c7511c Dong Bo 2018-01-30 2471 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2472 }, da5e23f4c7511c Dong Bo 2018-01-30 2473 { da5e23f4c7511c Dong Bo 2018-01-30 2474 .module_name = "chip2_sec", da5e23f4c7511c Dong Bo 2018-01-30 2475 .label = "c9", da5e23f4c7511c Dong Bo 2018-01-30 2476 .bus_num = 0xd4, da5e23f4c7511c Dong Bo 2018-01-30 2477 .dev_num = 0x1, da5e23f4c7511c Dong Bo 2018-01-30 2478 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2479 }, da5e23f4c7511c Dong Bo 2018-01-30 2480 da5e23f4c7511c Dong Bo 2018-01-30 2481 /*chip 3*/ da5e23f4c7511c Dong Bo 2018-01-30 2482 { da5e23f4c7511c Dong Bo 2018-01-30 2483 .module_name = "chip3_pcie", da5e23f4c7511c Dong Bo 2018-01-30 2484 .label = "d0", da5e23f4c7511c Dong Bo 2018-01-30 2485 .bus_num = 0xe0, da5e23f4c7511c Dong Bo 2018-01-30 2486 .dev_num = 0xff, da5e23f4c7511c Dong Bo 2018-01-30 2487 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2488 }, da5e23f4c7511c Dong Bo 2018-01-30 2489 { da5e23f4c7511c Dong Bo 2018-01-30 2490 .module_name = "chip3_pcie_dma", da5e23f4c7511c Dong Bo 2018-01-30 2491 .label = "d1", da5e23f4c7511c Dong Bo 2018-01-30 2492 .bus_num = 0xfb, da5e23f4c7511c Dong Bo 2018-01-30 2493 .dev_num = 0xff, da5e23f4c7511c Dong Bo 2018-01-30 2494 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2495 }, da5e23f4c7511c Dong Bo 2018-01-30 2496 { da5e23f4c7511c Dong Bo 2018-01-30 2497 .module_name = "chip3_pcie_sdi", da5e23f4c7511c Dong Bo 2018-01-30 2498 .label = "d2", da5e23f4c7511c Dong Bo 2018-01-30 2499 .bus_num = 0xfb, da5e23f4c7511c Dong Bo 2018-01-30 2500 .dev_num = 0x1, da5e23f4c7511c Dong Bo 2018-01-30 2501 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2502 }, da5e23f4c7511c Dong Bo 2018-01-30 2503 { da5e23f4c7511c Dong Bo 2018-01-30 2504 .module_name = "chip3_USB", da5e23f4c7511c Dong Bo 2018-01-30 2505 .label = "d3", da5e23f4c7511c Dong Bo 2018-01-30 2506 .bus_num = 0xfa, da5e23f4c7511c Dong Bo 2018-01-30 2507 .dev_num = 0xff, da5e23f4c7511c Dong Bo 2018-01-30 2508 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2509 }, da5e23f4c7511c Dong Bo 2018-01-30 2510 { da5e23f4c7511c Dong Bo 2018-01-30 2511 .module_name = "chip3_hpre", da5e23f4c7511c Dong Bo 2018-01-30 2512 .label = "d4", da5e23f4c7511c Dong Bo 2018-01-30 2513 .bus_num = 0xf8, da5e23f4c7511c Dong Bo 2018-01-30 2514 .dev_num = 0x0, da5e23f4c7511c Dong Bo 2018-01-30 2515 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2516 }, da5e23f4c7511c Dong Bo 2018-01-30 2517 { da5e23f4c7511c Dong Bo 2018-01-30 2518 .module_name = "chip3_rde", da5e23f4c7511c Dong Bo 2018-01-30 2519 .label = "d5", da5e23f4c7511c Dong Bo 2018-01-30 2520 .bus_num = 0xf8, da5e23f4c7511c Dong Bo 2018-01-30 2521 .dev_num = 0x1, da5e23f4c7511c Dong Bo 2018-01-30 2522 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2523 }, da5e23f4c7511c Dong Bo 2018-01-30 2524 { da5e23f4c7511c Dong Bo 2018-01-30 2525 .module_name = "chip3_nic", da5e23f4c7511c Dong Bo 2018-01-30 2526 .label = "da", da5e23f4c7511c Dong Bo 2018-01-30 2527 .bus_num = 0xfc, da5e23f4c7511c Dong Bo 2018-01-30 2528 .dev_num = 0xff, da5e23f4c7511c Dong Bo 2018-01-30 2529 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2530 }, da5e23f4c7511c Dong Bo 2018-01-30 2531 { da5e23f4c7511c Dong Bo 2018-01-30 2532 .module_name = "chip3_sas", da5e23f4c7511c Dong Bo 2018-01-30 2533 .label = "d6", da5e23f4c7511c Dong Bo 2018-01-30 2534 .bus_num = 0xf4, da5e23f4c7511c Dong Bo 2018-01-30 2535 .dev_num = 0x02, da5e23f4c7511c Dong Bo 2018-01-30 2536 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2537 }, da5e23f4c7511c Dong Bo 2018-01-30 2538 { da5e23f4c7511c Dong Bo 2018-01-30 2539 .module_name = "chip3_sas1", da5e23f4c7511c Dong Bo 2018-01-30 2540 .label = "db", da5e23f4c7511c Dong Bo 2018-01-30 2541 .bus_num = 0xf4, da5e23f4c7511c Dong Bo 2018-01-30 2542 .dev_num = 0x04, da5e23f4c7511c Dong Bo 2018-01-30 2543 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2544 }, da5e23f4c7511c Dong Bo 2018-01-30 2545 { da5e23f4c7511c Dong Bo 2018-01-30 2546 .module_name = "chip3_sata", da5e23f4c7511c Dong Bo 2018-01-30 2547 .label = "d7", da5e23f4c7511c Dong Bo 2018-01-30 2548 .bus_num = 0xf4, da5e23f4c7511c Dong Bo 2018-01-30 2549 .dev_num = 0x03, da5e23f4c7511c Dong Bo 2018-01-30 2550 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2551 }, da5e23f4c7511c Dong Bo 2018-01-30 2552 { da5e23f4c7511c Dong Bo 2018-01-30 2553 .module_name = "chip3_zip", da5e23f4c7511c Dong Bo 2018-01-30 2554 .label = "d8", da5e23f4c7511c Dong Bo 2018-01-30 2555 .bus_num = 0xf4, da5e23f4c7511c Dong Bo 2018-01-30 2556 .dev_num = 0x0, da5e23f4c7511c Dong Bo 2018-01-30 2557 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2558 }, da5e23f4c7511c Dong Bo 2018-01-30 2559 { da5e23f4c7511c Dong Bo 2018-01-30 2560 .module_name = "chip3_sec", da5e23f4c7511c Dong Bo 2018-01-30 2561 .label = "d9", da5e23f4c7511c Dong Bo 2018-01-30 2562 .bus_num = 0xf4, da5e23f4c7511c Dong Bo 2018-01-30 2563 .dev_num = 0x1, da5e23f4c7511c Dong Bo 2018-01-30 2564 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2565 }, da5e23f4c7511c Dong Bo 2018-01-30 2566 }; da5e23f4c7511c Dong Bo 2018-01-30 2567 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:OLK-5.10 12086/30000] drivers/rtc/rtc-mc146818-lib.c:213 mc146818_set_time() error: uninitialized symbol 'save_freq_select'.
by kernel test robot 29 Jan '24

29 Jan '24
tree: https://gitee.com/openeuler/kernel.git OLK-5.10 head: bb2503a5fcdf7f51d403ab34440c497acef3b4e7 commit: 31dc30955fcffeb32c96420b91e3c05e2f4614eb [12086/30000] rtc: Fix set RTC time delay 500ms on some Zhaoxin SOCs :::::: branch date: 5 hours ago :::::: commit date: 1 year, 11 months ago config: x86_64-randconfig-161-20240124 (attached as .config) compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18) 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(a)intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202401262043.WarePplV-lkp@intel.com/ smatch warnings: drivers/rtc/rtc-mc146818-lib.c:213 mc146818_set_time() error: uninitialized symbol 'save_freq_select'. vim +/save_freq_select +213 drivers/rtc/rtc-mc146818-lib.c d6faca40f40b62 Arnd Bergmann 2016-06-01 210 d6faca40f40b62 Arnd Bergmann 2016-06-01 211 CMOS_WRITE(save_control, RTC_CONTROL); 31dc30955fcffe LeoLiu-oc 2022-02-23 212 if (follow_mc146818_divider_reset()) d6faca40f40b62 Arnd Bergmann 2016-06-01 @213 CMOS_WRITE(save_freq_select, RTC_FREQ_SELECT); :::::: The code at line 213 was first introduced by commit :::::: d6faca40f40b62aca8ea8c29289c7bf7456172bb rtc: move mc146818 helper functions out-of-line :::::: TO: Arnd Bergmann <arnd(a)arndb.de> :::::: CC: Alexandre Belloni <alexandre.belloni(a)free-electrons.com> -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:openEuler-1.0-LTS 3208/21577] kernel/trace/bpf_trace.c:1273:5: sparse: sparse: symbol 'bpf_event_notify' was not declared. Should it be static?
by kernel test robot 29 Jan '24

29 Jan '24
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS head: 992b5fc139d3aa14b25613b06adee4bb9c110b28 commit: 00d0f1b149a5201c072e868915c76f909c11c38f [3208/21577] bpf: support raw tracepoints in modules :::::: branch date: 7 hours ago :::::: commit date: 4 years, 1 month ago config: x86_64-randconfig-123-20240125 (attached as .config) compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18) 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(a)intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202401262122.kgKexAjZ-lkp@intel.com/ sparse warnings: (new ones prefixed by >>) >> kernel/trace/bpf_trace.c:1273:5: sparse: sparse: symbol 'bpf_event_notify' was not declared. Should it be static? >> kernel/trace/bpf_trace.c:1312:12: sparse: sparse: symbol 'bpf_event_init' was not declared. Should it be static? kernel/trace/bpf_trace.c:173:14: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got void *unsafe_ptr @@ kernel/trace/bpf_trace.c:173:14: sparse: expected void const volatile [noderef] __user *ptr kernel/trace/bpf_trace.c:173:14: sparse: got void *unsafe_ptr kernel/trace/bpf_trace.c:1273:5: warning: no previous prototype for function 'bpf_event_notify' [-Wmissing-prototypes] 1273 | int bpf_event_notify(struct notifier_block *nb, unsigned long op, void *module) | ^ kernel/trace/bpf_trace.c:1273:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 1273 | int bpf_event_notify(struct notifier_block *nb, unsigned long op, void *module) | ^ | static kernel/trace/bpf_trace.c:1312:12: warning: no previous prototype for function 'bpf_event_init' [-Wmissing-prototypes] 1312 | int __init bpf_event_init(void) | ^ kernel/trace/bpf_trace.c:1312:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 1312 | int __init bpf_event_init(void) | ^ | static 2 warnings generated. vim +/bpf_event_notify +1273 kernel/trace/bpf_trace.c 00d0f1b149a520 Matt Mullins 2019-02-19 1271 00d0f1b149a520 Matt Mullins 2019-02-19 1272 #ifdef CONFIG_MODULES 00d0f1b149a520 Matt Mullins 2019-02-19 @1273 int bpf_event_notify(struct notifier_block *nb, unsigned long op, void *module) 00d0f1b149a520 Matt Mullins 2019-02-19 1274 { 00d0f1b149a520 Matt Mullins 2019-02-19 1275 struct bpf_trace_module *btm, *tmp; 00d0f1b149a520 Matt Mullins 2019-02-19 1276 struct module *mod = module; 00d0f1b149a520 Matt Mullins 2019-02-19 1277 00d0f1b149a520 Matt Mullins 2019-02-19 1278 if (mod->num_bpf_raw_events == 0 || 00d0f1b149a520 Matt Mullins 2019-02-19 1279 (op != MODULE_STATE_COMING && op != MODULE_STATE_GOING)) 00d0f1b149a520 Matt Mullins 2019-02-19 1280 return 0; 00d0f1b149a520 Matt Mullins 2019-02-19 1281 00d0f1b149a520 Matt Mullins 2019-02-19 1282 mutex_lock(&bpf_module_mutex); 00d0f1b149a520 Matt Mullins 2019-02-19 1283 00d0f1b149a520 Matt Mullins 2019-02-19 1284 switch (op) { 00d0f1b149a520 Matt Mullins 2019-02-19 1285 case MODULE_STATE_COMING: 00d0f1b149a520 Matt Mullins 2019-02-19 1286 btm = kzalloc(sizeof(*btm), GFP_KERNEL); 00d0f1b149a520 Matt Mullins 2019-02-19 1287 if (btm) { 00d0f1b149a520 Matt Mullins 2019-02-19 1288 btm->module = module; 00d0f1b149a520 Matt Mullins 2019-02-19 1289 list_add(&btm->list, &bpf_trace_modules); 00d0f1b149a520 Matt Mullins 2019-02-19 1290 } 00d0f1b149a520 Matt Mullins 2019-02-19 1291 break; 00d0f1b149a520 Matt Mullins 2019-02-19 1292 case MODULE_STATE_GOING: 00d0f1b149a520 Matt Mullins 2019-02-19 1293 list_for_each_entry_safe(btm, tmp, &bpf_trace_modules, list) { 00d0f1b149a520 Matt Mullins 2019-02-19 1294 if (btm->module == module) { 00d0f1b149a520 Matt Mullins 2019-02-19 1295 list_del(&btm->list); 00d0f1b149a520 Matt Mullins 2019-02-19 1296 kfree(btm); 00d0f1b149a520 Matt Mullins 2019-02-19 1297 break; 00d0f1b149a520 Matt Mullins 2019-02-19 1298 } 00d0f1b149a520 Matt Mullins 2019-02-19 1299 } 00d0f1b149a520 Matt Mullins 2019-02-19 1300 break; 00d0f1b149a520 Matt Mullins 2019-02-19 1301 } 00d0f1b149a520 Matt Mullins 2019-02-19 1302 00d0f1b149a520 Matt Mullins 2019-02-19 1303 mutex_unlock(&bpf_module_mutex); 00d0f1b149a520 Matt Mullins 2019-02-19 1304 00d0f1b149a520 Matt Mullins 2019-02-19 1305 return 0; 00d0f1b149a520 Matt Mullins 2019-02-19 1306 } 00d0f1b149a520 Matt Mullins 2019-02-19 1307 00d0f1b149a520 Matt Mullins 2019-02-19 1308 static struct notifier_block bpf_module_nb = { 00d0f1b149a520 Matt Mullins 2019-02-19 1309 .notifier_call = bpf_event_notify, 00d0f1b149a520 Matt Mullins 2019-02-19 1310 }; 00d0f1b149a520 Matt Mullins 2019-02-19 1311 00d0f1b149a520 Matt Mullins 2019-02-19 @1312 int __init bpf_event_init(void) 00d0f1b149a520 Matt Mullins 2019-02-19 1313 { 00d0f1b149a520 Matt Mullins 2019-02-19 1314 register_module_notifier(&bpf_module_nb); 00d0f1b149a520 Matt Mullins 2019-02-19 1315 return 0; 00d0f1b149a520 Matt Mullins 2019-02-19 1316 } 00d0f1b149a520 Matt Mullins 2019-02-19 1317 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:openEuler-1.0-LTS 4369/21577] drivers/scsi/sd.c:1222:32: sparse: sparse: incorrect type in return expression (different base types)
by kernel test robot 29 Jan '24

29 Jan '24
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS head: 992b5fc139d3aa14b25613b06adee4bb9c110b28 commit: d597314e1e561e653a9dbeafec69f20d6b372af1 [4369/21577] scsi: sd: Protect against READ(6) or WRITE(6) with zero block transfer length :::::: branch date: 7 hours ago :::::: commit date: 4 years, 1 month ago config: x86_64-randconfig-121-20240125 (attached as .config) compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18) 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(a)intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202401262223.5mM2ZI39-lkp@intel.com/ sparse warnings: (new ones prefixed by >>) >> drivers/scsi/sd.c:1222:32: sparse: sparse: incorrect type in return expression (different base types) @@ expected int @@ got restricted blk_status_t [usertype] @@ drivers/scsi/sd.c:1222:32: sparse: expected int drivers/scsi/sd.c:1222:32: sparse: got restricted blk_status_t [usertype] In file included from drivers/scsi/sd.c:46: In file included from include/linux/blkdev.h:16: include/linux/pagemap.h:401:21: warning: cast from 'int (*)(struct file *, struct page *)' to 'filler_t *' (aka 'int (*)(void *, struct page *)') converts to incompatible function type [-Wcast-function-type-strict] 401 | filler_t *filler = (filler_t *)mapping->a_ops->readpage; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. vim +1222 drivers/scsi/sd.c 90467c294aba7f FUJITA Tomonori 2010-07-03 1019 87949eee7e1547 Christoph Hellwig 2014-06-28 1020 static int sd_setup_read_write_cmnd(struct scsi_cmnd *SCpnt) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1021 { a1b73fc194e73e Christoph Hellwig 2014-05-01 1022 struct request *rq = SCpnt->request; a1b73fc194e73e Christoph Hellwig 2014-05-01 1023 struct scsi_device *sdp = SCpnt->device; 776b23a0363d99 Christoph Hellwig 2006-01-06 1024 struct gendisk *disk = rq->rq_disk; 89d9475610771b Hannes Reinecke 2016-10-18 1025 struct scsi_disk *sdkp = scsi_disk(disk); 83096ebf1263b2 Tejun Heo 2009-05-07 1026 sector_t block = blk_rq_pos(rq); 18351070b86d15 Linus Torvalds 2008-08-05 1027 sector_t threshold; 83096ebf1263b2 Tejun Heo 2009-05-07 1028 unsigned int this_count = blk_rq_sectors(rq); d597314e1e561e Bart Van Assche 2019-03-23 1029 unsigned int nr_blocks = sectors_to_logical(sdp, blk_rq_sectors(rq)); c611529e7cd346 Martin K. Petersen 2014-09-26 1030 unsigned int dif, dix; c611529e7cd346 Martin K. Petersen 2014-09-26 1031 int ret; 4e7392ec582cf0 Martin K. Petersen 2009-09-20 1032 unsigned char protect; 7f9a6bc4e9d59e James Bottomley 2007-08-04 1033 3c356bde19e9a7 Christoph Hellwig 2014-09-05 1034 ret = scsi_init_io(SCpnt); 7f9a6bc4e9d59e James Bottomley 2007-08-04 1035 if (ret != BLKPREP_OK) 39051dd85f2870 Damien Le Moal 2017-12-21 1036 return ret; 0624cbb1e2e64a Bart Van Assche 2017-08-25 1037 WARN_ON_ONCE(SCpnt != rq->special); 7f9a6bc4e9d59e James Bottomley 2007-08-04 1038 7f9a6bc4e9d59e James Bottomley 2007-08-04 1039 /* from here on until we're complete, any goto out 7f9a6bc4e9d59e James Bottomley 2007-08-04 1040 * is used for a killable error condition */ 7f9a6bc4e9d59e James Bottomley 2007-08-04 1041 ret = BLKPREP_KILL; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1042 a1b73fc194e73e Christoph Hellwig 2014-05-01 1043 SCSI_LOG_HLQUEUE(1, a1b73fc194e73e Christoph Hellwig 2014-05-01 1044 scmd_printk(KERN_INFO, SCpnt, a1b73fc194e73e Christoph Hellwig 2014-05-01 1045 "%s: block=%llu, count=%d\n", a1b73fc194e73e Christoph Hellwig 2014-05-01 1046 __func__, (unsigned long long)block, this_count)); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1047 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1048 if (!sdp || !scsi_device_online(sdp) || 83096ebf1263b2 Tejun Heo 2009-05-07 1049 block + blk_rq_sectors(rq) > get_capacity(disk)) { fa0d34be06213e Martin K. Petersen 2007-02-27 1050 SCSI_LOG_HLQUEUE(2, scmd_printk(KERN_INFO, SCpnt, 83096ebf1263b2 Tejun Heo 2009-05-07 1051 "Finishing %u sectors\n", 83096ebf1263b2 Tejun Heo 2009-05-07 1052 blk_rq_sectors(rq))); fa0d34be06213e Martin K. Petersen 2007-02-27 1053 SCSI_LOG_HLQUEUE(2, scmd_printk(KERN_INFO, SCpnt, fa0d34be06213e Martin K. Petersen 2007-02-27 1054 "Retry with 0x%p\n", SCpnt)); 7f9a6bc4e9d59e James Bottomley 2007-08-04 1055 goto out; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1056 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1057 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1058 if (sdp->changed) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1059 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 1060 * quietly refuse to do anything to a changed disc until ^1da177e4c3f41 Linus Torvalds 2005-04-16 1061 * the changed bit has been reset ^1da177e4c3f41 Linus Torvalds 2005-04-16 1062 */ 3ff5588d3f8afa Alan Stern 2010-09-07 1063 /* printk("SCSI disk has been changed or is not present. Prohibiting further I/O.\n"); */ 7f9a6bc4e9d59e James Bottomley 2007-08-04 1064 goto out; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1065 } 7f9a6bc4e9d59e James Bottomley 2007-08-04 1066 a0899d4df534d2 Hans de Goede 2008-01-20 1067 /* 18351070b86d15 Linus Torvalds 2008-08-05 1068 * Some SD card readers can't handle multi-sector accesses which touch 18351070b86d15 Linus Torvalds 2008-08-05 1069 * the last one or two hardware sectors. Split accesses as needed. a0899d4df534d2 Hans de Goede 2008-01-20 1070 */ 18351070b86d15 Linus Torvalds 2008-08-05 1071 threshold = get_capacity(disk) - SD_LAST_BUGGY_SECTORS * 18351070b86d15 Linus Torvalds 2008-08-05 1072 (sdp->sector_size / 512); 18351070b86d15 Linus Torvalds 2008-08-05 1073 18351070b86d15 Linus Torvalds 2008-08-05 1074 if (unlikely(sdp->last_sector_bug && block + this_count > threshold)) { 18351070b86d15 Linus Torvalds 2008-08-05 1075 if (block < threshold) { 18351070b86d15 Linus Torvalds 2008-08-05 1076 /* Access up to the threshold but not beyond */ 18351070b86d15 Linus Torvalds 2008-08-05 1077 this_count = threshold - block; 18351070b86d15 Linus Torvalds 2008-08-05 1078 } else { 18351070b86d15 Linus Torvalds 2008-08-05 1079 /* Access only a single hardware sector */ 18351070b86d15 Linus Torvalds 2008-08-05 1080 this_count = sdp->sector_size / 512; 18351070b86d15 Linus Torvalds 2008-08-05 1081 } 18351070b86d15 Linus Torvalds 2008-08-05 1082 } a0899d4df534d2 Hans de Goede 2008-01-20 1083 fa0d34be06213e Martin K. Petersen 2007-02-27 1084 SCSI_LOG_HLQUEUE(2, scmd_printk(KERN_INFO, SCpnt, "block=%llu\n", fa0d34be06213e Martin K. Petersen 2007-02-27 1085 (unsigned long long)block)); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1086 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1087 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 1088 * If we have a 1K hardware sectorsize, prevent access to single ^1da177e4c3f41 Linus Torvalds 2005-04-16 1089 * 512 byte sectors. In theory we could handle this - in fact ^1da177e4c3f41 Linus Torvalds 2005-04-16 1090 * the scsi cdrom driver must be able to handle this because ^1da177e4c3f41 Linus Torvalds 2005-04-16 1091 * we typically use 1K blocksizes, and cdroms typically have ^1da177e4c3f41 Linus Torvalds 2005-04-16 1092 * 2K hardware sectorsizes. Of course, things are simpler ^1da177e4c3f41 Linus Torvalds 2005-04-16 1093 * with the cdrom, since it is read-only. For performance ^1da177e4c3f41 Linus Torvalds 2005-04-16 1094 * reasons, the filesystems should be able to handle this ^1da177e4c3f41 Linus Torvalds 2005-04-16 1095 * and not force the scsi disk driver to use bounce buffers ^1da177e4c3f41 Linus Torvalds 2005-04-16 1096 * for this. ^1da177e4c3f41 Linus Torvalds 2005-04-16 1097 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1098 if (sdp->sector_size == 1024) { 83096ebf1263b2 Tejun Heo 2009-05-07 1099 if ((block & 1) || (blk_rq_sectors(rq) & 1)) { e73aec8247032e Martin K. Petersen 2007-02-27 1100 scmd_printk(KERN_ERR, SCpnt, e73aec8247032e Martin K. Petersen 2007-02-27 1101 "Bad block number requested\n"); 7f9a6bc4e9d59e James Bottomley 2007-08-04 1102 goto out; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1103 } else { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1104 block = block >> 1; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1105 this_count = this_count >> 1; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1106 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1107 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1108 if (sdp->sector_size == 2048) { 83096ebf1263b2 Tejun Heo 2009-05-07 1109 if ((block & 3) || (blk_rq_sectors(rq) & 3)) { e73aec8247032e Martin K. Petersen 2007-02-27 1110 scmd_printk(KERN_ERR, SCpnt, e73aec8247032e Martin K. Petersen 2007-02-27 1111 "Bad block number requested\n"); 7f9a6bc4e9d59e James Bottomley 2007-08-04 1112 goto out; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1113 } else { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1114 block = block >> 2; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1115 this_count = this_count >> 2; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1116 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1117 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1118 if (sdp->sector_size == 4096) { 83096ebf1263b2 Tejun Heo 2009-05-07 1119 if ((block & 7) || (blk_rq_sectors(rq) & 7)) { e73aec8247032e Martin K. Petersen 2007-02-27 1120 scmd_printk(KERN_ERR, SCpnt, e73aec8247032e Martin K. Petersen 2007-02-27 1121 "Bad block number requested\n"); 7f9a6bc4e9d59e James Bottomley 2007-08-04 1122 goto out; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1123 } else { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1124 block = block >> 3; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1125 this_count = this_count >> 3; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1126 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1127 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1128 if (rq_data_dir(rq) == WRITE) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1129 SCpnt->cmnd[0] = WRITE_6; af55ff675a8461 Martin K. Petersen 2008-07-17 1130 8c579ab69d50a4 Martin K. Petersen 2012-08-28 1131 if (blk_integrity_rq(rq)) 10c41ddd61323b Max Gurtovoy 2018-07-30 1132 t10_pi_prepare(SCpnt->request, sdkp->protection_type); af55ff675a8461 Martin K. Petersen 2008-07-17 1133 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1134 } else if (rq_data_dir(rq) == READ) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1135 SCpnt->cmnd[0] = READ_6; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1136 } else { ef295ecf090d3e Christoph Hellwig 2016-10-28 1137 scmd_printk(KERN_ERR, SCpnt, "Unknown command %d\n", req_op(rq)); 7f9a6bc4e9d59e James Bottomley 2007-08-04 1138 goto out; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1139 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1140 fa0d34be06213e Martin K. Petersen 2007-02-27 1141 SCSI_LOG_HLQUEUE(2, scmd_printk(KERN_INFO, SCpnt, 83096ebf1263b2 Tejun Heo 2009-05-07 1142 "%s %d/%u 512 byte blocks.\n", fa0d34be06213e Martin K. Petersen 2007-02-27 1143 (rq_data_dir(rq) == WRITE) ? fa0d34be06213e Martin K. Petersen 2007-02-27 1144 "writing" : "reading", this_count, 83096ebf1263b2 Tejun Heo 2009-05-07 1145 blk_rq_sectors(rq))); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1146 c611529e7cd346 Martin K. Petersen 2014-09-26 1147 dix = scsi_prot_sg_count(SCpnt); c611529e7cd346 Martin K. Petersen 2014-09-26 1148 dif = scsi_host_dif_capable(SCpnt->device->host, sdkp->protection_type); c611529e7cd346 Martin K. Petersen 2014-09-26 1149 c611529e7cd346 Martin K. Petersen 2014-09-26 1150 if (dif || dix) c611529e7cd346 Martin K. Petersen 2014-09-26 1151 protect = sd_setup_protect_cmnd(SCpnt, dix, dif); af55ff675a8461 Martin K. Petersen 2008-07-17 1152 else 4e7392ec582cf0 Martin K. Petersen 2009-09-20 1153 protect = 0; 4e7392ec582cf0 Martin K. Petersen 2009-09-20 1154 8475c8118551f8 Christoph Hellwig 2016-09-11 1155 if (protect && sdkp->protection_type == T10_PI_TYPE2_PROTECTION) { 4e7392ec582cf0 Martin K. Petersen 2009-09-20 1156 SCpnt->cmnd = mempool_alloc(sd_cdb_pool, GFP_ATOMIC); 4e7392ec582cf0 Martin K. Petersen 2009-09-20 1157 4e7392ec582cf0 Martin K. Petersen 2009-09-20 1158 if (unlikely(SCpnt->cmnd == NULL)) { 4e7392ec582cf0 Martin K. Petersen 2009-09-20 1159 ret = BLKPREP_DEFER; 4e7392ec582cf0 Martin K. Petersen 2009-09-20 1160 goto out; 4e7392ec582cf0 Martin K. Petersen 2009-09-20 1161 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1162 4e7392ec582cf0 Martin K. Petersen 2009-09-20 1163 SCpnt->cmd_len = SD_EXT_CDB_SIZE; 4e7392ec582cf0 Martin K. Petersen 2009-09-20 1164 memset(SCpnt->cmnd, 0, SCpnt->cmd_len); 4e7392ec582cf0 Martin K. Petersen 2009-09-20 1165 SCpnt->cmnd[0] = VARIABLE_LENGTH_CMD; 4e7392ec582cf0 Martin K. Petersen 2009-09-20 1166 SCpnt->cmnd[7] = 0x18; 4e7392ec582cf0 Martin K. Petersen 2009-09-20 1167 SCpnt->cmnd[9] = (rq_data_dir(rq) == READ) ? READ_32 : WRITE_32; 33659ebbae2622 Christoph Hellwig 2010-08-07 1168 SCpnt->cmnd[10] = protect | ((rq->cmd_flags & REQ_FUA) ? 0x8 : 0); 4e7392ec582cf0 Martin K. Petersen 2009-09-20 1169 4e7392ec582cf0 Martin K. Petersen 2009-09-20 1170 /* LBA */ 4e7392ec582cf0 Martin K. Petersen 2009-09-20 1171 SCpnt->cmnd[12] = sizeof(block) > 4 ? (unsigned char) (block >> 56) & 0xff : 0; 4e7392ec582cf0 Martin K. Petersen 2009-09-20 1172 SCpnt->cmnd[13] = sizeof(block) > 4 ? (unsigned char) (block >> 48) & 0xff : 0; 4e7392ec582cf0 Martin K. Petersen 2009-09-20 1173 SCpnt->cmnd[14] = sizeof(block) > 4 ? (unsigned char) (block >> 40) & 0xff : 0; 4e7392ec582cf0 Martin K. Petersen 2009-09-20 1174 SCpnt->cmnd[15] = sizeof(block) > 4 ? (unsigned char) (block >> 32) & 0xff : 0; 4e7392ec582cf0 Martin K. Petersen 2009-09-20 1175 SCpnt->cmnd[16] = (unsigned char) (block >> 24) & 0xff; 4e7392ec582cf0 Martin K. Petersen 2009-09-20 1176 SCpnt->cmnd[17] = (unsigned char) (block >> 16) & 0xff; 4e7392ec582cf0 Martin K. Petersen 2009-09-20 1177 SCpnt->cmnd[18] = (unsigned char) (block >> 8) & 0xff; 4e7392ec582cf0 Martin K. Petersen 2009-09-20 1178 SCpnt->cmnd[19] = (unsigned char) block & 0xff; 4e7392ec582cf0 Martin K. Petersen 2009-09-20 1179 4e7392ec582cf0 Martin K. Petersen 2009-09-20 1180 /* Expected Indirect LBA */ 4e7392ec582cf0 Martin K. Petersen 2009-09-20 1181 SCpnt->cmnd[20] = (unsigned char) (block >> 24) & 0xff; 4e7392ec582cf0 Martin K. Petersen 2009-09-20 1182 SCpnt->cmnd[21] = (unsigned char) (block >> 16) & 0xff; 4e7392ec582cf0 Martin K. Petersen 2009-09-20 1183 SCpnt->cmnd[22] = (unsigned char) (block >> 8) & 0xff; 4e7392ec582cf0 Martin K. Petersen 2009-09-20 1184 SCpnt->cmnd[23] = (unsigned char) block & 0xff; 4e7392ec582cf0 Martin K. Petersen 2009-09-20 1185 4e7392ec582cf0 Martin K. Petersen 2009-09-20 1186 /* Transfer length */ 4e7392ec582cf0 Martin K. Petersen 2009-09-20 1187 SCpnt->cmnd[28] = (unsigned char) (this_count >> 24) & 0xff; 4e7392ec582cf0 Martin K. Petersen 2009-09-20 1188 SCpnt->cmnd[29] = (unsigned char) (this_count >> 16) & 0xff; 4e7392ec582cf0 Martin K. Petersen 2009-09-20 1189 SCpnt->cmnd[30] = (unsigned char) (this_count >> 8) & 0xff; 4e7392ec582cf0 Martin K. Petersen 2009-09-20 1190 SCpnt->cmnd[31] = (unsigned char) this_count & 0xff; e430cbc8bbd779 Akinobu Mita 2014-06-02 1191 } else if (sdp->use_16_for_rw || (this_count > 0xffff)) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1192 SCpnt->cmnd[0] += READ_16 - READ_6; 33659ebbae2622 Christoph Hellwig 2010-08-07 1193 SCpnt->cmnd[1] = protect | ((rq->cmd_flags & REQ_FUA) ? 0x8 : 0); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1194 SCpnt->cmnd[2] = sizeof(block) > 4 ? (unsigned char) (block >> 56) & 0xff : 0; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1195 SCpnt->cmnd[3] = sizeof(block) > 4 ? (unsigned char) (block >> 48) & 0xff : 0; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1196 SCpnt->cmnd[4] = sizeof(block) > 4 ? (unsigned char) (block >> 40) & 0xff : 0; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1197 SCpnt->cmnd[5] = sizeof(block) > 4 ? (unsigned char) (block >> 32) & 0xff : 0; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1198 SCpnt->cmnd[6] = (unsigned char) (block >> 24) & 0xff; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1199 SCpnt->cmnd[7] = (unsigned char) (block >> 16) & 0xff; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1200 SCpnt->cmnd[8] = (unsigned char) (block >> 8) & 0xff; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1201 SCpnt->cmnd[9] = (unsigned char) block & 0xff; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1202 SCpnt->cmnd[10] = (unsigned char) (this_count >> 24) & 0xff; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1203 SCpnt->cmnd[11] = (unsigned char) (this_count >> 16) & 0xff; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1204 SCpnt->cmnd[12] = (unsigned char) (this_count >> 8) & 0xff; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1205 SCpnt->cmnd[13] = (unsigned char) this_count & 0xff; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1206 SCpnt->cmnd[14] = SCpnt->cmnd[15] = 0; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1207 } else if ((this_count > 0xff) || (block > 0x1fffff) || af55ff675a8461 Martin K. Petersen 2008-07-17 1208 scsi_device_protection(SCpnt->device) || ^1da177e4c3f41 Linus Torvalds 2005-04-16 1209 SCpnt->device->use_10_for_rw) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 1210 SCpnt->cmnd[0] += READ_10 - READ_6; 33659ebbae2622 Christoph Hellwig 2010-08-07 1211 SCpnt->cmnd[1] = protect | ((rq->cmd_flags & REQ_FUA) ? 0x8 : 0); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1212 SCpnt->cmnd[2] = (unsigned char) (block >> 24) & 0xff; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1213 SCpnt->cmnd[3] = (unsigned char) (block >> 16) & 0xff; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1214 SCpnt->cmnd[4] = (unsigned char) (block >> 8) & 0xff; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1215 SCpnt->cmnd[5] = (unsigned char) block & 0xff; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1216 SCpnt->cmnd[6] = SCpnt->cmnd[9] = 0; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1217 SCpnt->cmnd[7] = (unsigned char) (this_count >> 8) & 0xff; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1218 SCpnt->cmnd[8] = (unsigned char) this_count & 0xff; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1219 } else { d597314e1e561e Bart Van Assche 2019-03-23 1220 /* Avoid that 0 blocks gets translated into 256 blocks. */ d597314e1e561e Bart Van Assche 2019-03-23 1221 if (WARN_ON_ONCE(nr_blocks == 0)) d597314e1e561e Bart Van Assche 2019-03-23 @1222 return BLK_STS_IOERR; d597314e1e561e Bart Van Assche 2019-03-23 1223 33659ebbae2622 Christoph Hellwig 2010-08-07 1224 if (unlikely(rq->cmd_flags & REQ_FUA)) { 007365ad60387d Tejun Heo 2006-01-06 1225 /* 007365ad60387d Tejun Heo 2006-01-06 1226 * This happens only if this drive failed 007365ad60387d Tejun Heo 2006-01-06 1227 * 10byte rw command with ILLEGAL_REQUEST 007365ad60387d Tejun Heo 2006-01-06 1228 * during operation and thus turned off 007365ad60387d Tejun Heo 2006-01-06 1229 * use_10_for_rw. 007365ad60387d Tejun Heo 2006-01-06 1230 */ e73aec8247032e Martin K. Petersen 2007-02-27 1231 scmd_printk(KERN_ERR, SCpnt, e73aec8247032e Martin K. Petersen 2007-02-27 1232 "FUA write on READ/WRITE(6) drive\n"); 7f9a6bc4e9d59e James Bottomley 2007-08-04 1233 goto out; 007365ad60387d Tejun Heo 2006-01-06 1234 } 007365ad60387d Tejun Heo 2006-01-06 1235 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1236 SCpnt->cmnd[1] |= (unsigned char) ((block >> 16) & 0x1f); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1237 SCpnt->cmnd[2] = (unsigned char) ((block >> 8) & 0xff); ^1da177e4c3f41 Linus Torvalds 2005-04-16 1238 SCpnt->cmnd[3] = (unsigned char) block & 0xff; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1239 SCpnt->cmnd[4] = (unsigned char) this_count; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1240 SCpnt->cmnd[5] = 0; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1241 } 30b0c37b27485a Boaz Harrosh 2007-12-13 1242 SCpnt->sdb.length = this_count * sdp->sector_size; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1243 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1244 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 1245 * We shouldn't disconnect in the middle of a sector, so with a dumb ^1da177e4c3f41 Linus Torvalds 2005-04-16 1246 * host adapter, it's safe to assume that we can at least transfer ^1da177e4c3f41 Linus Torvalds 2005-04-16 1247 * this many bytes between each connect / disconnect. ^1da177e4c3f41 Linus Torvalds 2005-04-16 1248 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1249 SCpnt->transfersize = sdp->sector_size; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1250 SCpnt->underflow = this_count << 9; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1251 SCpnt->allowed = SD_MAX_RETRIES; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1252 ^1da177e4c3f41 Linus Torvalds 2005-04-16 1253 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 1254 * This indicates that the command is ready from our end to be ^1da177e4c3f41 Linus Torvalds 2005-04-16 1255 * queued. ^1da177e4c3f41 Linus Torvalds 2005-04-16 1256 */ 7f9a6bc4e9d59e James Bottomley 2007-08-04 1257 ret = BLKPREP_OK; 7f9a6bc4e9d59e James Bottomley 2007-08-04 1258 out: a1b73fc194e73e Christoph Hellwig 2014-05-01 1259 return ret; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1260 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1261 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:openEuler-1.0-LTS 1581/21579] drivers/pci/probe.c:2223:3: sparse: sparse: symbol 'skip_1620_bus_num' was not declared. Should it be static?
by kernel test robot 29 Jan '24

29 Jan '24
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS head: acf72db532a7791fde53af3dc7b4d0a6adcf6eff commit: da5e23f4c7511cbc1a199bb4d5d5477e191dc26c [1581/21579] Hi1620 CS FPGA PCIe Skip Bus :::::: branch date: 2 days ago :::::: commit date: 4 years, 1 month ago config: x86_64-randconfig-121-20240125 (attached as .config) compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18) 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(a)intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202401290427.eM9fDHDi-lkp@intel.com/ sparse warnings: (new ones prefixed by >>) >> drivers/pci/probe.c:2223:3: sparse: sparse: symbol 'skip_1620_bus_num' was not declared. Should it be static? drivers/pci/probe.c:448:21: sparse: sparse: self-comparison always evaluates to false vim +/skip_1620_bus_num +2223 drivers/pci/probe.c ^1da177e4c3f41 Linus Torvalds 2005-04-16 2214 da5e23f4c7511c Dong Bo 2018-01-30 2215 static int skip_bus_flag = 0; da5e23f4c7511c Dong Bo 2018-01-30 2216 #define HOSTBRIGE_1620_NUM 48 da5e23f4c7511c Dong Bo 2018-01-30 2217 struct skip_bus_num { da5e23f4c7511c Dong Bo 2018-01-30 2218 char module_name[32]; da5e23f4c7511c Dong Bo 2018-01-30 2219 char label[4]; da5e23f4c7511c Dong Bo 2018-01-30 2220 int bus_num; da5e23f4c7511c Dong Bo 2018-01-30 2221 int dev_num; da5e23f4c7511c Dong Bo 2018-01-30 2222 int skip; da5e23f4c7511c Dong Bo 2018-01-30 @2223 } skip_1620_bus_num[HOSTBRIGE_1620_NUM] = { da5e23f4c7511c Dong Bo 2018-01-30 2224 /*chip 0*/ da5e23f4c7511c Dong Bo 2018-01-30 2225 { da5e23f4c7511c Dong Bo 2018-01-30 2226 .module_name = "chip0_pcie", da5e23f4c7511c Dong Bo 2018-01-30 2227 .label = "a0", da5e23f4c7511c Dong Bo 2018-01-30 2228 .bus_num = 0, da5e23f4c7511c Dong Bo 2018-01-30 2229 .dev_num = 0xff, da5e23f4c7511c Dong Bo 2018-01-30 2230 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2231 }, da5e23f4c7511c Dong Bo 2018-01-30 2232 { da5e23f4c7511c Dong Bo 2018-01-30 2233 .module_name = "chip0_pcie_dma", da5e23f4c7511c Dong Bo 2018-01-30 2234 .label = "a1", da5e23f4c7511c Dong Bo 2018-01-30 2235 .bus_num = 0x7b, da5e23f4c7511c Dong Bo 2018-01-30 2236 .dev_num = 0xff, da5e23f4c7511c Dong Bo 2018-01-30 2237 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2238 }, da5e23f4c7511c Dong Bo 2018-01-30 2239 { da5e23f4c7511c Dong Bo 2018-01-30 2240 .module_name = "chip0_pcie_sdi", da5e23f4c7511c Dong Bo 2018-01-30 2241 .label = "a2", da5e23f4c7511c Dong Bo 2018-01-30 2242 .bus_num = 0x7b, da5e23f4c7511c Dong Bo 2018-01-30 2243 .dev_num = 0x1, da5e23f4c7511c Dong Bo 2018-01-30 2244 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2245 }, da5e23f4c7511c Dong Bo 2018-01-30 2246 { da5e23f4c7511c Dong Bo 2018-01-30 2247 .module_name = "chip0_USB", da5e23f4c7511c Dong Bo 2018-01-30 2248 .label = "a3", da5e23f4c7511c Dong Bo 2018-01-30 2249 .bus_num = 0x7a, da5e23f4c7511c Dong Bo 2018-01-30 2250 .dev_num = 0xff, da5e23f4c7511c Dong Bo 2018-01-30 2251 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2252 }, da5e23f4c7511c Dong Bo 2018-01-30 2253 { da5e23f4c7511c Dong Bo 2018-01-30 2254 .module_name = "chip0_hpre", da5e23f4c7511c Dong Bo 2018-01-30 2255 .label = "a4", da5e23f4c7511c Dong Bo 2018-01-30 2256 .bus_num = 0x78, da5e23f4c7511c Dong Bo 2018-01-30 2257 .dev_num = 0x0, da5e23f4c7511c Dong Bo 2018-01-30 2258 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2259 }, da5e23f4c7511c Dong Bo 2018-01-30 2260 { da5e23f4c7511c Dong Bo 2018-01-30 2261 .module_name = "chip0_rde", da5e23f4c7511c Dong Bo 2018-01-30 2262 .label = "a5", da5e23f4c7511c Dong Bo 2018-01-30 2263 .bus_num = 0x78, da5e23f4c7511c Dong Bo 2018-01-30 2264 .dev_num = 0x1, da5e23f4c7511c Dong Bo 2018-01-30 2265 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2266 }, da5e23f4c7511c Dong Bo 2018-01-30 2267 { da5e23f4c7511c Dong Bo 2018-01-30 2268 .module_name = "chip0_nic", da5e23f4c7511c Dong Bo 2018-01-30 2269 .label = "aa", da5e23f4c7511c Dong Bo 2018-01-30 2270 .bus_num = 0x7c, da5e23f4c7511c Dong Bo 2018-01-30 2271 .dev_num = 0xff, da5e23f4c7511c Dong Bo 2018-01-30 2272 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2273 }, da5e23f4c7511c Dong Bo 2018-01-30 2274 { da5e23f4c7511c Dong Bo 2018-01-30 2275 .module_name = "chip0_sas", da5e23f4c7511c Dong Bo 2018-01-30 2276 .label = "a6", da5e23f4c7511c Dong Bo 2018-01-30 2277 .bus_num = 0x74, da5e23f4c7511c Dong Bo 2018-01-30 2278 .dev_num = 0x02, da5e23f4c7511c Dong Bo 2018-01-30 2279 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2280 }, da5e23f4c7511c Dong Bo 2018-01-30 2281 { da5e23f4c7511c Dong Bo 2018-01-30 2282 .module_name = "chip0_sas1", da5e23f4c7511c Dong Bo 2018-01-30 2283 .label = "ab", da5e23f4c7511c Dong Bo 2018-01-30 2284 .bus_num = 0x74, da5e23f4c7511c Dong Bo 2018-01-30 2285 .dev_num = 0x04, da5e23f4c7511c Dong Bo 2018-01-30 2286 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2287 }, da5e23f4c7511c Dong Bo 2018-01-30 2288 { da5e23f4c7511c Dong Bo 2018-01-30 2289 .module_name = "chip0_sata", da5e23f4c7511c Dong Bo 2018-01-30 2290 .label = "a7", da5e23f4c7511c Dong Bo 2018-01-30 2291 .bus_num = 0x74, da5e23f4c7511c Dong Bo 2018-01-30 2292 .dev_num = 0x03, da5e23f4c7511c Dong Bo 2018-01-30 2293 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2294 }, da5e23f4c7511c Dong Bo 2018-01-30 2295 { da5e23f4c7511c Dong Bo 2018-01-30 2296 .module_name = "chip0_zip", da5e23f4c7511c Dong Bo 2018-01-30 2297 .label = "a8", da5e23f4c7511c Dong Bo 2018-01-30 2298 .bus_num = 0x74, da5e23f4c7511c Dong Bo 2018-01-30 2299 .dev_num = 0x0, da5e23f4c7511c Dong Bo 2018-01-30 2300 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2301 }, da5e23f4c7511c Dong Bo 2018-01-30 2302 { da5e23f4c7511c Dong Bo 2018-01-30 2303 .module_name = "chip0_sec", da5e23f4c7511c Dong Bo 2018-01-30 2304 .label = "a9", da5e23f4c7511c Dong Bo 2018-01-30 2305 .bus_num = 0x74, da5e23f4c7511c Dong Bo 2018-01-30 2306 .dev_num = 0x1, da5e23f4c7511c Dong Bo 2018-01-30 2307 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2308 }, da5e23f4c7511c Dong Bo 2018-01-30 2309 /*chip 1*/ da5e23f4c7511c Dong Bo 2018-01-30 2310 { da5e23f4c7511c Dong Bo 2018-01-30 2311 .module_name = "chip1_pcie", da5e23f4c7511c Dong Bo 2018-01-30 2312 .label = "b0", da5e23f4c7511c Dong Bo 2018-01-30 2313 .bus_num = 0x80, da5e23f4c7511c Dong Bo 2018-01-30 2314 .dev_num = 0xff, da5e23f4c7511c Dong Bo 2018-01-30 2315 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2316 }, da5e23f4c7511c Dong Bo 2018-01-30 2317 { da5e23f4c7511c Dong Bo 2018-01-30 2318 .module_name = "chip1_pcie_dma", da5e23f4c7511c Dong Bo 2018-01-30 2319 .label = "b1", da5e23f4c7511c Dong Bo 2018-01-30 2320 .bus_num = 0xbb, da5e23f4c7511c Dong Bo 2018-01-30 2321 .dev_num = 0xff, da5e23f4c7511c Dong Bo 2018-01-30 2322 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2323 }, da5e23f4c7511c Dong Bo 2018-01-30 2324 { da5e23f4c7511c Dong Bo 2018-01-30 2325 .module_name = "chip1_pcie_sdi", da5e23f4c7511c Dong Bo 2018-01-30 2326 .label = "b2", da5e23f4c7511c Dong Bo 2018-01-30 2327 .bus_num = 0xbb, da5e23f4c7511c Dong Bo 2018-01-30 2328 .dev_num = 0x1, da5e23f4c7511c Dong Bo 2018-01-30 2329 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2330 }, da5e23f4c7511c Dong Bo 2018-01-30 2331 { da5e23f4c7511c Dong Bo 2018-01-30 2332 .module_name = "chip1_USB", da5e23f4c7511c Dong Bo 2018-01-30 2333 .label = "b3", da5e23f4c7511c Dong Bo 2018-01-30 2334 .bus_num = 0xba, da5e23f4c7511c Dong Bo 2018-01-30 2335 .dev_num = 0xff, da5e23f4c7511c Dong Bo 2018-01-30 2336 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2337 }, da5e23f4c7511c Dong Bo 2018-01-30 2338 { da5e23f4c7511c Dong Bo 2018-01-30 2339 .module_name = "chip1_hpre", da5e23f4c7511c Dong Bo 2018-01-30 2340 .label = "b4", da5e23f4c7511c Dong Bo 2018-01-30 2341 .bus_num = 0xb8, da5e23f4c7511c Dong Bo 2018-01-30 2342 .dev_num = 0x0, da5e23f4c7511c Dong Bo 2018-01-30 2343 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2344 }, da5e23f4c7511c Dong Bo 2018-01-30 2345 { da5e23f4c7511c Dong Bo 2018-01-30 2346 .module_name = "chip1_rde", da5e23f4c7511c Dong Bo 2018-01-30 2347 .label = "b5", da5e23f4c7511c Dong Bo 2018-01-30 2348 .bus_num = 0xb8, da5e23f4c7511c Dong Bo 2018-01-30 2349 .dev_num = 0x1, da5e23f4c7511c Dong Bo 2018-01-30 2350 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2351 }, da5e23f4c7511c Dong Bo 2018-01-30 2352 { da5e23f4c7511c Dong Bo 2018-01-30 2353 .module_name = "chip1_nic", da5e23f4c7511c Dong Bo 2018-01-30 2354 .label = "ba", da5e23f4c7511c Dong Bo 2018-01-30 2355 .bus_num = 0xbc, da5e23f4c7511c Dong Bo 2018-01-30 2356 .dev_num = 0xff, da5e23f4c7511c Dong Bo 2018-01-30 2357 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2358 }, da5e23f4c7511c Dong Bo 2018-01-30 2359 { da5e23f4c7511c Dong Bo 2018-01-30 2360 .module_name = "chip1_sas", da5e23f4c7511c Dong Bo 2018-01-30 2361 .label = "b6", da5e23f4c7511c Dong Bo 2018-01-30 2362 .bus_num = 0xb4, da5e23f4c7511c Dong Bo 2018-01-30 2363 .dev_num = 0x02, da5e23f4c7511c Dong Bo 2018-01-30 2364 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2365 }, da5e23f4c7511c Dong Bo 2018-01-30 2366 { da5e23f4c7511c Dong Bo 2018-01-30 2367 .module_name = "chip1_sas1", da5e23f4c7511c Dong Bo 2018-01-30 2368 .label = "bb", da5e23f4c7511c Dong Bo 2018-01-30 2369 .bus_num = 0xb4, da5e23f4c7511c Dong Bo 2018-01-30 2370 .dev_num = 0x04, da5e23f4c7511c Dong Bo 2018-01-30 2371 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2372 }, da5e23f4c7511c Dong Bo 2018-01-30 2373 { da5e23f4c7511c Dong Bo 2018-01-30 2374 .module_name = "chip1_sata", da5e23f4c7511c Dong Bo 2018-01-30 2375 .label = "b7", da5e23f4c7511c Dong Bo 2018-01-30 2376 .bus_num = 0xb4, da5e23f4c7511c Dong Bo 2018-01-30 2377 .dev_num = 0x03, da5e23f4c7511c Dong Bo 2018-01-30 2378 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2379 }, da5e23f4c7511c Dong Bo 2018-01-30 2380 { da5e23f4c7511c Dong Bo 2018-01-30 2381 .module_name = "chip1_zip", da5e23f4c7511c Dong Bo 2018-01-30 2382 .label = "b8", da5e23f4c7511c Dong Bo 2018-01-30 2383 .bus_num = 0xb4, da5e23f4c7511c Dong Bo 2018-01-30 2384 .dev_num = 0x0, da5e23f4c7511c Dong Bo 2018-01-30 2385 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2386 }, da5e23f4c7511c Dong Bo 2018-01-30 2387 { da5e23f4c7511c Dong Bo 2018-01-30 2388 .module_name = "chip0_sec", da5e23f4c7511c Dong Bo 2018-01-30 2389 .label = "b9", da5e23f4c7511c Dong Bo 2018-01-30 2390 .bus_num = 0xb4, da5e23f4c7511c Dong Bo 2018-01-30 2391 .dev_num = 0x1, da5e23f4c7511c Dong Bo 2018-01-30 2392 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2393 }, da5e23f4c7511c Dong Bo 2018-01-30 2394 da5e23f4c7511c Dong Bo 2018-01-30 2395 /*chip 2*/ da5e23f4c7511c Dong Bo 2018-01-30 2396 { da5e23f4c7511c Dong Bo 2018-01-30 2397 .module_name = "chip2_pcie", da5e23f4c7511c Dong Bo 2018-01-30 2398 .label = "c0", da5e23f4c7511c Dong Bo 2018-01-30 2399 .bus_num = 0xc0, da5e23f4c7511c Dong Bo 2018-01-30 2400 .dev_num = 0xff, da5e23f4c7511c Dong Bo 2018-01-30 2401 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2402 }, da5e23f4c7511c Dong Bo 2018-01-30 2403 { da5e23f4c7511c Dong Bo 2018-01-30 2404 .module_name = "chip2_pcie_dma", da5e23f4c7511c Dong Bo 2018-01-30 2405 .label = "c1", da5e23f4c7511c Dong Bo 2018-01-30 2406 .bus_num = 0xdb, da5e23f4c7511c Dong Bo 2018-01-30 2407 .dev_num = 0xff, da5e23f4c7511c Dong Bo 2018-01-30 2408 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2409 }, da5e23f4c7511c Dong Bo 2018-01-30 2410 { da5e23f4c7511c Dong Bo 2018-01-30 2411 .module_name = "chip2_pcie_sdi", da5e23f4c7511c Dong Bo 2018-01-30 2412 .label = "c2", da5e23f4c7511c Dong Bo 2018-01-30 2413 .bus_num = 0xdb, da5e23f4c7511c Dong Bo 2018-01-30 2414 .dev_num = 0x1, da5e23f4c7511c Dong Bo 2018-01-30 2415 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2416 }, da5e23f4c7511c Dong Bo 2018-01-30 2417 { da5e23f4c7511c Dong Bo 2018-01-30 2418 .module_name = "chip2_USB", da5e23f4c7511c Dong Bo 2018-01-30 2419 .label = "c3", da5e23f4c7511c Dong Bo 2018-01-30 2420 .bus_num = 0xda, da5e23f4c7511c Dong Bo 2018-01-30 2421 .dev_num = 0xff, da5e23f4c7511c Dong Bo 2018-01-30 2422 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2423 }, da5e23f4c7511c Dong Bo 2018-01-30 2424 { da5e23f4c7511c Dong Bo 2018-01-30 2425 .module_name = "chip2_hpre", da5e23f4c7511c Dong Bo 2018-01-30 2426 .label = "c4", da5e23f4c7511c Dong Bo 2018-01-30 2427 .bus_num = 0xd8, da5e23f4c7511c Dong Bo 2018-01-30 2428 .dev_num = 0x0, da5e23f4c7511c Dong Bo 2018-01-30 2429 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2430 }, da5e23f4c7511c Dong Bo 2018-01-30 2431 { da5e23f4c7511c Dong Bo 2018-01-30 2432 .module_name = "chip2_rde", da5e23f4c7511c Dong Bo 2018-01-30 2433 .label = "c5", da5e23f4c7511c Dong Bo 2018-01-30 2434 .bus_num = 0xd8, da5e23f4c7511c Dong Bo 2018-01-30 2435 .dev_num = 0x1, da5e23f4c7511c Dong Bo 2018-01-30 2436 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2437 }, da5e23f4c7511c Dong Bo 2018-01-30 2438 { da5e23f4c7511c Dong Bo 2018-01-30 2439 .module_name = "chip2_nic", da5e23f4c7511c Dong Bo 2018-01-30 2440 .label = "ca", da5e23f4c7511c Dong Bo 2018-01-30 2441 .bus_num = 0xdc, da5e23f4c7511c Dong Bo 2018-01-30 2442 .dev_num = 0xff, da5e23f4c7511c Dong Bo 2018-01-30 2443 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2444 }, da5e23f4c7511c Dong Bo 2018-01-30 2445 { da5e23f4c7511c Dong Bo 2018-01-30 2446 .module_name = "chip2_sas", da5e23f4c7511c Dong Bo 2018-01-30 2447 .label = "c6", da5e23f4c7511c Dong Bo 2018-01-30 2448 .bus_num = 0xd4, da5e23f4c7511c Dong Bo 2018-01-30 2449 .dev_num = 0x02, da5e23f4c7511c Dong Bo 2018-01-30 2450 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2451 }, da5e23f4c7511c Dong Bo 2018-01-30 2452 { da5e23f4c7511c Dong Bo 2018-01-30 2453 .module_name = "chip2_sas1", da5e23f4c7511c Dong Bo 2018-01-30 2454 .label = "cb", da5e23f4c7511c Dong Bo 2018-01-30 2455 .bus_num = 0xd4, da5e23f4c7511c Dong Bo 2018-01-30 2456 .dev_num = 0x04, da5e23f4c7511c Dong Bo 2018-01-30 2457 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2458 }, da5e23f4c7511c Dong Bo 2018-01-30 2459 { da5e23f4c7511c Dong Bo 2018-01-30 2460 .module_name = "chip2_sata", da5e23f4c7511c Dong Bo 2018-01-30 2461 .label = "c7", da5e23f4c7511c Dong Bo 2018-01-30 2462 .bus_num = 0xd4, da5e23f4c7511c Dong Bo 2018-01-30 2463 .dev_num = 0x03, da5e23f4c7511c Dong Bo 2018-01-30 2464 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2465 }, da5e23f4c7511c Dong Bo 2018-01-30 2466 { da5e23f4c7511c Dong Bo 2018-01-30 2467 .module_name = "chip2_zip", da5e23f4c7511c Dong Bo 2018-01-30 2468 .label = "c8", da5e23f4c7511c Dong Bo 2018-01-30 2469 .bus_num = 0xd4, da5e23f4c7511c Dong Bo 2018-01-30 2470 .dev_num = 0x0, da5e23f4c7511c Dong Bo 2018-01-30 2471 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2472 }, da5e23f4c7511c Dong Bo 2018-01-30 2473 { da5e23f4c7511c Dong Bo 2018-01-30 2474 .module_name = "chip2_sec", da5e23f4c7511c Dong Bo 2018-01-30 2475 .label = "c9", da5e23f4c7511c Dong Bo 2018-01-30 2476 .bus_num = 0xd4, da5e23f4c7511c Dong Bo 2018-01-30 2477 .dev_num = 0x1, da5e23f4c7511c Dong Bo 2018-01-30 2478 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2479 }, da5e23f4c7511c Dong Bo 2018-01-30 2480 da5e23f4c7511c Dong Bo 2018-01-30 2481 /*chip 3*/ da5e23f4c7511c Dong Bo 2018-01-30 2482 { da5e23f4c7511c Dong Bo 2018-01-30 2483 .module_name = "chip3_pcie", da5e23f4c7511c Dong Bo 2018-01-30 2484 .label = "d0", da5e23f4c7511c Dong Bo 2018-01-30 2485 .bus_num = 0xe0, da5e23f4c7511c Dong Bo 2018-01-30 2486 .dev_num = 0xff, da5e23f4c7511c Dong Bo 2018-01-30 2487 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2488 }, da5e23f4c7511c Dong Bo 2018-01-30 2489 { da5e23f4c7511c Dong Bo 2018-01-30 2490 .module_name = "chip3_pcie_dma", da5e23f4c7511c Dong Bo 2018-01-30 2491 .label = "d1", da5e23f4c7511c Dong Bo 2018-01-30 2492 .bus_num = 0xfb, da5e23f4c7511c Dong Bo 2018-01-30 2493 .dev_num = 0xff, da5e23f4c7511c Dong Bo 2018-01-30 2494 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2495 }, da5e23f4c7511c Dong Bo 2018-01-30 2496 { da5e23f4c7511c Dong Bo 2018-01-30 2497 .module_name = "chip3_pcie_sdi", da5e23f4c7511c Dong Bo 2018-01-30 2498 .label = "d2", da5e23f4c7511c Dong Bo 2018-01-30 2499 .bus_num = 0xfb, da5e23f4c7511c Dong Bo 2018-01-30 2500 .dev_num = 0x1, da5e23f4c7511c Dong Bo 2018-01-30 2501 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2502 }, da5e23f4c7511c Dong Bo 2018-01-30 2503 { da5e23f4c7511c Dong Bo 2018-01-30 2504 .module_name = "chip3_USB", da5e23f4c7511c Dong Bo 2018-01-30 2505 .label = "d3", da5e23f4c7511c Dong Bo 2018-01-30 2506 .bus_num = 0xfa, da5e23f4c7511c Dong Bo 2018-01-30 2507 .dev_num = 0xff, da5e23f4c7511c Dong Bo 2018-01-30 2508 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2509 }, da5e23f4c7511c Dong Bo 2018-01-30 2510 { da5e23f4c7511c Dong Bo 2018-01-30 2511 .module_name = "chip3_hpre", da5e23f4c7511c Dong Bo 2018-01-30 2512 .label = "d4", da5e23f4c7511c Dong Bo 2018-01-30 2513 .bus_num = 0xf8, da5e23f4c7511c Dong Bo 2018-01-30 2514 .dev_num = 0x0, da5e23f4c7511c Dong Bo 2018-01-30 2515 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2516 }, da5e23f4c7511c Dong Bo 2018-01-30 2517 { da5e23f4c7511c Dong Bo 2018-01-30 2518 .module_name = "chip3_rde", da5e23f4c7511c Dong Bo 2018-01-30 2519 .label = "d5", da5e23f4c7511c Dong Bo 2018-01-30 2520 .bus_num = 0xf8, da5e23f4c7511c Dong Bo 2018-01-30 2521 .dev_num = 0x1, da5e23f4c7511c Dong Bo 2018-01-30 2522 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2523 }, da5e23f4c7511c Dong Bo 2018-01-30 2524 { da5e23f4c7511c Dong Bo 2018-01-30 2525 .module_name = "chip3_nic", da5e23f4c7511c Dong Bo 2018-01-30 2526 .label = "da", da5e23f4c7511c Dong Bo 2018-01-30 2527 .bus_num = 0xfc, da5e23f4c7511c Dong Bo 2018-01-30 2528 .dev_num = 0xff, da5e23f4c7511c Dong Bo 2018-01-30 2529 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2530 }, da5e23f4c7511c Dong Bo 2018-01-30 2531 { da5e23f4c7511c Dong Bo 2018-01-30 2532 .module_name = "chip3_sas", da5e23f4c7511c Dong Bo 2018-01-30 2533 .label = "d6", da5e23f4c7511c Dong Bo 2018-01-30 2534 .bus_num = 0xf4, da5e23f4c7511c Dong Bo 2018-01-30 2535 .dev_num = 0x02, da5e23f4c7511c Dong Bo 2018-01-30 2536 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2537 }, da5e23f4c7511c Dong Bo 2018-01-30 2538 { da5e23f4c7511c Dong Bo 2018-01-30 2539 .module_name = "chip3_sas1", da5e23f4c7511c Dong Bo 2018-01-30 2540 .label = "db", da5e23f4c7511c Dong Bo 2018-01-30 2541 .bus_num = 0xf4, da5e23f4c7511c Dong Bo 2018-01-30 2542 .dev_num = 0x04, da5e23f4c7511c Dong Bo 2018-01-30 2543 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2544 }, da5e23f4c7511c Dong Bo 2018-01-30 2545 { da5e23f4c7511c Dong Bo 2018-01-30 2546 .module_name = "chip3_sata", da5e23f4c7511c Dong Bo 2018-01-30 2547 .label = "d7", da5e23f4c7511c Dong Bo 2018-01-30 2548 .bus_num = 0xf4, da5e23f4c7511c Dong Bo 2018-01-30 2549 .dev_num = 0x03, da5e23f4c7511c Dong Bo 2018-01-30 2550 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2551 }, da5e23f4c7511c Dong Bo 2018-01-30 2552 { da5e23f4c7511c Dong Bo 2018-01-30 2553 .module_name = "chip3_zip", da5e23f4c7511c Dong Bo 2018-01-30 2554 .label = "d8", da5e23f4c7511c Dong Bo 2018-01-30 2555 .bus_num = 0xf4, da5e23f4c7511c Dong Bo 2018-01-30 2556 .dev_num = 0x0, da5e23f4c7511c Dong Bo 2018-01-30 2557 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2558 }, da5e23f4c7511c Dong Bo 2018-01-30 2559 { da5e23f4c7511c Dong Bo 2018-01-30 2560 .module_name = "chip3_sec", da5e23f4c7511c Dong Bo 2018-01-30 2561 .label = "d9", da5e23f4c7511c Dong Bo 2018-01-30 2562 .bus_num = 0xf4, da5e23f4c7511c Dong Bo 2018-01-30 2563 .dev_num = 0x1, da5e23f4c7511c Dong Bo 2018-01-30 2564 .skip = 0 da5e23f4c7511c Dong Bo 2018-01-30 2565 }, da5e23f4c7511c Dong Bo 2018-01-30 2566 }; da5e23f4c7511c Dong Bo 2018-01-30 2567 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[PATCH OLK-6.6 v3 0/2] KABI reservation for IMA and crypto
by GUO Zihua 29 Jan '24

29 Jan '24
KABI reservation for IMA and crypto module. v3: Reserve one more u64 for crypto related structs. v2: Changed reservation ordering, and more reservation. GUO Zihua (2): crypto: kabi: KABI reservation for crypto ima: kabi: KABI reservation for IMA include/crypto/aead.h | 7 +++++++ include/crypto/akcipher.h | 7 +++++++ include/crypto/algapi.h | 7 +++++++ include/crypto/cryptd.h | 3 +++ include/crypto/hash.h | 9 +++++++++ include/crypto/if_alg.h | 9 +++++++++ include/crypto/public_key.h | 5 +++++ include/crypto/rng.h | 5 +++++ include/crypto/skcipher.h | 7 +++++++ include/linux/crypto.h | 5 +++++ include/linux/fs.h | 5 +++++ include/linux/kernel_read_file.h | 3 +++ include/linux/kexec.h | 5 +++++ include/linux/user_namespace.h | 3 +++ 14 files changed, 80 insertions(+) -- 2.34.1
1 2
0 0
[PATCH OLK-6.6] iommu/iova: avoid softlockup in fq_flush_timeout
by Zhang Zekun 29 Jan '24

29 Jan '24
hulk inclusion category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/I8ZE0I CVE: NA --------------------------------- There is softlockup under fio pressure test with smmu enabled: watchdog: BUG: soft lockup - CPU#81 stuck for 22s! [swapper/81:0] ... Call trace: fq_flush_timeout+0xc0/0x110 call_timer_fn+0x34/0x178 expire_timers+0xec/0x158 run_timer_softirq+0xc0/0x1f8 __do_softirq+0x120/0x324 irq_exit+0x11c/0x140 __handle_domain_irq+0x6c/0xc0 gic_handle_irq+0x6c/0x170 el1_irq+0xb8/0x140 arch_cpu_idle+0x38/0x1c0 default_idle_call+0x24/0x44 do_idle+0x1f4/0x2d8 cpu_startup_entry+0x2c/0x30 secondary_start_kernel+0x17c/0x1c8 This is because the timer callback fq_flush_timeout may run more than 10ms, and timer may be processed continuously in the softirq so trigger softlockup. We can use work to deal with fq_ring_free for each cpu which may take long time, that to avoid triggering softlockup. Signed-off-by: Li Bin <huawei.libin(a)huawei.com> Signed-off-by: Peng Wu <wupeng58(a)huawei.com> Signed-off-by: Zhang Zekun <zhangzekun11(a)huawei.com> --- drivers/iommu/dma-iommu.c | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c index 4b1a88f514c9..b144ce2b2915 100644 --- a/drivers/iommu/dma-iommu.c +++ b/drivers/iommu/dma-iommu.c @@ -68,6 +68,8 @@ struct iommu_dma_cookie { /* Domain for flush queue callback; NULL if flush queue not in use */ struct iommu_domain *fq_domain; struct mutex mutex; + + struct work_struct free_iova_work; }; static DEFINE_STATIC_KEY_FALSE(iommu_deferred_attach_enabled); @@ -155,20 +157,11 @@ static void fq_flush_iotlb(struct iommu_dma_cookie *cookie) static void fq_flush_timeout(struct timer_list *t) { struct iommu_dma_cookie *cookie = from_timer(cookie, t, fq_timer); - int cpu; atomic_set(&cookie->fq_timer_on, 0); fq_flush_iotlb(cookie); - for_each_possible_cpu(cpu) { - unsigned long flags; - struct iova_fq *fq; - - fq = per_cpu_ptr(cookie->fq, cpu); - spin_lock_irqsave(&fq->lock, flags); - fq_ring_free(cookie, fq); - spin_unlock_irqrestore(&fq->lock, flags); - } + schedule_work(&cookie->free_iova_work); } static void queue_iova(struct iommu_dma_cookie *cookie, @@ -235,9 +228,28 @@ static void iommu_dma_free_fq(struct iommu_dma_cookie *cookie) put_pages_list(&fq->entries[idx].freelist); } + flush_work(&cookie->free_iova_work); free_percpu(cookie->fq); } +static void free_iova_work_func(struct work_struct *work) +{ + struct iommu_dma_cookie *cookie; + int cpu; + + cookie = container_of(work, struct iommu_dma_cookie, free_iova_work); + for_each_possible_cpu(cpu) { + unsigned long flags; + struct iova_fq *fq; + + fq = per_cpu_ptr(cookie->fq, cpu); + spin_lock_irqsave(&fq->lock, flags); + fq_ring_free(cookie, fq); + spin_unlock_irqrestore(&fq->lock, flags); + } +} + + /* sysfs updates are serialised by the mutex of the group owning @domain */ int iommu_dma_init_fq(struct iommu_domain *domain) { @@ -271,6 +283,7 @@ int iommu_dma_init_fq(struct iommu_domain *domain) cookie->fq = queue; + INIT_WORK(&cookie->free_iova_work, free_iova_work_func); timer_setup(&cookie->fq_timer, fq_flush_timeout, 0); atomic_set(&cookie->fq_timer_on, 0); /* -- 2.17.1
2 1
0 0
  • ← Newer
  • 1
  • ...
  • 1308
  • 1309
  • 1310
  • 1311
  • 1312
  • 1313
  • 1314
  • ...
  • 1854
  • Older →

HyperKitty Powered by HyperKitty