bpf, samples: fix build warning in cookie_uid_helper_example
authorDaniel Borkmann <daniel@iogearbox.net>
Mon, 1 May 2017 22:47:09 +0000 (00:47 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 2 May 2017 13:29:35 +0000 (09:29 -0400)
Fix the following warnings triggered by 51570a5ab2b7 ("A Sample of
using socket cookie and uid for traffic monitoring"):

  In file included from /home/foo/net-next/samples/bpf/cookie_uid_helper_example.c:54:0:
  /home/foo/net-next/samples/bpf/cookie_uid_helper_example.c: In function 'prog_load':
  /home/foo/net-next/samples/bpf/cookie_uid_helper_example.c:119:27: warning: overflow in implicit constant conversion [-Woverflow]
     -32 + offsetof(struct stats, uid)),
                           ^
  /home/foo/net-next/samples/bpf/libbpf.h:135:12: note: in definition of macro 'BPF_STX_MEM'
   .off   = OFF,     \
            ^
  /home/foo/net-next/samples/bpf/cookie_uid_helper_example.c:121:27: warning: overflow in implicit constant conversion [-Woverflow]
     -32 + offsetof(struct stats, packets), 1),
                           ^
  /home/foo/net-next/samples/bpf/libbpf.h:155:12: note: in definition of macro 'BPF_ST_MEM'
   .off   = OFF,     \
            ^
  /home/foo/net-next/samples/bpf/cookie_uid_helper_example.c:129:27: warning: overflow in implicit constant conversion [-Woverflow]
     -32 + offsetof(struct stats, bytes)),
                           ^
  /home/foo/net-next/samples/bpf/libbpf.h:135:12: note: in definition of macro 'BPF_STX_MEM'
   .off   = OFF,     \
            ^
  HOSTLD  /home/foo/net-next/samples/bpf/per_socket_stats_example

Fixes: 51570a5ab2b7 ("A Sample of using socket cookie and uid for traffic monitoring")
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
samples/bpf/cookie_uid_helper_example.c

index 9ce55840d61d222ec2c9881be9a108c7b630dba0..b08ab4e889293c30f64b717065e6860603063f7c 100644 (file)
@@ -116,9 +116,9 @@ static void prog_load(void)
                 * is set by directly place a IMM value 1 into the stack.
                 */
                BPF_STX_MEM(BPF_DW, BPF_REG_10, BPF_REG_0,
-                               -32 + offsetof(struct stats, uid)),
+                           -32 + (__s16)offsetof(struct stats, uid)),
                BPF_ST_MEM(BPF_DW, BPF_REG_10,
-                               -32 + offsetof(struct stats, packets), 1),
+                          -32 + (__s16)offsetof(struct stats, packets), 1),
                /*
                 * __sk_buff is a special struct used for eBPF program to
                 * directly access some sk_buff field.
@@ -126,7 +126,7 @@ static void prog_load(void)
                BPF_LDX_MEM(BPF_W, BPF_REG_1, BPF_REG_6,
                                offsetof(struct __sk_buff, len)),
                BPF_STX_MEM(BPF_DW, BPF_REG_10, BPF_REG_1,
-                               -32 + offsetof(struct stats, bytes)),
+                           -32 + (__s16)offsetof(struct stats, bytes)),
                /*
                 * add new map entry using BPF_FUNC_map_update_elem, it takes
                 * 4 parameters (R1: map_fd, R2: &socket_cookie, R3: &stats,