linux-stable/arch/arm/mach-mvebu
Ethan Tuttle 5ef7a3782d ARM: mvebu: declare asm symbols as character arrays in pmsu.c
[ Upstream commit d0d378ff45 ]

With CONFIG_FORTIFY_SOURCE, memcpy uses the declared size of operands to
detect buffer overflows.  If src or dest is declared as a char, attempts to
copy more than byte will result in a fortify_panic().

Address this problem in mvebu_setup_boot_addr_wa() by declaring
mvebu_boot_wa_start and mvebu_boot_wa_end as character arrays.  Also remove
a couple addressof operators to avoid "arithmetic on pointer to an
incomplete type" compiler error.

See commit 54a7d50b92 ("x86: mark kprobe templates as character arrays,
not single characters") for a similar fix.

Fixes "detected buffer overflow in memcpy" error during init on some mvebu
systems (armada-370-xp, armada-375):

(fortify_panic) from (mvebu_setup_boot_addr_wa+0xb0/0xb4)
(mvebu_setup_boot_addr_wa) from (mvebu_v7_cpu_pm_init+0x154/0x204)
(mvebu_v7_cpu_pm_init) from (do_one_initcall+0x7c/0x1a8)
(do_one_initcall) from (kernel_init_freeable+0x1bc/0x254)
(kernel_init_freeable) from (kernel_init+0x8/0x114)
(kernel_init) from (ret_from_fork+0x14/0x2c)

Signed-off-by: Ethan Tuttle <ethan@ethantuttle.com>
Tested-by: Ethan Tuttle <ethan@ethantuttle.com>
Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-10-03 17:00:52 -07:00
..
armada-370-xp.h ARM: use const and __initconst for smp_operations 2015-12-01 22:17:45 +01:00
board-v7.c arm: Remove unnecessary of_platform_populate with default match table 2016-06-23 14:58:37 -05:00
coherency.c cpu/hotplug: Cleanup state names 2016-12-25 10:47:44 +01:00
coherency.h mvebu: add definition for coherency_base 2016-06-16 11:24:47 +02:00
coherency_ll.S ARM: mvebu: make the coherency_ll.S functions work with no coherency fabric 2014-11-22 01:49:27 +00:00
common.h ARM: mvebu: Add standby support 2015-07-25 17:17:05 +02:00
cpu-reset.c mvebu: fix missing include of common.h in cpu-reset.c 2016-06-16 11:24:19 +02:00
dove.c arm: Remove unnecessary of_platform_populate with default match table 2016-06-23 14:58:37 -05:00
headsmp-a9.S Remove __cpuinit macros and users. 2015-07-02 09:54:14 -07:00
headsmp.S ARM: mvebu: Split low level functions to manipulate HW coherency 2014-05-08 16:18:54 +00:00
Kconfig ARM: mvebu: Fix broken PL310_ERRATA_753970 selects 2018-03-08 22:41:23 -08:00
kirkwood-pm.c ARM: Kirkwood: fix kirkwood_pm_init() declaration/type 2016-06-16 12:01:37 +02:00
kirkwood-pm.h ARM: mvebu: Move kirkwood DT boards into mach-mvebu 2014-02-22 21:19:55 +00:00
kirkwood.c ARM: Convert to using %pOF instead of full_name 2017-08-16 22:25:30 +02:00
kirkwood.h ARM: mvebu: Simplify headers and make local 2014-02-22 21:19:59 +00:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mvebu-soc-id.c ARM: mvebu: Use system controller to get the soc id when possible 2014-06-30 17:40:59 +00:00
mvebu-soc-id.h ARM: mvebu: Update the SoC ID and revision definitions 2015-01-09 09:22:53 -06:00
platsmp-a9.c ARM: use const and __initconst for smp_operations 2015-12-01 22:17:45 +01:00
platsmp.c ARM: mvebu: use __pa_symbol in the mv98dx3236 platform SMP code 2017-07-18 11:26:30 +02:00
pm-board.c ARM: mvebu: Add standby support 2015-07-25 17:17:05 +02:00
pm.c ARM: 8641/1: treewide: Replace uses of virt_to_phys with __pa_symbol 2017-02-28 11:06:10 +00:00
pmsu.c ARM: mvebu: declare asm symbols as character arrays in pmsu.c 2018-10-03 17:00:52 -07:00
pmsu.h mvebu SoC suspend changes for v3.19 2014-12-04 16:46:43 +01:00
pmsu_ll.S mvebu SoC suspend changes for v3.19 2014-12-04 16:46:43 +01:00
system-controller.c ARM: 8641/1: treewide: Replace uses of virt_to_phys with __pa_symbol 2017-02-28 11:06:10 +00:00