All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mathieu Malaterre <malat@debian.org>
To: Segher Boessenkool <segher@kernel.crashing.org>
Cc: Christophe LEROY <christophe.leroy@c-s.fr>,
	Michael Ellerman <mpe@ellerman.id.au>,
	linuxppc-dev <linuxppc-dev@lists.ozlabs.org>,
	Paul Mackerras <paulus@samba.org>,
	LKML <linux-kernel@vger.kernel.org>, Jiri Slaby <jslaby@suse.com>
Subject: Re: [PATCH 05/21] powerpc: Avoid comparison of unsigned long >= 0 in pfn_valid
Date: Fri, 2 Mar 2018 20:54:27 +0100	[thread overview]
Message-ID: <CA+7wUsz7srOXwehLjuSn_SEgCUkGxu9bq6aOw5AeOaiiipBNtg@mail.gmail.com> (raw)
In-Reply-To: <20180226084602.GR21977@gate.crashing.org>

On Mon, Feb 26, 2018 at 9:46 AM, Segher Boessenkool
<segher@kernel.crashing.org> wrote:
> On Mon, Feb 26, 2018 at 07:32:03AM +0100, Christophe LEROY wrote:
>> Le 25/02/2018 à 18:22, Mathieu Malaterre a écrit :
>> >-#define pfn_valid(pfn)              ((pfn) >= ARCH_PFN_OFFSET && (pfn) <
>> >max_mapnr)
>> >+#define pfn_valid(pfn) \
>> >+            (((pfn) - ARCH_PFN_OFFSET) < (max_mapnr - ARCH_PFN_OFFSET))
>>
>> What will happen when ARCH_PFN_OFFSET is not nul and pfn is lower than
>> ARCH_PFN_OFFSET ?
>
> It will work fine.
>
> Say you are asking for  a <= x < b  so (in actual integers, no overflow)
> that is  0 <= x-a < b-a  and you also assume x-a overflows, so that we
> are actually comparing  x-a+M < b-a  with M = 2**32 or such (the maximum
> value in the unsigned integer type plus one).  This comparison is
> obviously always false.
>
> (It also works if b < a btw).
>
>
Thanks Segher !

Christophe does that clarify things or do you want me to update the
commit message ?

WARNING: multiple messages have this Message-ID (diff)
From: Mathieu Malaterre <malat@debian.org>
To: Segher Boessenkool <segher@kernel.crashing.org>
Cc: Christophe LEROY <christophe.leroy@c-s.fr>,
	Michael Ellerman <mpe@ellerman.id.au>,
	linuxppc-dev <linuxppc-dev@lists.ozlabs.org>,
	Paul Mackerras <paulus@samba.org>,
	LKML <linux-kernel@vger.kernel.org>, Jiri Slaby <jslaby@suse.com>
Subject: Re: [PATCH 05/21] powerpc: Avoid comparison of unsigned long >= 0 in pfn_valid
Date: Fri, 2 Mar 2018 20:54:27 +0100	[thread overview]
Message-ID: <CA+7wUsz7srOXwehLjuSn_SEgCUkGxu9bq6aOw5AeOaiiipBNtg@mail.gmail.com> (raw)
In-Reply-To: <20180226084602.GR21977@gate.crashing.org>

On Mon, Feb 26, 2018 at 9:46 AM, Segher Boessenkool
<segher@kernel.crashing.org> wrote:
> On Mon, Feb 26, 2018 at 07:32:03AM +0100, Christophe LEROY wrote:
>> Le 25/02/2018 =C3=A0 18:22, Mathieu Malaterre a =C3=A9crit :
>> >-#define pfn_valid(pfn)              ((pfn) >=3D ARCH_PFN_OFFSET && (pf=
n) <
>> >max_mapnr)
>> >+#define pfn_valid(pfn) \
>> >+            (((pfn) - ARCH_PFN_OFFSET) < (max_mapnr - ARCH_PFN_OFFSET)=
)
>>
>> What will happen when ARCH_PFN_OFFSET is not nul and pfn is lower than
>> ARCH_PFN_OFFSET ?
>
> It will work fine.
>
> Say you are asking for  a <=3D x < b  so (in actual integers, no overflow=
)
> that is  0 <=3D x-a < b-a  and you also assume x-a overflows, so that we
> are actually comparing  x-a+M < b-a  with M =3D 2**32 or such (the maximu=
m
> value in the unsigned integer type plus one).  This comparison is
> obviously always false.
>
> (It also works if b < a btw).
>
>
Thanks Segher !

Christophe does that clarify things or do you want me to update the
commit message ?

  reply	other threads:[~2018-03-02 19:54 UTC|newest]

Thread overview: 103+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-25 17:22 [PATCH 00/21] powerpc/gamecube: make W=1 compilation errors free Mathieu Malaterre
2018-02-25 17:22 ` [PATCH 01/21] powerpc: Remove warning on array size when empty Mathieu Malaterre
2018-02-25 18:53   ` Segher Boessenkool
2018-02-26 14:44   ` Andy Shevchenko
2018-02-26 14:44     ` Andy Shevchenko
2018-02-26 14:45     ` Andy Shevchenko
2018-02-27  7:25       ` Mathieu Malaterre
2018-02-27  7:33         ` Christophe LEROY
2018-02-27  7:44           ` Mathieu Malaterre
2018-02-27  7:44             ` Mathieu Malaterre
2018-02-27 15:52             ` Andy Shevchenko
2018-02-27 17:25               ` Mathieu Malaterre
2018-02-27 17:25                 ` Mathieu Malaterre
2018-02-27 20:42               ` Segher Boessenkool
2018-02-28 15:50                 ` Andy Shevchenko
2018-03-01  2:55   ` Michael Ellerman
2018-03-01  2:55     ` Michael Ellerman
2018-03-01  7:01     ` Mathieu Malaterre
2018-03-01  7:01       ` Mathieu Malaterre
2018-03-01  9:33       ` Michael Ellerman
2018-03-01  9:33         ` Michael Ellerman
2018-03-02 19:49   ` [PATCH v2 " Mathieu Malaterre
2018-03-14  9:28     ` [v2,01/21] " Michael Ellerman
2018-02-25 17:22 ` [PATCH 02/21] powerpc: Move the inline keyword at the beginning of function declaration Mathieu Malaterre
2018-03-14  9:27   ` [02/21] " Michael Ellerman
2018-02-25 17:22 ` [PATCH 03/21] powerpc: Mark the variable earlycon_acpi_spcr_enable maybe_unused Mathieu Malaterre
2018-03-04 10:54   ` Michael Ellerman
2018-03-04 10:54     ` Michael Ellerman
2018-03-10 18:08     ` Mathieu Malaterre
2018-03-10 18:08       ` Mathieu Malaterre
2018-02-25 17:22 ` [PATCH 04/21] powerpc: Mark both tmp variables as unused Mathieu Malaterre
2018-03-14  9:27   ` [04/21] " Michael Ellerman
2018-03-14 10:38   ` [PATCH 04/21] " Christophe LEROY
2018-03-16 14:08     ` Michael Ellerman
2018-03-16 14:08       ` Michael Ellerman
2018-02-25 17:22 ` [PATCH 05/21] powerpc: Avoid comparison of unsigned long >= 0 in pfn_valid Mathieu Malaterre
2018-02-26  6:32   ` Christophe LEROY
2018-02-26  7:49     ` Mathieu Malaterre
2018-02-26  7:49       ` Mathieu Malaterre
2018-02-26  8:46     ` Segher Boessenkool
2018-03-02 19:54       ` Mathieu Malaterre [this message]
2018-03-02 19:54         ` Mathieu Malaterre
2018-03-03  7:45         ` christophe leroy
2018-03-04 10:55   ` Michael Ellerman
2018-03-04 10:55     ` Michael Ellerman
2018-03-04 19:46     ` christophe leroy
2018-03-07 20:34   ` [PATCH v2 " Mathieu Malaterre
2018-03-14  9:28     ` [v2, " Michael Ellerman
2018-02-25 17:22 ` [PATCH 06/21] powerpc: Avoid comparison of unsigned long >= 0 in __access_ok Mathieu Malaterre
2018-02-26  6:34   ` Christophe LEROY
2018-02-26  6:50     ` Christophe LEROY
2018-02-26  7:44       ` Mathieu Malaterre
2018-02-26  7:44         ` Mathieu Malaterre
2018-02-26 17:50         ` Mathieu Malaterre
2018-02-26 17:50           ` Mathieu Malaterre
2018-02-26 20:00           ` christophe leroy
2018-02-26 22:17             ` Segher Boessenkool
2018-03-02 19:50   ` [PATCH v2 " Mathieu Malaterre
2018-03-03  7:44     ` christophe leroy
2018-03-14  9:28     ` [v2, " Michael Ellerman
2018-02-25 17:22 ` [PATCH 07/21] powerpc: Make functions flipper_pic_init & ug_udbg_putc static Mathieu Malaterre
2018-03-14  9:27   ` [07/21] " Michael Ellerman
2018-02-25 17:22 ` [PATCH 08/21] powerpc: Make function __giveup_fpu static Mathieu Malaterre
2018-03-14  9:28   ` [08/21] " Michael Ellerman
2018-02-25 17:22 ` [PATCH 09/21] powerpc: Make function save_all static Mathieu Malaterre
2018-02-25 17:22 ` [PATCH 10/21] powerpc: Add missing prototype for slb_miss_bad_addr Mathieu Malaterre
2018-03-14  9:27   ` [10/21] " Michael Ellerman
2018-02-25 17:22 ` [PATCH 11/21] powerpc: Add missing prototype for hdec_interrupt Mathieu Malaterre
2018-03-14  9:27   ` [11/21] " Michael Ellerman
2018-02-25 17:22 ` [PATCH 12/21] powerpc: Add missing prototype for time_init Mathieu Malaterre
2018-03-14  9:27   ` [12/21] " Michael Ellerman
2018-02-25 17:22 ` [PATCH 13/21] powerpc: Add missing prototype for arch_dup_task_struct Mathieu Malaterre
2018-03-14  9:27   ` [13/21] " Michael Ellerman
2018-02-25 17:22 ` [PATCH 14/21] powerpc: Add missing prototype for arch_irq_work_raise Mathieu Malaterre
2018-03-14  9:27   ` [14/21] " Michael Ellerman
2018-02-25 17:22 ` [PATCH 15/21] powerpc: Add missing prototype for MMU_setup Mathieu Malaterre
2018-03-04 10:54   ` Michael Ellerman
2018-03-04 10:54     ` Michael Ellerman
2018-03-07 20:32   ` [PATCH v2 15/21] powerpc: Make function MMU_setup static Mathieu Malaterre
2018-03-14  9:28     ` [v2,15/21] " Michael Ellerman
2018-02-25 17:22 ` [PATCH 16/21] powerpc: Add missing prototype for init_IRQ Mathieu Malaterre
2018-03-14  9:28   ` [16/21] " Michael Ellerman
2018-02-25 17:22 ` [PATCH 17/21] powerpc: Add missing prototype for sys_debug_setcontext Mathieu Malaterre
2018-03-04 10:54   ` Michael Ellerman
2018-03-04 10:54     ` Michael Ellerman
2018-03-07 20:37     ` Mathieu Malaterre
2018-03-07 20:37       ` Mathieu Malaterre
2018-03-08 10:36       ` Michael Ellerman
2018-03-08 10:36         ` Michael Ellerman
2018-03-26 18:56         ` Mathieu Malaterre
2018-03-26 18:56           ` Mathieu Malaterre
2018-03-27  8:50           ` Michael Ellerman
2018-03-27  8:50             ` Michael Ellerman
2018-03-14  9:28   ` [17/21] " Michael Ellerman
2018-02-25 17:22 ` [PATCH 18/21] powerpc: Add missing prototypes for sys_sigreturn & sys_rt_sigreturn Mathieu Malaterre
2018-03-14  9:28   ` [18/21] " Michael Ellerman
2018-02-25 17:22 ` [PATCH 19/21] powerpc: Add missing prototypes for hw_breakpoint_handler & arch_unregister_hw_breakpoint Mathieu Malaterre
2018-03-14  9:28   ` [19/21] " Michael Ellerman
2018-02-25 17:22 ` [PATCH 20/21] powerpc: Add missing prototypes for ppc_select & ppc_fadvise64_64 Mathieu Malaterre
2018-03-14  9:28   ` [20/21] " Michael Ellerman
2018-02-25 17:22 ` [PATCH 21/21] powerpc: Add missing prototypes in setup_32.c Mathieu Malaterre
2018-03-08 11:44   ` Michael Ellerman
2018-03-14  9:28   ` [21/21] " Michael Ellerman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CA+7wUsz7srOXwehLjuSn_SEgCUkGxu9bq6aOw5AeOaiiipBNtg@mail.gmail.com \
    --to=malat@debian.org \
    --cc=christophe.leroy@c-s.fr \
    --cc=jslaby@suse.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mpe@ellerman.id.au \
    --cc=paulus@samba.org \
    --cc=segher@kernel.crashing.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.