Messages in this thread Patch in this message | | | From | Martin Kepplinger <> | Subject | [RFC][PATCH] arch: sh: use sign_extend64() for sign extension | Date | Thu, 12 Feb 2015 12:11:30 +0100 |
| |
Signed-off-by: Martin Kepplinger <martink@posteo.de> --- arch/sh/kernel/traps_64.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/sh/kernel/traps_64.c b/arch/sh/kernel/traps_64.c index 112ea11..4e04261 100644 --- a/arch/sh/kernel/traps_64.c +++ b/arch/sh/kernel/traps_64.c @@ -25,6 +25,7 @@ #include <linux/sysctl.h> #include <linux/module.h> #include <linux/perf_event.h> +#include <linux/bitops.h> #include <asm/uaccess.h> #include <asm/io.h> #include <asm/alignment.h> @@ -101,7 +102,7 @@ static int generate_and_check_address(struct pt_regs *regs, if (displacement_not_indexed) { __s64 displacement; displacement = (opcode >> 10) & 0x3ff; - displacement = ((displacement << 54) >> 54); /* sign extend */ + displacement = sign_extend64(displacement, 9); addr = (__u64)((__s64)base_address + (displacement << width_shift)); } else { __u64 offset; -- 2.1.4
| |