Re: [PATCH v5] mm,writeback: fix divide by zero in pos_ratio_polynom

Andrew Morton
2014-04-30T21:33:03Z

On Wed, 30 Apr 2014 16:42:55 -0400 Rik van Riel <riel@redhat.com> wrote:

> On Wed, 30 Apr 2014 13:13:53 -0700
> Andrew Morton <akpm@linux-foundation.org> wrote:
>
> > This was a consequence of 64->32 truncation and it can't happen any
> > more, can it?
>
> Andrew, this is cleaner indeed :)
>
> Masayoshi-san, does the bug still happen with this version, or does
> this fix the problem?

I assumed we wanted a reported-by in there.

> Subject: mm,writeback: fix divide by zero in pos_ratio_polynom
>
> It is possible for "limit - setpoint + 1" to equal zero, after
> getting truncated to a 32 bit variable, and resulting in a divide
> by zero error.
>
> Using the fully 64 bit divide functions avoids this problem.

This isn't the whole story, is it? I added stuff:

: Using the fully 64 bit divide functions avoids this problem. It also will
: cause pos_ratio_polynom() to return the correct value when (setpoint -
: limit) exceeds 2^32.