Received: by 10.223.185.116 with SMTP id b49csp3461248wrg; Sun, 25 Feb 2018 23:46:09 -0800 (PST) X-Google-Smtp-Source: AH8x226TXmkUMwSjpDpvvRhTc8pC8H/q7oUSFi9dbyaCRv/YhnXfJ3iucytHvViHo1HDOxJURrom X-Received: by 10.99.177.72 with SMTP id g8mr7515150pgp.99.1519631169016; Sun, 25 Feb 2018 23:46:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519631168; cv=none; d=google.com; s=arc-20160816; b=F/fF75HYtNm+xROklpqyvDrOFBboCKkurEtpt6VdzWezfoIC3zWAWTExZTwbRh5UHi dGb0VSb6Xgp8qnrLKIbCJi5iW3S33/V+nhTgETD/Cl+e0d6HF33oyRssEyuX9YbzEJUm xgHgRMt0gYGc6WqDdE3eGsIkh1ClKWrGVJOVCLI9y2658GzH0XHXYVlQQ2wjLDk7dZYC +EtrBUmsqfAUz5NbAJIdxQ0pCMer3l+9jwNXj7b70dNEiFrSKDclFKaDDyQhU0Elifn8 mDM7zciw0wS+tP0BCFFclPO1ykgv0Ru0PDERYUu+hZloscV8GUP0wviaGP/25Vw2D1XJ ssUg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:cc:to:subject :message-id:date:from:references:in-reply-to:mime-version :dkim-signature:arc-authentication-results; bh=2L2AmLCWXgnSi3AcOII1AcLmvD25Tk6D2tyC6OZVLHs=; b=jaLI+onVZDAkZoY08otU8rkatH9N9q7cs3e2fNgruqw9p+PBOSntA9k/wQojgrAKaT hsVK7gGnDQkqh1RajZ8z/0mJyi7RYRPGI1F5Q6o8A5EYVgeb8xOYAJONSjyMiapwh1Zc /Gd+vWlo3pIJNNwkLdT+xHM0645J3ITz044/1r9PW8qgNafHsCRsVjPvyx8mppnbDu1K UkQfdngimqvkK035uOV0e1c0HIHUyNOWHAFtnmVi7hFz+wi2z2jIXJTDFSVM/q+9wWJ8 U7LcktiWV1QBjKFlck9aZIrM9wXAJ7q8fCbt46Br/IA9sMJkBGox3P+pKsNA7xn+FnUF qYvA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=aWEr2AWC; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p8si5204538pgn.272.2018.02.25.23.45.53; Sun, 25 Feb 2018 23:46:08 -0800 (PST) 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=fail header.i=@gmail.com header.s=20161025 header.b=aWEr2AWC; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752066AbeBZHpN (ORCPT + 99 others); Mon, 26 Feb 2018 02:45:13 -0500 Received: from mail-ua0-f196.google.com ([209.85.217.196]:32788 "EHLO mail-ua0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750929AbeBZHpL (ORCPT ); Mon, 26 Feb 2018 02:45:11 -0500 Received: by mail-ua0-f196.google.com with SMTP id p12so9906373uad.0 for ; Sun, 25 Feb 2018 23:45:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-transfer-encoding; bh=2L2AmLCWXgnSi3AcOII1AcLmvD25Tk6D2tyC6OZVLHs=; b=aWEr2AWCGsx60vUYaWvjQBKcL1dRrJ7p8Z/bZkMnJxUShRb1kU6eT2aTQY4fIxyhb4 S6Fle1acumpbaHFsaldzSNAAi4sn0dGv1UOmCCU3lXUuIsFHHVCxpRLF2XdbctzJfNFh +2vkk+id0FiSLtG5Gv2zjmKRtxXAqeGxrSI69U9A2cIEa9Jxu23uiaceAQHYUnDdd2kE GYDSDWz4gTNbRF6ib3FmAE+5AX+06tPh/2aaElY+5wQpwkXn27gz1xSJRyje0jmkwx+C B1XpB/23goZoN4MP44duAtcItmeyMqS2Pu9bLoOQK1sDXY8Lr6E/BBnWlakd8Odz4ahp oKUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc:content-transfer-encoding; bh=2L2AmLCWXgnSi3AcOII1AcLmvD25Tk6D2tyC6OZVLHs=; b=XSD8fY7R4nNqYAozr3OEEuAO0zCTl5TzxMy5vbjR4EziaMkv5MqDV3dzHmrLVTpBGT 4tR9z9ZtNFVJbP+7x0AwrpRVSdGWa7iLHRnLmNvE60Vty8sk2aJBCyQUrYFOnVT3Qiyu sn/T3RbwtUXlUbAYVCvwo6so0yU8xtX7ynAMK1AOUtGmI/gbHVn5T1ulDcSAKkRs+d1L H6XjcSQadhSCdaeYacschzg6kM2LgjlgpBIW2rI1VuvdAqFF6sWjorHOdUbM1iOzkU26 yDCEsXjerlls8CQV0nr05gfM6Ob4N2CR88VlEajXKUOtD5/hILjMTYYyGM78lAnHZ7by 4Fkg== X-Gm-Message-State: APf1xPDtz7IbyO5GXl9gvjhhXt/3jzLezBf04YQEn2/whUhDBzDkXRcr 3YND9AqTTH7ldrW5qotzxvy38TC4ysAoWSx0y9U= X-Received: by 10.176.12.17 with SMTP id a17mr4375787uak.162.1519631110182; Sun, 25 Feb 2018 23:45:10 -0800 (PST) MIME-Version: 1.0 Received: by 10.176.112.21 with HTTP; Sun, 25 Feb 2018 23:44:49 -0800 (PST) In-Reply-To: <6cba215c-127e-f3eb-b525-773b6aed0eb7@c-s.fr> References: <20180225172236.29650-1-malat@debian.org> <20180225172236.29650-7-malat@debian.org> <8862c1e1-d161-3410-1b2a-502ad06cef57@c-s.fr> <6cba215c-127e-f3eb-b525-773b6aed0eb7@c-s.fr> From: Mathieu Malaterre Date: Mon, 26 Feb 2018 08:44:49 +0100 X-Google-Sender-Auth: KYGoA-OzlzoJG5zRxTZqP4WCZTk Message-ID: Subject: Re: [PATCH 06/21] powerpc: Avoid comparison of unsigned long >= 0 in __access_ok To: Christophe LEROY Cc: Michael Ellerman , LKML , Paul Mackerras , Jiri Slaby , linuxppc-dev Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Feb 26, 2018 at 7:50 AM, Christophe LEROY wrote: > > > Le 26/02/2018 =C3=A0 07:34, Christophe LEROY a =C3=A9crit : >> >> >> >> Le 25/02/2018 =C3=A0 18:22, Mathieu Malaterre a =C3=A9crit : >>> >>> Rewrite check size - 1 <=3D Y as size < Y since `size` is unsigned valu= e. >>> Fix warning (treated as error in W=3D1): >>> >>> CC arch/powerpc/kernel/signal_32.o >>> In file included from ./include/linux/uaccess.h:14:0, >>> from ./include/asm-generic/termios-base.h:8, >>> from ./arch/powerpc/include/asm/termios.h:20, >>> from ./include/uapi/linux/termios.h:6, >>> from ./include/linux/tty.h:7, >>> from arch/powerpc/kernel/signal_32.c:36: >>> ./include/asm-generic/termios-base.h: In function >>> =E2=80=98user_termio_to_kernel_termios=E2=80=99: >>> ./arch/powerpc/include/asm/uaccess.h:52:35: error: comparison of unsign= ed >>> expression >=3D 0 is always true [-Werror=3Dtype-limits] >>> (((size) =3D=3D 0) || (((size) - 1) <=3D ((segment).seg - (addr))))= ) >>> ^ >>> ./arch/powerpc/include/asm/uaccess.h:58:3: note: in expansion of macro >>> =E2=80=98__access_ok=E2=80=99 >>> __access_ok((__force unsigned long)(addr), (size), get_fs())) >>> ^~~~~~~~~~~ >>> ./arch/powerpc/include/asm/uaccess.h:262:6: note: in expansion of macro >>> =E2=80=98access_ok=E2=80=99 >>> if (access_ok(VERIFY_READ, __gu_addr, (size))) \ >>> ^~~~~~~~~ >>> ./arch/powerpc/include/asm/uaccess.h:80:2: note: in expansion of macro >>> =E2=80=98__get_user_check=E2=80=99 >>> __get_user_check((x), (ptr), sizeof(*(ptr))) >>> ^~~~~~~~~~~~~~~~ >>> ./include/asm-generic/termios-base.h:36:6: note: in expansion of macro >>> =E2=80=98get_user=E2=80=99 >>> if (get_user(termios->c_line, &termio->c_line) < 0) >>> ^~~~~~~~ >>> [...] >>> cc1: all warnings being treated as errors >>> >>> Signed-off-by: Mathieu Malaterre >>> --- >>> arch/powerpc/include/asm/uaccess.h | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) >>> >>> diff --git a/arch/powerpc/include/asm/uaccess.h >>> b/arch/powerpc/include/asm/uaccess.h >>> index 51bfeb8777f0..fadc406bd39d 100644 >>> --- a/arch/powerpc/include/asm/uaccess.h >>> +++ b/arch/powerpc/include/asm/uaccess.h >>> @@ -49,7 +49,7 @@ >>> #define __access_ok(addr, size, segment) \ >>> (((addr) <=3D (segment).seg) && \ >>> - (((size) =3D=3D 0) || (((size) - 1) <=3D ((segment).seg - (addr))= ))) >>> + (((size) =3D=3D 0) || ((size) < ((segment).seg - (addr))))) >> >> >> IIUC, ((2 - 1) <=3D 1) is the same as (2 < 1) ????? > The whole series was pretty mediocre, but this one was actually pretty destructive. Thanks for catching this. > > Note that I already try to submit a fix for this warning 3 years ago > (https://patchwork.ozlabs.org/patch/418075/) and it was rejected with the > following comment: > > Again, I don't think Linux enables this warning. What did you do to > produce this? In any case, it's a bad warning that doesn't take macros > into account, and the answer is not to make the code less clear by hiding > the fact that zero is a special case. Right. I'll try to see how to make W=3D1 run without error with an alternate solution. > Christophe > > >> >> Christophe >> >>> #endif >>> >