diff options
| author | Christian Borntraeger <borntraeger@de.ibm.com> | 2018-06-21 14:49:38 +0200 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2018-07-11 16:03:48 +0200 |
| commit | 8e0817deeb968cfd0e176ed204754b712af7ecd2 (patch) | |
| tree | 3eaef74cdb4a52e10814756bcd5f053f7893738b /fs/ext4/inline.c | |
| parent | 9a737329c7c4a341009b7398164db8fa8e5358f0 (diff) | |
s390: Correct register corruption in critical section cleanup
commit 891f6a726cacbb87e5b06076693ffab53bd378d7 upstream.
In the critical section cleanup we must not mess with r1. For march=z9
or older, larl + ex (instead of exrl) are used with r1 as a temporary
register. This can clobber r1 in several interrupt handlers. Fix this by
using r11 as a temp register. r11 is being saved by all callers of
cleanup_critical.
Fixes: 6dd85fbb87 ("s390: move expoline assembler macros to a header")
Cc: stable@vger.kernel.org #v4.16
Reported-by: Oliver Kurz <okurz@suse.com>
Reported-by: Petr Tesařík <ptesarik@suse.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Reviewed-by: Hendrik Brueckner <brueckner@linux.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'fs/ext4/inline.c')
0 files changed, 0 insertions, 0 deletions
