bpf, doc: Correct one wrong value in "Register value tracking"
authorWang YanQing <udknight@gmail.com>
Wed, 24 Jan 2018 07:48:26 +0000 (15:48 +0800)
committerDaniel Borkmann <daniel@iogearbox.net>
Wed, 24 Jan 2018 15:43:11 +0000 (16:43 +0100)
If we then OR this with 0x40, then the value of 6th bit (0th is first bit)
become known, so the right mask is 0xbf instead of 0xcf.

Signed-off-by: Wang YanQing <udknight@gmail.com>
Acked-by: Edward Cree <ecree@solarflare.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Documentation/networking/filter.txt

index 87814859cfc21c5c6a64c1dfb83a1d6cff596731..a4508ec1816b4dc7e1985b8371b004542735b3ba 100644 (file)
@@ -1134,7 +1134,7 @@ The verifier's knowledge about the variable offset consists of:
 mask and value; no bit should ever be 1 in both.  For example, if a byte is read
 into a register from memory, the register's top 56 bits are known zero, while
 the low 8 are unknown - which is represented as the tnum (0x0; 0xff).  If we
-then OR this with 0x40, we get (0x40; 0xcf), then if we add 1 we get (0x0;
+then OR this with 0x40, we get (0x40; 0xbf), then if we add 1 we get (0x0;
 0x1ff), because of potential carries.
 Besides arithmetic, the register state can also be updated by conditional
 branches.  For instance, if a SCALAR_VALUE is compared > 8, in the 'true' branch