On Friday 15 December 2006 18:14, Dave Hansen wrote:
+=A0=A0=A0=A0=A0=A0=A0if (system_state >=3D SYSTEM_RUNNING)
+=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0return 1;
+ if (!early_pfn_valid(pfn))
+ return 0;
+ if (!early_pfn_in_nid(pfn, nid))
+ return 0;
I haven't tried it, but I assume this is still wrong. On cell,
we didn't actually hit the case where the init sections have
been overwritten, since we call __add_pages from an initcall.
However, the pages we add are not part of the early_node_map,
so early_pfn_in_nid() returns a bogus result, causing some
page structs not to get initialized. I believe your patch
is going in the right direction, but it does not solve the
bug we have...
Arnd <><