BACKPORT: bpf: rename bpf_compute_data_end into bpf_compute_data_pointers
Just do the rename into bpf_compute_data_pointers() as we'll add one more pointer here to recompute. Change-Id: Ie1fb47a864d63a08bbb00b86f71daf2156dc82fa Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Acked-by: Alexei Starovoitov <ast@kernel.org> Acked-by: John Fastabend <john.fastabend@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Sorayukii <sorayukii69@gmail.com>
This commit is contained in:
parent
1999da38fd
commit
85fe8fed8f
7 changed files with 21 additions and 18 deletions
|
|
@ -548,10 +548,13 @@ struct sk_msg_buff {
|
|||
struct list_head list;
|
||||
};
|
||||
|
||||
/* compute the linear packet data range [data, data_end) which
|
||||
* will be accessed by cls_bpf, act_bpf and lwt programs
|
||||
/* Compute the linear packet data range [data, data_end) which
|
||||
* will be accessed by various program types (cls_bpf, act_bpf,
|
||||
* lwt, ...). Subsystems allowing direct data access must (!)
|
||||
* ensure that cb[] area can be written to when BPF program is
|
||||
* invoked (otherwise cb[] save/restore is necessary).
|
||||
*/
|
||||
static inline void bpf_compute_data_end(struct sk_buff *skb)
|
||||
static inline void bpf_compute_data_pointers(struct sk_buff *skb)
|
||||
{
|
||||
struct bpf_skb_data_end *cb = (struct bpf_skb_data_end *)skb->cb;
|
||||
|
||||
|
|
|
|||
|
|
@ -1236,7 +1236,7 @@ static int smap_verdict_func(struct smap_psock *psock, struct sk_buff *skb)
|
|||
*/
|
||||
TCP_SKB_CB(skb)->bpf.sk_redir = NULL;
|
||||
skb->sk = psock->sock;
|
||||
bpf_compute_data_end_sk_skb(skb);
|
||||
bpf_compute_data_pointers(skb);
|
||||
preempt_disable();
|
||||
rc = (*prog->bpf_func)(skb, prog->insnsi);
|
||||
preempt_enable();
|
||||
|
|
@ -1494,7 +1494,7 @@ static int smap_parse_func_strparser(struct strparser *strp,
|
|||
* any socket yet.
|
||||
*/
|
||||
skb->sk = psock->sock;
|
||||
bpf_compute_data_end_sk_skb(skb);
|
||||
bpf_compute_data_pointers(skb);
|
||||
rc = (*prog->bpf_func)(skb, prog->insnsi);
|
||||
skb->sk = NULL;
|
||||
rcu_read_unlock();
|
||||
|
|
|
|||
|
|
@ -133,7 +133,7 @@ int bpf_prog_test_run_skb(struct bpf_prog *prog, const union bpf_attr *kattr,
|
|||
if (is_l2)
|
||||
__skb_push(skb, ETH_HLEN);
|
||||
if (is_direct_pkt_access)
|
||||
bpf_compute_data_end(skb);
|
||||
bpf_compute_data_pointers(skb);
|
||||
retval = bpf_test_run(prog, skb, repeat, &duration);
|
||||
if (!is_l2)
|
||||
__skb_push(skb, ETH_HLEN);
|
||||
|
|
|
|||
|
|
@ -1599,7 +1599,7 @@ static inline int bpf_try_make_writable(struct sk_buff *skb,
|
|||
{
|
||||
int err = __bpf_try_make_writable(skb, write_len);
|
||||
|
||||
bpf_compute_data_end(skb);
|
||||
bpf_compute_data_pointers(skb);
|
||||
return err;
|
||||
}
|
||||
|
||||
|
|
@ -2436,7 +2436,7 @@ BPF_CALL_3(bpf_skb_vlan_push, struct sk_buff *, skb, __be16, vlan_proto,
|
|||
ret = skb_vlan_push(skb, vlan_proto, vlan_tci);
|
||||
bpf_pull_mac_rcsum(skb);
|
||||
|
||||
bpf_compute_data_end(skb);
|
||||
bpf_compute_data_pointers(skb);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
@ -2457,7 +2457,7 @@ BPF_CALL_1(bpf_skb_vlan_pop, struct sk_buff *, skb)
|
|||
ret = skb_vlan_pop(skb);
|
||||
bpf_pull_mac_rcsum(skb);
|
||||
|
||||
bpf_compute_data_end(skb);
|
||||
bpf_compute_data_pointers(skb);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
@ -2646,7 +2646,7 @@ BPF_CALL_3(bpf_skb_change_proto, struct sk_buff *, skb, __be16, proto,
|
|||
* need to be verified first.
|
||||
*/
|
||||
ret = bpf_skb_proto_xlat(skb, proto);
|
||||
bpf_compute_data_end(skb);
|
||||
bpf_compute_data_pointers(skb);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
@ -2768,7 +2768,7 @@ static int bpf_skb_adjust_net(struct sk_buff *skb, s32 len_diff)
|
|||
ret = shrink ? bpf_skb_net_shrink(skb, len_diff_abs) :
|
||||
bpf_skb_net_grow(skb, len_diff_abs);
|
||||
|
||||
bpf_compute_data_end(skb);
|
||||
bpf_compute_data_pointers(skb);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
@ -2859,7 +2859,7 @@ BPF_CALL_3(bpf_skb_change_tail, struct sk_buff *, skb, u32, new_len,
|
|||
skb_gso_reset(skb);
|
||||
}
|
||||
|
||||
bpf_compute_data_end(skb);
|
||||
bpf_compute_data_pointers(skb);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
@ -2899,7 +2899,7 @@ BPF_CALL_3(bpf_skb_change_head, struct sk_buff *, skb, u32, head_room,
|
|||
skb_reset_mac_header(skb);
|
||||
}
|
||||
|
||||
bpf_compute_data_end(skb);
|
||||
bpf_compute_data_pointers(skb);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ static int run_lwt_bpf(struct sk_buff *skb, struct bpf_lwt_prog *lwt,
|
|||
*/
|
||||
preempt_disable();
|
||||
rcu_read_lock();
|
||||
bpf_compute_data_end(skb);
|
||||
bpf_compute_data_pointers(skb);
|
||||
ret = bpf_prog_run_save_cb(lwt->prog, skb);
|
||||
rcu_read_unlock();
|
||||
|
||||
|
|
|
|||
|
|
@ -50,11 +50,11 @@ static int tcf_bpf(struct sk_buff *skb, const struct tc_action *act,
|
|||
filter = rcu_dereference(prog->filter);
|
||||
if (at_ingress) {
|
||||
__skb_push(skb, skb->mac_len);
|
||||
bpf_compute_data_end(skb);
|
||||
bpf_compute_data_pointers(skb);
|
||||
filter_res = BPF_PROG_RUN(filter, skb);
|
||||
__skb_pull(skb, skb->mac_len);
|
||||
} else {
|
||||
bpf_compute_data_end(skb);
|
||||
bpf_compute_data_pointers(skb);
|
||||
filter_res = BPF_PROG_RUN(filter, skb);
|
||||
}
|
||||
rcu_read_unlock();
|
||||
|
|
|
|||
|
|
@ -98,11 +98,11 @@ static int cls_bpf_classify(struct sk_buff *skb, const struct tcf_proto *tp,
|
|||
} else if (at_ingress) {
|
||||
/* It is safe to push/pull even if skb_shared() */
|
||||
__skb_push(skb, skb->mac_len);
|
||||
bpf_compute_data_end(skb);
|
||||
bpf_compute_data_pointers(skb);
|
||||
filter_res = BPF_PROG_RUN(prog->filter, skb);
|
||||
__skb_pull(skb, skb->mac_len);
|
||||
} else {
|
||||
bpf_compute_data_end(skb);
|
||||
bpf_compute_data_pointers(skb);
|
||||
filter_res = BPF_PROG_RUN(prog->filter, skb);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue