From: Alexander Lobakin <aleksander.lobakin@intel.com>
To: Gavin Li <gavinl@nvidia.com>, Simon Horman <simon.horman@corigine.com>
Cc: <davem@davemloft.net>, <edumazet@google.com>, <kuba@kernel.org>,
<pabeni@redhat.com>, <roopa@nvidia.com>,
<eng.alaamohamedsoliman.am@gmail.com>, <bigeasy@linutronix.de>,
<netdev@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<gavi@nvidia.com>, <roid@nvidia.com>, <maord@nvidia.com>,
<saeedm@nvidia.com>
Subject: Re: [PATCH net-next v3 4/5] ip_tunnel: constify input argument of ip_tunnel_info_opts( )
Date: Fri, 24 Feb 2023 17:11:11 +0100 [thread overview]
Message-ID: <8583ff17-a8fe-c5c3-7618-3ef82364c97e@intel.com> (raw)
In-Reply-To: <021dd47a-03e6-6d27-af3d-c7ff179fe0bd@nvidia.com>
From: Gavin Li <gavinl@nvidia.com>
Date: Mon, 20 Feb 2023 18:42:14 +0800
>
> On 2/20/2023 4:46 AM, Simon Horman wrote:
>> External email: Use caution opening links or attachments
>>
>>
>> On Sun, Feb 19, 2023 at 09:29:21PM +0100, Simon Horman wrote:
>>> On Fri, Feb 17, 2023 at 05:39:24AM +0200, Gavin Li wrote:
>>>> Constify input argument(i.e. struct ip_tunnel_info *info) of
>>>> ip_tunnel_info_opts( ) so that it wouldn't be needed to W/A it each
>>>> time
>>>> in each driver.
>>>>
>>>> Signed-off-by: Gavin Li <gavinl@nvidia.com>
>>>> ---
>>>> include/net/ip_tunnels.h | 4 ++--
>>>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/include/net/ip_tunnels.h b/include/net/ip_tunnels.h
>>>> index fca357679816..32c77f149c6e 100644
>>>> --- a/include/net/ip_tunnels.h
>>>> +++ b/include/net/ip_tunnels.h
>>>> @@ -485,9 +485,9 @@ 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)
>>>> +static inline void *ip_tunnel_info_opts(const struct ip_tunnel_info
>>>> *info)
>>>> {
>>>> - return info + 1;
>>>> + return (void *)(info + 1);
>>> I'm unclear on what problem this is trying to solve,
>>> but info being const, and then returning (info +1)
>>> as non-const feels like it is masking rather than fixing a problem.
>> I now see that an example of the problem is added by path 5/5.
>>
>> ...
>> CC [M] drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_vxlan.o
>> drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_vxlan.c: In function
>> 'mlx5e_gen_ip_tunnel_header_vxlan':
>> drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_vxlan.c:103:43:
>> error: passing argument 1 of 'ip_tunnel_info_opts' discards 'const'
>> qualifier from pointer target type [-Werror=discarded-qualifiers]
>> 103 | md = ip_tunnel_info_opts(e->tun_info);
>> | ~^~~~~~~~~~
>> In file included from
>> drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_vxlan.c:4:
>> ./include/net/ip_tunnels.h:488:64: note: expected 'struct
>> ip_tunnel_info *' but argument is of type 'const struct ip_tunnel_info *'
>> 488 | static inline void *ip_tunnel_info_opts(struct ip_tunnel_info
>> *info)
>> |
>> ~~~~~~~~~~~~~~~~~~~~~~~^~~~
>> ...
>>
>> But I really do wonder if this patch masks rather than fixes the problem.
> Hi Olek, any comment?
Hi,
Sorry for the late reply, was busy at work ._.
I initially proposed a solution via _Generic or __builtin_choose_expr to
return const or non-const opts basing on the input pointer type. I don't
like simple cast-aways.
See container_of_const() how it dynamically chooses whether to add
`const` or not when returning the result.
>>
>>>> }
>>>>
>>>> static inline void ip_tunnel_info_opts_get(void *to,
>>>> --
>>>> 2.31.1
>>>>
Thanks,
Olek
next prev parent reply other threads:[~2023-02-24 16:12 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-17 3:39 [PATCH net-next v3 0/5] net/mlx5e: Add GBP VxLAN HW offload support Gavin Li
2023-02-17 3:39 ` [PATCH net-next v3 1/5] vxlan: Remove unused argument from vxlan_build_gbp_hdr( ) and vxlan_build_gpe_hdr( ) Gavin Li
2023-02-19 20:30 ` Simon Horman
2023-02-17 3:39 ` [PATCH net-next v3 2/5] vxlan: Expose helper vxlan_build_gbp_hdr Gavin Li
2023-02-19 20:32 ` Simon Horman
2023-02-20 2:05 ` Gavin Li
2023-02-20 6:40 ` Simon Horman
2023-02-20 7:15 ` Gavin Li
2023-02-20 10:31 ` Simon Horman
2023-02-20 20:30 ` Jakub Kicinski
2023-02-21 7:38 ` Paolo Abeni
2023-02-21 9:30 ` Simon Horman
2023-02-17 3:39 ` [PATCH net-next v3 3/5] net/mlx5e: Add helper for encap_info_equal for tunnels with options Gavin Li
2023-02-19 20:34 ` Simon Horman
2023-02-17 3:39 ` [PATCH net-next v3 4/5] ip_tunnel: constify input argument of ip_tunnel_info_opts( ) Gavin Li
2023-02-19 20:29 ` Simon Horman
2023-02-19 20:46 ` Simon Horman
2023-02-20 10:42 ` Gavin Li
2023-02-24 16:11 ` Alexander Lobakin [this message]
2023-02-22 2:47 ` Gavin Li
2023-02-17 3:39 ` [PATCH net-next v3 5/5] net/mlx5e: TC, Add support for VxLAN GBP encap/decap flows offload Gavin Li
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=8583ff17-a8fe-c5c3-7618-3ef82364c97e@intel.com \
--to=aleksander.lobakin@intel.com \
--cc=bigeasy@linutronix.de \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=eng.alaamohamedsoliman.am@gmail.com \
--cc=gavi@nvidia.com \
--cc=gavinl@nvidia.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maord@nvidia.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=roid@nvidia.com \
--cc=roopa@nvidia.com \
--cc=saeedm@nvidia.com \
--cc=simon.horman@corigine.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome