Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp3579278pxf; Mon, 22 Mar 2021 09:39:18 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwk6p/J74QmL2RZHMDoaXGvDjBrbWFQ+BR0YQaQPtZ87CXf85juIctHdocx8YFRkynh46Ts X-Received: by 2002:a17:906:81d5:: with SMTP id e21mr711500ejx.102.1616431158127; Mon, 22 Mar 2021 09:39:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1616431158; cv=none; d=google.com; s=arc-20160816; b=TvrLOZFqqQ2A4QqeBbt8UGcjEd2rRhv3oh8wMyoYhleMDgYOLli2Mb0bhrtOT5Ey+I DftZfq6ja1bjktm6CJGQdgeag47TRbXFyJbLylK3OoVBbWUV3hXwUAqGvSQ9xde2V28U d8uMA+RI3ZH3ixM7ShCh+3XPTcxJmhSpuSXWQsnNtJ1jVM05gAET/JV5zGUCSEMPmvA2 fMDvEM5e8G3O7QKefXc3cJ+tjdjSxXRV2xkKMeOmg0yX89+e/e7ZdVW9cpU0UAxZrOYP eWvIoMAnBWSjk+Yo0TLUea3iUqok2cNi2uxCDIraLHs6QDKalaqyuz6ril6TsNisM6yF EKcg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:date:cc:to:subject:from:references:in-reply-to :message-id; bh=fOsh7wV/+FBmA+KP54J54yfzRVHE2X6PRzwQUAhYCEA=; b=ue1R7jjgVYXDjW1q5pAqYb2xdp/Rtq5qiZkmzgcDrtNVvBqHeGcOFqq29m7m/cQIah 6PuER6xk3sr4C8MoE+beyJkhmHqib47MunkOSg81FpcpFbXZ1fbzlMoxfqJt++XKkZCb sAuVTN+mHRQMwcKF2g6NYWJl9U23zm3s+frV8PkGCCXMbhGnxl4C2+paQUnS35VEjxFE aUnBosW05hgV6f00tKqXqR4vBo1PesJEPGuvV7nlmWdj0URDDXo5yCUDe+E2tsNhsp32 LIFa1anzLc6q4l9pAu2q8X7NnPmKXPZHZJmUIxodc483i1pTycx1JjxuGvXPpWVyll9V qQ0w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id l24si12051205eds.501.2021.03.22.09.38.55; Mon, 22 Mar 2021 09:39:18 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231976AbhCVQiI (ORCPT + 99 others); Mon, 22 Mar 2021 12:38:08 -0400 Received: from pegase1.c-s.fr ([93.17.236.30]:54162 "EHLO pegase1.c-s.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231224AbhCVQht (ORCPT ); Mon, 22 Mar 2021 12:37:49 -0400 Received: from localhost (mailhub1-int [192.168.12.234]) by localhost (Postfix) with ESMTP id 4F40Xk3KZLz9txkP; Mon, 22 Mar 2021 17:37:42 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at c-s.fr Received: from pegase1.c-s.fr ([192.168.12.234]) by localhost (pegase1.c-s.fr [192.168.12.234]) (amavisd-new, port 10024) with ESMTP id kXWr-QFZSY8s; Mon, 22 Mar 2021 17:37:42 +0100 (CET) Received: from messagerie.si.c-s.fr (messagerie.si.c-s.fr [192.168.25.192]) by pegase1.c-s.fr (Postfix) with ESMTP id 4F40Xk2Rr1z9txkL; Mon, 22 Mar 2021 17:37:42 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by messagerie.si.c-s.fr (Postfix) with ESMTP id EAE848B79C; Mon, 22 Mar 2021 17:37:47 +0100 (CET) X-Virus-Scanned: amavisd-new at c-s.fr Received: from messagerie.si.c-s.fr ([127.0.0.1]) by localhost (messagerie.si.c-s.fr [127.0.0.1]) (amavisd-new, port 10023) with ESMTP id mTjpfe10-yXY; Mon, 22 Mar 2021 17:37:47 +0100 (CET) Received: from po16121vm.idsi0.si.c-s.fr (unknown [192.168.4.90]) by messagerie.si.c-s.fr (Postfix) with ESMTP id 9F33C8B7A4; Mon, 22 Mar 2021 17:37:47 +0100 (CET) Received: by po16121vm.idsi0.si.c-s.fr (Postfix, from userid 0) id 83678675FC; Mon, 22 Mar 2021 16:37:47 +0000 (UTC) Message-Id: <0cd2506f598e7095ea43e62dca1f472de5474a0d.1616430991.git.christophe.leroy@csgroup.eu> In-Reply-To: References: From: Christophe Leroy Subject: [PATCH v2 2/8] powerpc/bpf: Change register numbering for bpf_set/is_seen_register() To: Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , ast@kernel.org, daniel@iogearbox.net, andrii@kernel.org, kafai@fb.com, songliubraving@fb.com, yhs@fb.com, john.fastabend@gmail.com, kpsingh@chromium.org, naveen.n.rao@linux.ibm.com, sandipan@linux.ibm.com Cc: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, netdev@vger.kernel.org, bpf@vger.kernel.org Date: Mon, 22 Mar 2021 16:37:47 +0000 (UTC) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Instead of using BPF register number as input in functions bpf_set_seen_register() and bpf_is_seen_register(), use CPU register number directly. Signed-off-by: Christophe Leroy --- arch/powerpc/net/bpf_jit_comp64.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/arch/powerpc/net/bpf_jit_comp64.c b/arch/powerpc/net/bpf_jit_comp64.c index aaf1a887f653..51b3f440288c 100644 --- a/arch/powerpc/net/bpf_jit_comp64.c +++ b/arch/powerpc/net/bpf_jit_comp64.c @@ -31,12 +31,12 @@ static inline void bpf_flush_icache(void *start, void *end) static inline bool bpf_is_seen_register(struct codegen_context *ctx, int i) { - return (ctx->seen & (1 << (31 - b2p[i]))); + return ctx->seen & (1 << (31 - i)); } static inline void bpf_set_seen_register(struct codegen_context *ctx, int i) { - ctx->seen |= (1 << (31 - b2p[i])); + ctx->seen |= 1 << (31 - i); } static inline bool bpf_has_stack_frame(struct codegen_context *ctx) @@ -47,7 +47,7 @@ static inline bool bpf_has_stack_frame(struct codegen_context *ctx) * - the bpf program uses its stack area * The latter condition is deduced from the usage of BPF_REG_FP */ - return ctx->seen & SEEN_FUNC || bpf_is_seen_register(ctx, BPF_REG_FP); + return ctx->seen & SEEN_FUNC || bpf_is_seen_register(ctx, b2p[BPF_REG_FP]); } /* @@ -124,11 +124,11 @@ static void bpf_jit_build_prologue(u32 *image, struct codegen_context *ctx) * in the protected zone below the previous stack frame */ for (i = BPF_REG_6; i <= BPF_REG_10; i++) - if (bpf_is_seen_register(ctx, i)) + if (bpf_is_seen_register(ctx, b2p[i])) PPC_BPF_STL(b2p[i], 1, bpf_jit_stack_offsetof(ctx, b2p[i])); /* Setup frame pointer to point to the bpf stack area */ - if (bpf_is_seen_register(ctx, BPF_REG_FP)) + if (bpf_is_seen_register(ctx, b2p[BPF_REG_FP])) EMIT(PPC_RAW_ADDI(b2p[BPF_REG_FP], 1, STACK_FRAME_MIN_SIZE + ctx->stack_size)); } @@ -139,7 +139,7 @@ static void bpf_jit_emit_common_epilogue(u32 *image, struct codegen_context *ctx /* Restore NVRs */ for (i = BPF_REG_6; i <= BPF_REG_10; i++) - if (bpf_is_seen_register(ctx, i)) + if (bpf_is_seen_register(ctx, b2p[i])) PPC_BPF_LL(b2p[i], 1, bpf_jit_stack_offsetof(ctx, b2p[i])); /* Tear down our stack frame */ @@ -330,9 +330,9 @@ static int bpf_jit_build_body(struct bpf_prog *fp, u32 *image, * any issues. */ if (dst_reg >= BPF_PPC_NVR_MIN && dst_reg < 32) - bpf_set_seen_register(ctx, insn[i].dst_reg); + bpf_set_seen_register(ctx, dst_reg); if (src_reg >= BPF_PPC_NVR_MIN && src_reg < 32) - bpf_set_seen_register(ctx, insn[i].src_reg); + bpf_set_seen_register(ctx, src_reg); switch (code) { /* -- 2.25.0