diff options
author | Alexei Starovoitov <[email protected]> | 2016-04-06 19:39:21 -0700 |
---|---|---|
committer | David S. Miller <[email protected]> | 2016-04-10 22:43:18 -0400 |
commit | 4923ec0b10d998349c2ac4b38aa4674e539e6f92 (patch) | |
tree | aabed2c261f40d5c2010493b3ed9a9088aa5f7a9 /drivers/net/wireless/intel/iwlwifi/mvm/utils.c | |
parent | ae95d7126104591348d37aaf78c8325967e02386 (diff) |
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 <[email protected]>
Signed-off-by: Alexei Starovoitov <[email protected]>
Acked-by: Daniel Borkmann <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Diffstat (limited to 'drivers/net/wireless/intel/iwlwifi/mvm/utils.c')
0 files changed, 0 insertions, 0 deletions