Message ID | 9D8FEE1731685D9B+20240102024834.1276-2-luming.yu@shingroup.cn (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [v1,1/1] powerpc/powernv: fix up kernel compile issues | expand |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/github-powerpc_ppctests | success | Successfully ran 8 jobs. |
snowpatch_ozlabs/github-powerpc_selftests | success | Successfully ran 8 jobs. |
Hi Luming,
kernel test robot noticed the following build errors:
[auto build test ERROR on powerpc/next]
[also build test ERROR on powerpc/fixes linus/master v6.7-rc8 next-20240103]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Luming-Yu/powerpc-powernv-fix-up-kernel-compile-issues/20240102-105402
base: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
patch link: https://lore.kernel.org/r/9D8FEE1731685D9B%2B20240102024834.1276-2-luming.yu%40shingroup.cn
patch subject: [PATCH v1 1/1] powerpc/powernv: fix up kernel compile issues
config: powerpc-powernv_defconfig (https://download.01.org/0day-ci/archive/20240103/202401032003.71Dm6nhR-lkp@intel.com/config)
compiler: clang version 18.0.0git (https://github.com/llvm/llvm-project baf8a39aaf8b61a38b5b2b5591deb765e42eb00b)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240103/202401032003.71Dm6nhR-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202401032003.71Dm6nhR-lkp@intel.com/
All errors (new ones prefixed by >>):
>> drivers/crypto/nx/nx-common-powernv.c:718:13: error: call to undeclared function 'cpu_to_chip_id'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
718 | chip_id = cpu_to_chip_id(i);
| ^
1 error generated.
vim +/cpu_to_chip_id +718 drivers/crypto/nx/nx-common-powernv.c
b0d6c9bab5e41d drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-08-31 703
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 704 /*
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 705 * Identify chip ID for each CPU, open send wndow for the corresponding NX
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 706 * engine and save txwin in percpu cpu_txwin.
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 707 * cpu_txwin is used in copy/paste operation for each compression /
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 708 * decompression request.
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 709 */
4aebf3ce26ca21 drivers/crypto/nx/nx-common-powernv.c Haren Myneni 2020-04-17 710 static int nx_open_percpu_txwins(void)
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 711 {
4aebf3ce26ca21 drivers/crypto/nx/nx-common-powernv.c Haren Myneni 2020-04-17 712 struct nx_coproc *coproc, *n;
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 713 unsigned int i, chip_id;
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 714
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 715 for_each_possible_cpu(i) {
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 716 struct vas_window *txwin = NULL;
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 717
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 @718 chip_id = cpu_to_chip_id(i);
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 719
4aebf3ce26ca21 drivers/crypto/nx/nx-common-powernv.c Haren Myneni 2020-04-17 720 list_for_each_entry_safe(coproc, n, &nx_coprocs, list) {
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 721 /*
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 722 * Kernel requests use only high priority FIFOs. So
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 723 * open send windows for these FIFOs.
4aebf3ce26ca21 drivers/crypto/nx/nx-common-powernv.c Haren Myneni 2020-04-17 724 * GZIP is not supported in kernel right now.
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 725 */
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 726
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 727 if (coproc->ct != VAS_COP_TYPE_842_HIPRI)
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 728 continue;
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 729
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 730 if (coproc->chip_id == chip_id) {
4aebf3ce26ca21 drivers/crypto/nx/nx-common-powernv.c Haren Myneni 2020-04-17 731 txwin = nx_alloc_txwin(coproc);
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 732 if (IS_ERR(txwin))
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 733 return PTR_ERR(txwin);
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 734
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 735 per_cpu(cpu_txwin, i) = txwin;
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 736 break;
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 737 }
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 738 }
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 739
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 740 if (!per_cpu(cpu_txwin, i)) {
6905c461e539ca drivers/crypto/nx/nx-842-powernv.c Colin Ian King 2017-11-14 741 /* shouldn't happen, Each chip will have NX engine */
6905c461e539ca drivers/crypto/nx/nx-842-powernv.c Colin Ian King 2017-11-14 742 pr_err("NX engine is not available for CPU %d\n", i);
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 743 return -EINVAL;
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 744 }
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 745 }
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 746
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 747 return 0;
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 748 }
976dd6490b1b45 drivers/crypto/nx/nx-842-powernv.c Haren Myneni 2017-09-24 749
Hi, Le 02/01/2024 à 03:48, Luming Yu a écrit : > [Vous ne recevez pas souvent de courriers de luming.yu@shingroup.cn. Découvrez pourquoi ceci est important à https://aka.ms/LearnAboutSenderIdentification ] > > up kernel is quite useful to silicon validation, despite > it is rare to be found in server productions. the fixes are > obvious. Not like IBM pSeries, it may be not necessary > to have powernv SMP forced. It is difficult to compile a > up kernel for pSerises as I've tried. You title and message are confusing. "fix up" has a standard meaning in english language, see https://www.collinsdictionary.com/dictionary/english/fix-up "up" also has a meaning, see https://www.collinsdictionary.com/dictionary/english/up Use "non-SMP" instead of "UP". For instance, see commit 5657c1167835 ("sched/core: Fix NULL pointer access fault in sched_setaffinity() with non-SMP configs") Christophe > > Signed-off-by: Luming Yu <luming.yu@shingroup.cn> > --- > v0->v1: solve powernv vas up kernel compile issues found by lkp bot. > --- > arch/powerpc/platforms/powernv/Kconfig | 1 - > arch/powerpc/platforms/powernv/opal-imc.c | 1 + > arch/powerpc/platforms/powernv/vas.c | 1 + > arch/powerpc/platforms/powernv/vas.h | 1 + > arch/powerpc/sysdev/xive/common.c | 2 ++ > arch/powerpc/sysdev/xive/spapr.c | 5 ++++- > 6 files changed, 9 insertions(+), 2 deletions(-) > > diff --git a/arch/powerpc/platforms/powernv/Kconfig b/arch/powerpc/platforms/powernv/Kconfig > index 70a46acc70d6..40b1a49379de 100644 > --- a/arch/powerpc/platforms/powernv/Kconfig > +++ b/arch/powerpc/platforms/powernv/Kconfig > @@ -15,7 +15,6 @@ config PPC_POWERNV > select CPU_FREQ > select PPC_DOORBELL > select MMU_NOTIFIER > - select FORCE_SMP > select ARCH_SUPPORTS_PER_VMA_LOCK > default y > > diff --git a/arch/powerpc/platforms/powernv/opal-imc.c b/arch/powerpc/platforms/powernv/opal-imc.c > index 828fc4d88471..6e9e2b0a5bdc 100644 > --- a/arch/powerpc/platforms/powernv/opal-imc.c > +++ b/arch/powerpc/platforms/powernv/opal-imc.c > @@ -13,6 +13,7 @@ > #include <linux/of_address.h> > #include <linux/crash_dump.h> > #include <linux/debugfs.h> > +#include <asm/smp.h> > #include <asm/opal.h> > #include <asm/io.h> > #include <asm/imc-pmu.h> > diff --git a/arch/powerpc/platforms/powernv/vas.c b/arch/powerpc/platforms/powernv/vas.c > index b65256a63e87..c1759135aca5 100644 > --- a/arch/powerpc/platforms/powernv/vas.c > +++ b/arch/powerpc/platforms/powernv/vas.c > @@ -18,6 +18,7 @@ > #include <linux/interrupt.h> > #include <asm/prom.h> > #include <asm/xive.h> > +#include <asm/smp.h> > > #include "vas.h" > > diff --git a/arch/powerpc/platforms/powernv/vas.h b/arch/powerpc/platforms/powernv/vas.h > index 08d9d3d5a22b..313a8f2c8c7d 100644 > --- a/arch/powerpc/platforms/powernv/vas.h > +++ b/arch/powerpc/platforms/powernv/vas.h > @@ -12,6 +12,7 @@ > #include <linux/dcache.h> > #include <linux/mutex.h> > #include <linux/stringify.h> > +#include <linux/interrupt.h> > > /* > * Overview of Virtual Accelerator Switchboard (VAS). > diff --git a/arch/powerpc/sysdev/xive/common.c b/arch/powerpc/sysdev/xive/common.c > index a289cb97c1d7..d49b12809c10 100644 > --- a/arch/powerpc/sysdev/xive/common.c > +++ b/arch/powerpc/sysdev/xive/common.c > @@ -1497,7 +1497,9 @@ static int xive_prepare_cpu(unsigned int cpu) > GFP_KERNEL, cpu_to_node(cpu)); > if (!xc) > return -ENOMEM; > +#ifdef CONFIG_SMP > xc->hw_ipi = XIVE_BAD_IRQ; > +#endif > xc->chip_id = XIVE_INVALID_CHIP_ID; > if (xive_ops->prepare_cpu) > xive_ops->prepare_cpu(cpu, xc); > diff --git a/arch/powerpc/sysdev/xive/spapr.c b/arch/powerpc/sysdev/xive/spapr.c > index e45419264391..7298f57f8416 100644 > --- a/arch/powerpc/sysdev/xive/spapr.c > +++ b/arch/powerpc/sysdev/xive/spapr.c > @@ -81,6 +81,7 @@ static void xive_irq_bitmap_remove_all(void) > } > } > > +#ifdef CONFIG_SMP > static int __xive_irq_bitmap_alloc(struct xive_irq_bitmap *xibm) > { > int irq; > @@ -126,7 +127,7 @@ static void xive_irq_bitmap_free(int irq) > } > } > } > - > +#endif > > /* Based on the similar routines in RTAS */ > static unsigned int plpar_busy_delay_time(long rc) > @@ -663,6 +664,7 @@ static void xive_spapr_sync_source(u32 hw_irq) > plpar_int_sync(0, hw_irq); > } > > +#ifdef CONFIG_SMP > static int xive_spapr_debug_show(struct seq_file *m, void *private) > { > struct xive_irq_bitmap *xibm; > @@ -680,6 +682,7 @@ static int xive_spapr_debug_show(struct seq_file *m, void *private) > > return 0; > } > +#endif > > static const struct xive_ops xive_spapr_ops = { > .populate_irq_data = xive_spapr_populate_irq_data, > -- > 2.42.0.windows.2 >
diff --git a/arch/powerpc/platforms/powernv/Kconfig b/arch/powerpc/platforms/powernv/Kconfig index 70a46acc70d6..40b1a49379de 100644 --- a/arch/powerpc/platforms/powernv/Kconfig +++ b/arch/powerpc/platforms/powernv/Kconfig @@ -15,7 +15,6 @@ config PPC_POWERNV select CPU_FREQ select PPC_DOORBELL select MMU_NOTIFIER - select FORCE_SMP select ARCH_SUPPORTS_PER_VMA_LOCK default y diff --git a/arch/powerpc/platforms/powernv/opal-imc.c b/arch/powerpc/platforms/powernv/opal-imc.c index 828fc4d88471..6e9e2b0a5bdc 100644 --- a/arch/powerpc/platforms/powernv/opal-imc.c +++ b/arch/powerpc/platforms/powernv/opal-imc.c @@ -13,6 +13,7 @@ #include <linux/of_address.h> #include <linux/crash_dump.h> #include <linux/debugfs.h> +#include <asm/smp.h> #include <asm/opal.h> #include <asm/io.h> #include <asm/imc-pmu.h> diff --git a/arch/powerpc/platforms/powernv/vas.c b/arch/powerpc/platforms/powernv/vas.c index b65256a63e87..c1759135aca5 100644 --- a/arch/powerpc/platforms/powernv/vas.c +++ b/arch/powerpc/platforms/powernv/vas.c @@ -18,6 +18,7 @@ #include <linux/interrupt.h> #include <asm/prom.h> #include <asm/xive.h> +#include <asm/smp.h> #include "vas.h" diff --git a/arch/powerpc/platforms/powernv/vas.h b/arch/powerpc/platforms/powernv/vas.h index 08d9d3d5a22b..313a8f2c8c7d 100644 --- a/arch/powerpc/platforms/powernv/vas.h +++ b/arch/powerpc/platforms/powernv/vas.h @@ -12,6 +12,7 @@ #include <linux/dcache.h> #include <linux/mutex.h> #include <linux/stringify.h> +#include <linux/interrupt.h> /* * Overview of Virtual Accelerator Switchboard (VAS). diff --git a/arch/powerpc/sysdev/xive/common.c b/arch/powerpc/sysdev/xive/common.c index a289cb97c1d7..d49b12809c10 100644 --- a/arch/powerpc/sysdev/xive/common.c +++ b/arch/powerpc/sysdev/xive/common.c @@ -1497,7 +1497,9 @@ static int xive_prepare_cpu(unsigned int cpu) GFP_KERNEL, cpu_to_node(cpu)); if (!xc) return -ENOMEM; +#ifdef CONFIG_SMP xc->hw_ipi = XIVE_BAD_IRQ; +#endif xc->chip_id = XIVE_INVALID_CHIP_ID; if (xive_ops->prepare_cpu) xive_ops->prepare_cpu(cpu, xc); diff --git a/arch/powerpc/sysdev/xive/spapr.c b/arch/powerpc/sysdev/xive/spapr.c index e45419264391..7298f57f8416 100644 --- a/arch/powerpc/sysdev/xive/spapr.c +++ b/arch/powerpc/sysdev/xive/spapr.c @@ -81,6 +81,7 @@ static void xive_irq_bitmap_remove_all(void) } } +#ifdef CONFIG_SMP static int __xive_irq_bitmap_alloc(struct xive_irq_bitmap *xibm) { int irq; @@ -126,7 +127,7 @@ static void xive_irq_bitmap_free(int irq) } } } - +#endif /* Based on the similar routines in RTAS */ static unsigned int plpar_busy_delay_time(long rc) @@ -663,6 +664,7 @@ static void xive_spapr_sync_source(u32 hw_irq) plpar_int_sync(0, hw_irq); } +#ifdef CONFIG_SMP static int xive_spapr_debug_show(struct seq_file *m, void *private) { struct xive_irq_bitmap *xibm; @@ -680,6 +682,7 @@ static int xive_spapr_debug_show(struct seq_file *m, void *private) return 0; } +#endif static const struct xive_ops xive_spapr_ops = { .populate_irq_data = xive_spapr_populate_irq_data,
up kernel is quite useful to silicon validation, despite it is rare to be found in server productions. the fixes are obvious. Not like IBM pSeries, it may be not necessary to have powernv SMP forced. It is difficult to compile a up kernel for pSerises as I've tried. Signed-off-by: Luming Yu <luming.yu@shingroup.cn> --- v0->v1: solve powernv vas up kernel compile issues found by lkp bot. --- arch/powerpc/platforms/powernv/Kconfig | 1 - arch/powerpc/platforms/powernv/opal-imc.c | 1 + arch/powerpc/platforms/powernv/vas.c | 1 + arch/powerpc/platforms/powernv/vas.h | 1 + arch/powerpc/sysdev/xive/common.c | 2 ++ arch/powerpc/sysdev/xive/spapr.c | 5 ++++- 6 files changed, 9 insertions(+), 2 deletions(-)