[ovs-dev] [PATCH 5/8] datapath: Add support for kernel 4.4

Jesse Gross jesse at kernel.org
Mon Jul 18 18:28:38 UTC 2016


On Mon, Jul 18, 2016 at 4:24 AM, Pravin B Shelar <pshelar at ovn.org> wrote:
> Most of changes are related to ip-fragment API and genetlink
> API changes.
>
> Signed-off-by: Pravin B Shelar <pshelar at ovn.org>

I'm getting some sparse warnings with this patch. Not all of them are
new but I wasn't able to run it before due to my local kernel version.

/home/jgross/openvswitch/datapath/linux/actions.c:822:37: warning:
symbol 'err' shadows an earlier one
/home/jgross/openvswitch/datapath/linux/actions.c:798:18: originally
declared here

/home/jgross/openvswitch/datapath/linux/ip_tunnels_core.c:268:6:
warning: symbol 'rpl_ip6tunnel_xmit' was not declared. Should it be
static?

/home/jgross/openvswitch/datapath/linux/vxlan.c:1905:45: warning:
incorrect type in assignment (different base types)
/home/jgross/openvswitch/datapath/linux/vxlan.c:1905:45:    expected
restricted __be16 [usertype] dst_port
/home/jgross/openvswitch/datapath/linux/vxlan.c:1905:45:    got int
/home/jgross/openvswitch/datapath/linux/vxlan.c:1933:58: warning:
incorrect type in argument 7 (different base types)
/home/jgross/openvswitch/datapath/linux/vxlan.c:1933:58:    expected
unsigned int [unsigned] [usertype] vni
/home/jgross/openvswitch/datapath/linux/vxlan.c:1933:58:    got
restricted __be32 [usertype] remote_vni

> diff --git a/datapath/linux/compat/include/net/genetlink.h b/datapath/linux/compat/include/net/genetlink.h
> index c8ee81a..4b42cf7 100644
> --- a/datapath/linux/compat/include/net/genetlink.h
> +++ b/datapath/linux/compat/include/net/genetlink.h
[...]
> +#ifdef HAVE_GENL_NOTIFY_TAKES_NET
> +#define genl_notify rpl_genl_notify
> +void rpl_genl_notify(struct genl_family *family, struct sk_buff *skb,
> +                    struct genl_info *info , u32 group, gfp_t flags);
>  #endif

The conditions where this is declared don't seem to match those in the
.c file. Here it is if HAVE_GENL_NOTIFY_TAKES_NET but in the .c file
there is a code path where !HAVE_GENL_NOTIFY_TAKES_NET (and passes in
the family despite !HAVE_GENL_NOTIFY_TAKES_FAMILY.



More information about the dev mailing list