diff mbox series

[v1,1/1] powerpc/powernv: fix up kernel compile issues

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

Checks

Context Check Description
snowpatch_ozlabs/github-powerpc_ppctests success Successfully ran 8 jobs.
snowpatch_ozlabs/github-powerpc_selftests success Successfully ran 8 jobs.

Commit Message

Luming Yu Jan. 2, 2024, 2:48 a.m. UTC
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(-)

Comments

kernel test robot Jan. 3, 2024, 12:18 p.m. UTC | #1
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
Christophe Leroy Jan. 3, 2024, 12:44 p.m. UTC | #2
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 mbox series

Patch

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,