diff options
| author | Heiko Carstens <hca@linux.ibm.com> | 2026-03-02 14:35:00 +0100 |
|---|---|---|
| committer | Vasily Gorbik <gor@linux.ibm.com> | 2026-03-03 16:42:14 +0100 |
| commit | 674c5ff0f440a051ebf299d29a4c013133d81a65 (patch) | |
| tree | d6a69a5d5f5ffe796d7c52ca0d91d8e9284f7e4f /include/linux | |
| parent | 87ff6da3001b2a35d241c5d965b82536f6418277 (diff) | |
s390/stackleak: Fix __stackleak_poison() inline assembly constraint
The __stackleak_poison() inline assembly comes with a "count" operand where
the "d" constraint is used. "count" is used with the exrl instruction and
"d" means that the compiler may allocate any register from 0 to 15.
If the compiler would allocate register 0 then the exrl instruction would
not or the value of "count" into the executed instruction - resulting in a
stackframe which is only partially poisoned.
Use the correct "a" constraint, which excludes register 0 from register
allocation.
Fixes: 2a405f6bb3a5 ("s390/stackleak: provide fast __stackleak_poison() implementation")
Cc: stable@vger.kernel.org
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Reviewed-by: Vasily Gorbik <gor@linux.ibm.com>
Link: https://lore.kernel.org/r/20260302133500.1560531-4-hca@linux.ibm.com
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Diffstat (limited to 'include/linux')
0 files changed, 0 insertions, 0 deletions
