diff options
Diffstat (limited to 'net/sched/em_ipset.c')
| -rw-r--r-- | net/sched/em_ipset.c | 7 | 
1 files changed, 4 insertions, 3 deletions
diff --git a/net/sched/em_ipset.c b/net/sched/em_ipset.c index 938b7cbf562..527aeb7a3ff 100644 --- a/net/sched/em_ipset.c +++ b/net/sched/em_ipset.c @@ -24,11 +24,12 @@ static int em_ipset_change(struct tcf_proto *tp, void *data, int data_len,  {  	struct xt_set_info *set = data;  	ip_set_id_t index; +	struct net *net = dev_net(qdisc_dev(tp->q));  	if (data_len != sizeof(*set))  		return -EINVAL; -	index = ip_set_nfnl_get_byindex(set->index); +	index = ip_set_nfnl_get_byindex(net, set->index);  	if (index == IPSET_INVALID_ID)  		return -ENOENT; @@ -37,7 +38,7 @@ static int em_ipset_change(struct tcf_proto *tp, void *data, int data_len,  	if (em->data)  		return 0; -	ip_set_nfnl_put(index); +	ip_set_nfnl_put(net, index);  	return -ENOMEM;  } @@ -45,7 +46,7 @@ static void em_ipset_destroy(struct tcf_proto *p, struct tcf_ematch *em)  {  	const struct xt_set_info *set = (const void *) em->data;  	if (set) { -		ip_set_nfnl_put(set->index); +		ip_set_nfnl_put(dev_net(qdisc_dev(p->q)), set->index);  		kfree((void *) em->data);  	}  }  | 
