Commit bc9d003d authored by Gavin Li's avatar Gavin Li Committed by Jakub Kicinski
Browse files

ip_tunnel: Preserve pointer const in ip_tunnel_info_opts



Change ip_tunnel_info_opts( ) from static function to macro to cast return
value and preserve the const-ness of the pointer.

Signed-off-by: default avatarGavin Li <gavinl@nvidia.com>
Reviewed-by: default avatarEric Dumazet <edumazet@google.com>
Reviewed-by: default avatarSimon Horman <simon.horman@corigine.com>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 58de53c1
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -67,6 +67,12 @@ struct ip_tunnel_key {
	GENMASK((sizeof_field(struct ip_tunnel_info,		\
			      options_len) * BITS_PER_BYTE) - 1, 0)

#define ip_tunnel_info_opts(info)				\
	_Generic(info,						\
		 const struct ip_tunnel_info * : ((const void *)((info) + 1)),\
		 struct ip_tunnel_info * : ((void *)((info) + 1))\
	)

struct ip_tunnel_info {
	struct ip_tunnel_key	key;
#ifdef CONFIG_DST_CACHE
@@ -485,11 +491,6 @@ static inline void iptunnel_xmit_stats(struct net_device *dev, int pkt_len)
	}
}

static inline void *ip_tunnel_info_opts(struct ip_tunnel_info *info)
{
	return info + 1;
}

static inline void ip_tunnel_info_opts_get(void *to,
					   const struct ip_tunnel_info *info)
{