bpf: use Linux' define of BPF_MAXINSNS
authorDaniel Borkmann <dborkman@redhat.com>
Sat, 15 Jun 2013 18:57:47 +0000 (15 20:57 +0200)
committerDaniel Borkmann <dborkman@redhat.com>
Sat, 15 Jun 2013 18:57:47 +0000 (15 20:57 +0200)
Do not necessarily define our own, only in case the Linux one is
not available.

Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
bpf_insns.h
bpf_parser.y

index 193f0b7..47db2e3 100644 (file)
@@ -1,6 +1,10 @@
 #ifndef BPF_INSNS_H
 #define BPF_INSNS_H
 
+#ifndef BPF_MAXINSNS
+# define BPF_MAXINSNS  4096
+#endif
+
 #define BPF_CLASS(code) ((code) & 0x07)
 #define        BPF_LD          0x00
 #define        BPF_LDX         0x01
index 19268ae..a101057 100644 (file)
@@ -17,6 +17,7 @@
 #include <stdint.h>
 #include <errno.h>
 #include <libgen.h>
+#include <linux/filter.h>
 
 #include "bpf.h"
 #include "str.h"
 #include "built_in.h"
 #include "die.h"
 
-#define MAX_INSTRUCTIONS       4096
-
 int compile_filter(char *file, int verbose, int bypass, int format,
                   bool invoke_cpp);
 
 static int curr_instr = 0;
 
-static struct sock_filter out[MAX_INSTRUCTIONS];
-
-static char *labels[MAX_INSTRUCTIONS];
+static struct sock_filter out[BPF_MAXINSNS];
 
-static char *labels_jt[MAX_INSTRUCTIONS];
-static char *labels_jf[MAX_INSTRUCTIONS];
-static char *labels_k[MAX_INSTRUCTIONS];
+static char *labels[BPF_MAXINSNS];
+static char *labels_jt[BPF_MAXINSNS];
+static char *labels_jf[BPF_MAXINSNS];
+static char *labels_k[BPF_MAXINSNS];
 
 #define YYERROR_VERBOSE                0
 #define YYDEBUG                        0
@@ -54,7 +52,7 @@ extern char *yytext;
 
 static inline void check_max_instr(void)
 {
-       if (curr_instr >= MAX_INSTRUCTIONS)
+       if (curr_instr >= BPF_MAXINSNS)
                panic("Exceeded maximal number of instructions!\n");
 }