The reason I don't want to expose the x2apic_mode and x2apic_phys is
that they may be misused in X2APIC=n case. So I create an interface to
wrap it. do you think so? ;-)
I'm not sure I follow what the intention of that is. If you want to hide
those two variables, maybe make them 'static' and remove the extern
declarations?
diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h
index 98722773391d..ac25ac2e49af 100644
--- a/arch/x86/include/asm/apic.h
+++ b/arch/x86/include/asm/apic.h
@@ -251,6 +251,11 @@ static inline u64 native_x2apic_icr_read(void)
extern int x2apic_mode;
extern int x2apic_phys;
+static inline void apic_set_x2apic_phys(void)
+{
+ x2apic_phys = 1;
+}
+
extern void __init check_x2apic(void);
extern void x2apic_setup(void);
static inline int x2apic_enabled(void)
@@ -265,7 +270,10 @@ static inline void x2apic_setup(void) { }
static inline int x2apic_enabled(void) { return 0; }
#define x2apic_mode (0)
-#define x2apic_supported() (0)
+#define x2apic_phys (0)
+#define x2apic_supported() (0)
+
+static inline void apic_set_x2apic_phys(void){}
#endif /* !CONFIG_X86_X2APIC */
struct irq_data;
I see nothing wrong it with this, but also don't see anything it does
that improves the interface.
Arnd