|
@@ -84,15 +84,6 @@ void *bpf_internal_load_pointer_neg_helper(const struct sk_buff *skb, int k, uns
|
|
|
return NULL;
|
|
|
}
|
|
|
|
|
|
-static inline void *load_pointer(const struct sk_buff *skb, int k,
|
|
|
- unsigned int size, void *buffer)
|
|
|
-{
|
|
|
- if (k >= 0)
|
|
|
- return skb_header_pointer(skb, k, size, buffer);
|
|
|
-
|
|
|
- return bpf_internal_load_pointer_neg_helper(skb, k, size);
|
|
|
-}
|
|
|
-
|
|
|
/**
|
|
|
* sk_filter - run a packet through a socket filter
|
|
|
* @sk: sock associated with &sk_buff
|
|
@@ -537,7 +528,7 @@ load_word:
|
|
|
* BPF_R0 - 8/16/32-bit skb data converted to cpu endianness
|
|
|
*/
|
|
|
|
|
|
- ptr = load_pointer((struct sk_buff *) (unsigned long) CTX, off, 4, &tmp);
|
|
|
+ ptr = bpf_load_pointer((struct sk_buff *) (unsigned long) CTX, off, 4, &tmp);
|
|
|
if (likely(ptr != NULL)) {
|
|
|
BPF_R0 = get_unaligned_be32(ptr);
|
|
|
CONT;
|
|
@@ -547,7 +538,7 @@ load_word:
|
|
|
LD_ABS_H: /* BPF_R0 = ntohs(*(u16 *) (skb->data + imm32)) */
|
|
|
off = IMM;
|
|
|
load_half:
|
|
|
- ptr = load_pointer((struct sk_buff *) (unsigned long) CTX, off, 2, &tmp);
|
|
|
+ ptr = bpf_load_pointer((struct sk_buff *) (unsigned long) CTX, off, 2, &tmp);
|
|
|
if (likely(ptr != NULL)) {
|
|
|
BPF_R0 = get_unaligned_be16(ptr);
|
|
|
CONT;
|
|
@@ -557,7 +548,7 @@ load_half:
|
|
|
LD_ABS_B: /* BPF_R0 = *(u8 *) (skb->data + imm32) */
|
|
|
off = IMM;
|
|
|
load_byte:
|
|
|
- ptr = load_pointer((struct sk_buff *) (unsigned long) CTX, off, 1, &tmp);
|
|
|
+ ptr = bpf_load_pointer((struct sk_buff *) (unsigned long) CTX, off, 1, &tmp);
|
|
|
if (likely(ptr != NULL)) {
|
|
|
BPF_R0 = *(u8 *)ptr;
|
|
|
CONT;
|