aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/uapi/linux/bpf.h1
-rw-r--r--kernel/bpf/verifier.c1
-rw-r--r--net/core/filter.c6
3 files changed, 8 insertions, 0 deletions
diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h
index 1623047af463..3dd314a45d0d 100644
--- a/include/uapi/linux/bpf.h
+++ b/include/uapi/linux/bpf.h
@@ -119,6 +119,7 @@ enum bpf_prog_type {
119 BPF_PROG_TYPE_UNSPEC, 119 BPF_PROG_TYPE_UNSPEC,
120 BPF_PROG_TYPE_SOCKET_FILTER, 120 BPF_PROG_TYPE_SOCKET_FILTER,
121 BPF_PROG_TYPE_SCHED_CLS, 121 BPF_PROG_TYPE_SCHED_CLS,
122 BPF_PROG_TYPE_SCHED_ACT,
122}; 123};
123 124
124#define BPF_PSEUDO_MAP_FD 1 125#define BPF_PSEUDO_MAP_FD 1
diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
index c22ebd36fa4b..0e714f799ec0 100644
--- a/kernel/bpf/verifier.c
+++ b/kernel/bpf/verifier.c
@@ -1180,6 +1180,7 @@ static bool may_access_skb(enum bpf_prog_type type)
1180 switch (type) { 1180 switch (type) {
1181 case BPF_PROG_TYPE_SOCKET_FILTER: 1181 case BPF_PROG_TYPE_SOCKET_FILTER:
1182 case BPF_PROG_TYPE_SCHED_CLS: 1182 case BPF_PROG_TYPE_SCHED_CLS:
1183 case BPF_PROG_TYPE_SCHED_ACT:
1183 return true; 1184 return true;
1184 default: 1185 default:
1185 return false; 1186 return false;
diff --git a/net/core/filter.c b/net/core/filter.c
index bdaac5895def..084eacc4d1d4 100644
--- a/net/core/filter.c
+++ b/net/core/filter.c
@@ -1263,10 +1263,16 @@ static struct bpf_prog_type_list sched_cls_type __read_mostly = {
1263 .type = BPF_PROG_TYPE_SCHED_CLS, 1263 .type = BPF_PROG_TYPE_SCHED_CLS,
1264}; 1264};
1265 1265
1266static struct bpf_prog_type_list sched_act_type __read_mostly = {
1267 .ops = &sk_filter_ops,
1268 .type = BPF_PROG_TYPE_SCHED_ACT,
1269};
1270
1266static int __init register_sk_filter_ops(void) 1271static int __init register_sk_filter_ops(void)
1267{ 1272{
1268 bpf_register_prog_type(&sk_filter_type); 1273 bpf_register_prog_type(&sk_filter_type);
1269 bpf_register_prog_type(&sched_cls_type); 1274 bpf_register_prog_type(&sched_cls_type);
1275 bpf_register_prog_type(&sched_act_type);
1270 1276
1271 return 0; 1277 return 0;
1272} 1278}