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 --- |