ANDROID: net: bpf: Allow TC programs to call BPF_FUNC_skb_change_head

This enables ebpf tethering offload from a cellular interface with
no L2 mac header to a wifi/ethernet/usb interface with one.

Will pursue upstreaming this along with further mtu related fixups.

Test: builds, real testing with identical patch on a 4.14 flame device
Bug: 149724482
Signed-off-by: Lorenzo Colitti <>
Signed-off-by: Maciej ┼╗enczykowski <>
Change-Id: Ic182320bf1abb248d0f86fa2973c60208710f664
diff --git a/net/core/filter.c b/net/core/filter.c
index a364623..a009551 100644
--- a/net/core/filter.c
+++ b/net/core/filter.c
@@ -3260,6 +3260,8 @@
 		return &bpf_skb_adjust_room_proto;
 	case BPF_FUNC_skb_change_tail:
 		return &bpf_skb_change_tail_proto;
+	case BPF_FUNC_skb_change_head:
+		return &bpf_skb_change_head_proto;
 	case BPF_FUNC_skb_get_tunnel_key:
 		return &bpf_skb_get_tunnel_key_proto;
 	case BPF_FUNC_skb_set_tunnel_key: