This patch fixes the following sparse warnings:
net/ipv4/ip_tunnel.c:245:53: warning: restricted __be16 degrades to integer
net/ipv4/ip_vti.c:321:19: warning: incorrect type in assignment (different base types)
net/ipv4/ip_vti.c:321:19: expected restricted __be16 [addressable] [assigned] [usertype] i_flags
net/ipv4/ip_vti.c:321:19: got int
net/ipv4/ip_vti.c:447:24: warning: incorrect type in assignment (different base types)
net/ipv4/ip_vti.c:447:24: expected restricted __be16 [usertype] i_flags
net/ipv4/ip_vti.c:447:24: got int
Since VTI_ISVTI is always used with ip_tunnel_parm->i_flags (which is __be16),
we can __force cast VTI_ISVTI to __be16 in header file.
Signed-off-by: Dmitry Popov <[email protected]>
---
include/uapi/linux/if_tunnel.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/uapi/linux/if_tunnel.h b/include/uapi/linux/if_tunnel.h
index aee73d0..3bce9e9 100644
--- a/include/uapi/linux/if_tunnel.h
+++ b/include/uapi/linux/if_tunnel.h
@@ -100,7 +100,7 @@ enum {
#define IFLA_GRE_MAX (__IFLA_GRE_MAX - 1)
/* VTI-mode i_flags */
-#define VTI_ISVTI 0x0001
+#define VTI_ISVTI ((__force __be16)0x0001)
enum {
IFLA_VTI_UNSPEC,
On Wed, 11 Jun 2014 15:09:14 +0400
Dmitry Popov <[email protected]> wrote:
>
> Since VTI_ISVTI is always used with ip_tunnel_parm->i_flags (which is __be16),
> we can __force cast VTI_ISVTI to __be16 in header file.
>
If this patch is okay I will submit it to iproute2 too. if_tunnel.h has to be
synced.
On Wed, 11 Jun 2014 16:02:15 +0400
Dmitry Popov <[email protected]> wrote:
> On Wed, 11 Jun 2014 15:09:14 +0400
> Dmitry Popov <[email protected]> wrote:
>
> >
> > Since VTI_ISVTI is always used with ip_tunnel_parm->i_flags (which is __be16),
> > we can __force cast VTI_ISVTI to __be16 in header file.
> >
>
> If this patch is okay I will submit it to iproute2 too. if_tunnel.h has to be
> synced.
don't bother with iproute2 patch. I periodically resync sanitized headers from
kernel to iproute2.
From: Dmitry Popov <[email protected]>
Date: Wed, 11 Jun 2014 15:09:14 +0400
> This patch fixes the following sparse warnings:
>
> net/ipv4/ip_tunnel.c:245:53: warning: restricted __be16 degrades to integer
> net/ipv4/ip_vti.c:321:19: warning: incorrect type in assignment (different base types)
> net/ipv4/ip_vti.c:321:19: expected restricted __be16 [addressable] [assigned] [usertype] i_flags
> net/ipv4/ip_vti.c:321:19: got int
> net/ipv4/ip_vti.c:447:24: warning: incorrect type in assignment (different base types)
> net/ipv4/ip_vti.c:447:24: expected restricted __be16 [usertype] i_flags
> net/ipv4/ip_vti.c:447:24: got int
>
> Since VTI_ISVTI is always used with ip_tunnel_parm->i_flags (which is __be16),
> we can __force cast VTI_ISVTI to __be16 in header file.
>
> Signed-off-by: Dmitry Popov <[email protected]>
Applied.