From: Tom <tommusta@gmail.com>
To: linuxppc-dev@lists.ozlabs.org
Cc: Tom Musta <tommusta@gmail.com>
Subject: [V2 PATCH 1/3] powerpc: Enable emulate_step In Little Endian Mode
Date: Thu, 31 Oct 2013 13:38:56 -0500 [thread overview]
Message-ID: <1383244738-5986-2-git-send-email-tommusta@gmail.com> (raw)
In-Reply-To: <1383244738-5986-1-git-send-email-tommusta@gmail.com>
From: Tom Musta <tommusta@gmail.com>
This patch modifies the endian chicken switch in the single step
emulation code (emulate_step()). The old (big endian) code bailed
early if a load or store instruction was to be emulated in little
endian mode.
The new code modifies the check and only bails in a cross-endian
situation (LE mode in a kernel compiled for BE and vice verse).
V2: fixed bug in MSR[LE] check identified by Andreas Schwab and
Geert Uytterhoeven.
Signed-off-by: Tom Musta <tommusta@gmail.com>
---
arch/powerpc/lib/sstep.c | 12 +++++++++---
1 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/arch/powerpc/lib/sstep.c b/arch/powerpc/lib/sstep.c
index b1faa15..7bfaa9d 100644
--- a/arch/powerpc/lib/sstep.c
+++ b/arch/powerpc/lib/sstep.c
@@ -1222,12 +1222,18 @@ int __kprobes emulate_step(struct pt_regs *regs, unsigned int instr)
}
/*
- * Following cases are for loads and stores, so bail out
- * if we're in little-endian mode.
+ * Following cases are for loads and stores and this
+ * implementation does not support cross-endian. So
+ * bail out if this is the case.
*/
+#ifdef __BIG_ENDIAN__
if (regs->msr & MSR_LE)
return 0;
-
+#endif
+#ifdef __LITTLE_ENDIAN__
+ if (!(regs->msr & MSR_LE))
+ return 0;
+#endif
/*
* Save register RA in case it's an update form load or store
* and the access faults.
--
1.7.1
next prev parent reply other threads:[~2013-10-31 18:39 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-31 18:38 [V2 PATCH 0/3] powerpc: Fix Little Endian Bugs in Single Step Code Tom
2013-10-31 18:38 ` Tom [this message]
2013-11-04 2:28 ` [V2 PATCH 1/3] powerpc: Enable emulate_step In Little Endian Mode Paul Mackerras
2013-10-31 18:38 ` [V2 PATCH 2/3] powerpc: Fix Unaligned Fixed Point Loads and Stores Tom
2013-11-04 2:34 ` Benjamin Herrenschmidt
2013-11-04 2:43 ` Paul Mackerras
2013-10-31 18:38 ` [V2 PATCH 3/3] powerpc: Fix Unaligned LE Floating " Tom
2013-11-04 2:34 ` Benjamin Herrenschmidt
2013-11-04 13:29 ` Tom Musta
2013-12-11 3:54 ` Paul Mackerras
2013-12-11 4:57 ` Paul Mackerras
2013-12-12 15:08 ` Tom Musta
2013-12-12 20:33 ` Tom Musta
2013-12-12 21:19 ` Paul Mackerras
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=1383244738-5986-2-git-send-email-tommusta@gmail.com \
--to=tommusta@gmail.com \
--cc=linuxppc-dev@lists.ozlabs.org \
/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.