Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d717bb2a authored by Julian Anastasov's avatar Julian Anastasov Committed by Simon Horman
Browse files

ipvs: properly dereference dest_dst in ip_vs_forget_dev



Use rcu_dereference_protected to resolve
sparse warning, found by kbuild test robot:

net/netfilter/ipvs/ip_vs_ctl.c:1464:35: warning: dereference of
noderef expression

Problem from commit 026ace06
("ipvs: optimize dst usage for real server")

Signed-off-by: default avatarJulian Anastasov <ja@ssi.bg>
Signed-off-by: default avatarSimon Horman <horms@verge.net.au>
parent 3e3251b3
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -1460,8 +1460,11 @@ void ip_vs_service_net_cleanup(struct net *net)
static inline void
ip_vs_forget_dev(struct ip_vs_dest *dest, struct net_device *dev)
{
	struct ip_vs_dest_dst *dest_dst;

	spin_lock_bh(&dest->dst_lock);
	if (dest->dest_dst && dest->dest_dst->dst_cache->dev == dev) {
	dest_dst = rcu_dereference_protected(dest->dest_dst, 1);
	if (dest_dst && dest_dst->dst_cache->dev == dev) {
		IP_VS_DBG_BUF(3, "Reset dev:%s dest %s:%u ,dest->refcnt=%d\n",
			      dev->name,
			      IP_VS_DBG_ADDR(dest->af, &dest->addr),