diff options
| -rw-r--r-- | include/net/ip_fib.h | 1 | ||||
| -rw-r--r-- | net/ipv4/fib_frontend.c | 3 | ||||
| -rw-r--r-- | net/ipv4/ipmr.c | 2 | ||||
| -rw-r--r-- | net/ipv6/ip6_fib.c | 2 | ||||
| -rw-r--r-- | net/ipv6/ip6mr.c | 2 | 
5 files changed, 4 insertions, 6 deletions
| diff --git a/include/net/ip_fib.h b/include/net/ip_fib.h index 59e0d4e99f94..b219a8fe0950 100644 --- a/include/net/ip_fib.h +++ b/include/net/ip_fib.h @@ -257,7 +257,6 @@ struct fib_dump_filter {  	u32			table_id;  	/* filter_set is an optimization that an entry is set */  	bool			filter_set; -	bool			dump_all_families;  	bool			dump_routes;  	bool			dump_exceptions;  	unsigned char		protocol; diff --git a/net/ipv4/fib_frontend.c b/net/ipv4/fib_frontend.c index 213be9c050ad..1bf9da3a75f9 100644 --- a/net/ipv4/fib_frontend.c +++ b/net/ipv4/fib_frontend.c @@ -918,7 +918,6 @@ int ip_valid_fib_dump_req(struct net *net, const struct nlmsghdr *nlh,  	else  		filter->dump_exceptions = false; -	filter->dump_all_families = (rtm->rtm_family == AF_UNSPEC);  	filter->flags    = rtm->rtm_flags;  	filter->protocol = rtm->rtm_protocol;  	filter->rt_type  = rtm->rtm_type; @@ -990,7 +989,7 @@ static int inet_dump_fib(struct sk_buff *skb, struct netlink_callback *cb)  	if (filter.table_id) {  		tb = fib_get_table(net, filter.table_id);  		if (!tb) { -			if (filter.dump_all_families) +			if (rtnl_msg_family(cb->nlh) != PF_INET)  				return skb->len;  			NL_SET_ERR_MSG(cb->extack, "ipv4: FIB table does not exist"); diff --git a/net/ipv4/ipmr.c b/net/ipv4/ipmr.c index 5c218db2dede..b2363b82b48d 100644 --- a/net/ipv4/ipmr.c +++ b/net/ipv4/ipmr.c @@ -2613,7 +2613,7 @@ static int ipmr_rtm_dumproute(struct sk_buff *skb, struct netlink_callback *cb)  		mrt = ipmr_get_table(sock_net(skb->sk), filter.table_id);  		if (!mrt) { -			if (filter.dump_all_families) +			if (rtnl_msg_family(cb->nlh) != RTNL_FAMILY_IPMR)  				return skb->len;  			NL_SET_ERR_MSG(cb->extack, "ipv4: MR table does not exist"); diff --git a/net/ipv6/ip6_fib.c b/net/ipv6/ip6_fib.c index 46ed56719476..20314895509c 100644 --- a/net/ipv6/ip6_fib.c +++ b/net/ipv6/ip6_fib.c @@ -664,7 +664,7 @@ static int inet6_dump_fib(struct sk_buff *skb, struct netlink_callback *cb)  	if (arg.filter.table_id) {  		tb = fib6_get_table(net, arg.filter.table_id);  		if (!tb) { -			if (arg.filter.dump_all_families) +			if (rtnl_msg_family(cb->nlh) != PF_INET6)  				goto out;  			NL_SET_ERR_MSG_MOD(cb->extack, "FIB table does not exist"); diff --git a/net/ipv6/ip6mr.c b/net/ipv6/ip6mr.c index 1e223e26f079..1f4d20e97c07 100644 --- a/net/ipv6/ip6mr.c +++ b/net/ipv6/ip6mr.c @@ -2503,7 +2503,7 @@ static int ip6mr_rtm_dumproute(struct sk_buff *skb, struct netlink_callback *cb)  		mrt = ip6mr_get_table(sock_net(skb->sk), filter.table_id);  		if (!mrt) { -			if (filter.dump_all_families) +			if (rtnl_msg_family(cb->nlh) != RTNL_FAMILY_IP6MR)  				return skb->len;  			NL_SET_ERR_MSG_MOD(cb->extack, "MR table does not exist"); | 
