Re: [PATCH - resend] Memory-Hotplug: Fix the bug on interface/dev/mem for 64-bit kernel(v1)

From: Wu Fengguang
Date: Tue Jan 12 2010 - 08:36:21 EST


On Tue, Jan 12, 2010 at 10:39:03AM +0800, KAMEZAWA Hiroyuki wrote:
> On Tue, 12 Jan 2010 10:33:08 +0800
> Wu Fengguang <fengguang.wu@xxxxxxxxx> wrote:
>
> > Sure, here it is :)
> > ---
> > x86: use the generic page_is_ram()
> >
> > The generic resource based page_is_ram() works better with memory
> > hotplug/hotremove. So switch the x86 e820map based code to it.
> >
> > CC: Andi Kleen <andi@xxxxxxxxxxxxxx>
> > CC: KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx>
> > Signed-off-by: Wu Fengguang <fengguang.wu@xxxxxxxxx>
>
> Ack.

Thank you.

>
> > +#ifdef CONFIG_X86
> > + /*
> > + * A special case is the first 4Kb of memory;
> > + * This is a BIOS owned area, not kernel ram, but generally
> > + * not listed as such in the E820 table.
> > + */
> > + if (pfn == 0)
> > + return 0;
> > +
> > + /*
> > + * Second special case: Some BIOSen report the PC BIOS
> > + * area (640->1Mb) as ram even though it is not.
> > + */
> > + if (pfn >= (BIOS_BEGIN >> PAGE_SHIFT) &&
> > + pfn < (BIOS_END >> PAGE_SHIFT))
> > + return 0;
> > +#endif
>
> I'm glad if this part is sorted out in clean way ;)

Two possible solutions are:

- to exclude the above two ranges directly in e820 map;
- to not add the above two ranges into iomem_resource.

Yinghai, do you have any suggestions?
We want to get rid of the two explicit tests from page_is_ram().

Thanks,
Fengguang

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/