Re: [PATCH -tip v9 3/5] cris: mark _stext and _end as char-arrays, not single char

From: Jesper Nilsson
Date: Fri Aug 18 2017 - 14:38:42 EST


On Wed, Aug 16, 2017 at 08:01:33PM +0900, Masami Hiramatsu wrote:
> On Thu, 3 Aug 2017 11:37:15 +0900
> Masami Hiramatsu <mhiramat@xxxxxxxxxx> wrote:
>
> > diff --git a/arch/cris/kernel/traps.c b/arch/cris/kernel/traps.c
> > index a01636a12a6e..d98131c45bb5 100644
> > --- a/arch/cris/kernel/traps.c
> > +++ b/arch/cris/kernel/traps.c
> > @@ -42,7 +42,7 @@ void (*nmi_handler)(struct pt_regs *);
> > void show_trace(unsigned long *stack)
> > {
> > unsigned long addr, module_start, module_end;
> > - extern char _stext, _etext;
> > + extern char _stext[], _etext[];
> > int i;
> >
> > pr_err("\nCall Trace: ");
> > @@ -69,8 +69,8 @@ void show_trace(unsigned long *stack)
> > * down the cause of the crash will be able to figure
> > * out the call path that was taken.
> > */
> > - if (((addr >= (unsigned long)&_stext) &&
> > - (addr <= (unsigned long)&_etext)) ||
> > + if (((addr >= (unsigned long)_stext) &&
> > + (addr <= (unsigned long)_etext)) ||
> > ((addr >= module_start) && (addr <= module_end))) {
>
> BTW, I would like to ask cris people, this seems to check over 1 byte,
> since _etext and module_end will be placed at the next byte of the real
> address area.
> As same as other arch, Should it be
>
> (addr < (unsigned long)_etext)
>
> or are there any other reason?

As far as I can tell, this is non-intentional.

> Thank you,

> Masami Hiramatsu <mhiramat@xxxxxxxxxx>

/^JN - Jesper Nilsson
--
Jesper Nilsson -- jesper.nilsson@xxxxxxxx