From: <gregkh@linuxfoundation.org>
To: Vineet.Gupta1@synopsys.com, akolesov@synopsys.com,
Anton.Kolesov@synopsys.com, gregkh@linuxfoundation.org,
linux-kernel@vger.kernel.org, noamc@ezchip.com,
stable@vger.kernel.org, vgupta@synopsys.com
Cc: <stable@vger.kernel.org>, <stable-commits@vger.kernel.org>
Subject: Patch "ARC: gdbserver breakage in Big-Endian configuration #1" has been added to the 3.10-stable tree
Date: Thu, 22 Aug 2013 15:37:24 -0700 [thread overview]
Message-ID: <13772110441524@kroah.org> (raw)
In-Reply-To: <1376986091-30241-2-git-send-email-vgupta@synopsys.com>
This is a note to let you know that I've just added the patch titled
ARC: gdbserver breakage in Big-Endian configuration #1
to the 3.10-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
arc-gdbserver-breakage-in-big-endian-configuration-1.patch
and it can be found in the queue-3.10 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@vger.kernel.org> know about it.
>From Vineet.Gupta1@synopsys.com Thu Aug 22 15:32:58 2013
From: Vineet Gupta <Vineet.Gupta1@synopsys.com>
Date: Tue, 20 Aug 2013 13:38:10 +0530
Subject: ARC: gdbserver breakage in Big-Endian configuration #1
To: <stable@vger.kernel.org>
Cc: <gregkh@linuxfoundation.org>, <noamc@ezchip.com>, <Anton.Kolesov@synopsys.com>, <linux-kernel@vger.kernel.org>, Vineet Gupta <Vineet.Gupta1@synopsys.com>
Message-ID: <1376986091-30241-2-git-send-email-vgupta@synopsys.com>
From: Vineet Gupta <Vineet.Gupta1@synopsys.com>
[Based on mainline commit 502a0c775c7f0a: "ARC: pt_regs update #5"]
gdbserver needs @stop_pc, served by ptrace, but fetched from pt_regs
differently, based on in_brkpt_traps(), which in turn relies on
additional machine state in pt_regs->event bitfield.
unsigned long orig_r8:16, event:16;
For big endian config, this macro was returning false, despite being in
breakpoint Trap exception, causing wrong @stop_pc to be returned to gdb.
Issue #1: In BE, @event above is at offset 2 in word, while a STW insn
at offset 0 was used to update it. Resort to using ST insn
which updates the half-word at right location.
Issue #2: The union involving bitfields causes all the members to be
laid out at offset 0. So with fix #1 above, ASM was now
updating at offset 2, "C" code was still referencing at
offset 0. Fixed by wrapping bitfield in a struct.
Reported-by: Noam Camus <noamc@ezchip.com>
Tested-by: Anton Kolesov <akolesov@synopsys.com>
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/arc/include/asm/ptrace.h | 2 ++
arch/arc/kernel/entry.S | 4 ++--
2 files changed, 4 insertions(+), 2 deletions(-)
--- a/arch/arc/include/asm/ptrace.h
+++ b/arch/arc/include/asm/ptrace.h
@@ -52,12 +52,14 @@ struct pt_regs {
/*to distinguish bet excp, syscall, irq */
union {
+ struct {
#ifdef CONFIG_CPU_BIG_ENDIAN
/* so that assembly code is same for LE/BE */
unsigned long orig_r8:16, event:16;
#else
unsigned long event:16, orig_r8:16;
#endif
+ };
long orig_r8_word;
};
};
--- a/arch/arc/kernel/entry.S
+++ b/arch/arc/kernel/entry.S
@@ -498,7 +498,7 @@ tracesys_exit:
trap_with_param:
; stop_pc info by gdb needs this info
- stw orig_r8_IS_BRKPT, [sp, PT_orig_r8]
+ st orig_r8_IS_BRKPT, [sp, PT_orig_r8]
mov r0, r12
lr r1, [efa]
@@ -723,7 +723,7 @@ not_exception:
; things to what they were, before returning from L2 context
;----------------------------------------------------------------
- ldw r9, [sp, PT_orig_r8] ; get orig_r8 to make sure it is
+ ld r9, [sp, PT_orig_r8] ; get orig_r8 to make sure it is
brne r9, orig_r8_IS_IRQ2, 149f ; infact a L2 ISR ret path
ld r9, [sp, PT_status32] ; get statu32_l2 (saved in pt_regs)
Patches currently in stable-queue which might be from Vineet.Gupta1@synopsys.com are
queue-3.10/arc-gdbserver-breakage-in-big-endian-configuration-1.patch
queue-3.10/arc-gdbserver-breakage-in-big-endian-configuration-2.patch
next prev parent reply other threads:[~2013-08-22 22:37 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-08 13:52 [PATCH 1/2] ARC: gdbserver breakage in Big-Endian configuration #1 Vineet Gupta
2013-08-08 13:52 ` [PATCH 2/2] ARC: gdbserver breakage in Big-Endian configuration #2 Vineet Gupta
2013-08-19 9:08 ` [PATCH 1/2] ARC: gdbserver breakage in Big-Endian configuration #1 Vineet Gupta
2013-08-19 14:57 ` greg Kroah-Hartman
2013-08-20 5:20 ` Vineet Gupta
2013-08-20 6:29 ` greg Kroah-Hartman
2013-08-20 8:08 ` [PATCH 0/2] ARC fixes for 3.9/3.10 stable backport Vineet Gupta
2013-08-20 8:08 ` [PATCH 1/2] ARC: gdbserver breakage in Big-Endian configuration #1 Vineet Gupta
2013-08-22 22:37 ` gregkh [this message]
2013-08-20 8:08 ` [PATCH 2/2] ARC: gdbserver breakage in Big-Endian configuration #2 Vineet Gupta
2013-08-22 22:37 ` Patch "ARC: gdbserver breakage in Big-Endian configuration #2" has been added to the 3.10-stable tree gregkh
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=13772110441524@kroah.org \
--to=gregkh@linuxfoundation.org \
--cc=Anton.Kolesov@synopsys.com \
--cc=Vineet.Gupta1@synopsys.com \
--cc=akolesov@synopsys.com \
--cc=linux-kernel@vger.kernel.org \
--cc=noamc@ezchip.com \
--cc=stable-commits@vger.kernel.org \
--cc=stable@vger.kernel.org \
--cc=vgupta@synopsys.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.