All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ard Biesheuvel <ard.biesheuvel@linaro.org>
To: Matt Fleming <matt@codeblueprint.co.uk>
Cc: Taku Izumi <izumi.taku@jp.fujitsu.com>,
	Ingo Molnar <mingo.kernel.org@gmail.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	kamezawa.hiroyu@jp.fujitsu.com,
	"linux-efi@vger.kernel.org" <linux-efi@vger.kernel.org>
Subject: Re: [PATCH v2] efi: Fix warning of int-to-pointer-cast on x86 32-bit builds
Date: Tue, 27 Oct 2015 11:33:55 +0900	[thread overview]
Message-ID: <CAKv+Gu-1MfUJiF5idd0KoziUxhrDStmRwXQZHuX+gwnJvq083g@mail.gmail.com> (raw)
In-Reply-To: <20151026210235.GA3526@codeblueprint.co.uk>

On 27 October 2015 at 06:02, Matt Fleming <matt@codeblueprint.co.uk> wrote:
> On Fri, 23 Oct, at 10:37:46AM, Ard Biesheuvel wrote:
>>
>> After looking at the original (already merged) patch 11/11 again, I
>> realize this is still not right: the problem is that efi_memory_map's
>> phys_map member uses a void* type to hold a physical address, which
>> happens to be correct in the normal case even when phys_addr_t is
>> larger than void* (like on ARM with LPAE enabled) since the address it
>> holds is the address of an allocation performed by the firmware, which
>> only uses 1:1 addressable memory.
>>
>> However, overwriting memmap.phys_map with a value produced my
>> memblock_alloc() is problematic, since the allocation may be above 4
>> GB on 32-bit (L)PAE platforms. So the correct way to do this would be
>> to set the memblock limit to 4GB before memblock_alloc() on 32-bit
>> platforms, and restore it afterwards. This is a bit of a kludge,
>> though, and it would be more correct to change the type of
>> efi_memory_map::phys_map to phys_addr_t, although I don't know what
>> the potential fallout of that change is. Matt?
>
> I think that should be fine. The only potentially tricky situation we
> could encounter is where 32-bit x86 firmware uses PAE but the kernel
> is built without support.
>
> But that's not something I've ever seen enabled in the firmware and
> there's a bunch of assumptions in the kernel already that would break
> in that case.
>

Does UEFI even allow that? Even if it can describe memory over 4 GB,
it uses a flat mapping so allocations done by the stub (which
retrieves the memory map) should never reside at addresses over 4 GB.

-- 
Ard.

  reply	other threads:[~2015-10-27  2:33 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-23  9:50 [PATCH v2] efi: Fix warning of int-to-pointer-cast on x86 32-bit builds Taku Izumi
2015-10-23  8:37 ` Ard Biesheuvel
2015-10-23  8:37   ` Ard Biesheuvel
2015-10-23  8:50   ` Ingo Molnar
2015-10-23  9:48     ` [PATCH 1/2] efi: use correct type for struct efi_memory_map::phys_map Ard Biesheuvel
2015-10-23  9:48       ` [PATCH 2/2] efi: Fix warning of int-to-pointer-cast on x86 32-bit builds Ard Biesheuvel
2015-10-23  9:48         ` Ard Biesheuvel
2015-10-23 10:27         ` Ingo Molnar
2015-10-23 10:30           ` Ingo Molnar
2015-10-23 10:30             ` Ingo Molnar
2015-10-23 10:33             ` Ingo Molnar
2015-10-23 10:33               ` Ingo Molnar
2015-10-27 21:12               ` Matt Fleming
2015-10-28 11:28                 ` Ingo Molnar
2015-10-27 21:11         ` Matt Fleming
2015-10-28 20:57         ` [tip:core/efi] " tip-bot for Taku Izumi
2015-10-27 21:09       ` [PATCH 1/2] efi: use correct type for struct efi_memory_map::phys_map Matt Fleming
2015-10-28 20:57       ` [tip:core/efi] efi: Use correct type for struct efi_memory_map:: phys_map tip-bot for Ard Biesheuvel
2015-10-26 21:02   ` [PATCH v2] efi: Fix warning of int-to-pointer-cast on x86 32-bit builds Matt Fleming
2015-10-26 21:02     ` Matt Fleming
2015-10-27  2:33     ` Ard Biesheuvel [this message]
2015-10-27 21:08       ` Matt Fleming
2015-10-27 21:08         ` Matt Fleming
2015-10-23  8:40 ` Ingo Molnar

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=CAKv+Gu-1MfUJiF5idd0KoziUxhrDStmRwXQZHuX+gwnJvq083g@mail.gmail.com \
    --to=ard.biesheuvel@linaro.org \
    --cc=izumi.taku@jp.fujitsu.com \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=linux-efi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=matt@codeblueprint.co.uk \
    --cc=mingo.kernel.org@gmail.com \
    /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.