mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-16 11:21:26 -04:00
bpf: better naming for __reg_deduce_bounds() parts
This renaming will also help reshuffle the different parts in the subsequent patch. Signed-off-by: Eduard Zingerman <eddyz87@gmail.com> Signed-off-by: Paul Chaignon <paul.chaignon@gmail.com> Link: https://lore.kernel.org/r/a988ecf2c57e265b97917136b14b421038534e8c.1773401138.git.paul.chaignon@gmail.com Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
committed by
Alexei Starovoitov
parent
2af3aa702c
commit
879cace976
@@ -2448,7 +2448,7 @@ static void __update_reg_bounds(struct bpf_reg_state *reg)
|
||||
}
|
||||
|
||||
/* Uses signed min/max values to inform unsigned, and vice-versa */
|
||||
static void __reg32_deduce_bounds(struct bpf_reg_state *reg)
|
||||
static void deduce_bounds_32_from_64(struct bpf_reg_state *reg)
|
||||
{
|
||||
/* If upper 32 bits of u64/s64 range don't change, we can use lower 32
|
||||
* bits to improve our u32/s32 boundaries.
|
||||
@@ -2518,6 +2518,10 @@ static void __reg32_deduce_bounds(struct bpf_reg_state *reg)
|
||||
reg->s32_min_value = max_t(s32, reg->s32_min_value, (s32)reg->smin_value);
|
||||
reg->s32_max_value = min_t(s32, reg->s32_max_value, (s32)reg->smax_value);
|
||||
}
|
||||
}
|
||||
|
||||
static void deduce_bounds_32_from_32(struct bpf_reg_state *reg)
|
||||
{
|
||||
/* if u32 range forms a valid s32 range (due to matching sign bit),
|
||||
* try to learn from that
|
||||
*/
|
||||
@@ -2559,7 +2563,7 @@ static void __reg32_deduce_bounds(struct bpf_reg_state *reg)
|
||||
}
|
||||
}
|
||||
|
||||
static void __reg64_deduce_bounds(struct bpf_reg_state *reg)
|
||||
static void deduce_bounds_64_from_64(struct bpf_reg_state *reg)
|
||||
{
|
||||
/* If u64 range forms a valid s64 range (due to matching sign bit),
|
||||
* try to learn from that. Let's do a bit of ASCII art to see when
|
||||
@@ -2694,7 +2698,7 @@ static void __reg64_deduce_bounds(struct bpf_reg_state *reg)
|
||||
}
|
||||
}
|
||||
|
||||
static void __reg_deduce_mixed_bounds(struct bpf_reg_state *reg)
|
||||
static void deduce_bounds_64_from_32(struct bpf_reg_state *reg)
|
||||
{
|
||||
/* Try to tighten 64-bit bounds from 32-bit knowledge, using 32-bit
|
||||
* values on both sides of 64-bit range in hope to have tighter range.
|
||||
@@ -2763,9 +2767,10 @@ static void __reg_deduce_mixed_bounds(struct bpf_reg_state *reg)
|
||||
|
||||
static void __reg_deduce_bounds(struct bpf_reg_state *reg)
|
||||
{
|
||||
__reg32_deduce_bounds(reg);
|
||||
__reg64_deduce_bounds(reg);
|
||||
__reg_deduce_mixed_bounds(reg);
|
||||
deduce_bounds_32_from_64(reg);
|
||||
deduce_bounds_32_from_32(reg);
|
||||
deduce_bounds_64_from_64(reg);
|
||||
deduce_bounds_64_from_32(reg);
|
||||
}
|
||||
|
||||
/* Attempts to improve var_off based on unsigned min/max information */
|
||||
|
||||
Reference in New Issue
Block a user