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

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
...@@ -67,6 +67,12 @@ struct ip_tunnel_key { ...@@ -67,6 +67,12 @@ struct ip_tunnel_key {
GENMASK((sizeof_field(struct ip_tunnel_info, \ GENMASK((sizeof_field(struct ip_tunnel_info, \
options_len) * BITS_PER_BYTE) - 1, 0) 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_info {
struct ip_tunnel_key key; struct ip_tunnel_key key;
#ifdef CONFIG_DST_CACHE #ifdef CONFIG_DST_CACHE
...@@ -485,11 +491,6 @@ static inline void iptunnel_xmit_stats(struct net_device *dev, int pkt_len) ...@@ -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, static inline void ip_tunnel_info_opts_get(void *to,
const struct ip_tunnel_info *info) const struct ip_tunnel_info *info)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment