On Thu, Jul 04, 2024 at 04:15:21AM +0800, Jiaxun Yang wrote: > > > 在2024年7月3日七月 下午11:04,Thomas Bogendoerfer写道: > > On Sun, Jun 16, 2024 at 10:03:05PM +0100, Jiaxun Yang wrote: > >> Define enum ipi_message_type as other architectures did to > >> allow easy extension to number of IPI interrupts, fiddle > >> around platform IPI code to adopt to the new infra, add > >> extensive BUILD_BUG_ON on IPI numbers to ensure future > >> extensions won't break existing platforms. > >> > >> IPI related stuff are pulled to asm/ipi.h to avoid include > >> linux/interrupt.h in asm/smp.h. > >> > >> Signed-off-by: Jiaxun Yang <jiaxun.yang@xxxxxxxxxxx> > >> --- > >> arch/mips/cavium-octeon/smp.c | 109 ++++++++++++----------------------- > >> arch/mips/include/asm/ipi.h | 34 +++++++++++ > >> arch/mips/include/asm/smp-ops.h | 8 +-- > >> arch/mips/include/asm/smp.h | 42 ++++++-------- > >> arch/mips/kernel/smp-bmips.c | 43 +++++++------- > >> arch/mips/kernel/smp-cps.c | 1 + > >> arch/mips/kernel/smp.c | 124 ++++++++++++++++++++-------------------- > >> arch/mips/loongson64/smp.c | 51 +++++++++-------- > >> arch/mips/mm/c-octeon.c | 2 +- > >> arch/mips/sgi-ip27/ip27-smp.c | 15 +++-- > >> arch/mips/sgi-ip30/ip30-smp.c | 15 +++-- > >> arch/mips/sibyte/bcm1480/smp.c | 19 +++--- > >> arch/mips/sibyte/sb1250/smp.c | 13 +++-- > >> 13 files changed, 236 insertions(+), 240 deletions(-) > > > > you are touching a lot of platforms, how many did you test ? > > As mentioned in cover letter: > > ``` > It has been tested on MIPS Boston I6500, malta SOC-It, Loongson-2K, > Cavium CN7130 (EdgeRouter 4), and an unannounced interaptiv UP MT > platform with EIC. > > I don't really know broadcom platforms and SGI platforms well so > changes to those platforms are kept minimal (no functional change). I get a merge conflict in arch/mips/loongson64/smp.c and see following warnings: IP30 build: CC arch/mips/fw/arc/init.o In file included from /local/tbogendoerfer/korg/linux/arch/mips/fw/arc/init.c:15: /local/tbogendoerfer/korg/linux/arch/mips/include/asm/smp-ops.h:23:40: error: ‘enum ipi_message_type’ declared inside parameter list will not be visible outside of this definition or declaration [-Werror] 23 | void (*send_ipi_single)(int cpu, enum ipi_message_type op); | ^~~~~~~~~~~~~~~~ /local/tbogendoerfer/korg/linux/arch/mips/include/asm/smp-ops.h:24:57: error: ‘enum ipi_message_type’ declared inside parameter list will not be visible outside of this definition or declaration [-Werror] 24 | void (*send_ipi_mask)(const struct cpumask *mask, enum ipi_message_type op); | /local/tbogendoerfer/korg/linux/arch/mips/kernel/smp.c: In function ‘smp_prepare_cpus’: /local/tbogendoerfer/korg/linux/arch/mips/kernel/smp.c:475:6: warning: unused variable ‘rc’ [-Wunused-variable] 475 | int rc; /local/tbogendoerfer/korg/linux/arch/mips/include/asm/ipi.h:49:13: warning: ‘mips_smp_show_ipi_stats’ defined but not used [-Wunused-function] 49 | static void mips_smp_show_ipi_stats(struct seq_file *p, int prec) bcm1480 build: /local/tbogendoerfer/korg/linux/arch/mips/kernel/smp.c: In function ‘smp_prepare_cpus’: /local/tbogendoerfer/korg/linux/arch/mips/kernel/smp.c:475:6: warning: unused variable ‘rc’ [-Wunused-variable] 475 | int rc; | ^~ In file included from /local/tbogendoerfer/korg/linux/arch/mips/kernel/smp.c:34: At top level: /local/tbogendoerfer/korg/linux/arch/mips/include/asm/ipi.h:49:13: warning: ‘mips_smp_show_ipi_stats’ defined but not used [-Wunused-function] 49 | static void mips_smp_show_ipi_stats(struct seq_file *p, int prec) octeon build: /local/tbogendoerfer/korg/linux/arch/mips/cavium-octeon/smp.c:84:6: warning: no previous prototype for ‘octeon_send_ipi_single’ [-Wmissing-prototypes] 84 | void octeon_send_ipi_single(int cpu, enum ipi_message_type op) | ^~~~~~~~~~~~~~~~~~~~~~ In file included from /local/tbogendoerfer/korg/linux/arch/mips/cavium-octeon/smp.c:20: /local/tbogendoerfer/korg/linux/arch/mips/include/asm/ipi.h:49:13: warning: ‘mips_smp_show_ipi_stats’ defined but not used [-Wunused-function] 49 | static void mips_smp_show_ipi_stats(struct seq_file *p, int prec) | ^~~~~~~~~~~~~~~~~~~~~~~ /local/tbogendoerfer/korg/linux/arch/mips/kernel/smp.c: In function ‘smp_prepare_cpus’: /local/tbogendoerfer/korg/linux/arch/mips/kernel/smp.c:475:6: warning: unused variable ‘rc’ [-Wunused-variable] 475 | int rc; /local/tbogendoerfer/korg/linux/arch/mips/include/asm/ipi.h:49:13: warning: ‘mips_smp_show_ipi_stats’ defined but not used [-Wunused-function] 49 | static void mips_smp_show_ipi_stats(struct seq_file *p, int prec) Please fix. Thomas. -- Crap can work. Given enough thrust pigs will fly, but it's not necessarily a good idea. [ RFC1925, 2.3 ]