act_vlan.c (c6380ecd8e9bee7aba3d9a5a94b58168244c4a61) act_vlan.c (1edf8abe04090c4f41a85e42c66638be1ee69156)
1/*
2 * Copyright (c) 2014 Jiri Pirko <jiri@resnulli.us>
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 */

--- 211 unchanged lines hidden (view full) ---

220}
221
222static void tcf_vlan_cleanup(struct tc_action *a)
223{
224 struct tcf_vlan *v = to_vlan(a);
225 struct tcf_vlan_params *p;
226
227 p = rcu_dereference_protected(v->vlan_p, 1);
1/*
2 * Copyright (c) 2014 Jiri Pirko <jiri@resnulli.us>
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 */

--- 211 unchanged lines hidden (view full) ---

220}
221
222static void tcf_vlan_cleanup(struct tc_action *a)
223{
224 struct tcf_vlan *v = to_vlan(a);
225 struct tcf_vlan_params *p;
226
227 p = rcu_dereference_protected(v->vlan_p, 1);
228 kfree_rcu(p, rcu);
228 if (p)
229 kfree_rcu(p, rcu);
229}
230
231static int tcf_vlan_dump(struct sk_buff *skb, struct tc_action *a,
232 int bind, int ref)
233{
234 unsigned char *b = skb_tail_pointer(skb);
235 struct tcf_vlan *v = to_vlan(a);
236 struct tcf_vlan_params *p = rtnl_dereference(v->vlan_p);

--- 95 unchanged lines hidden ---
230}
231
232static int tcf_vlan_dump(struct sk_buff *skb, struct tc_action *a,
233 int bind, int ref)
234{
235 unsigned char *b = skb_tail_pointer(skb);
236 struct tcf_vlan *v = to_vlan(a);
237 struct tcf_vlan_params *p = rtnl_dereference(v->vlan_p);

--- 95 unchanged lines hidden ---