ARM fixes for 5.5-rc:
- fix CPU topology setup for SCHED_MC case - fix VDSO regression -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEuNNh8scc2k/wOAE+9OeQG+StrGQFAl3qQUYACgkQ9OeQG+St rGTg0g/+LThc7XoEkGzXbswGtAZU0Tv+pcNXi4G+KAlePIutHpcf9ogY//mfXyVp SHLQBb0fNKzygt5e1Aq1X+99RsGbI7oMgKTiQgLrb6MPrhOLWwCWymnbyaTAcKgD QXHghta7tEGunvnnRWJTKWG24qoTvM1JFoUnHnrArYYyJoyRzQE2kMK2S3Z6X6xp Rcx152s/7lPdwPB5i6hyIlYVYVQN6JAz0w1nyrqmwjGTZU1NvPQaAemKYO3Ti4pD 8HjMGtLa4AhgngkKiZt0gFI75kKp2Uf/rcowC4Li6ZQua1kYCankCYXoc9soCkHu 1Qn0WyEZXVtMGMenEOGeYo/neTfhcBEkY3CMQO/QMfcpsFFn2fmiBmwMLvE8RMJ7 UDiNBqVW8eZL45h6BF6QefWUzbzFQjfe2SXk5C58WrvlaZPldTucSmNLA1GoFn/p Ni+KqDHUACTNMb87kEDAfJGx3znS2EtdiwFfb3lqHnQ5GO6GdKrMPC1GfK32LgfO TN4nVEYu71ZMINidxuK0wuSRK2eadY6M08lKlrikGbkQJlo0R6YGuwzKiRmlHq5H QldDMKhPRuxLMTViphqRdHwoWRPpvbwVbJDjwea0run0lgCzEq4J+s2X/CXUZIAM b1y4APz/UgGyiYzmstZCYvfYZ0Tq8AU52757jFWjBoiEr+xEppE= =gTck -----END PGP SIGNATURE----- Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm Pull ARM fixes from Russell King: - fix CPU topology setup for SCHED_MC case - fix VDSO regression * tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm: ARM: 8947/1: Fix __arch_get_hw_counter() access to CNTVCT ARM: 8943/1: Fix topology setup in case of CPU hotplug for CONFIG_SCHED_MC
This commit is contained in:
commit
eea2d5da29
|
@ -75,6 +75,9 @@ static __always_inline u64 __arch_get_hw_counter(int clock_mode)
|
||||||
#ifdef CONFIG_ARM_ARCH_TIMER
|
#ifdef CONFIG_ARM_ARCH_TIMER
|
||||||
u64 cycle_now;
|
u64 cycle_now;
|
||||||
|
|
||||||
|
if (!clock_mode)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
isb();
|
isb();
|
||||||
cycle_now = read_sysreg(CNTVCT);
|
cycle_now = read_sysreg(CNTVCT);
|
||||||
|
|
||||||
|
|
|
@ -240,6 +240,10 @@ int __cpu_disable(void)
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
#ifdef CONFIG_GENERIC_ARCH_TOPOLOGY
|
||||||
|
remove_cpu_topology(cpu);
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Take this CPU offline. Once we clear this, we can't return,
|
* Take this CPU offline. Once we clear this, we can't return,
|
||||||
* and we must not schedule until we're ready to give up the cpu.
|
* and we must not schedule until we're ready to give up the cpu.
|
||||||
|
|
|
@ -196,9 +196,8 @@ void store_cpu_topology(unsigned int cpuid)
|
||||||
struct cpu_topology *cpuid_topo = &cpu_topology[cpuid];
|
struct cpu_topology *cpuid_topo = &cpu_topology[cpuid];
|
||||||
unsigned int mpidr;
|
unsigned int mpidr;
|
||||||
|
|
||||||
/* If the cpu topology has been already set, just return */
|
if (cpuid_topo->package_id != -1)
|
||||||
if (cpuid_topo->core_id != -1)
|
goto topology_populated;
|
||||||
return;
|
|
||||||
|
|
||||||
mpidr = read_cpuid_mpidr();
|
mpidr = read_cpuid_mpidr();
|
||||||
|
|
||||||
|
@ -231,14 +230,15 @@ void store_cpu_topology(unsigned int cpuid)
|
||||||
cpuid_topo->package_id = -1;
|
cpuid_topo->package_id = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
update_siblings_masks(cpuid);
|
|
||||||
|
|
||||||
update_cpu_capacity(cpuid);
|
update_cpu_capacity(cpuid);
|
||||||
|
|
||||||
pr_info("CPU%u: thread %d, cpu %d, socket %d, mpidr %x\n",
|
pr_info("CPU%u: thread %d, cpu %d, socket %d, mpidr %x\n",
|
||||||
cpuid, cpu_topology[cpuid].thread_id,
|
cpuid, cpu_topology[cpuid].thread_id,
|
||||||
cpu_topology[cpuid].core_id,
|
cpu_topology[cpuid].core_id,
|
||||||
cpu_topology[cpuid].package_id, mpidr);
|
cpu_topology[cpuid].package_id, mpidr);
|
||||||
|
|
||||||
|
topology_populated:
|
||||||
|
update_siblings_masks(cpuid);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int cpu_corepower_flags(void)
|
static inline int cpu_corepower_flags(void)
|
||||||
|
|
Loading…
Reference in New Issue