diff options
author | Alexei Starovoitov <ast@fb.com> | 2016-04-06 19:39:21 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-04-10 22:43:18 -0400 |
commit | 4923ec0b10d998349c2ac4b38aa4674e539e6f92 (patch) | |
tree | aabed2c261f40d5c2010493b3ed9a9088aa5f7a9 /drivers/net/wireless/intel/iwlwifi/iwl-7000.c | |
parent | ae95d7126104591348d37aaf78c8325967e02386 (diff) | |
download | talos-obmc-linux-4923ec0b10d998349c2ac4b38aa4674e539e6f92.tar.gz talos-obmc-linux-4923ec0b10d998349c2ac4b38aa4674e539e6f92.zip |
bpf: simplify verifier register state assignments
verifier is using the following structure to track the state of registers:
struct reg_state {
enum bpf_reg_type type;
union {
int imm;
struct bpf_map *map_ptr;
};
};
and later on in states_equal() does memcmp(&old->regs[i], &cur->regs[i],..)
to find equivalent states.
Throughout the code of verifier there are assignements to 'imm' and 'map_ptr'
fields and it's not obvious that most of the assignments into 'imm' don't
need to clear extra 4 bytes (like mark_reg_unknown_value() does) to make sure
that memcmp doesn't go over junk left from 'map_ptr' assignment.
Simplify the code by converting 'int' into 'long'
Suggested-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/wireless/intel/iwlwifi/iwl-7000.c')
0 files changed, 0 insertions, 0 deletions