forked from luck/tmp_suning_uos_patched
Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc
* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: powerpc/pseries: Fix kexec regression caused by CPPR tracking
This commit is contained in:
commit
9d2bc1a4cc
@ -784,9 +784,13 @@ static void xics_set_cpu_priority(unsigned char cppr)
|
|||||||
{
|
{
|
||||||
struct xics_cppr *os_cppr = &__get_cpu_var(xics_cppr);
|
struct xics_cppr *os_cppr = &__get_cpu_var(xics_cppr);
|
||||||
|
|
||||||
BUG_ON(os_cppr->index != 0);
|
/*
|
||||||
|
* we only really want to set the priority when there's
|
||||||
|
* just one cppr value on the stack
|
||||||
|
*/
|
||||||
|
WARN_ON(os_cppr->index != 0);
|
||||||
|
|
||||||
os_cppr->stack[os_cppr->index] = cppr;
|
os_cppr->stack[0] = cppr;
|
||||||
|
|
||||||
if (firmware_has_feature(FW_FEATURE_LPAR))
|
if (firmware_has_feature(FW_FEATURE_LPAR))
|
||||||
lpar_cppr_info(cppr);
|
lpar_cppr_info(cppr);
|
||||||
@ -821,8 +825,14 @@ void xics_setup_cpu(void)
|
|||||||
|
|
||||||
void xics_teardown_cpu(void)
|
void xics_teardown_cpu(void)
|
||||||
{
|
{
|
||||||
|
struct xics_cppr *os_cppr = &__get_cpu_var(xics_cppr);
|
||||||
int cpu = smp_processor_id();
|
int cpu = smp_processor_id();
|
||||||
|
|
||||||
|
/*
|
||||||
|
* we have to reset the cppr index to 0 because we're
|
||||||
|
* not going to return from the IPI
|
||||||
|
*/
|
||||||
|
os_cppr->index = 0;
|
||||||
xics_set_cpu_priority(0);
|
xics_set_cpu_priority(0);
|
||||||
|
|
||||||
/* Clear any pending IPI request */
|
/* Clear any pending IPI request */
|
||||||
|
Loading…
Reference in New Issue
Block a user