mirror of
https://github.com/torvalds/linux.git
synced 2026-11-06 21:58:01 +01:00
arm_mpam: Restore the error interrupt enable from mpam_cpu_online()
When all the associated CPUs to an MSC are offline, possibly caused by
PSCI_CPU_OFF, the power supply to the MSC can be cut off and all the
registers lose their value, including MPAMF_ECR.INTEN. Afterwards, we need
to explicitly set MPAMF_ECR.INTEN when the first associated CPU becomes
online and the power supply to the MSC is recovered.
Restore MPAMF_ECR.INTEN in mpam_cpu_online() when the first associated CPU
of the MSC becomes online.
Fixes: 49aa621c4d ("arm_mpam: Register and enable IRQs")
Signed-off-by: Ben Horgan <ben.horgan@arm.com>
Tested-by: Gavin Shan <gshan@redhat.com>
Reviewed-by: Gavin Shan <gshan@redhat.com>
Reviewed-by: James Morse <james.morse@arm.com>
[morse: rephrased commit message]
Signed-off-by: James Morse <james.morse@arm.com>
This commit is contained in:
parent
63b3495c3d
commit
9ced048825
|
|
@ -1856,8 +1856,14 @@ static int mpam_cpu_online(unsigned int cpu)
|
|||
if (msc->reenable_error_ppi)
|
||||
_enable_percpu_irq(&msc->reenable_error_ppi);
|
||||
|
||||
if (atomic_fetch_inc(&msc->online_refs) == 0)
|
||||
if (atomic_fetch_inc(&msc->online_refs) == 0) {
|
||||
mutex_lock(&msc->error_irq_lock);
|
||||
if (msc->error_irq_hw_enabled)
|
||||
mpam_touch_msc(msc, mpam_enable_msc_ecr, msc);
|
||||
mutex_unlock(&msc->error_irq_lock);
|
||||
|
||||
mpam_reprogram_msc(msc);
|
||||
}
|
||||
}
|
||||
|
||||
if (mpam_resctrl_enabled)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user