From: Matt Fleming <matt@console-pimps.org>
To: Dave Young <dyoung@redhat.com>
Cc: mjg59@srcf.ucam.org, linux-efi@vger.kernel.org,
toshi.kani@hp.com, greg@kroah.com, x86@kernel.org,
kexec@lists.infradead.org, linux-kernel@vger.kernel.org,
James.Bottomley@HansenPartnership.com, horms@verge.net.au,
bp@alien8.de, ebiederm@xmission.com, hpa@zytor.com,
vgoyal@redhat.com
Subject: Re: [PATCH v4 07/12] efi: passing kexec necessary efi data via setup_data
Date: Wed, 27 Nov 2013 10:17:47 +0000 [thread overview]
Message-ID: <20131127101747.GC18170@console-pimps.org> (raw)
In-Reply-To: <20131127045237.GC11852@dhcp-16-126.nay.redhat.com>
On Wed, 27 Nov, at 12:52:37PM, Dave Young wrote:
> To make it more readable, I will change them like below:
>
> p = efi_runtime_map;
> md = efi_setup->map;
> for (i = 0; i < nr_efi_runtime_map; i++) {
> [...]
> md += 1;
> }
Actually, md++ is the canonical way to write this.
> >
> > > + efi_map_region_fixed(md);
> > > + size = md->num_pages << PAGE_SHIFT;
> > > + end = md->phys_addr + size;
> > > +
> > > + systab = (u64) (unsigned long) efi_phys.systab;
> > > + if (md->phys_addr <= systab && systab < end) {
> > > + systab += md->virt_addr - md->phys_addr;
> > > + efi.systab =
> > > + (efi_system_table_t *) (unsigned long) systab;
> > > + }
> > > + if (efi_runtime_map) {
> > > + memcpy(p, md, memmap.desc_size);
> > > + p += memmap.desc_size;
> > > + }
> >
> > Is this if () needed? Is it possible to enter the loop and have
> > 'efi_runtime_map' be NULL?
>
> Yes, it is needed. if efi_runtime_map kmalloc fails I only print error, do not
> return so kernel can still boot, just kexec on efi will not work that has been
> put in the error message.
OK. On second thought, is there any way to turn the above code into a
call to efi_save_runtime_map()? Because you've basically duplicated that
code and I can definitely envisage the two code paths fragmenting over
time, e.g. when someone makes changes to one but not the other.
--
Matt Fleming, Intel Open Source Technology Center
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
WARNING: multiple messages have this Message-ID (diff)
From: Matt Fleming <matt-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org>
To: Dave Young <dyoung-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
x86-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
mjg59-1xO5oi07KQx4cg9Nei1l7Q@public.gmane.org,
hpa-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org,
James.Bottomley-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org,
vgoyal-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org,
horms-/R6kz+dDXgpPR4JQBCEnsQ@public.gmane.org,
kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
bp-Gina5bIWoIWzQB+pC5nmwQ@public.gmane.org,
greg-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org,
toshi.kani-VXdhtT5mjnY@public.gmane.org
Subject: Re: [PATCH v4 07/12] efi: passing kexec necessary efi data via setup_data
Date: Wed, 27 Nov 2013 10:17:47 +0000 [thread overview]
Message-ID: <20131127101747.GC18170@console-pimps.org> (raw)
In-Reply-To: <20131127045237.GC11852-je1gSBvt1TcFLmT5oZ11vB/sF2h8X+2i0E9HWUfgJXw@public.gmane.org>
On Wed, 27 Nov, at 12:52:37PM, Dave Young wrote:
> To make it more readable, I will change them like below:
>
> p = efi_runtime_map;
> md = efi_setup->map;
> for (i = 0; i < nr_efi_runtime_map; i++) {
> [...]
> md += 1;
> }
Actually, md++ is the canonical way to write this.
> >
> > > + efi_map_region_fixed(md);
> > > + size = md->num_pages << PAGE_SHIFT;
> > > + end = md->phys_addr + size;
> > > +
> > > + systab = (u64) (unsigned long) efi_phys.systab;
> > > + if (md->phys_addr <= systab && systab < end) {
> > > + systab += md->virt_addr - md->phys_addr;
> > > + efi.systab =
> > > + (efi_system_table_t *) (unsigned long) systab;
> > > + }
> > > + if (efi_runtime_map) {
> > > + memcpy(p, md, memmap.desc_size);
> > > + p += memmap.desc_size;
> > > + }
> >
> > Is this if () needed? Is it possible to enter the loop and have
> > 'efi_runtime_map' be NULL?
>
> Yes, it is needed. if efi_runtime_map kmalloc fails I only print error, do not
> return so kernel can still boot, just kexec on efi will not work that has been
> put in the error message.
OK. On second thought, is there any way to turn the above code into a
call to efi_save_runtime_map()? Because you've basically duplicated that
code and I can definitely envisage the two code paths fragmenting over
time, e.g. when someone makes changes to one but not the other.
--
Matt Fleming, Intel Open Source Technology Center
WARNING: multiple messages have this Message-ID (diff)
From: Matt Fleming <matt@console-pimps.org>
To: Dave Young <dyoung@redhat.com>
Cc: linux-kernel@vger.kernel.org, linux-efi@vger.kernel.org,
x86@kernel.org, mjg59@srcf.ucam.org, hpa@zytor.com,
James.Bottomley@HansenPartnership.com, vgoyal@redhat.com,
ebiederm@xmission.com, horms@verge.net.au,
kexec@lists.infradead.org, bp@alien8.de, greg@kroah.com,
toshi.kani@hp.com
Subject: Re: [PATCH v4 07/12] efi: passing kexec necessary efi data via setup_data
Date: Wed, 27 Nov 2013 10:17:47 +0000 [thread overview]
Message-ID: <20131127101747.GC18170@console-pimps.org> (raw)
In-Reply-To: <20131127045237.GC11852@dhcp-16-126.nay.redhat.com>
On Wed, 27 Nov, at 12:52:37PM, Dave Young wrote:
> To make it more readable, I will change them like below:
>
> p = efi_runtime_map;
> md = efi_setup->map;
> for (i = 0; i < nr_efi_runtime_map; i++) {
> [...]
> md += 1;
> }
Actually, md++ is the canonical way to write this.
> >
> > > + efi_map_region_fixed(md);
> > > + size = md->num_pages << PAGE_SHIFT;
> > > + end = md->phys_addr + size;
> > > +
> > > + systab = (u64) (unsigned long) efi_phys.systab;
> > > + if (md->phys_addr <= systab && systab < end) {
> > > + systab += md->virt_addr - md->phys_addr;
> > > + efi.systab =
> > > + (efi_system_table_t *) (unsigned long) systab;
> > > + }
> > > + if (efi_runtime_map) {
> > > + memcpy(p, md, memmap.desc_size);
> > > + p += memmap.desc_size;
> > > + }
> >
> > Is this if () needed? Is it possible to enter the loop and have
> > 'efi_runtime_map' be NULL?
>
> Yes, it is needed. if efi_runtime_map kmalloc fails I only print error, do not
> return so kernel can still boot, just kexec on efi will not work that has been
> put in the error message.
OK. On second thought, is there any way to turn the above code into a
call to efi_save_runtime_map()? Because you've basically duplicated that
code and I can definitely envisage the two code paths fragmenting over
time, e.g. when someone makes changes to one but not the other.
--
Matt Fleming, Intel Open Source Technology Center
next prev parent reply other threads:[~2013-11-27 10:18 UTC|newest]
Thread overview: 214+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-26 5:57 [PATCH v4 00/12] kexec kernel efi runtime support Dave Young
2013-11-26 5:57 ` Dave Young
2013-11-26 5:57 ` Dave Young
2013-11-26 5:57 ` [PATCH v4 01/12] efi: remove unused variables in __map_region Dave Young
2013-11-26 5:57 ` Dave Young
2013-11-26 5:57 ` Dave Young
2013-11-26 5:57 ` [PATCH v4 02/12] efi: add a wrapper function efi_map_region_fixed Dave Young
2013-11-26 5:57 ` Dave Young
2013-11-26 5:57 ` [PATCH v4 03/12] efi: reserve boot service fix Dave Young
2013-11-26 5:57 ` Dave Young
2013-11-26 5:57 ` [PATCH v4 04/12] efi: cleanup efi_enter_virtual_mode function Dave Young
2013-11-26 5:57 ` Dave Young
2013-11-26 5:57 ` Dave Young
2013-11-26 14:51 ` Matt Fleming
2013-11-26 14:51 ` Matt Fleming
2013-11-26 14:51 ` Matt Fleming
2013-11-26 5:57 ` [PATCH v4 05/12] efi: export more efi table variable to sysfs Dave Young
2013-11-26 5:57 ` Dave Young
2013-11-26 5:57 ` Dave Young
2013-11-26 8:50 ` Borislav Petkov
2013-11-26 8:50 ` Borislav Petkov
2013-11-26 9:13 ` Dave Young
2013-11-26 9:13 ` Dave Young
2013-11-26 9:13 ` Dave Young
2013-11-26 15:57 ` Matt Fleming
2013-11-26 15:57 ` Matt Fleming
2013-11-26 15:57 ` Matt Fleming
2013-11-27 2:53 ` Dave Young
2013-11-27 2:53 ` Dave Young
2013-11-27 2:53 ` Dave Young
2013-11-26 5:57 ` [PATCH v4 06/12] efi: export efi runtime memory mapping " Dave Young
2013-11-26 5:57 ` Dave Young
2013-11-26 5:57 ` Dave Young
2013-11-26 19:30 ` Matt Fleming
2013-11-26 19:30 ` Matt Fleming
2013-11-26 19:30 ` Matt Fleming
2013-11-27 3:07 ` Dave Young
2013-11-27 3:07 ` Dave Young
2013-11-27 3:07 ` Dave Young
2013-11-27 8:17 ` Dave Young
2013-11-27 8:17 ` Dave Young
2013-11-27 8:17 ` Dave Young
2013-11-27 11:44 ` Borislav Petkov
2013-11-27 11:44 ` Borislav Petkov
2013-11-27 11:44 ` Borislav Petkov
2013-11-29 9:40 ` Dave Young
2013-11-29 9:40 ` Dave Young
2013-11-29 9:40 ` Dave Young
2013-11-29 11:50 ` Borislav Petkov
2013-11-29 11:50 ` Borislav Petkov
2013-11-29 11:50 ` Borislav Petkov
2013-11-29 11:59 ` Matt Fleming
2013-11-29 11:59 ` Matt Fleming
2013-11-29 11:59 ` Matt Fleming
2013-12-02 2:51 ` Dave Young
2013-12-02 2:51 ` Dave Young
2013-12-02 2:51 ` Dave Young
2013-12-02 2:59 ` Dave Young
2013-12-02 2:59 ` Dave Young
2013-12-02 2:59 ` Dave Young
2013-12-02 9:40 ` Borislav Petkov
2013-12-02 9:40 ` Borislav Petkov
2013-12-02 9:40 ` Borislav Petkov
2013-12-07 9:01 ` Dave Young
2013-12-07 9:01 ` Dave Young
2013-12-07 9:01 ` Dave Young
2013-12-07 13:30 ` Borislav Petkov
2013-12-07 13:30 ` Borislav Petkov
2013-12-07 13:30 ` Borislav Petkov
2013-12-07 21:46 ` H. Peter Anvin
2013-12-07 21:46 ` H. Peter Anvin
2013-12-07 21:46 ` H. Peter Anvin
2013-12-09 2:23 ` Dave Young
2013-12-09 2:23 ` Dave Young
2013-12-09 2:23 ` Dave Young
2013-11-26 5:57 ` [PATCH v4 07/12] efi: passing kexec necessary efi data via setup_data Dave Young
2013-11-26 5:57 ` Dave Young
2013-11-26 5:57 ` Dave Young
2013-11-26 22:04 ` Matt Fleming
2013-11-26 22:04 ` Matt Fleming
2013-11-26 22:04 ` Matt Fleming
2013-11-27 4:52 ` Dave Young
2013-11-27 4:52 ` Dave Young
2013-11-27 4:52 ` Dave Young
2013-11-27 10:17 ` Matt Fleming [this message]
2013-11-27 10:17 ` Matt Fleming
2013-11-27 10:17 ` Matt Fleming
2013-11-29 9:46 ` Dave Young
2013-11-29 9:46 ` Dave Young
2013-11-29 9:46 ` Dave Young
2013-11-27 14:07 ` Borislav Petkov
2013-11-27 14:07 ` Borislav Petkov
2013-11-27 14:07 ` Borislav Petkov
2013-11-29 9:14 ` Dave Young
2013-11-29 9:14 ` Dave Young
2013-11-29 9:14 ` Dave Young
2013-11-29 16:46 ` Borislav Petkov
2013-11-29 16:46 ` Borislav Petkov
2013-11-29 16:46 ` Borislav Petkov
2013-12-02 2:49 ` Dave Young
2013-12-02 2:49 ` Dave Young
2013-12-02 2:49 ` Dave Young
2013-12-02 9:44 ` Borislav Petkov
2013-12-02 9:44 ` Borislav Petkov
2013-12-02 9:44 ` Borislav Petkov
2013-12-02 22:33 ` Toshi Kani
2013-12-02 22:33 ` Toshi Kani
2013-12-02 22:33 ` Toshi Kani
2013-12-03 1:31 ` Toshi Kani
2013-12-03 1:31 ` Toshi Kani
2013-12-03 1:31 ` Toshi Kani
2013-12-03 1:56 ` Dave Young
2013-12-03 1:56 ` Dave Young
2013-12-03 1:56 ` Dave Young
2013-12-03 15:39 ` Toshi Kani
2013-12-03 15:39 ` Toshi Kani
2013-12-03 15:39 ` Toshi Kani
2013-12-04 2:46 ` Dave Young
2013-12-04 2:46 ` Dave Young
2013-12-04 2:46 ` Dave Young
2013-12-04 16:43 ` Toshi Kani
2013-12-04 16:43 ` Toshi Kani
2013-12-04 16:43 ` Toshi Kani
2013-12-05 1:56 ` Dave Young
2013-12-05 1:56 ` Dave Young
2013-12-05 1:56 ` Dave Young
2013-12-05 11:51 ` Borislav Petkov
2013-12-05 11:51 ` Borislav Petkov
2013-12-05 11:51 ` Borislav Petkov
2013-12-05 15:56 ` Toshi Kani
2013-12-05 15:56 ` Toshi Kani
2013-12-05 15:56 ` Toshi Kani
2013-12-05 20:52 ` Borislav Petkov
2013-12-05 20:52 ` Borislav Petkov
2013-12-05 20:52 ` Borislav Petkov
2013-12-06 1:31 ` Dave Young
2013-12-06 1:31 ` Dave Young
2013-12-06 1:31 ` Dave Young
2013-11-26 5:57 ` [PATCH v4 08/12] efi: only print saved efi runtime maps instead of all memmap ranges for kexec Dave Young
2013-11-26 5:57 ` Dave Young
2013-11-26 5:57 ` Dave Young
2013-11-27 10:27 ` Matt Fleming
2013-11-27 10:27 ` Matt Fleming
2013-11-27 14:27 ` Borislav Petkov
2013-11-27 14:27 ` Borislav Petkov
2013-11-27 14:27 ` Borislav Petkov
2013-11-29 8:50 ` Dave Young
2013-11-29 8:50 ` Dave Young
2013-11-29 8:50 ` Dave Young
2013-11-29 16:47 ` Borislav Petkov
2013-11-29 16:47 ` Borislav Petkov
2013-11-29 16:47 ` Borislav Petkov
2013-12-02 2:38 ` Dave Young
2013-12-02 2:38 ` Dave Young
2013-12-02 2:38 ` Dave Young
2013-11-29 8:47 ` Dave Young
2013-11-29 8:47 ` Dave Young
2013-11-29 8:47 ` Dave Young
2013-11-26 5:57 ` [PATCH v4 09/12] x86: add xloadflags bit for efi runtime support on kexec Dave Young
2013-11-26 5:57 ` Dave Young
2013-11-26 5:57 ` Dave Young
2013-11-27 14:27 ` Borislav Petkov
2013-11-27 14:27 ` Borislav Petkov
2013-11-27 14:27 ` Borislav Petkov
2013-11-29 8:44 ` Dave Young
2013-11-29 8:44 ` Dave Young
2013-11-29 8:44 ` Dave Young
2013-11-26 5:57 ` [PATCH v4 10/12] x86: export x86 boot_params to sysfs Dave Young
2013-11-26 5:57 ` Dave Young
2013-11-26 5:57 ` Dave Young
2013-11-27 11:20 ` Matt Fleming
2013-11-27 11:20 ` Matt Fleming
2013-11-27 11:20 ` Matt Fleming
2013-11-29 9:44 ` Dave Young
2013-11-29 9:44 ` Dave Young
2013-11-29 9:44 ` Dave Young
2013-11-27 14:56 ` Borislav Petkov
2013-11-27 14:56 ` Borislav Petkov
2013-11-27 14:56 ` Borislav Petkov
2013-11-29 8:42 ` Dave Young
2013-11-29 8:42 ` Dave Young
2013-11-29 8:42 ` Dave Young
2013-11-26 5:57 ` [PATCH v4 11/12] x86: reserve setup_data ranges late after parsing memmap cmdline Dave Young
2013-11-26 5:57 ` Dave Young
2013-11-26 5:57 ` Dave Young
2013-11-27 15:07 ` Borislav Petkov
2013-11-27 15:07 ` Borislav Petkov
2013-11-29 8:35 ` Dave Young
2013-11-29 8:35 ` Dave Young
2013-11-29 8:35 ` Dave Young
2013-11-29 16:56 ` Borislav Petkov
2013-11-29 16:56 ` Borislav Petkov
2013-11-29 16:56 ` Borislav Petkov
2013-11-26 5:57 ` [PATCH v4 12/12] x86: kdebugfs do not use __va for getting setup_data virt addr Dave Young
2013-11-26 5:57 ` Dave Young
2013-11-26 5:57 ` Dave Young
2013-11-26 6:04 ` [PATCH v4 00/12] kexec kernel efi runtime support Dave Young
2013-11-26 6:04 ` Dave Young
2013-11-26 6:04 ` Dave Young
2013-11-27 12:50 ` Matt Fleming
2013-11-27 12:50 ` Matt Fleming
2013-11-27 12:50 ` Matt Fleming
2013-11-28 2:08 ` Dave Young
2013-11-28 2:08 ` Dave Young
2013-11-28 2:08 ` Dave Young
2013-11-29 8:28 ` Dave Young
2013-11-29 8:28 ` Dave Young
2013-11-29 8:28 ` Dave Young
2013-11-29 17:02 ` Borislav Petkov
2013-11-29 17:02 ` Borislav Petkov
2013-11-29 17:02 ` Borislav Petkov
2013-12-02 2:32 ` Dave Young
2013-12-02 2:32 ` Dave Young
2013-12-02 2:32 ` Dave Young
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=20131127101747.GC18170@console-pimps.org \
--to=matt@console-pimps.org \
--cc=James.Bottomley@HansenPartnership.com \
--cc=bp@alien8.de \
--cc=dyoung@redhat.com \
--cc=ebiederm@xmission.com \
--cc=greg@kroah.com \
--cc=horms@verge.net.au \
--cc=hpa@zytor.com \
--cc=kexec@lists.infradead.org \
--cc=linux-efi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mjg59@srcf.ucam.org \
--cc=toshi.kani@hp.com \
--cc=vgoyal@redhat.com \
--cc=x86@kernel.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.