mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	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. 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>
This commit is contained in:
		
							parent
							
								
									3bd3b9ed1b
								
							
						
					
					
						commit
						6aaae2b6c4
					
				
					 7 changed files with 21 additions and 18 deletions
				
			
		| 
						 | 
				
			
			@ -496,10 +496,13 @@ struct xdp_buff {
 | 
			
		|||
	void *data_hard_start;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* 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;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -102,7 +102,7 @@ static int smap_verdict_func(struct smap_psock *psock, struct sk_buff *skb)
 | 
			
		|||
 | 
			
		||||
	skb_orphan(skb);
 | 
			
		||||
	skb->sk = psock->sock;
 | 
			
		||||
	bpf_compute_data_end(skb);
 | 
			
		||||
	bpf_compute_data_pointers(skb);
 | 
			
		||||
	rc = (*prog->bpf_func)(skb, prog->insnsi);
 | 
			
		||||
	skb->sk = NULL;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -369,7 +369,7 @@ static int smap_parse_func_strparser(struct strparser *strp,
 | 
			
		|||
	 * any socket yet.
 | 
			
		||||
	 */
 | 
			
		||||
	skb->sk = psock->sock;
 | 
			
		||||
	bpf_compute_data_end(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);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1402,7 +1402,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;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1962,7 +1962,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;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1984,7 +1984,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;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2178,7 +2178,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;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2303,7 +2303,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;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2394,7 +2394,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;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2434,7 +2434,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();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -49,11 +49,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();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -99,11 +99,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