2020-04-13 05:45:09

by Masahiro Yamada

[permalink] [raw]
Subject: [PATCH] arc: remove #ifndef CONFIG_AS_CFI_SIGNAL_FRAME

CONFIG_AS_CFI_SIGNAL_FRAME is never defined for ARC.

Suggested-by: Nick Desaulniers <[email protected]>
Signed-off-by: Masahiro Yamada <[email protected]>
---

arch/arc/kernel/unwind.c | 2 --
1 file changed, 2 deletions(-)

diff --git a/arch/arc/kernel/unwind.c b/arch/arc/kernel/unwind.c
index 27ea64b1fa33..f87758a6851b 100644
--- a/arch/arc/kernel/unwind.c
+++ b/arch/arc/kernel/unwind.c
@@ -1178,11 +1178,9 @@ int arc_unwind(struct unwind_frame_info *frame)
#endif

/* update frame */
-#ifndef CONFIG_AS_CFI_SIGNAL_FRAME
if (frame->call_frame
&& !UNW_DEFAULT_RA(state.regs[retAddrReg], state.dataAlign))
frame->call_frame = 0;
-#endif
cfa = FRAME_REG(state.cfa.reg, unsigned long) + state.cfa.offs;
startLoc = min_t(unsigned long, UNW_SP(frame), cfa);
endLoc = max_t(unsigned long, UNW_SP(frame), cfa);
--
2.25.1


2020-04-13 06:08:49

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH] arc: remove #ifndef CONFIG_AS_CFI_SIGNAL_FRAME

On Mon, Apr 13, 2020 at 2:38 PM Vineet Gupta <[email protected]> wrote:
>
> On 4/12/20 7:05 PM, Masahiro Yamada wrote:
> > CONFIG_AS_CFI_SIGNAL_FRAME is never defined for ARC.
> >
> > Suggested-by: Nick Desaulniers <[email protected]>
>
> Where, how ?


I was working on various cleanups of x86 CONFIG_AS_* macros.

https://lore.kernel.org/patchwork/patch/1214512/


I removed CONFIG_AS_CFI_SIGNAL_FRAME from x86.

Nick pointed out the same name macro used in ARC,
which is not defined anywhere.





> > Signed-off-by: Masahiro Yamada <[email protected]>
> > ---
> >
> > arch/arc/kernel/unwind.c | 2 --
> > 1 file changed, 2 deletions(-)
> >
> > diff --git a/arch/arc/kernel/unwind.c b/arch/arc/kernel/unwind.c
> > index 27ea64b1fa33..f87758a6851b 100644
> > --- a/arch/arc/kernel/unwind.c
> > +++ b/arch/arc/kernel/unwind.c
> > @@ -1178,11 +1178,9 @@ int arc_unwind(struct unwind_frame_info *frame)
> > #endif
> >
> > /* update frame */
> > -#ifndef CONFIG_AS_CFI_SIGNAL_FRAME
> > if (frame->call_frame
> > && !UNW_DEFAULT_RA(state.regs[retAddrReg], state.dataAlign))
> > frame->call_frame = 0;
> > -#endif
> > cfa = FRAME_REG(state.cfa.reg, unsigned long) + state.cfa.offs;
> > startLoc = min_t(unsigned long, UNW_SP(frame), cfa);
> > endLoc = max_t(unsigned long, UNW_SP(frame), cfa);
>
> Actually there's more scope for cleanup here. The while signal frame stuff is not
> relevant here at all as this is only kernel stack frames. So all of
> frame->call_frame stuff is bogus at best.
>
> I once had an branch with ~15 patches to clean this all up. Let me go find it.


I am not familiar with ARC code.

So, I leave this up to you for further cleanups.

>
> Curious though about the CC list, is this patch part of a bigger series or some
> such. So many people from all over suddenly interested in ARC ;-)


Presumably, they touched this file in the past,
and scripts/get_maintainers.pl picked them up.


masahiro@oscar:~/ref/linux$ scripts/get_maintainer.pl -f
arch/arc/kernel/unwind.c
Vineet Gupta <[email protected]> (supporter:SYNOPSYS ARC
ARCHITECTURE,commit_signer:2/5=40%)
Kees Cook <[email protected]> (commit_signer:2/5=40%)
"Gustavo A. R. Silva" <[email protected]>
(commit_signer:2/5=40%,authored:2/5=40%,added_lines:3/11=27%,removed_lines:2/14=14%)
Enrico Weigelt <[email protected]> (commit_signer:1/5=20%)
Greg Kroah-Hartman <[email protected]> (commit_signer:1/5=20%)
Thomas Gleixner <[email protected]>
(authored:1/5=20%,added_lines:1/11=9%,removed_lines:4/14=29%)
Pankaj Bharadiya <[email protected]>
(authored:1/5=20%,added_lines:3/11=27%,removed_lines:3/14=21%)
Arnd Bergmann <[email protected]>
(authored:1/5=20%,added_lines:4/11=36%,removed_lines:5/14=36%)
[email protected] (open list:SYNOPSYS ARC ARCHITECTURE)
[email protected] (open list)



> -Vineet



--
Best Regards
Masahiro Yamada

2020-04-13 08:58:56

by Vineet Gupta

[permalink] [raw]
Subject: Re: [PATCH] arc: remove #ifndef CONFIG_AS_CFI_SIGNAL_FRAME

On 4/12/20 7:05 PM, Masahiro Yamada wrote:
> CONFIG_AS_CFI_SIGNAL_FRAME is never defined for ARC.
>
> Suggested-by: Nick Desaulniers <[email protected]>

Where, how ?

> Signed-off-by: Masahiro Yamada <[email protected]>
> ---
>
> arch/arc/kernel/unwind.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/arch/arc/kernel/unwind.c b/arch/arc/kernel/unwind.c
> index 27ea64b1fa33..f87758a6851b 100644
> --- a/arch/arc/kernel/unwind.c
> +++ b/arch/arc/kernel/unwind.c
> @@ -1178,11 +1178,9 @@ int arc_unwind(struct unwind_frame_info *frame)
> #endif
>
> /* update frame */
> -#ifndef CONFIG_AS_CFI_SIGNAL_FRAME
> if (frame->call_frame
> && !UNW_DEFAULT_RA(state.regs[retAddrReg], state.dataAlign))
> frame->call_frame = 0;
> -#endif
> cfa = FRAME_REG(state.cfa.reg, unsigned long) + state.cfa.offs;
> startLoc = min_t(unsigned long, UNW_SP(frame), cfa);
> endLoc = max_t(unsigned long, UNW_SP(frame), cfa);

Actually there's more scope for cleanup here. The while signal frame stuff is not
relevant here at all as this is only kernel stack frames. So all of
frame->call_frame stuff is bogus at best.

I once had an branch with ~15 patches to clean this all up. Let me go find it.

Curious though about the CC list, is this patch part of a bigger series or some
such. So many people from all over suddenly interested in ARC ;-)

-Vineet

2020-04-14 13:29:50

by Nick Desaulniers

[permalink] [raw]
Subject: Re: [PATCH] arc: remove #ifndef CONFIG_AS_CFI_SIGNAL_FRAME

On Sun, Apr 12, 2020 at 7:06 PM Masahiro Yamada <[email protected]> wrote:
>
> CONFIG_AS_CFI_SIGNAL_FRAME is never defined for ARC.
>
> Suggested-by: Nick Desaulniers <[email protected]>
> Signed-off-by: Masahiro Yamada <[email protected]>

Thanks for the patch. I worry there may be many preprocessor checks
in the kernel that are always true/false.
Reviewed-by: Nick Desaulniers <[email protected]>


> ---
>
> arch/arc/kernel/unwind.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/arch/arc/kernel/unwind.c b/arch/arc/kernel/unwind.c
> index 27ea64b1fa33..f87758a6851b 100644
> --- a/arch/arc/kernel/unwind.c
> +++ b/arch/arc/kernel/unwind.c
> @@ -1178,11 +1178,9 @@ int arc_unwind(struct unwind_frame_info *frame)
> #endif
>
> /* update frame */
> -#ifndef CONFIG_AS_CFI_SIGNAL_FRAME
> if (frame->call_frame
> && !UNW_DEFAULT_RA(state.regs[retAddrReg], state.dataAlign))
> frame->call_frame = 0;
> -#endif
> cfa = FRAME_REG(state.cfa.reg, unsigned long) + state.cfa.offs;
> startLoc = min_t(unsigned long, UNW_SP(frame), cfa);
> endLoc = max_t(unsigned long, UNW_SP(frame), cfa);
> --
> 2.25.1
>


--
Thanks,
~Nick Desaulniers