diff options
author | Gavin Li <gavinl@nvidia.com> | 2023-03-16 09:07:57 +0200 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2023-03-17 22:41:16 -0700 |
commit | bc9d003dc48c381763c3a6309bfc5eecf9962b9c (patch) | |
tree | 3ebd82ebb5de7c1752a02fc52619db2631ccb13d | |
parent | 58de53c1025836529af9e22e96375d0874e2baca (diff) | |
download | linux-stable-bc9d003dc48c381763c3a6309bfc5eecf9962b9c.tar.gz linux-stable-bc9d003dc48c381763c3a6309bfc5eecf9962b9c.tar.bz2 linux-stable-bc9d003dc48c381763c3a6309bfc5eecf9962b9c.zip |
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: Gavin Li <gavinl@nvidia.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r-- | include/net/ip_tunnels.h | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/include/net/ip_tunnels.h b/include/net/ip_tunnels.h index fca357679816..255b32a90850 100644 --- a/include/net/ip_tunnels.h +++ b/include/net/ip_tunnels.h @@ -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) { |