lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Y/MV1JFn4NuptO9q@corigine.com>
Date:   Mon, 20 Feb 2023 07:40:20 +0100
From:   Simon Horman <simon.horman@...igine.com>
To:     Gavin Li <gavinl@...dia.com>
Cc:     davem@...emloft.net, edumazet@...gle.com, kuba@...nel.org,
        pabeni@...hat.com, roopa@...dia.com,
        eng.alaamohamedsoliman.am@...il.com, bigeasy@...utronix.de,
        netdev@...r.kernel.org, linux-kernel@...r.kernel.org,
        gavi@...dia.com, roid@...dia.com, maord@...dia.com,
        saeedm@...dia.com
Subject: Re: [PATCH net-next v3 2/5] vxlan: Expose helper vxlan_build_gbp_hdr

On Mon, Feb 20, 2023 at 10:05:00AM +0800, Gavin Li wrote:
> 
> On 2/20/2023 4:32 AM, Simon Horman wrote:
> > External email: Use caution opening links or attachments
> > 
> > 
> > On Fri, Feb 17, 2023 at 05:39:22AM +0200, Gavin Li wrote:
> > > vxlan_build_gbp_hdr will be used by other modules to build gbp option in
> > > vxlan header according to gbp flags.
> > > 
> > > Signed-off-by: Gavin Li <gavinl@...dia.com>
> > > Reviewed-by: Gavi Teitz <gavi@...dia.com>
> > > Reviewed-by: Roi Dayan <roid@...dia.com>
> > > Reviewed-by: Maor Dickman <maord@...dia.com>
> > > Acked-by: Saeed Mahameed <saeedm@...dia.com>
> > I do wonder if this needs to be a static inline function.
> > But nonetheless,
> 
> Will get "unused-function" from gcc without "inline"
> 
> ./include/net/vxlan.h:569:13: warning: ‘vxlan_build_gbp_hdr’ defined but not
> used [-Wunused-function]
>  static void vxlan_build_gbp_hdr(struct vxlanhdr *vxh, const struct
> vxlan_metadata *md)

Right. But what I was really wondering is if the definition
of the function could stay in drivers/net/vxlan/vxlan_core.c,
without being static. And have a declaration in include/net/vxlan.h

> > Reviewed-by: Simon Horman <simon.horman@...igine.com>
> > 
> > > ---
> > >   drivers/net/vxlan/vxlan_core.c | 19 -------------------
> > >   include/net/vxlan.h            | 19 +++++++++++++++++++
> > >   2 files changed, 19 insertions(+), 19 deletions(-)
> > > 
> > > diff --git a/drivers/net/vxlan/vxlan_core.c b/drivers/net/vxlan/vxlan_core.c
> > > index 86967277ab97..13faab36b3e1 100644
> > > --- a/drivers/net/vxlan/vxlan_core.c
> > > +++ b/drivers/net/vxlan/vxlan_core.c
> > > @@ -2140,25 +2140,6 @@ static bool route_shortcircuit(struct net_device *dev, struct sk_buff *skb)
> > >        return false;
> > >   }
> > > 
> > > -static void vxlan_build_gbp_hdr(struct vxlanhdr *vxh, struct vxlan_metadata *md)
> > > -{
> > > -     struct vxlanhdr_gbp *gbp;
> > > -
> > > -     if (!md->gbp)
> > > -             return;
> > > -
> > > -     gbp = (struct vxlanhdr_gbp *)vxh;
> > > -     vxh->vx_flags |= VXLAN_HF_GBP;
> > > -
> > > -     if (md->gbp & VXLAN_GBP_DONT_LEARN)
> > > -             gbp->dont_learn = 1;
> > > -
> > > -     if (md->gbp & VXLAN_GBP_POLICY_APPLIED)
> > > -             gbp->policy_applied = 1;
> > > -
> > > -     gbp->policy_id = htons(md->gbp & VXLAN_GBP_ID_MASK);
> > > -}
> > > -
> > >   static int vxlan_build_gpe_hdr(struct vxlanhdr *vxh, __be16 protocol)
> > >   {
> > >        struct vxlanhdr_gpe *gpe = (struct vxlanhdr_gpe *)vxh;
> > > diff --git a/include/net/vxlan.h b/include/net/vxlan.h
> > > index bca5b01af247..b6d419fa7ab1 100644
> > > --- a/include/net/vxlan.h
> > > +++ b/include/net/vxlan.h
> > > @@ -566,4 +566,23 @@ static inline bool vxlan_fdb_nh_path_select(struct nexthop *nh,
> > >        return true;
> > >   }
> > > 
> > > +static inline void vxlan_build_gbp_hdr(struct vxlanhdr *vxh, const struct vxlan_metadata *md)
> > > +{
> > > +     struct vxlanhdr_gbp *gbp;
> > > +
> > > +     if (!md->gbp)
> > > +             return;
> > > +
> > > +     gbp = (struct vxlanhdr_gbp *)vxh;
> > > +     vxh->vx_flags |= VXLAN_HF_GBP;
> > > +
> > > +     if (md->gbp & VXLAN_GBP_DONT_LEARN)
> > > +             gbp->dont_learn = 1;
> > > +
> > > +     if (md->gbp & VXLAN_GBP_POLICY_APPLIED)
> > > +             gbp->policy_applied = 1;
> > > +
> > > +     gbp->policy_id = htons(md->gbp & VXLAN_GBP_ID_MASK);
> > > +}
> > > +
> > >   #endif
> > > --
> > > 2.31.1
> > > 
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ