public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: DervishD <raul@pleyades.net>
To: "David S. Miller" <davem@redhat.com>
Cc: linux-kernel@vger.kernel.org, marcelo@conectiva.com.br
Subject: Re: [BK-2.4] [PATCH] Small do_mmap_pgoff correction
Date: Tue, 10 Dec 2002 21:45:30 +0100	[thread overview]
Message-ID: <20021210204530.GA63@DervishD> (raw)
In-Reply-To: <20021210.121908.00373632.davem@redhat.com>

    Hi David :)

>    + *	NOTE: in this function we rely on TASK_SIZE being lower than
>    + *	SIZE_MAX-PAGE_SIZE at least. I'm pretty sure that it is.
> This assumption is wrong.

    OK, then another way of fixing the corner case that exists in
do_mmap_pgoff is needed. You cannot mmap a chunk of memory whose size
is bigger than SIZE_MAX-PAGE_SIZE, because 'PAGE_ALIGN' will return 0
when page-aligning the size.

    Anyway you cannot use a size larger than SIZE_MAX-PAGE_SIZE even
on sparc64, since mmap will fail when page aligning such a size,
returning 0 :((( Reverting the change is worse (IMHO).

> Please revert this change, it adds absolutely nothing.

    It corrects the corner case. See below. If you have a better
solution for the corner case problem that doesn't involve limiting
the max size you can request for mmaping so it doesn't get the last
page, it is welcome, of course :))

    The code says:

    if ((len = PAGE_ALIGN(len)) == 0)

    and this returns 0 if the requested size ('len', here) is between
SIZE_MAX-PAGE_SIZE and SIZE_MAX. And this is wrong. Don't know if
under sparc64 the PAGE_ALIGN macro returns correct values, but I
don't think so, since the correct value for an address in the last
page is 0 when page aligned. The problem is that we are aligning a
SIZE, not an address :((

    Maybe a new macro needed here...

    If you want the entire explanation, just tell :) I wrote in the
past for the same patch. Anyway, nor Linus nor Alan did see anything
wrong with this :??

    Raúl

  reply	other threads:[~2002-12-10 20:37 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <200212101931.gBAJV1K10639@hera.kernel.org>
2002-12-10 20:19 ` [BK-2.4] [PATCH] Small do_mmap_pgoff correction David S. Miller
2002-12-10 20:45   ` DervishD [this message]
2002-12-10 20:47     ` David S. Miller
2002-12-10 20:59       ` DervishD
2002-12-10 21:22         ` David S. Miller
2002-12-10 18:52           ` Marcelo Tosatti
2002-12-10 22:13           ` DervishD
2002-12-10 22:14             ` David S. Miller
2002-12-10 22:28               ` DervishD
2002-12-11  1:06                 ` David S. Miller
2002-12-11 12:32                   ` DervishD
2002-12-10 20:50 [BK-2.4] [Patch] " DervishD

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=20021210204530.GA63@DervishD \
    --to=raul@pleyades.net \
    --cc=davem@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marcelo@conectiva.com.br \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox