All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] powerpc: bpf: Use correct mask while accessing the VLAN tag
@ 2014-06-24  9:59 ` Denis Kirjanov
  0 siblings, 0 replies; 7+ messages in thread
From: Denis Kirjanov @ 2014-06-24  9:59 UTC (permalink / raw)
  To: netdev; +Cc: Denis Kirjanov, linuxppc-dev

Use the proper mask which is 0xefff
---
 arch/powerpc/net/bpf_jit_comp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/powerpc/net/bpf_jit_comp.c b/arch/powerpc/net/bpf_jit_comp.c
index 6dcdade..af0ed4d 100644
--- a/arch/powerpc/net/bpf_jit_comp.c
+++ b/arch/powerpc/net/bpf_jit_comp.c
@@ -393,7 +393,7 @@ static int bpf_jit_build_body(struct sk_filter *fp, u32 *image,
 			PPC_LHZ_OFFS(r_A, r_skb, offsetof(struct sk_buff,
 							  vlan_tci));
 			if (code == (BPF_ANC | SKF_AD_VLAN_TAG))
-				PPC_ANDI(r_A, r_A, VLAN_VID_MASK);
+				PPC_ANDI(r_A, r_A, ~VLAN_TAG_PRESENT);
 			else
 				PPC_ANDI(r_A, r_A, VLAN_TAG_PRESENT);
 			break;
-- 
2.0.0

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 1/2] powerpc: bpf: Use correct mask while accessing the VLAN tag
@ 2014-06-24  9:59 ` Denis Kirjanov
  0 siblings, 0 replies; 7+ messages in thread
From: Denis Kirjanov @ 2014-06-24  9:59 UTC (permalink / raw)
  To: netdev; +Cc: linuxppc-dev, Denis Kirjanov

Use the proper mask which is 0xefff
---
 arch/powerpc/net/bpf_jit_comp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/powerpc/net/bpf_jit_comp.c b/arch/powerpc/net/bpf_jit_comp.c
index 6dcdade..af0ed4d 100644
--- a/arch/powerpc/net/bpf_jit_comp.c
+++ b/arch/powerpc/net/bpf_jit_comp.c
@@ -393,7 +393,7 @@ static int bpf_jit_build_body(struct sk_filter *fp, u32 *image,
 			PPC_LHZ_OFFS(r_A, r_skb, offsetof(struct sk_buff,
 							  vlan_tci));
 			if (code == (BPF_ANC | SKF_AD_VLAN_TAG))
-				PPC_ANDI(r_A, r_A, VLAN_VID_MASK);
+				PPC_ANDI(r_A, r_A, ~VLAN_TAG_PRESENT);
 			else
 				PPC_ANDI(r_A, r_A, VLAN_TAG_PRESENT);
 			break;
-- 
2.0.0

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/2] powerpc: bpf: Fix the broken LD_VLAN_TAG_PRESENT test
  2014-06-24  9:59 ` Denis Kirjanov
@ 2014-06-24  9:59   ` Denis Kirjanov
  -1 siblings, 0 replies; 7+ messages in thread
From: Denis Kirjanov @ 2014-06-24  9:59 UTC (permalink / raw)
  To: netdev; +Cc: Denis Kirjanov, linuxppc-dev

We have to return the boolean here if the tag presents
or not, not jusr ORing the TCI with the mask which results to:

[  709.412097] test_bpf: #18 LD_VLAN_TAG_PRESENT
[  709.412245] ret 4096 != 1
[  709.412332] ret 4096 != 1
[  709.412333] FAIL (2 times)
---
 arch/powerpc/net/bpf_jit_comp.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/arch/powerpc/net/bpf_jit_comp.c b/arch/powerpc/net/bpf_jit_comp.c
index af0ed4d..a3d8f58 100644
--- a/arch/powerpc/net/bpf_jit_comp.c
+++ b/arch/powerpc/net/bpf_jit_comp.c
@@ -394,8 +394,10 @@ static int bpf_jit_build_body(struct sk_filter *fp, u32 *image,
 							  vlan_tci));
 			if (code == (BPF_ANC | SKF_AD_VLAN_TAG))
 				PPC_ANDI(r_A, r_A, ~VLAN_TAG_PRESENT);
-			else
+			else {
 				PPC_ANDI(r_A, r_A, VLAN_TAG_PRESENT);
+				PPC_SRWI(r_A, r_A, 12);
+			}
 			break;
 		case BPF_ANC | SKF_AD_QUEUE:
 			BUILD_BUG_ON(FIELD_SIZEOF(struct sk_buff,
-- 
2.0.0

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/2] powerpc: bpf: Fix the broken LD_VLAN_TAG_PRESENT test
@ 2014-06-24  9:59   ` Denis Kirjanov
  0 siblings, 0 replies; 7+ messages in thread
From: Denis Kirjanov @ 2014-06-24  9:59 UTC (permalink / raw)
  To: netdev; +Cc: linuxppc-dev, Denis Kirjanov

We have to return the boolean here if the tag presents
or not, not jusr ORing the TCI with the mask which results to:

[  709.412097] test_bpf: #18 LD_VLAN_TAG_PRESENT
[  709.412245] ret 4096 != 1
[  709.412332] ret 4096 != 1
[  709.412333] FAIL (2 times)
---
 arch/powerpc/net/bpf_jit_comp.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/arch/powerpc/net/bpf_jit_comp.c b/arch/powerpc/net/bpf_jit_comp.c
index af0ed4d..a3d8f58 100644
--- a/arch/powerpc/net/bpf_jit_comp.c
+++ b/arch/powerpc/net/bpf_jit_comp.c
@@ -394,8 +394,10 @@ static int bpf_jit_build_body(struct sk_filter *fp, u32 *image,
 							  vlan_tci));
 			if (code == (BPF_ANC | SKF_AD_VLAN_TAG))
 				PPC_ANDI(r_A, r_A, ~VLAN_TAG_PRESENT);
-			else
+			else {
 				PPC_ANDI(r_A, r_A, VLAN_TAG_PRESENT);
+				PPC_SRWI(r_A, r_A, 12);
+			}
 			break;
 		case BPF_ANC | SKF_AD_QUEUE:
 			BUILD_BUG_ON(FIELD_SIZEOF(struct sk_buff,
-- 
2.0.0

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/2] powerpc: bpf: Fix the broken LD_VLAN_TAG_PRESENT test
  2014-06-24  9:59   ` Denis Kirjanov
  (?)
@ 2014-06-24 14:23   ` Sergei Shtylyov
  2014-06-24 14:52     ` Denis Kirjanov
  -1 siblings, 1 reply; 7+ messages in thread
From: Sergei Shtylyov @ 2014-06-24 14:23 UTC (permalink / raw)
  To: Denis Kirjanov, netdev; +Cc: linuxppc-dev

Hello.

On 06/24/2014 01:59 PM, Denis Kirjanov wrote:

> We have to return the boolean here if the tag presents
> or not, not jusr ORing the TCI with the mask which results to:

> [  709.412097] test_bpf: #18 LD_VLAN_TAG_PRESENT
> [  709.412245] ret 4096 != 1
> [  709.412332] ret 4096 != 1
> [  709.412333] FAIL (2 times)

    You need to sign off on the patch, else it won't be applied.

> ---
>   arch/powerpc/net/bpf_jit_comp.c | 4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)

> diff --git a/arch/powerpc/net/bpf_jit_comp.c b/arch/powerpc/net/bpf_jit_comp.c
> index af0ed4d..a3d8f58 100644
> --- a/arch/powerpc/net/bpf_jit_comp.c
> +++ b/arch/powerpc/net/bpf_jit_comp.c
> @@ -394,8 +394,10 @@ static int bpf_jit_build_body(struct sk_filter *fp, u32 *image,
>   							  vlan_tci));
>   			if (code == (BPF_ANC | SKF_AD_VLAN_TAG))
>   				PPC_ANDI(r_A, r_A, ~VLAN_TAG_PRESENT);
> -			else
> +			else {

    All arms of the *if* statement should have {} if one branch has {}.

>   				PPC_ANDI(r_A, r_A, VLAN_TAG_PRESENT);
> +				PPC_SRWI(r_A, r_A, 12);
> +			}
>   			break;
>   		case BPF_ANC | SKF_AD_QUEUE:
>   			BUILD_BUG_ON(FIELD_SIZEOF(struct sk_buff,

WBR, Sergei

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/2] powerpc: bpf: Fix the broken LD_VLAN_TAG_PRESENT test
  2014-06-24 14:23   ` Sergei Shtylyov
@ 2014-06-24 14:52     ` Denis Kirjanov
  0 siblings, 0 replies; 7+ messages in thread
From: Denis Kirjanov @ 2014-06-24 14:52 UTC (permalink / raw)
  To: Sergei Shtylyov; +Cc: netdev, linuxppc-dev

On 6/24/14, Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> wrote:
> Hello.
>
> On 06/24/2014 01:59 PM, Denis Kirjanov wrote:
>
>> We have to return the boolean here if the tag presents
>> or not, not jusr ORing the TCI with the mask which results to:
>
>> [  709.412097] test_bpf: #18 LD_VLAN_TAG_PRESENT
>> [  709.412245] ret 4096 != 1
>> [  709.412332] ret 4096 != 1
>> [  709.412333] FAIL (2 times)
>
>     You need to sign off on the patch, else it won't be applied.

Oh, right. Moreover I've made a mistake in the description (we're ANDing)

Thanks!

>> ---
>>   arch/powerpc/net/bpf_jit_comp.c | 4 +++-
>>   1 file changed, 3 insertions(+), 1 deletion(-)
>
>> diff --git a/arch/powerpc/net/bpf_jit_comp.c
>> b/arch/powerpc/net/bpf_jit_comp.c
>> index af0ed4d..a3d8f58 100644
>> --- a/arch/powerpc/net/bpf_jit_comp.c
>> +++ b/arch/powerpc/net/bpf_jit_comp.c
>> @@ -394,8 +394,10 @@ static int bpf_jit_build_body(struct sk_filter *fp,
>> u32 *image,
>>   							  vlan_tci));
>>   			if (code == (BPF_ANC | SKF_AD_VLAN_TAG))
>>   				PPC_ANDI(r_A, r_A, ~VLAN_TAG_PRESENT);
>> -			else
>> +			else {
>
>     All arms of the *if* statement should have {} if one branch has {}.
>
>>   				PPC_ANDI(r_A, r_A, VLAN_TAG_PRESENT);
>> +				PPC_SRWI(r_A, r_A, 12);
>> +			}
>>   			break;
>>   		case BPF_ANC | SKF_AD_QUEUE:
>>   			BUILD_BUG_ON(FIELD_SIZEOF(struct sk_buff,
>
> WBR, Sergei
>
>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/2] powerpc: bpf: Use correct mask while accessing the VLAN tag
  2014-06-24  9:59 ` Denis Kirjanov
  (?)
  (?)
@ 2014-06-24 15:29 ` Alexei Starovoitov
  -1 siblings, 0 replies; 7+ messages in thread
From: Alexei Starovoitov @ 2014-06-24 15:29 UTC (permalink / raw)
  To: Denis Kirjanov; +Cc: netdev@vger.kernel.org, linuxppc-dev

On Tue, Jun 24, 2014 at 2:59 AM, Denis Kirjanov <kda@linux-powerpc.org> wrote:
> Use the proper mask which is 0xefff

sob is missing.

also please expand the commit message a bit, otherwise it's too cryptic for
folks who don't know bpf details.

> ---
>  arch/powerpc/net/bpf_jit_comp.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/net/bpf_jit_comp.c b/arch/powerpc/net/bpf_jit_comp.c
> index 6dcdade..af0ed4d 100644
> --- a/arch/powerpc/net/bpf_jit_comp.c
> +++ b/arch/powerpc/net/bpf_jit_comp.c
> @@ -393,7 +393,7 @@ static int bpf_jit_build_body(struct sk_filter *fp, u32 *image,
>                         PPC_LHZ_OFFS(r_A, r_skb, offsetof(struct sk_buff,
>                                                           vlan_tci));
>                         if (code == (BPF_ANC | SKF_AD_VLAN_TAG))
> -                               PPC_ANDI(r_A, r_A, VLAN_VID_MASK);
> +                               PPC_ANDI(r_A, r_A, ~VLAN_TAG_PRESENT);
>                         else
>                                 PPC_ANDI(r_A, r_A, VLAN_TAG_PRESENT);
>                         break;
> --
> 2.0.0
>
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2014-06-24 15:29 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-06-24  9:59 [PATCH 1/2] powerpc: bpf: Use correct mask while accessing the VLAN tag Denis Kirjanov
2014-06-24  9:59 ` Denis Kirjanov
2014-06-24  9:59 ` [PATCH 2/2] powerpc: bpf: Fix the broken LD_VLAN_TAG_PRESENT test Denis Kirjanov
2014-06-24  9:59   ` Denis Kirjanov
2014-06-24 14:23   ` Sergei Shtylyov
2014-06-24 14:52     ` Denis Kirjanov
2014-06-24 15:29 ` [PATCH 1/2] powerpc: bpf: Use correct mask while accessing the VLAN tag Alexei Starovoitov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.