|
@@ -352,14 +352,14 @@ static __init void get_lowmem_redirect(unsigned long *base, unsigned long *size)
|
|
|
|
|
|
for (i = 0; i < ARRAY_SIZE(redir_addrs); i++) {
|
|
for (i = 0; i < ARRAY_SIZE(redir_addrs); i++) {
|
|
alias.v = uv_read_local_mmr(redir_addrs[i].alias);
|
|
alias.v = uv_read_local_mmr(redir_addrs[i].alias);
|
|
- if (alias.s.base == 0) {
|
|
|
|
|
|
+ if (alias.s.enable && alias.s.base == 0) {
|
|
*size = (1UL << alias.s.m_alias);
|
|
*size = (1UL << alias.s.m_alias);
|
|
redirect.v = uv_read_local_mmr(redir_addrs[i].redirect);
|
|
redirect.v = uv_read_local_mmr(redir_addrs[i].redirect);
|
|
*base = (unsigned long)redirect.s.dest_base << DEST_SHIFT;
|
|
*base = (unsigned long)redirect.s.dest_base << DEST_SHIFT;
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- BUG();
|
|
|
|
|
|
+ *base = *size = 0;
|
|
}
|
|
}
|
|
|
|
|
|
enum map_type {map_wb, map_uc};
|
|
enum map_type {map_wb, map_uc};
|
|
@@ -619,12 +619,12 @@ void __init uv_system_init(void)
|
|
uv_cpu_hub_info(cpu)->lowmem_remap_base = lowmem_redir_base;
|
|
uv_cpu_hub_info(cpu)->lowmem_remap_base = lowmem_redir_base;
|
|
uv_cpu_hub_info(cpu)->lowmem_remap_top = lowmem_redir_size;
|
|
uv_cpu_hub_info(cpu)->lowmem_remap_top = lowmem_redir_size;
|
|
uv_cpu_hub_info(cpu)->m_val = m_val;
|
|
uv_cpu_hub_info(cpu)->m_val = m_val;
|
|
- uv_cpu_hub_info(cpu)->n_val = m_val;
|
|
|
|
|
|
+ uv_cpu_hub_info(cpu)->n_val = n_val;
|
|
uv_cpu_hub_info(cpu)->numa_blade_id = blade;
|
|
uv_cpu_hub_info(cpu)->numa_blade_id = blade;
|
|
uv_cpu_hub_info(cpu)->blade_processor_id = lcpu;
|
|
uv_cpu_hub_info(cpu)->blade_processor_id = lcpu;
|
|
uv_cpu_hub_info(cpu)->pnode = pnode;
|
|
uv_cpu_hub_info(cpu)->pnode = pnode;
|
|
uv_cpu_hub_info(cpu)->pnode_mask = pnode_mask;
|
|
uv_cpu_hub_info(cpu)->pnode_mask = pnode_mask;
|
|
- uv_cpu_hub_info(cpu)->gpa_mask = (1 << (m_val + n_val)) - 1;
|
|
|
|
|
|
+ uv_cpu_hub_info(cpu)->gpa_mask = (1UL << (m_val + n_val)) - 1;
|
|
uv_cpu_hub_info(cpu)->gnode_upper = gnode_upper;
|
|
uv_cpu_hub_info(cpu)->gnode_upper = gnode_upper;
|
|
uv_cpu_hub_info(cpu)->gnode_extra = gnode_extra;
|
|
uv_cpu_hub_info(cpu)->gnode_extra = gnode_extra;
|
|
uv_cpu_hub_info(cpu)->global_mmr_base = mmr_base;
|
|
uv_cpu_hub_info(cpu)->global_mmr_base = mmr_base;
|