|
@@ -48,8 +48,6 @@
|
|
|
#include <asm/e820.h>
|
|
|
#include <asm/ipi.h>
|
|
|
|
|
|
-#define MB_TO_PAGES(addr) ((addr) << (20 - PAGE_SHIFT))
|
|
|
-
|
|
|
int found_numaq;
|
|
|
|
|
|
/*
|
|
@@ -79,25 +77,20 @@ int quad_local_to_mp_bus_id[NR_CPUS/4][4];
|
|
|
static inline void numaq_register_node(int node, struct sys_cfg_data *scd)
|
|
|
{
|
|
|
struct eachquadmem *eq = scd->eq + node;
|
|
|
+ u64 start = (u64)(eq->hi_shrd_mem_start - eq->priv_mem_size) << 20;
|
|
|
+ u64 end = (u64)(eq->hi_shrd_mem_start + eq->hi_shrd_mem_size) << 20;
|
|
|
+ int ret;
|
|
|
|
|
|
- node_set_online(node);
|
|
|
-
|
|
|
- /* Convert to pages */
|
|
|
- node_start_pfn[node] =
|
|
|
- MB_TO_PAGES(eq->hi_shrd_mem_start - eq->priv_mem_size);
|
|
|
-
|
|
|
- node_end_pfn[node] =
|
|
|
- MB_TO_PAGES(eq->hi_shrd_mem_start + eq->hi_shrd_mem_size);
|
|
|
-
|
|
|
- memblock_x86_register_active_regions(node, node_start_pfn[node],
|
|
|
- node_end_pfn[node]);
|
|
|
+ node_set(node, numa_nodes_parsed);
|
|
|
+ ret = numa_add_memblk(node, start, end);
|
|
|
+ BUG_ON(ret < 0);
|
|
|
}
|
|
|
|
|
|
/*
|
|
|
* Function: smp_dump_qct()
|
|
|
*
|
|
|
* Description: gets memory layout from the quad config table. This
|
|
|
- * function also updates node_online_map with the nodes (quads) present.
|
|
|
+ * function also updates numa_nodes_parsed with the nodes (quads) present.
|
|
|
*/
|
|
|
static void __init smp_dump_qct(void)
|
|
|
{
|
|
@@ -106,7 +99,6 @@ static void __init smp_dump_qct(void)
|
|
|
|
|
|
scd = (void *)__va(SYS_CFG_DATA_PRIV_ADDR);
|
|
|
|
|
|
- nodes_clear(node_online_map);
|
|
|
for_each_node(node) {
|
|
|
if (scd->quads_present31_0 & (1 << node))
|
|
|
numaq_register_node(node, scd);
|
|
@@ -276,14 +268,14 @@ static __init void early_check_numaq(void)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-int __init get_memcfg_numaq(void)
|
|
|
+int __init numaq_numa_init(void)
|
|
|
{
|
|
|
early_check_numaq();
|
|
|
if (!found_numaq)
|
|
|
- return 0;
|
|
|
+ return -ENOENT;
|
|
|
smp_dump_qct();
|
|
|
|
|
|
- return 1;
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
#define NUMAQ_APIC_DFR_VALUE (APIC_DFR_CLUSTER)
|