arch/sh/kernel/traps_64.c: use sign_extend64() for sign extension
[firefly-linux-kernel-4.4.55.git] / arch / sh / kernel / traps_64.c
index 112ea11c030d68ef6bcfbd0ec1ab8148b7db327f..d208c27ccc67c0738c38f327175fcb18135ee7c2 100644 (file)
@@ -101,7 +101,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;