Commit 86cdf9ca authored by Vinay Kumar Yadav's avatar Vinay Kumar Yadav Committed by Jakub Kicinski
Browse files

chelsio/chtls: fix panic when server is on ipv6



Netdev is filled in egress_dev when connection is established,
If connection is closed before establishment, then egress_dev
is NULL, Fix it using ip_dev_find() rather then extracting from
egress_dev.

Fixes: 6abde0b2 ("crypto/chtls: IPv6 support for inline TLS")
Signed-off-by: default avatarVenkatesh Ellapu <venkatesh.e@chelsio.com>
Signed-off-by: default avatarVinay Kumar Yadav <vinay.yadav@chelsio.com>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 81519d1f
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -736,14 +736,13 @@ void chtls_listen_stop(struct chtls_dev *cdev, struct sock *sk)

#if IS_ENABLED(CONFIG_IPV6)
	if (sk->sk_family == PF_INET6) {
		struct chtls_sock *csk;
		struct net_device *ndev = chtls_find_netdev(cdev, sk);
		int addr_type = 0;

		csk = rcu_dereference_sk_user_data(sk);
		addr_type = ipv6_addr_type((const struct in6_addr *)
					  &sk->sk_v6_rcv_saddr);
		if (addr_type != IPV6_ADDR_ANY)
			cxgb4_clip_release(csk->egress_dev, (const u32 *)
			cxgb4_clip_release(ndev, (const u32 *)
					   &sk->sk_v6_rcv_saddr, 1);
	}
#endif