Merge existing fixes from spi/for-5.12
[platform/kernel/linux-rpi.git] / arch / nds32 / mm / alignment.c
index c8b9061..1eb7ded 100644 (file)
@@ -512,7 +512,7 @@ int do_unaligned_access(unsigned long addr, struct pt_regs *regs)
 {
        unsigned long inst;
        int ret = -EFAULT;
-       mm_segment_t seg = get_fs();
+       mm_segment_t seg;
 
        inst = get_inst(regs->ipc);
 
@@ -520,13 +520,12 @@ int do_unaligned_access(unsigned long addr, struct pt_regs *regs)
              "Faulting addr: 0x%08lx, pc: 0x%08lx [inst: 0x%08lx ]\n", addr,
              regs->ipc, inst);
 
-       set_fs(USER_DS);
-
+       seg = force_uaccess_begin();
        if (inst & NDS32_16BIT_INSTRUCTION)
                ret = do_16((inst >> 16) & 0xffff, regs);
        else
                ret = do_32(inst, regs);
-       set_fs(seg);
+       force_uaccess_end(seg);
 
        return ret;
 }