On Fri, Feb 5, 2021 at 10:04 AM Thomas Gleixner <t...@linutronix.de> wrote: > > The function to switch to the irq stack on x86 is now minimal and there is > only a single caller. Allow the stack switch to be inlined. > > Signed-off-by: Thomas Gleixner <t...@linutronix.de> > --- > include/linux/interrupt.h | 2 ++ > kernel/softirq.c | 4 ++++ > 2 files changed, 6 insertions(+) > > --- a/include/linux/interrupt.h > +++ b/include/linux/interrupt.h > @@ -570,7 +570,9 @@ asmlinkage void do_softirq(void); > asmlinkage void __do_softirq(void); > > #ifdef __ARCH_HAS_DO_SOFTIRQ > +# ifndef __ARCH_HAS_DO_SOFTIRQ_INLINE > void do_softirq_own_stack(void); > +# endif > #else > static inline void do_softirq_own_stack(void) > {
Hello This patch and the next patch have three "#if[n]def" with __ARCH_HAS_DO_SOFTIRQ_INLINE and this one is nested in __ARCH_HAS_DO_SOFTIRQ. I wonder if we can use __ARCH_HAS_DO_SOFTIRQ only. For example, we can move "void do_softirq_own_stack(void);" to around the code where __ARCH_HAS_DO_SOFTIRQ are defined in very ARCHs. (And for x86, do_softirq_own_stack() is a macro instead of function declaration as next patch shows) Thanks Lai > --- a/kernel/softirq.c > +++ b/kernel/softirq.c > @@ -26,6 +26,10 @@ > #include <linux/tick.h> > #include <linux/irq.h> > > +#ifdef __ARCH_HAS_DO_SOFTIRQ_INLINE > +# include <asm/irq_stack.h> > +#endif > + > #define CREATE_TRACE_POINTS > #include <trace/events/irq.h> > >