Commit d8bac81e authored by Madalin Bucur's avatar Madalin Bucur Committed by Li Yang
Browse files

soc: fsl: qbman: replace CPU 0 with any online CPU in hotplug handlers



The existing code sets portal IRQ affinity to CPU 0 in the
offline hotplug handler. If CPU 0 is offline this is invalid.
Use a different online CPU instead.

Signed-off-by: default avatarMadalin Bucur <madalin.bucur@nxp.com>
Signed-off-by: default avatarLi Yang <leoyang.li@nxp.com>
parent 9beaf661
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -65,7 +65,9 @@ static int bman_offline_cpu(unsigned int cpu)
	if (!pcfg)
		return 0;

	irq_set_affinity(pcfg->irq, cpumask_of(0));
	/* use any other online CPU */
	cpu = cpumask_any_but(cpu_online_mask, cpu);
	irq_set_affinity(pcfg->irq, cpumask_of(cpu));
	return 0;
}

+4 −2
Original line number Diff line number Diff line
@@ -195,8 +195,10 @@ static int qman_offline_cpu(unsigned int cpu)
	if (p) {
		pcfg = qman_get_qm_portal_config(p);
		if (pcfg) {
			irq_set_affinity(pcfg->irq, cpumask_of(0));
			qman_portal_update_sdest(pcfg, 0);
			/* select any other online CPU */
			cpu = cpumask_any_but(cpu_online_mask, cpu);
			irq_set_affinity(pcfg->irq, cpumask_of(cpu));
			qman_portal_update_sdest(pcfg, cpu);
		}
	}
	return 0;