Received: by 10.192.165.148 with SMTP id m20csp638440imm; Wed, 9 May 2018 20:28:39 -0700 (PDT) X-Google-Smtp-Source: AB8JxZrGFwfOse32yY62wHhjE25nA7Ru8Uk/gscZItRbjesB7Uvn7aoI77ajCURDHEESeS3+4IE2 X-Received: by 2002:a17:902:bc49:: with SMTP id t9-v6mr23452286plz.109.1525922919338; Wed, 09 May 2018 20:28:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525922919; cv=none; d=google.com; s=arc-20160816; b=Kgm+R8AFo6E9KgVJJy0KlxYaORr96y2sg217OVZ8+hKjBky5uSwrWmgRII0Mg/GS7r IJK2+zotI688HZvmHoZ+wVCBmXRuqoSDzSiNGZu6OveF2M6eoH9a+YG8+8BhLD7TKNEv An8luvbWExsSBCSLjwXJXJWXVdB34qNJW43dIdEKB+gbAKYLnE44AAsZmGWtIbaFa6fB p/lISbkKf2D4hc7+2+a5G0t9SzujUD5USysUlJJ17uWkLEkJnashi+QcR255iiv4+ztj AdG8nXDkQgWEy+nKjPZwNCGKIH4Wg8M+hdQUSdEpwP4nltcHR8+f6+3wr3lw8ek4mxP5 Vr+A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:content-disposition :mime-version:mail-followup-to:message-id:subject:cc:to:from:date :dkim-signature:arc-authentication-results; bh=X6xGCfs4SX8OLl7cF8CTwJ0nx2UYVvAu6anS8mBYRdo=; b=AbFoLNdi6ZycfneDXrhem74wNMLttgb1lM20j3gnuOuGkIctNfYNIctz8rjpN/ClI4 UKnydRto8f+hIoE+J7yLc+5vEb16UYZKzmWRGxKDf99QQLtqJk2OhDZuzNmDZsgJqpPw C1xX8NYz1xbF6DkuXFQmGJQcE/z4CkQMEbup7zpuCIm/GtCxCrCEOPFRMMnybp+MGCvr zM3S+tY61ySoWvoXWkklzrdUAG6ihV2xmDBym14yDoYO4jusRXxWcfEDqOgzidF+Rl0M gw8ogPuCXoCiakdp72HaeVzuroh0nfGJ6VnwcMai/Kq3e0Z2sAJNDgRu+e4H7bEHw51I vxVA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=KrxIhXR8; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x10si28349538pfh.85.2018.05.09.20.28.22; Wed, 09 May 2018 20:28:39 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=KrxIhXR8; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756600AbeEJDX5 (ORCPT + 99 others); Wed, 9 May 2018 23:23:57 -0400 Received: from mail-pl0-f67.google.com ([209.85.160.67]:36857 "EHLO mail-pl0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756394AbeEJDXz (ORCPT ); Wed, 9 May 2018 23:23:55 -0400 Received: by mail-pl0-f67.google.com with SMTP id v24-v6so460267plo.3 for ; Wed, 09 May 2018 20:23:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:mail-followup-to:mime-version :content-disposition:user-agent; bh=X6xGCfs4SX8OLl7cF8CTwJ0nx2UYVvAu6anS8mBYRdo=; b=KrxIhXR8MZPm1v1GNkUndNXMNf2c89hj0wFUlbwCYNU9GpwNX+Vi7NvOnOh+sPT9Nz hDxWsmyTVUZ1fGWuW/m24rTW170tkJRhGkb11UDsmUOBc+ll+l0/tiMuK2SRswJkgOcl HVLLKX0hNbBZ9mRPUdGEtYrEtGAP1TvCZUaKnKkjHp4pKWiq6HqRo3qq9Qu8jZlnoCv/ dLyqavjWexPp7d9wH7P+b7H3G/TfSo+55d8ZpvfRZeYqXPTqsIMMIqTpEzZzEg0O3eXn FeZR9DAt/Dgl7RVM49y8YvuzlZeULuvkigGil6N40kwpXPNUrjlWACBeZolBmykUQvGc BXAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id :mail-followup-to:mime-version:content-disposition:user-agent; bh=X6xGCfs4SX8OLl7cF8CTwJ0nx2UYVvAu6anS8mBYRdo=; b=jOXFyEaqID45JJxTumoHXvaTz2rhc0FDoOOcE8RzjQvPjQ8buQiWV2HQ6JafGEhKVR 8r9BRYEUztP6fyjY7U7rWBwGzh7rMRZwXiLGeR4KIXquHDMFIThx/hM0Mo8eo1beaBHQ nj82muF+z2JnMvWtyE3iPw68AgcraNVPqQavFeVL8kS4/BNMzSoraR6PNRz85OR+49ru 24dJFH0FyChlaN8NbQtnbRLfpJebHWgolbmKEsCzwqVlSUr+Du/Tyw1+zpP+/DohxcO5 yWplSk0+p9/mWLPSE4L/kQr/j7fhwmRdHQMDHq2rQd7fRyU7hWGaGgLEW9fjKZV7/259 KDkg== X-Gm-Message-State: ALQs6tBngIb2kS69IL+z+W7HbDC6xLl1I9mozsGLyrxenP+mk93P96Ym PszUXyRI9N2zGtglsmZJIpU= X-Received: by 2002:a17:902:ab93:: with SMTP id f19-v6mr47611658plr.392.1525922635224; Wed, 09 May 2018 20:23:55 -0700 (PDT) Received: from udknight.localhost ([183.90.36.235]) by smtp.gmail.com with ESMTPSA id g207sm54303985pfb.18.2018.05.09.20.22.02 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 09 May 2018 20:23:54 -0700 (PDT) Received: from udknight.localhost (localhost [127.0.0.1]) by udknight.localhost (8.14.9/8.14.9) with ESMTP id w4A3LwjJ026130; Thu, 10 May 2018 11:21:58 +0800 Received: (from root@localhost) by udknight.localhost (8.14.9/8.14.9/Submit) id w4A3KDNU026112; Thu, 10 May 2018 11:20:13 +0800 Date: Thu, 10 May 2018 11:20:13 +0800 From: Wang YanQing To: linux@armlinux.org.uk Cc: daniel@iogearbox.net, ast@fb.com, illusionist.neo@gmail.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH] bpf, arm32: Correct check_imm24 Message-ID: <20180510032013.GB26016@udknight> Mail-Followup-To: Wang YanQing , linux@armlinux.org.uk, daniel@iogearbox.net, ast@fb.com, illusionist.neo@gmail.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.7.1 (2016-10-04) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org imm24 is signed, so the right range is: [-(2<<(24 - 1)), (2<<(24 - 1)) - 1] Note:this patch also fix a typo. Signed-off-by: Wang YanQing --- arch/arm/net/bpf_jit_32.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/arch/arm/net/bpf_jit_32.c b/arch/arm/net/bpf_jit_32.c index c0b4124..19c6d77 100644 --- a/arch/arm/net/bpf_jit_32.c +++ b/arch/arm/net/bpf_jit_32.c @@ -84,7 +84,7 @@ * * 1. First argument is passed using the arm 32bit registers and rest of the * arguments are passed on stack scratch space. - * 2. First callee-saved arugument is mapped to arm 32 bit registers and rest + * 2. First callee-saved argument is mapped to arm 32 bit registers and rest * arguments are mapped to scratch space on stack. * 3. We need two 64 bit temp registers to do complex operations on eBPF * registers. @@ -1198,15 +1198,14 @@ static int build_insn(const struct bpf_insn *insn, struct jit_ctx *ctx) u8 rd, rt, rm, rn; s32 jmp_offset; -#define check_imm(bits, imm) do { \ - if ((((imm) > 0) && ((imm) >> (bits))) || \ - (((imm) < 0) && (~(imm) >> (bits)))) { \ - pr_info("[%2d] imm=%d(0x%x) out of range\n", \ - i, imm, imm); \ +#define check_imm_range(min, max, imm) do { \ + if (imm < min || imm > max) { \ + pr_info("[%2d] imm=%d is out of range\n", \ + i, imm); \ return -EINVAL; \ } \ } while (0) -#define check_imm24(imm) check_imm(24, imm) +#define check_imm24(imm) check_imm_range(-16777216, 16777215, imm) switch (code) { /* ALU operations */ -- 1.8.5.6.2.g3d8a54e.dirty