diff options
| author | Ilya Leoshkevich <iii@linux.ibm.com> | 2021-02-10 23:45:02 +0300 |
|---|---|---|
| committer | Alexei Starovoitov <ast@kernel.org> | 2021-02-12 09:03:19 +0300 |
| commit | b2e37a7114ef52b862b4421ed4cd40c4ed2a0642 (patch) | |
| tree | f73cb840add63bc77b4b4e435b25dcb9d0d74a0b /lib/mpi/mpiutil.c | |
| parent | 6a5df969ff80c1589ba9fd9136b77a4fb93371d0 (diff) | |
| download | linux-b2e37a7114ef52b862b4421ed4cd40c4ed2a0642.tar.xz | |
bpf: Fix subreg optimization for BPF_FETCH
All 32-bit variants of BPF_FETCH (add, and, or, xor, xchg, cmpxchg)
define a 32-bit subreg and thus have zext_dst set. Their encoding,
however, uses dst_reg field as a base register, which causes
opt_subreg_zext_lo32_rnd_hi32() to zero-extend said base register
instead of the one the insn really defines (r0 or src_reg).
Fix by properly choosing a register being defined, similar to how
check_atomic() already does that.
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/20210210204502.83429-1-iii@linux.ibm.com
Diffstat (limited to 'lib/mpi/mpiutil.c')
0 files changed, 0 insertions, 0 deletions
