[PATCH 6/7] powerpc/entry: factout irqentry-state
Luming Yu
luming.yu at shingroup.cn
Mon Nov 11 14:45:58 AEDT 2024
On Tue, Oct 15, 2024 at 05:42:45PM +0200, Thomas Gleixner wrote:
> On Sat, Oct 12 2024 at 11:56, Luming Yu wrote:
>
> > To have lowlevel paca.h include high level entry-common.h cause
> > include file dependency mess. Split irqentry-state.h to have
> > the irqentry_state.h can be included in low level paca.h
>
> What's the rationale for this?
>
> > Signed-off-by: Luming Yu <luming.yu at shingroup.cn>
> > ---
> > arch/powerpc/include/asm/paca.h | 2 ++
> > arch/powerpc/kernel/interrupt.c | 2 ++
> > include/linux/entry-common.h | 24 ------------------------
> > include/linux/irqentry-state.h | 28 ++++++++++++++++++++++++++++
>
> This is not how it works. Split the include file in a first step and
> then make changes to the PPC side.
>
> > diff --git a/include/linux/entry-common.h b/include/linux/entry-common.h
> > index d95ab85f96ba..6521171469f2 100644
> > --- a/include/linux/entry-common.h
> > +++ b/include/linux/entry-common.h
> > @@ -352,30 +352,6 @@ void irqentry_enter_from_user_mode(struct pt_regs *regs);
> > */
> > void irqentry_exit_to_user_mode(struct pt_regs *regs);
> >
> > -#ifndef irqentry_state
> > -/**
> > - * struct irqentry_state - Opaque object for exception state storage
> > - * @exit_rcu: Used exclusively in the irqentry_*() calls; signals whether the
> > - * exit path has to invoke ct_irq_exit().
> > - * @lockdep: Used exclusively in the irqentry_nmi_*() calls; ensures that
> > - * lockdep state is restored correctly on exit from nmi.
> > - *
> > - * This opaque object is filled in by the irqentry_*_enter() functions and
> > - * must be passed back into the corresponding irqentry_*_exit() functions
> > - * when the exception is complete.
> > - *
> > - * Callers of irqentry_*_[enter|exit]() must consider this structure opaque
> > - * and all members private. Descriptions of the members are provided to aid in
> > - * the maintenance of the irqentry_*() functions.
> > - */
> > -typedef struct irqentry_state {
> > - union {
> > - bool exit_rcu;
> > - bool lockdep;
> > - };
> > -} irqentry_state_t;
> > -#endif
> > -
> > /**
> > * irqentry_enter - Handle state tracking on ordinary interrupt entries
> > * @regs: Pointer to pt_regs of interrupted context
> > diff --git a/include/linux/irqentry-state.h b/include/linux/irqentry-state.h
> > new file mode 100644
> > index 000000000000..d4ddeb1c6ab6
> > --- /dev/null
> > +++ b/include/linux/irqentry-state.h
> > @@ -0,0 +1,28 @@
> > +/* SPDX-License-Identifier: GPL-2.0 */
> > +#ifndef __LINUX_IRQENTRYCOMMON_H
> > +#define __LINUX_IRQENTRYCOMMON_H
>
> The guards reflect the header file name and are not randomly chosen strings.
>
> But aside of that. How is any of this supposed to compile?
>
> You move the typedef into a separate header and then nothing (except
> powerpc) includes it. Oh well.
thanks for review, I will fix it in V3.
>
> Thanks,
>
> tglx
>
More information about the Linuxppc-dev
mailing list