Re: [PATCH iproute2] tc: fix compilation with old gcc (< 4.6) (bis)

4 messages, 3 authors, 2016-02-03 · open the first message on its own page

Re: [PATCH iproute2] tc: fix compilation with old gcc (< 4.6) (bis)

From: Stephen Hemminger <hidden>
Date: 2016-02-02 04:52:22

On Tue, 19 Jan 2016 11:01:45 +0000
Nicolas Dichtel [off-list ref] wrote:
quoted hunk
diff --git a/tc/tc_bpf.c b/tc/tc_bpf.c
index 42c8841869f5..219ffa582c1a 100644
--- a/tc/tc_bpf.c
+++ b/tc/tc_bpf.c
@@ -49,6 +49,10 @@
 #include "tc_util.h"
 #include "tc_bpf.h"
 
+#ifndef AF_ALG
+#define AF_ALG 38
+#endif
Why is this here? AF_ALG is not used anywhere in this code.

Please remove it and resubmit

Re: [PATCH iproute2] tc: fix compilation with old gcc (< 4.6) (bis)

From: Daniel Borkmann <daniel@iogearbox.net>
Date: 2016-02-02 09:08:41

On 02/02/2016 05:51 AM, Stephen Hemminger wrote:
On Tue, 19 Jan 2016 11:01:45 +0000
Nicolas Dichtel [off-list ref] wrote:
quoted
diff --git a/tc/tc_bpf.c b/tc/tc_bpf.c
index 42c8841869f5..219ffa582c1a 100644
--- a/tc/tc_bpf.c
+++ b/tc/tc_bpf.c
@@ -49,6 +49,10 @@
  #include "tc_util.h"
  #include "tc_bpf.h"

+#ifndef AF_ALG
+#define AF_ALG 38
+#endif
Why is this here? AF_ALG is not used anywhere in this code.
It is used, this patch is fine as-is.

Thanks!
Please remove it and resubmit

Re: [PATCH iproute2] tc: fix compilation with old gcc (< 4.6) (bis)

From: Nicolas Dichtel <hidden>
Date: 2016-02-02 10:39:48

Le 02/02/2016 10:08, Daniel Borkmann a écrit :
On 02/02/2016 05:51 AM, Stephen Hemminger wrote:
quoted
On Tue, 19 Jan 2016 11:01:45 +0000
Nicolas Dichtel [off-list ref] wrote:
quoted
diff --git a/tc/tc_bpf.c b/tc/tc_bpf.c
index 42c8841869f5..219ffa582c1a 100644
--- a/tc/tc_bpf.c
+++ b/tc/tc_bpf.c
@@ -49,6 +49,10 @@
  #include "tc_util.h"
  #include "tc_bpf.h"

+#ifndef AF_ALG
+#define AF_ALG 38
+#endif
Why is this here? AF_ALG is not used anywhere in this code.
It is used, this patch is fine as-is.
Yes, it's used and not defined with old toolchains:
$ git grep AF_ALG
tc/tc_bpf.c:#ifndef AF_ALG
tc/tc_bpf.c:#define AF_ALG 38
tc/tc_bpf.c:            .salg_family    = AF_ALG,
tc/tc_bpf.c:    cfd = socket(AF_ALG, SOCK_SEQPACKET, 0);
tc/tc_bpf.c:            fprintf(stderr, "Cannot get AF_ALG socket: %s\n",

Regards,
Nicolas

[RESEND PATCH iproute2] tc: fix compilation with old gcc (< 4.6) (bis)

From: Nicolas Dichtel <hidden>
Date: 2016-02-03 08:25:25

Commit 8f80d450c3cb ("tc: fix compilation with old gcc (< 4.6)") was reverted
to ease the merge of the net-next branch.

Here is the new version.

Signed-off-by: Nicolas Dichtel <redacted>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
---
 tc/tc_bpf.c | 58 +++++++++++++++++++++++++++++++++-------------------------
 1 file changed, 33 insertions(+), 25 deletions(-)
diff --git a/tc/tc_bpf.c b/tc/tc_bpf.c
index 42c8841869f5..219ffa582c1a 100644
--- a/tc/tc_bpf.c
+++ b/tc/tc_bpf.c
@@ -49,6 +49,10 @@
 #include "tc_util.h"
 #include "tc_bpf.h"
 
+#ifndef AF_ALG
+#define AF_ALG 38
+#endif
+
 #ifdef HAVE_ELF
 static int bpf_obj_open(const char *path, enum bpf_prog_type type,
 			const char *sec, bool verbose);
@@ -81,12 +85,13 @@ static int bpf(int cmd, union bpf_attr *attr, unsigned int size)
 static int bpf_map_update(int fd, const void *key, const void *value,
 			  uint64_t flags)
 {
-	union bpf_attr attr = {
-		.map_fd		= fd,
-		.key		= bpf_ptr_to_u64(key),
-		.value		= bpf_ptr_to_u64(value),
-		.flags		= flags,
-	};
+	union bpf_attr attr;
+
+	memset(&attr, 0, sizeof(attr));
+	attr.map_fd = fd;
+	attr.key = bpf_ptr_to_u64(key);
+	attr.value = bpf_ptr_to_u64(value);
+	attr.flags = flags;
 
 	return bpf(BPF_MAP_UPDATE_ELEM, &attr, sizeof(attr));
 }
@@ -745,12 +750,13 @@ static __check_format_string(1, 2) void bpf_dump_error(const char *format, ...)
 static int bpf_map_create(enum bpf_map_type type, unsigned int size_key,
 			  unsigned int size_value, unsigned int max_elem)
 {
-	union bpf_attr attr = {
-		.map_type	= type,
-		.key_size	= size_key,
-		.value_size	= size_value,
-		.max_entries	= max_elem,
-	};
+	union bpf_attr attr;
+
+	memset(&attr, 0, sizeof(attr));
+	attr.map_type = type;
+	attr.key_size = size_key;
+	attr.value_size = size_value;
+	attr.max_entries = max_elem;
 
 	return bpf(BPF_MAP_CREATE, &attr, sizeof(attr));
 }
@@ -758,15 +764,16 @@ static int bpf_map_create(enum bpf_map_type type, unsigned int size_key,
 static int bpf_prog_load(enum bpf_prog_type type, const struct bpf_insn *insns,
 			 size_t size, const char *license)
 {
-	union bpf_attr attr = {
-		.prog_type	= type,
-		.insns		= bpf_ptr_to_u64(insns),
-		.insn_cnt	= size / sizeof(struct bpf_insn),
-		.license	= bpf_ptr_to_u64(license),
-		.log_buf	= bpf_ptr_to_u64(bpf_log_buf),
-		.log_size	= sizeof(bpf_log_buf),
-		.log_level	= 1,
-	};
+	union bpf_attr attr;
+
+	memset(&attr, 0, sizeof(attr));
+	attr.prog_type = type;
+	attr.insns = bpf_ptr_to_u64(insns);
+	attr.insn_cnt = size / sizeof(struct bpf_insn);
+	attr.license = bpf_ptr_to_u64(license);
+	attr.log_buf = bpf_ptr_to_u64(bpf_log_buf);
+	attr.log_size = sizeof(bpf_log_buf);
+	attr.log_level = 1;
 
 	if (getenv(BPF_ENV_NOLOG)) {
 		attr.log_buf	= 0;
@@ -779,10 +786,11 @@ static int bpf_prog_load(enum bpf_prog_type type, const struct bpf_insn *insns,
 
 static int bpf_obj_pin(int fd, const char *pathname)
 {
-	union bpf_attr attr = {
-		.pathname	= bpf_ptr_to_u64(pathname),
-		.bpf_fd		= fd,
-	};
+	union bpf_attr attr;
+
+	memset(&attr, 0, sizeof(attr));
+	attr.pathname = bpf_ptr_to_u64(pathname);
+	attr.bpf_fd = fd;
 
 	return bpf(BPF_OBJ_PIN, &attr, sizeof(attr));
 }
-- 
2.4.2
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help