Merge branches 'for-next/52-bit-kva', 'for-next/cpu-topology', 'for-next/error-injection', 'for-next/perf', 'for-next/psci-cpuidle', 'for-next/rng', 'for-next/smpboot', 'for-next/tbi' and 'for-next/tlbi' into for-next/core
* for-next/52-bit-kva: (25 commits) Support for 52-bit virtual addressing in kernel space * for-next/cpu-topology: (9 commits) Move CPU topology parsing into core code and add support for ACPI 6.3 * for-next/error-injection: (2 commits) Support for function error injection via kprobes * for-next/perf: (8 commits) Support for i.MX8 DDR PMU and proper SMMUv3 group validation * for-next/psci-cpuidle: (7 commits) Move PSCI idle code into a new CPUidle driver * for-next/rng: (4 commits) Support for 'rng-seed' property being passed in the devicetree * for-next/smpboot: (3 commits) Reduce fragility of secondary CPU bringup in debug configurations * for-next/tbi: (10 commits) Introduce new syscall ABI with relaxed requirements for pointer tags * for-next/tlbi: (6 commits) Handle spurious page faults arising from kernel space
This commit is contained in:
parent
f32c7a8e45
b333b0ba23
d06fa5a118
42d038c4fb
3724e186fe
d55c5f28af
dd753d961c
ebef746543
92af2b6961
5c062ef415
commit
ac12cf85d6
89 changed files with 1975 additions and 972 deletions
|
|
@ -170,9 +170,13 @@ static void __init smp_build_mpidr_hash(void)
|
|||
|
||||
static void __init setup_machine_fdt(phys_addr_t dt_phys)
|
||||
{
|
||||
void *dt_virt = fixmap_remap_fdt(dt_phys);
|
||||
int size;
|
||||
void *dt_virt = fixmap_remap_fdt(dt_phys, &size, PAGE_KERNEL);
|
||||
const char *name;
|
||||
|
||||
if (dt_virt)
|
||||
memblock_reserve(dt_phys, size);
|
||||
|
||||
if (!dt_virt || !early_init_dt_scan(dt_virt)) {
|
||||
pr_crit("\n"
|
||||
"Error: invalid device tree blob at physical address %pa (virtual address 0x%p)\n"
|
||||
|
|
@ -184,6 +188,9 @@ static void __init setup_machine_fdt(phys_addr_t dt_phys)
|
|||
cpu_relax();
|
||||
}
|
||||
|
||||
/* Early fixups are done, map the FDT as read-only now */
|
||||
fixmap_remap_fdt(dt_phys, &size, PAGE_KERNEL_RO);
|
||||
|
||||
name = of_flat_dt_get_machine_name();
|
||||
if (!name)
|
||||
return;
|
||||
|
|
@ -357,6 +364,15 @@ void __init setup_arch(char **cmdline_p)
|
|||
}
|
||||
}
|
||||
|
||||
static inline bool cpu_can_disable(unsigned int cpu)
|
||||
{
|
||||
#ifdef CONFIG_HOTPLUG_CPU
|
||||
if (cpu_ops[cpu] && cpu_ops[cpu]->cpu_can_disable)
|
||||
return cpu_ops[cpu]->cpu_can_disable(cpu);
|
||||
#endif
|
||||
return false;
|
||||
}
|
||||
|
||||
static int __init topology_init(void)
|
||||
{
|
||||
int i;
|
||||
|
|
@ -366,7 +382,7 @@ static int __init topology_init(void)
|
|||
|
||||
for_each_possible_cpu(i) {
|
||||
struct cpu *cpu = &per_cpu(cpu_data.cpu, i);
|
||||
cpu->hotpluggable = 1;
|
||||
cpu->hotpluggable = cpu_can_disable(i);
|
||||
register_cpu(cpu, i);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue