From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.0 required=3.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1EAA2C282C4 for ; Mon, 4 Feb 2019 16:16:07 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id DE3A620815 for ; Mon, 4 Feb 2019 16:16:06 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=netronome-com.20150623.gappssmtp.com header.i=@netronome-com.20150623.gappssmtp.com header.b="LGCxv5MW" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731770AbfBDQQG (ORCPT ); Mon, 4 Feb 2019 11:16:06 -0500 Received: from mail-wr1-f65.google.com ([209.85.221.65]:37728 "EHLO mail-wr1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731714AbfBDQQC (ORCPT ); Mon, 4 Feb 2019 11:16:02 -0500 Received: by mail-wr1-f65.google.com with SMTP id s12so453788wrt.4 for ; Mon, 04 Feb 2019 08:16:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netronome-com.20150623.gappssmtp.com; s=20150623; h=references:user-agent:from:to:cc:subject:in-reply-to:date :message-id:mime-version; bh=J84jagiOmUB51ZCoHkynf1j4W8nI6x6ki9GPO9CBI2c=; b=LGCxv5MWRUekjPhYOWGp6pbuiqIdIDHKB+weGQuCW+k8/uapXQ2qlmsBhtBnNFBbXl JLuJ2Np4tWN055ODK6e7fR+5Oe0IA/y1yVFOBiXwhAb4YzVL5zpt7Qms0biyxjU6qjSE HUVbCfrKhj+7OVzVbbWfvC2h2dunscUGY3Ju9B/afFkGmODWJN4+xZYQCc6iWRt/xSM5 Qrw9L4tQz8cmINhOCRnN47ko91t1evx70Q4QFZNZIePSR/V8gyreLkd1DwE0cMLjuOy0 kbRXNdB8pg6YBjoIKYHKoog3731zNgAdNPTptbbCmp+zo6hqzx7MrJUwOVKXkqm2063o eVMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:references:user-agent:from:to:cc:subject :in-reply-to:date:message-id:mime-version; bh=J84jagiOmUB51ZCoHkynf1j4W8nI6x6ki9GPO9CBI2c=; b=bHv648E/I4p4OMFTgx2/FrfIWZnnoOuWKyri5bqI+6Z4IOXdB/XJbflB4MlfZlvrA+ EQSVceqXbPVTyBLN5wNhtDFMV7NLZXAv+1rVjky8SsO679oevXX/KKCnE3kUMDphZ/m4 ty4x4I14LfhkjBVW/uPhp6qNP4uT369RJ53xzgBdBqKy0CwPryqfxeALa0cSdHPAlWr5 0G87w03gWogRJ9iDltl2kmpfEa321b4ZP/6LPgVLCWtxJUNcdvKutPql5o4AHpV2dP3J 1R6wNt7ZhoQFjTf7yIo8QKLG7IOh2NPGjOVFYBYlte+kPzWKJ4Nn923Gvnvd7N31AW+P gcSw== X-Gm-Message-State: AHQUAubXp6/tK8ao8Cs09SfZHhlytrWiZBWl0WWO0GjHzYMEqr9wGg1j 56Nl5nnazRcLKfgJaFEh87lCi+nRsag= X-Google-Smtp-Source: AHgI3IZe+Ts0pIK6f++fWEYaDQy24vGGQyHd2SZMed6CUrbK31Lc6+IXkZZXkigy7LYt5IKDvj5Vtw== X-Received: by 2002:a5d:4c8a:: with SMTP id z10mr96579wrs.75.1549296959983; Mon, 04 Feb 2019 08:15:59 -0800 (PST) Received: from cb-macbook.local ([217.38.71.146]) by smtp.gmail.com with ESMTPSA id e27sm22094632wra.67.2019.02.04.08.15.58 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 04 Feb 2019 08:15:58 -0800 (PST) References: <20190204154455.88687-1-heiko.carstens@de.ibm.com> User-agent: mu4e 1.0; emacs 26.1 From: Jiong Wang To: Heiko Carstens Cc: Alexei Starovoitov , Martin Schwidefsky , Jiong Wang , linux-s390@vger.kernel.org, netdev@vger.kernel.org Subject: Re: [PATCH] s390: bpf: fix JMP32 code-gen In-reply-to: <20190204154455.88687-1-heiko.carstens@de.ibm.com> Date: Mon, 04 Feb 2019 16:15:57 +0000 Message-ID: MIME-Version: 1.0 Content-Type: text/plain Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Heiko Carstens writes: > Commit 626a5f66da0d19 ("s390: bpf: implement jitting of JMP32") added > JMP32 code-gen support for s390. However it triggers the warning below > due to some unusual gotos in the original s390 bpf jit code. > > Add a couple of additional "is_jmp32" initializations to fix this. > Also fix the wrong opcode for the "llilf" instruction that was > introduced with the same commit. > > arch/s390/net/bpf_jit_comp.c: In function 'bpf_jit_insn': > arch/s390/net/bpf_jit_comp.c:248:55: warning: 'is_jmp32' may be used uninitialized in this function [-Wmaybe-uninitialized] > _EMIT6(op1 | reg(b1, b2) << 16 | (rel & 0xffff), op2 | mask); \ > ^ > arch/s390/net/bpf_jit_comp.c:1211:8: note: 'is_jmp32' was declared here > bool is_jmp32 = BPF_CLASS(insn->code) == BPF_JMP32; > > Fixes: 626a5f66da0d19 ("s390: bpf: implement jitting of JMP32") > Cc: Jiong Wang > Cc: Martin Schwidefsky > Signed-off-by: Heiko Carstens Thanks for fixing this. Acked-by: Jiong Wang Regards, Jiong > --- > arch/s390/net/bpf_jit_comp.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/arch/s390/net/bpf_jit_comp.c b/arch/s390/net/bpf_jit_comp.c > index ce9defdff62a..51dd0267d014 100644 > --- a/arch/s390/net/bpf_jit_comp.c > +++ b/arch/s390/net/bpf_jit_comp.c > @@ -1154,7 +1154,7 @@ static noinline int bpf_jit_insn(struct bpf_jit *jit, struct bpf_prog *fp, int i > mask = 0x7000; /* jnz */ > if (BPF_CLASS(insn->code) == BPF_JMP32) { > /* llilf %w1,imm (load zero extend imm) */ > - EMIT6_IMM(0xc0010000, REG_W1, imm); > + EMIT6_IMM(0xc00f0000, REG_W1, imm); > /* nr %w1,%dst */ > EMIT2(0x1400, REG_W1, dst_reg); > } else { > @@ -1216,6 +1216,7 @@ static noinline int bpf_jit_insn(struct bpf_jit *jit, struct bpf_prog *fp, int i > REG_W1, dst_reg, src_reg); > goto branch_oc; > branch_ks: > + is_jmp32 = BPF_CLASS(insn->code) == BPF_JMP32; > /* lgfi %w1,imm (load sign extend imm) */ > EMIT6_IMM(0xc0010000, REG_W1, imm); > /* crj or cgrj %dst,%w1,mask,off */ > @@ -1223,6 +1224,7 @@ static noinline int bpf_jit_insn(struct bpf_jit *jit, struct bpf_prog *fp, int i > dst_reg, REG_W1, i, off, mask); > break; > branch_ku: > + is_jmp32 = BPF_CLASS(insn->code) == BPF_JMP32; > /* lgfi %w1,imm (load sign extend imm) */ > EMIT6_IMM(0xc0010000, REG_W1, imm); > /* clrj or clgrj %dst,%w1,mask,off */ > @@ -1230,11 +1232,13 @@ static noinline int bpf_jit_insn(struct bpf_jit *jit, struct bpf_prog *fp, int i > dst_reg, REG_W1, i, off, mask); > break; > branch_xs: > + is_jmp32 = BPF_CLASS(insn->code) == BPF_JMP32; > /* crj or cgrj %dst,%src,mask,off */ > EMIT6_PCREL(0xec000000, (is_jmp32 ? 0x0076 : 0x0064), > dst_reg, src_reg, i, off, mask); > break; > branch_xu: > + is_jmp32 = BPF_CLASS(insn->code) == BPF_JMP32; > /* clrj or clgrj %dst,%src,mask,off */ > EMIT6_PCREL(0xec000000, (is_jmp32 ? 0x0077 : 0x0065), > dst_reg, src_reg, i, off, mask);