> > From: Toke Hoiland-Jorgensen > > > > The check for tail call map compatibility ensures that tail calls only > > happen between maps of the same type. To ensure backwards compatibility for > > XDP multi-buffer we need a similar type of check for cpumap and devmap > > programs, so move the state from bpf_array_aux into bpf_map, add xdp_mb to > > the check, and apply the same check to cpumap and devmap. > > > > Co-developed-by: Lorenzo Bianconi > > Signed-off-by: Lorenzo Bianconi > > Signed-off-by: Toke Hoiland-Jorgensen > > --- > > ... > > > -bool bpf_prog_array_compatible(struct bpf_array *array, const struct bpf_prog *fp); > > +static inline bool map_type_contains_progs(struct bpf_map *map) > > Maybe map_type_check_needed()? Just noticing that devmap doesn't contain > progs. ack, I am fine with it. Toke? > > > +{ > > + return map->map_type == BPF_MAP_TYPE_PROG_ARRAY || > > + map->map_type == BPF_MAP_TYPE_DEVMAP || > > + map->map_type == BPF_MAP_TYPE_CPUMAP; > > +} > > + > > +bool bpf_prog_map_compatible(struct bpf_map *map, const struct bpf_prog *fp); > > int bpf_prog_calc_tag(struct bpf_prog *fp); > > Otherwise LGTM. >