Merge branch 'topic/paca' into next
Bring in yet another series that touches KVM code, and might need to be merged into the kvm-ppc branch to resolve conflicts. This required some changes in pnv_power9_force_smt4_catch/release() due to the paca array becomming an array of pointers.
此提交包含在:
@@ -234,7 +234,7 @@ static void pseries_cpu_die(unsigned int cpu)
|
||||
* done here. Change isolate state to Isolate and
|
||||
* change allocation-state to Unusable.
|
||||
*/
|
||||
paca[cpu].cpu_start = 0;
|
||||
paca_ptrs[cpu]->cpu_start = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@@ -23,7 +23,12 @@
|
||||
|
||||
void pseries_kexec_cpu_down(int crash_shutdown, int secondary)
|
||||
{
|
||||
/* Don't risk a hypervisor call if we're crashing */
|
||||
/*
|
||||
* Don't risk a hypervisor call if we're crashing
|
||||
* XXX: Why? The hypervisor is not crashing. It might be better
|
||||
* to at least attempt unregister to avoid the hypervisor stepping
|
||||
* on our memory.
|
||||
*/
|
||||
if (firmware_has_feature(FW_FEATURE_SPLPAR) && !crash_shutdown) {
|
||||
int ret;
|
||||
int cpu = smp_processor_id();
|
||||
|
@@ -99,7 +99,7 @@ void vpa_init(int cpu)
|
||||
* reports that. All SPLPAR support SLB shadow buffer.
|
||||
*/
|
||||
if (!radix_enabled() && firmware_has_feature(FW_FEATURE_SPLPAR)) {
|
||||
addr = __pa(paca[cpu].slb_shadow_ptr);
|
||||
addr = __pa(paca_ptrs[cpu]->slb_shadow_ptr);
|
||||
ret = register_slb_shadow(hwcpu, addr);
|
||||
if (ret)
|
||||
pr_err("WARNING: SLB shadow buffer registration for "
|
||||
@@ -111,7 +111,7 @@ void vpa_init(int cpu)
|
||||
/*
|
||||
* Register dispatch trace log, if one has been allocated.
|
||||
*/
|
||||
pp = &paca[cpu];
|
||||
pp = paca_ptrs[cpu];
|
||||
dtl = pp->dispatch_log;
|
||||
if (dtl) {
|
||||
pp->dtl_ridx = 0;
|
||||
|
@@ -247,7 +247,7 @@ static int alloc_dispatch_logs(void)
|
||||
return 0;
|
||||
|
||||
for_each_possible_cpu(cpu) {
|
||||
pp = &paca[cpu];
|
||||
pp = paca_ptrs[cpu];
|
||||
dtl = kmem_cache_alloc(dtl_cache, GFP_KERNEL);
|
||||
if (!dtl) {
|
||||
pr_warn("Failed to allocate dispatch trace log for cpu %d\n",
|
||||
|
@@ -110,7 +110,7 @@ static inline int smp_startup_cpu(unsigned int lcpu)
|
||||
}
|
||||
|
||||
/* Fixup atomic count: it exited inside IRQ handler. */
|
||||
task_thread_info(paca[lcpu].__current)->preempt_count = 0;
|
||||
task_thread_info(paca_ptrs[lcpu]->__current)->preempt_count = 0;
|
||||
#ifdef CONFIG_HOTPLUG_CPU
|
||||
if (get_cpu_current_state(lcpu) == CPU_STATE_INACTIVE)
|
||||
goto out;
|
||||
@@ -165,7 +165,7 @@ static int smp_pSeries_kick_cpu(int nr)
|
||||
* cpu_start field to become non-zero After we set cpu_start,
|
||||
* the processor will continue on to secondary_start
|
||||
*/
|
||||
paca[nr].cpu_start = 1;
|
||||
paca_ptrs[nr]->cpu_start = 1;
|
||||
#ifdef CONFIG_HOTPLUG_CPU
|
||||
set_preferred_offline_state(nr, CPU_STATE_ONLINE);
|
||||
|
||||
|
新增問題並參考
封鎖使用者