From: kernel test robot <lkp@intel.com>
To: Michael Ellerman <mpe@ellerman.id.au>
Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org
Subject: arch/powerpc/platforms/85xx/smp.c:218:28: sparse: sparse: incorrect type in assignment (different address spaces)
Date: Thu, 28 Apr 2022 21:41:52 +0800 [thread overview]
Message-ID: <202204282149.pPlI4fpJ-lkp@intel.com> (raw)
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 8f4dd16603ce834d1c5c4da67803ea82dd282511
commit: 84a61fb43fdfc528a3a7ff00e0b14ba91f5eb745 powerpc/85xx: Make mpc85xx_smp_kexec_cpu_down() static
date: 5 months ago
config: powerpc-randconfig-s032-20220428 (https://download.01.org/0day-ci/archive/20220428/202204282149.pPlI4fpJ-lkp@intel.com/config)
compiler: powerpc-linux-gcc (GCC) 11.3.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.4-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=84a61fb43fdfc528a3a7ff00e0b14ba91f5eb745
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 84a61fb43fdfc528a3a7ff00e0b14ba91f5eb745
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=powerpc SHELL=/bin/bash arch/powerpc/mm/nohash/ arch/powerpc/platforms/85xx/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
sparse warnings: (new ones prefixed by >>)
>> arch/powerpc/platforms/85xx/smp.c:218:28: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct epapr_spin_table [noderef] __iomem *[assigned] spin_table @@ got void * @@
arch/powerpc/platforms/85xx/smp.c:218:28: sparse: expected struct epapr_spin_table [noderef] __iomem *[assigned] spin_table
arch/powerpc/platforms/85xx/smp.c:218:28: sparse: got void *
>> arch/powerpc/platforms/85xx/smp.c:227:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *spin_table @@ got struct epapr_spin_table [noderef] __iomem *[assigned] spin_table @@
arch/powerpc/platforms/85xx/smp.c:227:36: sparse: expected void *spin_table
arch/powerpc/platforms/85xx/smp.c:227:36: sparse: got struct epapr_spin_table [noderef] __iomem *[assigned] spin_table
arch/powerpc/platforms/85xx/smp.c:239:22: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *spin_table @@ got struct epapr_spin_table [noderef] __iomem *[assigned] spin_table @@
arch/powerpc/platforms/85xx/smp.c:239:22: sparse: expected void *spin_table
arch/powerpc/platforms/85xx/smp.c:239:22: sparse: got struct epapr_spin_table [noderef] __iomem *[assigned] spin_table
arch/powerpc/platforms/85xx/smp.c:239:22: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *spin_table @@ got struct epapr_spin_table [noderef] __iomem *[assigned] spin_table @@
arch/powerpc/platforms/85xx/smp.c:239:22: sparse: expected void *spin_table
arch/powerpc/platforms/85xx/smp.c:239:22: sparse: got struct epapr_spin_table [noderef] __iomem *[assigned] spin_table
arch/powerpc/platforms/85xx/smp.c:239:22: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *spin_table @@ got struct epapr_spin_table [noderef] __iomem *[assigned] spin_table @@
arch/powerpc/platforms/85xx/smp.c:239:22: sparse: expected void *spin_table
arch/powerpc/platforms/85xx/smp.c:239:22: sparse: got struct epapr_spin_table [noderef] __iomem *[assigned] spin_table
arch/powerpc/platforms/85xx/smp.c:239:22: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *spin_table @@ got struct epapr_spin_table [noderef] __iomem *[assigned] spin_table @@
arch/powerpc/platforms/85xx/smp.c:239:22: sparse: expected void *spin_table
arch/powerpc/platforms/85xx/smp.c:239:22: sparse: got struct epapr_spin_table [noderef] __iomem *[assigned] spin_table
arch/powerpc/platforms/85xx/smp.c:249:26: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *spin_table @@ got struct epapr_spin_table [noderef] __iomem *[assigned] spin_table @@
arch/powerpc/platforms/85xx/smp.c:249:26: sparse: expected void *spin_table
arch/powerpc/platforms/85xx/smp.c:249:26: sparse: got struct epapr_spin_table [noderef] __iomem *[assigned] spin_table
arch/powerpc/platforms/85xx/smp.c:266:26: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *spin_table @@ got struct epapr_spin_table [noderef] __iomem *[assigned] spin_table @@
arch/powerpc/platforms/85xx/smp.c:266:26: sparse: expected void *spin_table
arch/powerpc/platforms/85xx/smp.c:266:26: sparse: got struct epapr_spin_table [noderef] __iomem *[assigned] spin_table
>> arch/powerpc/platforms/85xx/smp.c:367:10: sparse: sparse: symbol 'kexec_down_cpus' was not declared. Should it be static?
>> arch/powerpc/platforms/85xx/smp.c:173:27: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected unsigned int const volatile [noderef] [usertype] __iomem *addr @@ got unsigned int * @@
arch/powerpc/platforms/85xx/smp.c:173:27: sparse: expected unsigned int const volatile [noderef] [usertype] __iomem *addr
arch/powerpc/platforms/85xx/smp.c:173:27: sparse: got unsigned int *
>> arch/powerpc/platforms/85xx/smp.c:173:27: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected unsigned int const volatile [noderef] [usertype] __iomem *addr @@ got unsigned int * @@
arch/powerpc/platforms/85xx/smp.c:173:27: sparse: expected unsigned int const volatile [noderef] [usertype] __iomem *addr
arch/powerpc/platforms/85xx/smp.c:173:27: sparse: got unsigned int *
>> arch/powerpc/platforms/85xx/smp.c:173:27: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected unsigned int const volatile [noderef] [usertype] __iomem *addr @@ got unsigned int * @@
arch/powerpc/platforms/85xx/smp.c:173:27: sparse: expected unsigned int const volatile [noderef] [usertype] __iomem *addr
arch/powerpc/platforms/85xx/smp.c:173:27: sparse: got unsigned int *
>> arch/powerpc/platforms/85xx/smp.c:173:27: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected unsigned int const volatile [noderef] [usertype] __iomem *addr @@ got unsigned int * @@
arch/powerpc/platforms/85xx/smp.c:173:27: sparse: expected unsigned int const volatile [noderef] [usertype] __iomem *addr
arch/powerpc/platforms/85xx/smp.c:173:27: sparse: got unsigned int *
vim +218 arch/powerpc/platforms/85xx/smp.c
bc15236fbed1e0 York Sun 2012-09-29 168
bc15236fbed1e0 York Sun 2012-09-29 169 static inline u32 read_spin_table_addr_l(void *spin_table)
bc15236fbed1e0 York Sun 2012-09-29 170 {
bc15236fbed1e0 York Sun 2012-09-29 171 flush_dcache_range((ulong)spin_table,
bc15236fbed1e0 York Sun 2012-09-29 172 (ulong)spin_table + sizeof(struct epapr_spin_table));
bc15236fbed1e0 York Sun 2012-09-29 @173 return in_be32(&((struct epapr_spin_table *)spin_table)->addr_l);
bc15236fbed1e0 York Sun 2012-09-29 174 }
bc15236fbed1e0 York Sun 2012-09-29 175
e16c8765533a15 Andy Fleming 2011-12-08 176 #ifdef CONFIG_PPC64
e16c8765533a15 Andy Fleming 2011-12-08 177 static void wake_hw_thread(void *info)
e16c8765533a15 Andy Fleming 2011-12-08 178 {
e16c8765533a15 Andy Fleming 2011-12-08 179 void fsl_secondary_thread_init(void);
6becef7ea04a69 chenhui zhao 2015-11-20 180 unsigned long inia;
6becef7ea04a69 chenhui zhao 2015-11-20 181 int cpu = *(const int *)info;
e16c8765533a15 Andy Fleming 2011-12-08 182
01c593d749f476 Scott Wood 2015-10-06 183 inia = *(unsigned long *)fsl_secondary_thread_init;
6becef7ea04a69 chenhui zhao 2015-11-20 184 book3e_start_thread(cpu_thread_in_core(cpu), inia);
e16c8765533a15 Andy Fleming 2011-12-08 185 }
e16c8765533a15 Andy Fleming 2011-12-08 186 #endif
e16c8765533a15 Andy Fleming 2011-12-08 187
2f4f1f815bc6d0 chenhui zhao 2015-11-20 188 static int smp_85xx_start_cpu(int cpu)
d5b26db2cfcf09 Kumar Gala 2008-11-19 189 {
2f4f1f815bc6d0 chenhui zhao 2015-11-20 190 int ret = 0;
d5b26db2cfcf09 Kumar Gala 2008-11-19 191 struct device_node *np;
2f4f1f815bc6d0 chenhui zhao 2015-11-20 192 const u64 *cpu_rel_addr;
2f4f1f815bc6d0 chenhui zhao 2015-11-20 193 unsigned long flags;
d1d47ec6e62ab0 Peter Tyser 2009-12-18 194 int ioremappable;
2f4f1f815bc6d0 chenhui zhao 2015-11-20 195 int hw_cpu = get_hard_smp_processor_id(cpu);
2f4f1f815bc6d0 chenhui zhao 2015-11-20 196 struct epapr_spin_table __iomem *spin_table;
e16c8765533a15 Andy Fleming 2011-12-08 197
2f4f1f815bc6d0 chenhui zhao 2015-11-20 198 np = of_get_cpu_node(cpu, NULL);
d5b26db2cfcf09 Kumar Gala 2008-11-19 199 cpu_rel_addr = of_get_property(np, "cpu-release-addr", NULL);
2f4f1f815bc6d0 chenhui zhao 2015-11-20 200 if (!cpu_rel_addr) {
2f4f1f815bc6d0 chenhui zhao 2015-11-20 201 pr_err("No cpu-release-addr for cpu %d\n", cpu);
de300974761d92 Michael Ellerman 2011-04-11 202 return -ENOENT;
d5b26db2cfcf09 Kumar Gala 2008-11-19 203 }
d5b26db2cfcf09 Kumar Gala 2008-11-19 204
d1d47ec6e62ab0 Peter Tyser 2009-12-18 205 /*
d1d47ec6e62ab0 Peter Tyser 2009-12-18 206 * A secondary core could be in a spinloop in the bootpage
d1d47ec6e62ab0 Peter Tyser 2009-12-18 207 * (0xfffff000), somewhere in highmem, or somewhere in lowmem.
d1d47ec6e62ab0 Peter Tyser 2009-12-18 208 * The bootpage and highmem can be accessed via ioremap(), but
d1d47ec6e62ab0 Peter Tyser 2009-12-18 209 * we need to directly access the spinloop if its in lowmem.
d1d47ec6e62ab0 Peter Tyser 2009-12-18 210 */
d1d47ec6e62ab0 Peter Tyser 2009-12-18 211 ioremappable = *cpu_rel_addr > virt_to_phys(high_memory);
d1d47ec6e62ab0 Peter Tyser 2009-12-18 212
d5b26db2cfcf09 Kumar Gala 2008-11-19 213 /* Map the spin table */
d1d47ec6e62ab0 Peter Tyser 2009-12-18 214 if (ioremappable)
aa91796ec46339 Christophe Leroy 2018-10-09 215 spin_table = ioremap_coherent(*cpu_rel_addr,
aa91796ec46339 Christophe Leroy 2018-10-09 216 sizeof(struct epapr_spin_table));
d1d47ec6e62ab0 Peter Tyser 2009-12-18 217 else
15f34eb12340b2 Zhao Chenhui 2012-07-20 @218 spin_table = phys_to_virt(*cpu_rel_addr);
d5b26db2cfcf09 Kumar Gala 2008-11-19 219
cb1ffb6204712b Kumar Gala 2009-06-19 220 local_irq_save(flags);
2f4f1f815bc6d0 chenhui zhao 2015-11-20 221 hard_irq_disable();
d0832a75075b11 Zhao Chenhui 2012-07-20 222
2f4f1f815bc6d0 chenhui zhao 2015-11-20 223 if (qoriq_pm_ops)
2f4f1f815bc6d0 chenhui zhao 2015-11-20 224 qoriq_pm_ops->cpu_up_prepare(cpu);
cb1ffb6204712b Kumar Gala 2009-06-19 225
2f4f1f815bc6d0 chenhui zhao 2015-11-20 226 /* if cpu is not spinning, reset it */
2f4f1f815bc6d0 chenhui zhao 2015-11-20 @227 if (read_spin_table_addr_l(spin_table) != 1) {
d0832a75075b11 Zhao Chenhui 2012-07-20 228 /*
d0832a75075b11 Zhao Chenhui 2012-07-20 229 * We don't set the BPTR register here since it already points
d0832a75075b11 Zhao Chenhui 2012-07-20 230 * to the boot page properly.
d0832a75075b11 Zhao Chenhui 2012-07-20 231 */
2f4f1f815bc6d0 chenhui zhao 2015-11-20 232 mpic_reset_core(cpu);
d0832a75075b11 Zhao Chenhui 2012-07-20 233
bc15236fbed1e0 York Sun 2012-09-29 234 /*
bc15236fbed1e0 York Sun 2012-09-29 235 * wait until core is ready...
bc15236fbed1e0 York Sun 2012-09-29 236 * We need to invalidate the stale data, in case the boot
bc15236fbed1e0 York Sun 2012-09-29 237 * loader uses a cache-inhibited spin table.
bc15236fbed1e0 York Sun 2012-09-29 238 */
bc15236fbed1e0 York Sun 2012-09-29 239 if (!spin_event_timeout(
bc15236fbed1e0 York Sun 2012-09-29 240 read_spin_table_addr_l(spin_table) == 1,
d0832a75075b11 Zhao Chenhui 2012-07-20 241 10000, 100)) {
2f4f1f815bc6d0 chenhui zhao 2015-11-20 242 pr_err("timeout waiting for cpu %d to reset\n",
2f4f1f815bc6d0 chenhui zhao 2015-11-20 243 hw_cpu);
2f4f1f815bc6d0 chenhui zhao 2015-11-20 244 ret = -EAGAIN;
2f4f1f815bc6d0 chenhui zhao 2015-11-20 245 goto err;
d0832a75075b11 Zhao Chenhui 2012-07-20 246 }
d0832a75075b11 Zhao Chenhui 2012-07-20 247 }
decbb280bb8e3b Kumar Gala 2011-02-14 248
bc15236fbed1e0 York Sun 2012-09-29 249 flush_spin_table(spin_table);
d0832a75075b11 Zhao Chenhui 2012-07-20 250 out_be32(&spin_table->pir, hw_cpu);
2f4f1f815bc6d0 chenhui zhao 2015-11-20 251 #ifdef CONFIG_PPC64
15f34eb12340b2 Zhao Chenhui 2012-07-20 252 out_be64((u64 *)(&spin_table->addr_h),
2751b628c97e66 Anton Blanchard 2014-03-11 253 __pa(ppc_function_entry(generic_secondary_smp_init)));
2f4f1f815bc6d0 chenhui zhao 2015-11-20 254 #else
eeb09917c138cc Bai Yingjie 2020-01-06 255 #ifdef CONFIG_PHYS_ADDR_T_64BIT
eeb09917c138cc Bai Yingjie 2020-01-06 256 /*
eeb09917c138cc Bai Yingjie 2020-01-06 257 * We need also to write addr_h to spin table for systems
eeb09917c138cc Bai Yingjie 2020-01-06 258 * in which their physical memory start address was configured
eeb09917c138cc Bai Yingjie 2020-01-06 259 * to above 4G, otherwise the secondary core can not get
eeb09917c138cc Bai Yingjie 2020-01-06 260 * correct entry to start from.
eeb09917c138cc Bai Yingjie 2020-01-06 261 */
eeb09917c138cc Bai Yingjie 2020-01-06 262 out_be32(&spin_table->addr_h, __pa(__early_start) >> 32);
eeb09917c138cc Bai Yingjie 2020-01-06 263 #endif
2f4f1f815bc6d0 chenhui zhao 2015-11-20 264 out_be32(&spin_table->addr_l, __pa(__early_start));
5b8544c38e6fde Kumar Gala 2010-10-08 265 #endif
2f4f1f815bc6d0 chenhui zhao 2015-11-20 266 flush_spin_table(spin_table);
2f4f1f815bc6d0 chenhui zhao 2015-11-20 267 err:
d5b26db2cfcf09 Kumar Gala 2008-11-19 268 local_irq_restore(flags);
d5b26db2cfcf09 Kumar Gala 2008-11-19 269
d1d47ec6e62ab0 Peter Tyser 2009-12-18 270 if (ioremappable)
15f34eb12340b2 Zhao Chenhui 2012-07-20 271 iounmap(spin_table);
cb1ffb6204712b Kumar Gala 2009-06-19 272
d0832a75075b11 Zhao Chenhui 2012-07-20 273 return ret;
d5b26db2cfcf09 Kumar Gala 2008-11-19 274 }
d5b26db2cfcf09 Kumar Gala 2008-11-19 275
2f4f1f815bc6d0 chenhui zhao 2015-11-20 276 static int smp_85xx_kick_cpu(int nr)
2f4f1f815bc6d0 chenhui zhao 2015-11-20 277 {
2f4f1f815bc6d0 chenhui zhao 2015-11-20 278 int ret = 0;
2f4f1f815bc6d0 chenhui zhao 2015-11-20 279 #ifdef CONFIG_PPC64
2f4f1f815bc6d0 chenhui zhao 2015-11-20 280 int primary = nr;
2f4f1f815bc6d0 chenhui zhao 2015-11-20 281 #endif
2f4f1f815bc6d0 chenhui zhao 2015-11-20 282
2f4f1f815bc6d0 chenhui zhao 2015-11-20 283 WARN_ON(nr < 0 || nr >= num_possible_cpus());
2f4f1f815bc6d0 chenhui zhao 2015-11-20 284
2f4f1f815bc6d0 chenhui zhao 2015-11-20 285 pr_debug("kick CPU #%d\n", nr);
2f4f1f815bc6d0 chenhui zhao 2015-11-20 286
2f4f1f815bc6d0 chenhui zhao 2015-11-20 287 #ifdef CONFIG_PPC64
6becef7ea04a69 chenhui zhao 2015-11-20 288 if (threads_per_core == 2) {
2f4f1f815bc6d0 chenhui zhao 2015-11-20 289 if (WARN_ON_ONCE(!cpu_has_feature(CPU_FTR_SMT)))
2f4f1f815bc6d0 chenhui zhao 2015-11-20 290 return -ENOENT;
2f4f1f815bc6d0 chenhui zhao 2015-11-20 291
6becef7ea04a69 chenhui zhao 2015-11-20 292 booting_thread_hwid = cpu_thread_in_core(nr);
6becef7ea04a69 chenhui zhao 2015-11-20 293 primary = cpu_first_thread_sibling(nr);
2f4f1f815bc6d0 chenhui zhao 2015-11-20 294
6becef7ea04a69 chenhui zhao 2015-11-20 295 if (qoriq_pm_ops)
6becef7ea04a69 chenhui zhao 2015-11-20 296 qoriq_pm_ops->cpu_up_prepare(nr);
6becef7ea04a69 chenhui zhao 2015-11-20 297
6becef7ea04a69 chenhui zhao 2015-11-20 298 /*
6becef7ea04a69 chenhui zhao 2015-11-20 299 * If either thread in the core is online, use it to start
6becef7ea04a69 chenhui zhao 2015-11-20 300 * the other.
6becef7ea04a69 chenhui zhao 2015-11-20 301 */
6becef7ea04a69 chenhui zhao 2015-11-20 302 if (cpu_online(primary)) {
6becef7ea04a69 chenhui zhao 2015-11-20 303 smp_call_function_single(primary,
6becef7ea04a69 chenhui zhao 2015-11-20 304 wake_hw_thread, &nr, 1);
6becef7ea04a69 chenhui zhao 2015-11-20 305 goto done;
6becef7ea04a69 chenhui zhao 2015-11-20 306 } else if (cpu_online(primary + 1)) {
6becef7ea04a69 chenhui zhao 2015-11-20 307 smp_call_function_single(primary + 1,
6becef7ea04a69 chenhui zhao 2015-11-20 308 wake_hw_thread, &nr, 1);
6becef7ea04a69 chenhui zhao 2015-11-20 309 goto done;
2f4f1f815bc6d0 chenhui zhao 2015-11-20 310 }
2f4f1f815bc6d0 chenhui zhao 2015-11-20 311
6becef7ea04a69 chenhui zhao 2015-11-20 312 /*
6becef7ea04a69 chenhui zhao 2015-11-20 313 * If getting here, it means both threads in the core are
6becef7ea04a69 chenhui zhao 2015-11-20 314 * offline. So start the primary thread, then it will start
6becef7ea04a69 chenhui zhao 2015-11-20 315 * the thread specified in booting_thread_hwid, the one
6becef7ea04a69 chenhui zhao 2015-11-20 316 * corresponding to nr.
6becef7ea04a69 chenhui zhao 2015-11-20 317 */
6becef7ea04a69 chenhui zhao 2015-11-20 318
6becef7ea04a69 chenhui zhao 2015-11-20 319 } else if (threads_per_core == 1) {
6becef7ea04a69 chenhui zhao 2015-11-20 320 /*
6becef7ea04a69 chenhui zhao 2015-11-20 321 * If one core has only one thread, set booting_thread_hwid to
6becef7ea04a69 chenhui zhao 2015-11-20 322 * an invalid value.
6becef7ea04a69 chenhui zhao 2015-11-20 323 */
6becef7ea04a69 chenhui zhao 2015-11-20 324 booting_thread_hwid = INVALID_THREAD_HWID;
6becef7ea04a69 chenhui zhao 2015-11-20 325
6becef7ea04a69 chenhui zhao 2015-11-20 326 } else if (threads_per_core > 2) {
6becef7ea04a69 chenhui zhao 2015-11-20 327 pr_err("Do not support more than 2 threads per CPU.");
6becef7ea04a69 chenhui zhao 2015-11-20 328 return -EINVAL;
2f4f1f815bc6d0 chenhui zhao 2015-11-20 329 }
2f4f1f815bc6d0 chenhui zhao 2015-11-20 330
2f4f1f815bc6d0 chenhui zhao 2015-11-20 331 ret = smp_85xx_start_cpu(primary);
2f4f1f815bc6d0 chenhui zhao 2015-11-20 332 if (ret)
2f4f1f815bc6d0 chenhui zhao 2015-11-20 333 return ret;
2f4f1f815bc6d0 chenhui zhao 2015-11-20 334
6becef7ea04a69 chenhui zhao 2015-11-20 335 done:
d2e60075a3d442 Nicholas Piggin 2018-02-14 336 paca_ptrs[nr]->cpu_start = 1;
2f4f1f815bc6d0 chenhui zhao 2015-11-20 337 generic_set_cpu_up(nr);
2f4f1f815bc6d0 chenhui zhao 2015-11-20 338
2f4f1f815bc6d0 chenhui zhao 2015-11-20 339 return ret;
2f4f1f815bc6d0 chenhui zhao 2015-11-20 340 #else
2f4f1f815bc6d0 chenhui zhao 2015-11-20 341 ret = smp_85xx_start_cpu(nr);
2f4f1f815bc6d0 chenhui zhao 2015-11-20 342 if (ret)
2f4f1f815bc6d0 chenhui zhao 2015-11-20 343 return ret;
2f4f1f815bc6d0 chenhui zhao 2015-11-20 344
2f4f1f815bc6d0 chenhui zhao 2015-11-20 345 generic_set_cpu_up(nr);
2f4f1f815bc6d0 chenhui zhao 2015-11-20 346
2f4f1f815bc6d0 chenhui zhao 2015-11-20 347 return ret;
2f4f1f815bc6d0 chenhui zhao 2015-11-20 348 #endif
2f4f1f815bc6d0 chenhui zhao 2015-11-20 349 }
2f4f1f815bc6d0 chenhui zhao 2015-11-20 350
d5b26db2cfcf09 Kumar Gala 2008-11-19 351 struct smp_ops_t smp_85xx_ops = {
c64af6458e2e2d Nicholas Piggin 2016-12-20 352 .cause_nmi_ipi = NULL,
d5b26db2cfcf09 Kumar Gala 2008-11-19 353 .kick_cpu = smp_85xx_kick_cpu,
39fd40274d1f3a Andy Fleming 2013-08-05 354 .cpu_bootable = smp_generic_cpu_bootable,
d0832a75075b11 Zhao Chenhui 2012-07-20 355 #ifdef CONFIG_HOTPLUG_CPU
d0832a75075b11 Zhao Chenhui 2012-07-20 356 .cpu_disable = generic_cpu_disable,
d0832a75075b11 Zhao Chenhui 2012-07-20 357 .cpu_die = generic_cpu_die,
d0832a75075b11 Zhao Chenhui 2012-07-20 358 #endif
da6658859b9c73 Thiago Jung Bauermann 2016-11-29 359 #if defined(CONFIG_KEXEC_CORE) && !defined(CONFIG_PPC64)
f933a41e419a95 Matthew McClintock 2010-07-21 360 .give_timebase = smp_generic_give_timebase,
f933a41e419a95 Matthew McClintock 2010-07-21 361 .take_timebase = smp_generic_take_timebase,
f933a41e419a95 Matthew McClintock 2010-07-21 362 #endif
d5b26db2cfcf09 Kumar Gala 2008-11-19 363 };
d5b26db2cfcf09 Kumar Gala 2008-11-19 364
da6658859b9c73 Thiago Jung Bauermann 2016-11-29 365 #ifdef CONFIG_KEXEC_CORE
939fbf00805b39 Tiejun Chen 2015-10-06 366 #ifdef CONFIG_PPC32
5d692961633d4e Matthew McClintock 2010-09-16 @367 atomic_t kexec_down_cpus = ATOMIC_INIT(0);
f933a41e419a95 Matthew McClintock 2010-07-21 368
:::::: The code at line 218 was first introduced by commit
:::::: 15f34eb12340b2c2e0cd90c5987ad6b5f73b79b7 powerpc/85xx: Replace epapr spin table macros/defines with a struct
:::::: TO: Zhao Chenhui <chenhui.zhao@freescale.com>
:::::: CC: Kumar Gala <galak@kernel.crashing.org>
--
0-DAY CI Kernel Test Service
https://01.org/lkp
next reply other threads:[~2022-04-28 13:42 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-28 13:41 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2022-07-02 17:04 arch/powerpc/platforms/85xx/smp.c:218:28: sparse: sparse: incorrect type in assignment (different address spaces) kernel test robot
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=202204282149.pPlI4fpJ-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@lists.01.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mpe@ellerman.id.au \
/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.