From patchwork Wed Jun 25 17:34:57 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Denis Kirjanov X-Patchwork-Id: 364101 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [103.22.144.68]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id D65DB1400B9 for ; Thu, 26 Jun 2014 04:01:32 +1000 (EST) Received: from ozlabs.org (ozlabs.org [103.22.144.67]) by lists.ozlabs.org (Postfix) with ESMTP id 9F9811A0AB3 for ; Thu, 26 Jun 2014 04:01:32 +1000 (EST) X-Original-To: linuxppc-dev@lists.ozlabs.org Delivered-To: linuxppc-dev@lists.ozlabs.org Received: from mail-la0-f44.google.com (mail-la0-f44.google.com [209.85.215.44]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 1C2011A0017 for ; Thu, 26 Jun 2014 03:59:53 +1000 (EST) Received: by mail-la0-f44.google.com with SMTP id ty20so1028507lab.17 for ; Wed, 25 Jun 2014 10:59:49 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=dBOtQ7iVQWvoEOOMNCJXFpFzuUKhIvkYLdVRpHqFnAs=; b=cLxF2pZKHKNTMQpIHe7ZLFS88gF1deoC6djUkr+XlErX30FREogZcH24uTucM9kLJ5 QvXhC5eGdsoK9YOfRMgz3isJPUszKYOKFd2hNNxeJK6jUPZ14w5qA6YBn/NOePbF+Fjc XxCdo5oI6Wg1e0CiE5O5GbJn+39pCT6tMClodug0foOJ8bisu8tXN3S5S1h0Fk3WYrL8 NhPfIqdGhrCBMChPPPDzQL1f1NMn9tpKjkgaB1aGh+QO/qj2UsSxUsJWPhewGfNJmHhT oku+ZQ0qn/0/64z4OTvMuygHyNBp9kSY4co3ekiUJK2A4gCson7JTXdizu0/QZgUzow5 /+tw== X-Gm-Message-State: ALoCoQkKSGMk3nd7lk15pmHGV0UCSJG6g1DjKYgEXkndX36c/2c/KfDByRwrPyVOcDLCK4hC5T4k X-Received: by 10.112.12.103 with SMTP id x7mr6494659lbb.36.1403719189676; Wed, 25 Jun 2014 10:59:49 -0700 (PDT) Received: from localhost.localdomain ([5.35.52.78]) by mx.google.com with ESMTPSA id r4sm4329264lbd.44.2014.06.25.10.59.48 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 25 Jun 2014 10:59:48 -0700 (PDT) From: Denis Kirjanov To: netdev@vger.kernel.org Subject: [PATCH v2 2/2] powerpc: bpf: Fix the broken LD_VLAN_TAG_PRESENT test Date: Wed, 25 Jun 2014 21:34:57 +0400 Message-Id: <1403717697-3911-2-git-send-email-kda@linux-powerpc.org> X-Mailer: git-send-email 2.0.0 In-Reply-To: <1403717697-3911-1-git-send-email-kda@linux-powerpc.org> References: <1403717697-3911-1-git-send-email-kda@linux-powerpc.org> Cc: Denis Kirjanov , linuxppc-dev@lists.ozlabs.org X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.16 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org Sender: "Linuxppc-dev" We have to return the boolean here if the tag presents or not, not just ANDing 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) Signed-off-by: Denis Kirjanov --- arch/powerpc/net/bpf_jit_comp.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/arch/powerpc/net/bpf_jit_comp.c b/arch/powerpc/net/bpf_jit_comp.c index 892167b..82e82ca 100644 --- a/arch/powerpc/net/bpf_jit_comp.c +++ b/arch/powerpc/net/bpf_jit_comp.c @@ -394,10 +394,12 @@ 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)) + 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,