1, We assume arch/loongarch/include/asm/smp.h be included in include/ linux/smp.h is valid and the reverse inclusion isn't. So remove the <linux/smp.h> in arch/loongarch/include/asm/smp.h. 2, arch/loongarch/include/asm/smp.h is only needed when CONFIG_SMP, and setup.c include it only because it need plat_smp_setup(). So, reorganize setup.c & smp.h, and then remove <asm/smp.h> in setup.c. 3, Fix cacheinfo.c and percpu.h build error by adding the missing header files when !CONFIG_SMP. 4, Fix acpi.c build error by adding CONFIG_SMP guards. 5, Move irq_stat definition from smp.c to irq.c and fix its declaration. 6, Select CONFIG_SMP for CONFIG_NUMA, similar as other architectures do. Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
27 lines
563 B
C
27 lines
563 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* Copyright (C) 2020-2022 Loongson Technology Corporation Limited
|
|
*/
|
|
#ifndef _ASM_HARDIRQ_H
|
|
#define _ASM_HARDIRQ_H
|
|
|
|
#include <linux/cache.h>
|
|
#include <linux/threads.h>
|
|
#include <linux/irq.h>
|
|
|
|
extern void ack_bad_irq(unsigned int irq);
|
|
#define ack_bad_irq ack_bad_irq
|
|
|
|
#define NR_IPI 2
|
|
|
|
typedef struct {
|
|
unsigned int ipi_irqs[NR_IPI];
|
|
unsigned int __softirq_pending;
|
|
} ____cacheline_aligned irq_cpustat_t;
|
|
|
|
DECLARE_PER_CPU_SHARED_ALIGNED(irq_cpustat_t, irq_stat);
|
|
|
|
#define __ARCH_IRQ_STAT
|
|
|
|
#endif /* _ASM_HARDIRQ_H */
|