Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5f7814c0 authored by Eugeniy Paltsev's avatar Eugeniy Paltsev Committed by Greg Kroah-Hartman
Browse files

ARCv2: Enable unaligned access in early ASM code



commit 252f6e8eae909bc075a1b1e3b9efb095ae4c0b56 upstream.

It is currently done in arc_init_IRQ() which might be too late
considering gcc 7.3.1 onwards (GNU 2018.03) generates unaligned
memory accesses by default

Cc: stable@vger.kernel.org #4.4+
Signed-off-by: default avatarEugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
Signed-off-by: default avatarVineet Gupta <vgupta@synopsys.com>
[vgupta: rewrote changelog]
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent ebe390b4
Loading
Loading
Loading
Loading
+10 −0
Original line number Original line Diff line number Diff line
@@ -17,6 +17,7 @@
#include <asm/entry.h>
#include <asm/entry.h>
#include <asm/arcregs.h>
#include <asm/arcregs.h>
#include <asm/cache.h>
#include <asm/cache.h>
#include <asm/irqflags.h>


.macro CPU_EARLY_SETUP
.macro CPU_EARLY_SETUP


@@ -47,6 +48,15 @@
	sr	r5, [ARC_REG_DC_CTRL]
	sr	r5, [ARC_REG_DC_CTRL]


1:
1:

#ifdef CONFIG_ISA_ARCV2
	; Unaligned access is disabled at reset, so re-enable early as
	; gcc 7.3.1 (ARC GNU 2018.03) onwards generates unaligned access
	; by default
	lr	r5, [status32]
	bset	r5, r5, STATUS_AD_BIT
	kflag	r5
#endif
.endm
.endm


	.section .init.text, "ax",@progbits
	.section .init.text, "ax",@progbits