parisc: Fix lpa and lpa_user defines
stable inclusion from stable-v5.10.94 commit eb44b1386af5751e0faec3a06e65078f146f81a7 bugzilla: https://gitee.com/openeuler/kernel/issues/I531X9 Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=eb44b1386af5751e0faec3a06e65078f146f81a7 -------------------------------- commit db19c6f1 upstream. While working on the rewrite to the light-weight syscall and futex code, I experimented with using a hash index based on the user physical address of atomic variable. This exposed two problems with the lpa and lpa_user defines. Because of the copy instruction, the pa argument needs to be an early clobber argument. This prevents gcc from allocating the va and pa arguments to the same register. Secondly, the lpa instruction can cause a page fault so we need to catch exceptions. Signed-off-by: NJohn David Anglin <dave.anglin@bell.net> Fixes: 116d7533 ("parisc: Use lpa instruction to load physical addresses in driver code") Signed-off-by: NHelge Deller <deller@gmx.de> Cc: stable@vger.kernel.org # v5.2+ Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com> Acked-by: NXie XiuQi <xiexiuqi@huawei.com>
Showing
想要评论请 注册 或 登录