docs: bpf: Clarify BPF_CMPXCHG wording
authorIlya Leoshkevich <iii@linux.ibm.com>
Wed, 10 Feb 2021 14:28:52 +0000 (15:28 +0100)
committerAlexei Starovoitov <ast@kernel.org>
Fri, 12 Feb 2021 06:01:13 +0000 (22:01 -0800)
Based on [1], BPF_CMPXCHG should always load the old value into R0. The
phrasing in bpf.rst is somewhat ambiguous in this regard, improve it to
make this aspect crystal clear.

  [1] https://lore.kernel.org/bpf/CAADnVQJFcFwxEz=wnV=hkie-EDwa8s5JGbBQeFt1TGux1OihJw@mail.gmail.com/

Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/20210210142853.82203-1-iii@linux.ibm.com
Documentation/networking/filter.rst

index b3f4578028362dee38c2c39fd3cfbd5b4bab0c07..251c6bd73d15c0fc723717e0b7eb53235c7fb73a 100644 (file)
@@ -1076,8 +1076,8 @@ off``. ::
     BPF_CMPXCHG
 
 This atomically compares the value addressed by ``dst_reg + off`` with
-``R0``. If they match it is replaced with ``src_reg``, The value that was there
-before is loaded back to ``R0``.
+``R0``. If they match it is replaced with ``src_reg``. In either case, the
+value that was there before is zero-extended and loaded back to ``R0``.
 
 Note that 1 and 2 byte atomic operations are not supported.