All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Kiper <daniel.kiper@oracle.com>
To: Matt Fleming <matt@console-pimps.org>
Cc: mjg59@srcf.ucam.org, jeremy@goop.org, linux-efi@vger.kernel.org,
	Mark Salter <msalter@redhat.com>,
	ian.campbell@citrix.com, andrew.cooper3@citrix.com,
	x86@kernel.org, linux-kernel@vger.kernel.org,
	matt.fleming@intel.com, tglx@linutronix.de,
	david.vrabel@citrix.com, jbeulich@suse.com, hpa@zytor.com,
	xen-devel@lists.xenproject.org, boris.ostrovsky@oracle.com,
	mingo@redhat.com, stefano.stabellini@eu.citrix.com,
	eshelton@pobox.com
Subject: Re: [PATCH v5 1/7] efi: Use early_mem*() instead of early_io*()
Date: Wed, 18 Jun 2014 14:59:57 +0200	[thread overview]
Message-ID: <20140618125957.GA28489__10698.1274708689$1403096665$gmane$org@olila.local.net-space.pl> (raw)
In-Reply-To: <20140618121709.GF24049@console-pimps.org>

On Wed, Jun 18, 2014 at 01:17:09PM +0100, Matt Fleming wrote:
> (Pulling in Mark Salter for early_ioremap() knowledge)
>
> On Fri, 13 Jun, at 07:00:17PM, Daniel Kiper wrote:
> > Use early_mem*() instead of early_io*() because all mapped EFI regions
> > are true RAM not I/O regions. Additionally, I/O family calls do not work
> > correctly under Xen in our case. AIUI, early_io*() maps/unmaps real machine
> > addresses. However, all artificial EFI structures created under Xen live
> > in dom0 memory and should be mapped/unmapped using early_mem*() family
> > calls which map domain memory.
> >
> > Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
> > ---
> >  arch/x86/platform/efi/efi.c |   42 +++++++++++++++++++++---------------------
> >  drivers/firmware/efi/efi.c  |    4 ++--
> >  2 files changed, 23 insertions(+), 23 deletions(-)
> >
> > diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c
> > index 87fc96b..dd1e351 100644
> > --- a/arch/x86/platform/efi/efi.c
> > +++ b/arch/x86/platform/efi/efi.c
> > @@ -427,7 +427,7 @@ void __init efi_unmap_memmap(void)
> >  {
> >  	clear_bit(EFI_MEMMAP, &efi.flags);
> >  	if (memmap.map) {
> > -		early_iounmap(memmap.map, memmap.nr_map * memmap.desc_size);
> > +		early_memunmap(memmap.map, memmap.nr_map * memmap.desc_size);
> >  		memmap.map = NULL;
> >  	}
> >  }
> > @@ -467,12 +467,12 @@ static int __init efi_systab_init(void *phys)
> >  			if (!data)
> >  				return -ENOMEM;
> >  		}
> > -		systab64 = early_ioremap((unsigned long)phys,
> > -					 sizeof(*systab64));
> > +		systab64 = early_memremap((unsigned long)phys,
> > +						sizeof(*systab64));
>
> Please don't misalign the arguments :-( This makes the diff harder to
> read when all you're doing is changing the function call. You're
> indentation isn't an improvement.

I think that it improves readability a bit but if you wish I will not
do that in the future.

> As Matthew pointed out we may also need to access EFI mapped flash
> devices.

Right, but I think it does not change a lot in that case. Flash
is simply slower type of memory used as permanent storage.
Am I missing something?

> Now, the only difference between early_memremap() and early_ioremap(),
> at least on x86, is PAGE_KERNEL vs. PAGE_KERNEL_IO, where PAGE_KERNEL_IO
> has the additional _PAGE_BIT_IOMAP bit set in the pte. But that's a
> software bit for x86.
>
> So, even though this change should be harmless, it's not clear to me why
> this change is needed. You say "I/O family calls do not work correctly
> under Xen in our case", but could you provide some more explanation as
> to why they don't work correctly?

As I saw David provided better explanation. If you wish I could include
it in commit message.

Daniel

  parent reply	other threads:[~2014-06-18 13:02 UTC|newest]

Thread overview: 107+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-13 17:00 [PATCH v5 0/7] xen: Add EFI support Daniel Kiper
2014-06-13 17:00 ` Daniel Kiper
2014-06-13 17:00 ` [PATCH v5 1/7] efi: Use early_mem*() instead of early_io*() Daniel Kiper
2014-06-13 17:00   ` Daniel Kiper
2014-06-16  1:19   ` Matthew Garrett
2014-06-16  1:19   ` Matthew Garrett
2014-06-16  1:19     ` Matthew Garrett
2014-06-18 12:17   ` Matt Fleming
2014-06-18 12:31     ` David Vrabel
2014-06-18 12:31     ` David Vrabel
2014-06-18 12:31       ` David Vrabel
2014-06-18 12:59     ` Daniel Kiper [this message]
2014-06-18 12:59     ` Daniel Kiper
2014-06-18 14:56       ` Matt Fleming
2014-06-18 14:56       ` Matt Fleming
2014-06-18 14:56         ` Matt Fleming
2014-06-18 13:59     ` Mark Salter
2014-06-18 13:59       ` Mark Salter
2014-06-18 13:59     ` Mark Salter
2014-06-18 12:17   ` Matt Fleming
2014-06-13 17:00 ` [PATCH v5 2/7] efi: Introduce EFI_NO_DIRECT flag Daniel Kiper
2014-06-16 10:52   ` [Xen-devel] " David Vrabel
2014-06-16 10:52     ` David Vrabel
2014-06-16 10:52   ` David Vrabel
2014-06-18 13:52   ` Matt Fleming
2014-06-18 13:52   ` Matt Fleming
2014-06-18 13:52     ` Matt Fleming
2014-06-18 13:58     ` Jan Beulich
2014-06-18 13:58     ` Jan Beulich
2014-06-18 13:58       ` Jan Beulich
2014-06-18 14:30       ` Stefano Stabellini
2014-06-18 14:30         ` Stefano Stabellini
2014-06-18 15:08         ` Daniel Kiper
2014-06-18 15:08           ` Daniel Kiper
2014-06-18 15:08         ` Daniel Kiper
2014-06-18 15:12         ` Matt Fleming
2014-06-18 15:12         ` Matt Fleming
2014-06-18 15:12           ` Matt Fleming
2014-06-18 14:30       ` Stefano Stabellini
2014-06-18 16:48     ` Daniel Kiper
2014-06-18 16:48     ` Daniel Kiper
2014-06-18 16:48       ` Daniel Kiper
2014-06-19 14:41       ` Matt Fleming
2014-06-19 14:41       ` Matt Fleming
2014-06-19 14:41         ` Matt Fleming
2014-06-20 14:36         ` Daniel Kiper
2014-06-20 14:36           ` Daniel Kiper
2014-06-20 14:36         ` Daniel Kiper
2014-06-13 17:00 ` Daniel Kiper
2014-06-13 17:00 ` [PATCH v5 3/7] xen: Define EFI related stuff Daniel Kiper
2014-06-13 17:00 ` Daniel Kiper
2014-06-16 10:54   ` David Vrabel
2014-06-16 10:54   ` [Xen-devel] " David Vrabel
2014-06-16 10:54     ` David Vrabel
2014-06-13 17:00 ` [PATCH v5 4/7] xen: Put EFI machinery in place Daniel Kiper
2014-06-13 17:00 ` Daniel Kiper
2014-06-16 11:55   ` Stefano Stabellini
2014-06-16 11:55   ` Stefano Stabellini
2014-06-16 11:55     ` Stefano Stabellini
2014-06-16 18:45     ` Daniel Kiper
2014-06-16 18:45     ` Daniel Kiper
2014-06-16 18:45       ` Daniel Kiper
2014-06-16 12:00   ` David Vrabel
2014-06-16 12:00   ` David Vrabel
2014-06-16 12:00     ` David Vrabel
2014-06-16 19:06     ` Daniel Kiper
2014-06-16 19:06     ` Daniel Kiper
2014-06-16 19:06       ` Daniel Kiper
2014-06-13 17:00 ` [PATCH v5 5/7] arch/x86: Replace plain strings with constants Daniel Kiper
2014-06-18 13:56   ` Matt Fleming
2014-06-18 13:56     ` Matt Fleming
2014-06-18 13:56   ` Matt Fleming
2014-06-13 17:00 ` Daniel Kiper
2014-06-13 17:00 ` [PATCH v5 6/7] arch/x86: Remove redundant set_bit() call Daniel Kiper
2014-06-13 17:00 ` Daniel Kiper
2014-06-18 13:56   ` Matt Fleming
2014-06-18 13:56   ` Matt Fleming
2014-06-18 13:56     ` Matt Fleming
2014-06-18 14:01     ` Konrad Rzeszutek Wilk
2014-06-18 14:01       ` Konrad Rzeszutek Wilk
2014-06-18 14:09       ` Matt Fleming
2014-06-18 14:09       ` Matt Fleming
2014-06-18 14:09         ` Matt Fleming
2014-06-18 14:01     ` Konrad Rzeszutek Wilk
2014-06-13 17:00 ` [PATCH v5 7/7] arch/x86: Comment out efi_set_rtc_mmss() Daniel Kiper
2014-06-13 17:00 ` Daniel Kiper
2014-06-13 17:00   ` Daniel Kiper
2014-06-16 11:43   ` Stefano Stabellini
2014-06-16 11:43   ` Stefano Stabellini
2014-06-16 11:43     ` Stefano Stabellini
2014-06-16 11:54     ` Juergen Gross
2014-06-16 11:54     ` [Xen-devel] " Juergen Gross
2014-06-16 18:59       ` H. Peter Anvin
2014-06-16 18:59         ` H. Peter Anvin
2014-06-16 18:59       ` H. Peter Anvin
2014-06-18 14:08   ` Matt Fleming
2014-06-18 14:08   ` Matt Fleming
2014-06-18 14:08     ` Matt Fleming
2014-06-18 14:15 ` [PATCH v5 0/7] xen: Add EFI support Matt Fleming
2014-06-18 14:15 ` Matt Fleming
2014-06-18 14:15   ` Matt Fleming
2014-06-18 14:31   ` Konrad Rzeszutek Wilk
2014-06-18 14:31   ` Konrad Rzeszutek Wilk
2014-06-18 14:31     ` Konrad Rzeszutek Wilk
2014-06-18 14:48     ` Matt Fleming
2014-06-18 14:48       ` Matt Fleming
2014-06-18 14:48     ` Matt Fleming

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='20140618125957.GA28489__10698.1274708689$1403096665$gmane$org@olila.local.net-space.pl' \
    --to=daniel.kiper@oracle.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=boris.ostrovsky@oracle.com \
    --cc=david.vrabel@citrix.com \
    --cc=eshelton@pobox.com \
    --cc=hpa@zytor.com \
    --cc=ian.campbell@citrix.com \
    --cc=jbeulich@suse.com \
    --cc=jeremy@goop.org \
    --cc=linux-efi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=matt.fleming@intel.com \
    --cc=matt@console-pimps.org \
    --cc=mingo@redhat.com \
    --cc=mjg59@srcf.ucam.org \
    --cc=msalter@redhat.com \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.org \
    --cc=xen-devel@lists.xenproject.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.