From 3e6552f2ff47d47902cf11d303bc0402fa4b6513 Mon Sep 17 00:00:00 2001 From: Jiri Pirko Date: Sat, 31 Mar 2012 11:01:20 +0000 Subject: [PATCH] --- yaml --- r: 300442 b: refs/heads/master c: ffe06c17afbbbd4d73cdc339419be232847d667a h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/include/linux/filter.h | 4 +++- trunk/net/core/filter.c | 4 ++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index edfd3c47db60..c274e38685de 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 302d663740cfaf2c364df6bb61cd339014ed714c +refs/heads/master: ffe06c17afbbbd4d73cdc339419be232847d667a diff --git a/trunk/include/linux/filter.h b/trunk/include/linux/filter.h index 92dd9933c43d..72090994d789 100644 --- a/trunk/include/linux/filter.h +++ b/trunk/include/linux/filter.h @@ -126,7 +126,8 @@ struct sock_fprog { /* Required for SO_ATTACH_FILTER. */ #define SKF_AD_HATYPE 28 #define SKF_AD_RXHASH 32 #define SKF_AD_CPU 36 -#define SKF_AD_MAX 40 +#define SKF_AD_ALU_XOR_X 40 +#define SKF_AD_MAX 44 #define SKF_NET_OFF (-0x100000) #define SKF_LL_OFF (-0x200000) @@ -231,6 +232,7 @@ enum { BPF_S_ANC_HATYPE, BPF_S_ANC_RXHASH, BPF_S_ANC_CPU, + BPF_S_ANC_ALU_XOR_X, }; #endif /* __KERNEL__ */ diff --git a/trunk/net/core/filter.c b/trunk/net/core/filter.c index cfbea889a0eb..5099c4b4a53f 100644 --- a/trunk/net/core/filter.c +++ b/trunk/net/core/filter.c @@ -315,6 +315,9 @@ unsigned int sk_run_filter(const struct sk_buff *skb, case BPF_S_ANC_CPU: A = raw_smp_processor_id(); continue; + case BPF_S_ANC_ALU_XOR_X: + A ^= X; + continue; case BPF_S_ANC_NLATTR: { struct nlattr *nla; @@ -559,6 +562,7 @@ int sk_chk_filter(struct sock_filter *filter, unsigned int flen) ANCILLARY(HATYPE); ANCILLARY(RXHASH); ANCILLARY(CPU); + ANCILLARY(ALU_XOR_X); } } ftest->code = code;