From: Yinghai Lu <yinghai.lu@oracle.com>
To: Konrad Rzeszutek Wilk <konrad@darnok.org>
Cc: Peter Jones <pjones@redhat.com>,
Konrad Rzeszutek Wilk <konrad@kernel.org>,
Ingo Molnar <mingo@elte.hu>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [PATCH] ibft: Fix finding ibft with ACPI tables
Date: Thu, 08 Dec 2011 08:51:22 -0800 [thread overview]
Message-ID: <4EE0EB0A.2090506@oracle.com> (raw)
In-Reply-To: <20111208142958.GA4096@andromeda.dapyr.net>
On 12/08/2011 06:29 AM, Konrad Rzeszutek Wilk wrote:
> On Thu, Dec 08, 2011 at 12:22:19AM -0800, Yinghai Lu wrote:
>> Found one system with UEFI/iBFT is not detected.
>
> Excellent.
>
> I have some comment in regards to the patch - it needs to be
> split in two: one part being _just_ the bug-fix, and the other
> being the cleanup/fixing printk.
>
> Please fix the subject - it should say: "Fix finding IBFT ACPI tables
> on UEFI."
>
>>
>> the root cause: for x86, We move calling of find_ibft_region() much earlier.
>> in setup_arch() before ACPI is enabled.
>
> We move calling? When did the find_ibft_region() get moved?
>
> I think you mean "find_ibft_region() gets called in setup_arch(), which
> is done before ACPI is enabled on UEFI. Hence it does not find the IBFT
> table' ?
it is called before
acpi_boot_table_init();
that is too early.
>
> What about the 'memblock_reserve' that find_ibft_region calls? Do
> we need to make a special call on UEFI to reserve that region? Or is
> that not neccessary since it is an ACPI table and has already
> been reserved?
yes, acpi table is reserved already.
>>
>> Try to all find_ibft_region() second times in ibft_init()
> ^^^ - all? ^^^^ - time
>
> How many iBFT tables are there? You can drop the 'all'.
will fix the typo.
>
>>
>> at that time ACPI iBFT already get permanent mapped with ioremap.
>> So isa_virt_to_bus will get wrong phys from right virt address.
>
> .. "will get wrong physical address from the virtual address."
>
>
>> We could just skip that printing.
>
> That sounds like another patch - a cleanup patch actually.
I prefer to having them together. otherwise on uefi/acpi case.
isa_virt_to_bus() will find one strange phys addr from virt with ioremap()
that could cause confuse.
>
>> For legacy one, print the found address early.
>>
>> Signed-off-by: Yinghai Lu <yinghai.lu@kernel.org>
>>
>> ---
>> drivers/firmware/iscsi_ibft.c | 18 +++++++++++++++---
>> drivers/firmware/iscsi_ibft_find.c | 1 +
>> 2 files changed, 16 insertions(+), 3 deletions(-)
>>
>> Index: linux-2.6/drivers/firmware/iscsi_ibft.c
>> ===================================================================
>> --- linux-2.6.orig/drivers/firmware/iscsi_ibft.c
>> +++ linux-2.6/drivers/firmware/iscsi_ibft.c
>> @@ -753,9 +753,21 @@ static int __init ibft_init(void)
>> {
>> int rc = 0;
>>
>> + /* find that from acpi tables */
>> + if (!ibft_addr) {
>> + unsigned long size = 0;
>> +
>> + find_ibft_region(&size);
>> + barrier();
>
> barrier? Please provide a comment detailing why you need it.
will remove that.
>
>> + }
>> +
>> if (ibft_addr) {
>> - printk(KERN_INFO "iBFT detected at 0x%llx.\n",
>> - (u64)isa_virt_to_bus(ibft_addr));
>> + /*
>> + * Second try is from acpi permanent map with ioremap
>> + * can not simply convert back to phys addr.
>> + * and We don't need to print that table phys addr.
>
> That comment makes sense in the git description but not in this
> code path (b/c when you look at the code you won't think of printing
> the "iBFT detected at XXX" comment.
>
> You should move part of this comment to the "if (!ibft_addr)" and just
> say:
> "Retry as on UEFI systems the setup_arch is called before ACPI tables
> are parsed is setup
> so we never get the data."
ok.
will send out updated version.
Thanks
Yinghai
next prev parent reply other threads:[~2011-12-08 16:52 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-08 8:22 [PATCH] ibft: Fix finding ibft with ACPI tables Yinghai Lu
2011-12-08 14:29 ` Konrad Rzeszutek Wilk
2011-12-08 15:01 ` Peter Jones
2011-12-08 16:51 ` Yinghai Lu [this message]
2011-12-08 16:52 ` [PATCH -v2] ibft: Fix finding IBFT ACPI table on UEFI Yinghai Lu
2011-12-08 19:08 ` Konrad Rzeszutek Wilk
2011-12-08 21:16 ` Yinghai Lu
2011-12-08 21:17 ` [PATCH -v3] " Yinghai Lu
2011-12-12 17:17 ` Konrad Rzeszutek Wilk
2011-12-12 20:39 ` Yinghai Lu
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=4EE0EB0A.2090506@oracle.com \
--to=yinghai.lu@oracle.com \
--cc=akpm@linux-foundation.org \
--cc=konrad@darnok.org \
--cc=konrad@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=pjones@redhat.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.