• Arnd Bergmann's avatar
    ARM: prevent tracing IPI_CPU_BACKTRACE · dd39a7e5
    Arnd Bergmann authored
    [ Upstream commit be167862 ]
    
    Patch series "compiler: allow all arches to enable
    CONFIG_OPTIMIZE_INLINING", v3.
    
    This patch (of 11):
    
    When function tracing for IPIs is enabled, we get a warning for an
    overflow of the ipi_types array with the IPI_CPU_BACKTRACE type as
    triggered by raise_nmi():
    
      arch/arm/kernel/smp.c: In function 'raise_nmi':
      arch/arm/kernel/smp.c:489:2: error: array subscript is above array bounds [-Werror=array-bounds]
        trace_ipi_raise(target, ipi_types[ipinr]);
    
    This is a correct warning as we actually overflow the array here.
    
    This patch raise_nmi() to call __smp_cross_call() instead of
    smp_cross_call(), to avoid calling into ftrace.  For clarification, I'm
    also adding a two new code comments describing how this one is special.
    
    The warning appears to have shown up after commit e7273ff4 ("ARM:
    8488/1: Make IPI_CPU_BACKTRACE a "non-secure" SGI"), which changed the
    number assignment from '15' to '8', but as far as I can tell has existed
    since the IPI tracepoints were first introduced.  If we decide to
    backport this patch to stable kernels, we probably need to backport
    e7273ff4 as well.
    
    [yamada.masahiro@socionext.com: rebase on v5.1-rc1]
    Link: http://lkml.kernel.org/r/20190423034959.13525-2-yamada.masahiro@socionext.com
    Fixes: e7273ff4 ("ARM: 8488/1: Make IPI_CPU_BACKTRACE a "non-secure" SGI")
    Fixes: 365ec7b1 ("ARM: add IPI tracepoints") # v3.17
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
    Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Christophe Leroy <christophe.leroy@c-s.fr>
    Cc: Mathieu Malaterre <malat@debian.org>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: Stefan Agner <stefan@agner.ch>
    Cc: Boris Brezillon <bbrezillon@kernel.org>
    Cc: Miquel Raynal <miquel.raynal@bootlin.com>
    Cc: Richard Weinberger <richard@nod.at>
    Cc: David Woodhouse <dwmw2@infradead.org>
    Cc: Brian Norris <computersforpeace@gmail.com>
    Cc: Marek Vasut <marek.vasut@gmail.com>
    Cc: Russell King <rmk+kernel@arm.linux.org.uk>
    Cc: Borislav Petkov <bp@suse.de>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
    dd39a7e5
hardirq.h 803 Bytes