[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <AANLkTi=-LzZSgk9BYg8z6i5QrbRWPVBYtpqdkvsTc_E_@mail.gmail.com>
Date: Thu, 23 Sep 2010 17:04:31 +0800
From: huang ying <huang.ying.caritas@...il.com>
To: Andi Kleen <andi@...stfloor.org>
Cc: Huang Ying <ying.huang@...el.com>, Len Brown <lenb@...nel.org>,
linux-kernel@...r.kernel.org, linux-acpi@...r.kernel.org
Subject: Re: [PATCH 5/5] ACPI, APEI, Fix ERST MOVE_DATA instruction implementation
Hi,
On Tue, Sep 21, 2010 at 8:47 PM, Andi Kleen <andi@...stfloor.org> wrote:
> On Sun, Sep 19, 2010 at 11:00:35AM +0800, Huang Ying wrote:
>> diff --git a/drivers/acpi/apei/erst.c b/drivers/acpi/apei/erst.c
>> index 40b01c3..a103963 100644
>> --- a/drivers/acpi/apei/erst.c
>> +++ b/drivers/acpi/apei/erst.c
>> @@ -266,13 +266,27 @@ static int erst_exec_move_data(struct apei_exec_context *ctx,
>> {
>> int rc;
>> u64 offset;
>> + void *src, *dst;
>> +
>> + /* ioremap does not work in interrupt context */
>> + if (in_interrupt())
>> + return -EBUSY;
>
> That breaks serialization of machine checks no? If the BIOS uses MOVE_DATA
> How about using kmap_atomic instead?
In my test machine, MOVE_DATA is not used. So this does not breaks
serialization of machine checks.
We can not use kmap_atomic or kmap_atomic_pfn here. Because
kmap_atomic_xxx needs struct page, but the address provided by BIOS
may be in E820_RESERVED area, that is, the corresponding page may have
no struct page. Maybe we need another kmap_atomic implementation for
E820_RESERVED area.
Best Regards,
Huang Ying
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists