cls_matchall.c (8865fdd4e1538a775c5ac2157fb8eb45bee9dc18) | cls_matchall.c (7306db38a67cf6b8e1ca354b1d0c0117b7b880d5) |
---|---|
1/* 2 * net/sched/cls_matchll.c Match-all classifier 3 * 4 * Copyright (c) 2016 Jiri Pirko <jiri@mellanox.com> 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation; either version 2 of the License, or --- 146 unchanged lines hidden (view full) --- 155 tcf_bind_filter(tp, &head->res, base); 156 } 157 return 0; 158} 159 160static int mall_change(struct net *net, struct sk_buff *in_skb, 161 struct tcf_proto *tp, unsigned long base, 162 u32 handle, struct nlattr **tca, | 1/* 2 * net/sched/cls_matchll.c Match-all classifier 3 * 4 * Copyright (c) 2016 Jiri Pirko <jiri@mellanox.com> 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation; either version 2 of the License, or --- 146 unchanged lines hidden (view full) --- 155 tcf_bind_filter(tp, &head->res, base); 156 } 157 return 0; 158} 159 160static int mall_change(struct net *net, struct sk_buff *in_skb, 161 struct tcf_proto *tp, unsigned long base, 162 u32 handle, struct nlattr **tca, |
163 void **arg, bool ovr) | 163 void **arg, bool ovr, struct netlink_ext_ack *extack) |
164{ 165 struct cls_mall_head *head = rtnl_dereference(tp->root); 166 struct nlattr *tb[TCA_MATCHALL_MAX + 1]; 167 struct cls_mall_head *new; 168 u32 flags = 0; 169 int err; 170 171 if (!tca[TCA_OPTIONS]) --- 146 unchanged lines hidden --- | 164{ 165 struct cls_mall_head *head = rtnl_dereference(tp->root); 166 struct nlattr *tb[TCA_MATCHALL_MAX + 1]; 167 struct cls_mall_head *new; 168 u32 flags = 0; 169 int err; 170 171 if (!tca[TCA_OPTIONS]) --- 146 unchanged lines hidden --- |