diff options
author | Helge Deller <deller@gmx.de> | 2022-02-13 22:52:11 +0100 |
---|---|---|
committer | Helge Deller <deller@gmx.de> | 2022-02-14 12:36:42 +0100 |
commit | dbd0b42350d5717786cb8257fbe5b528f3af9772 (patch) | |
tree | 5bda5a8d048534d584756ae593337a3df5d77314 /fs/pnode.c | |
parent | b160628e9ebcdc85d0db9d7f423c26b3c7c179d0 (diff) |
parisc: Fix some apparent put_user() failures
After commit 4b9d2a731c3d ("parisc: Switch user access functions
to signal errors in r29 instead of r8") bash suddenly started
to report those warnings after login:
-bash: cannot set terminal process group (-1): Bad file descriptor
-bash: no job control in this shell
It turned out, that a function call inside a put_user(), e.g.:
put_user(vt_do_kdgkbmode(console), (int __user *)arg);
clobbered the error register (r29) and thus the put_user() call itself
seem to have failed.
Rearrange the C-code to pre-calculate the intermediate value
and then do the put_user().
Additionally prefer the "+" constraint on pu_err and gu_err registers
to tell the compiler that those operands are both read and written by
the assembly instruction.
Reported-by: John David Anglin <dave.anglin@bell.net>
Signed-off-by: Helge Deller <deller@gmx.de>
Fixes: 4b9d2a731c3d ("parisc: Switch user access functions to signal errors in r29 instead of r8")
Signed-off-by: Helge Deller <deller@gmx.de>
Diffstat (limited to 'fs/pnode.c')
0 files changed, 0 insertions, 0 deletions