[LEDE-DEV] [LEDE 17.01] arc770: backport upstream fix for unaligned access

John Crispin john at phrozen.org
Wed Feb 8 07:17:32 PST 2017


applied to trunk and lede-17.01

	John

On 08/02/2017 15:01, Alexey Brodkin wrote:
> This commit reverts 42f3c1f ("arc770: fix broken upstream change")
> and simultaneously adds back-ported fix from Linus' tree:
> a524c218bc94 ("ARC: [arcompact] brown paper bag bug in unaligned
> access delay slot fixup").
> 
> Note mentioned patch will appear in stable trees soon as well so
> IMHO there's not much sense in adding this separate patch in lede/master branch.
> As well as we will get rid of it here in 17.01 once we bump 4.4 kernel here
> later down the line.
> 
> Signed-off-by: Alexey Brodkin <abrodkin at synopsys.com>
> Cc: Felix Fietkau <nbd at nbd.name>
> Cc: John Crispin <john at phrozen.org>
> Cc: Jo-Philipp Wich <jo at mein.io>
> ---
>  ...-bug-in-unaligned-access-delay-slot-fixup.patch | 38 ++++++++++++++++++++++
>  ...revert-unaligned-access-delay-corner-case.patch | 31 ------------------
>  2 files changed, 38 insertions(+), 31 deletions(-)
>  create mode 100644 target/linux/arc770/patches-4.4/001-ARC-arcompact-brown-paper-bag-bug-in-unaligned-access-delay-slot-fixup.patch
>  delete mode 100644 target/linux/arc770/patches-4.4/900-revert-unaligned-access-delay-corner-case.patch
> 
> diff --git a/target/linux/arc770/patches-4.4/001-ARC-arcompact-brown-paper-bag-bug-in-unaligned-access-delay-slot-fixup.patch b/target/linux/arc770/patches-4.4/001-ARC-arcompact-brown-paper-bag-bug-in-unaligned-access-delay-slot-fixup.patch
> new file mode 100644
> index 0000000..8f502d9
> --- /dev/null
> +++ b/target/linux/arc770/patches-4.4/001-ARC-arcompact-brown-paper-bag-bug-in-unaligned-access-delay-slot-fixup.patch
> @@ -0,0 +1,38 @@
> +From patchwork Tue Feb  7 17:44:58 2017
> +Content-Type: text/plain; charset="utf-8"
> +MIME-Version: 1.0
> +Content-Transfer-Encoding: 7bit
> +Subject: ARC: [arcompact] brown paper bag bug in unaligned access delay slot
> + fixup
> +From: Vineet Gupta <Vineet.Gupta1 at synopsys.com>
> +X-Patchwork-Id: 725238
> +Message-Id: <1486489498-9221-1-git-send-email-vgupta at synopsys.com>
> +To: Linus Torvalds <torvalds at linux-foundation.org>
> +Cc: Vineet Gupta <Vineet.Gupta1 at synopsys.com>,
> + linux-snps-arc at lists.infradead.org, Jo-Philipp Wich <jo at mein.io>,
> + linux-kernel at vger.kernel.org, stable at vger.kernel.org
> +Date: Tue, 7 Feb 2017 09:44:58 -0800
> +
> +Reported-by: Jo-Philipp Wich <jo at mein.io>
> +Fixes: 9aed02feae57bf7 ("ARC: [arcompact] handle unaligned access delay slot")
> +Cc: linux-kernel at vger.kernel.org
> +Cc: linux-snps-arc at lists.infradead.org
> +Cc: stable at vger.kernel.org
> +Signed-off-by: Vineet Gupta <vgupta at synopsys.com>
> +---
> + arch/arc/kernel/unaligned.c | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/arch/arc/kernel/unaligned.c b/arch/arc/kernel/unaligned.c
> +index 91ebe382147f..5f69c3bd59bb 100644
> +--- a/arch/arc/kernel/unaligned.c
> ++++ b/arch/arc/kernel/unaligned.c
> +@@ -243,7 +243,7 @@ int misaligned_fixup(unsigned long address, struct pt_regs *regs,
> + 
> + 	/* clear any remanants of delay slot */
> + 	if (delay_mode(regs)) {
> +-		regs->ret = regs->bta ~1U;
> ++		regs->ret = regs->bta & ~1U;
> + 		regs->status32 &= ~STATUS_DE_MASK;
> + 	} else {
> + 		regs->ret += state.instr_len;
> diff --git a/target/linux/arc770/patches-4.4/900-revert-unaligned-access-delay-corner-case.patch b/target/linux/arc770/patches-4.4/900-revert-unaligned-access-delay-corner-case.patch
> deleted file mode 100644
> index 37dc56e..0000000
> --- a/target/linux/arc770/patches-4.4/900-revert-unaligned-access-delay-corner-case.patch
> +++ /dev/null
> @@ -1,31 +0,0 @@
> -From: Jo-Philipp Wich <jo at mein.io>
> -Date: Tue, 7 Feb 2017 09:26:00 +0100
> -Subject: [PATCH] arc: revert broken upstream change
> -
> -The upstream commit
> -"9aed02f ARC: [arcompact] handle unaligned access delay slot corner case"
> -introduced a syntax error in arch/arc/kernel/unaligned.c, leading to the
> -following build failure:
> -
> -    arch/arc/kernel/unaligned.c: In function 'misaligned_fixup':
> -    arch/arc/kernel/unaligned.c:246:25: error: expected ';' before '~' token
> -       regs->ret = regs->bta ~1U;
> -                         ^
> -    make[6]: *** [arch/arc/kernel/unaligned.o] Error 1
> -
> -This patch reverts the offending change until an upstream fix is available.
> -
> -Signed-off-by: Jo-Philipp Wich <jo at mein.io>
> ---- a/arch/arc/kernel/unaligned.c
> -+++ b/arch/arc/kernel/unaligned.c
> -@@ -241,9 +241,8 @@ int misaligned_fixup(unsigned long addre
> - 	if (state.fault)
> - 		goto fault;
> - 
> --	/* clear any remanants of delay slot */
> - 	if (delay_mode(regs)) {
> --		regs->ret = regs->bta ~1U;
> -+		regs->ret = regs->bta;
> - 		regs->status32 &= ~STATUS_DE_MASK;
> - 	} else {
> - 		regs->ret += state.instr_len;
> 



More information about the Lede-dev mailing list