aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/soc/fsl/qbman/bman_portal.c4
-rw-r--r--drivers/soc/fsl/qbman/qman_portal.c6
2 files changed, 7 insertions, 3 deletions
diff --git a/drivers/soc/fsl/qbman/bman_portal.c b/drivers/soc/fsl/qbman/bman_portal.c
index 2f71f7df3465..088cdfa7c034 100644
--- a/drivers/soc/fsl/qbman/bman_portal.c
+++ b/drivers/soc/fsl/qbman/bman_portal.c
@@ -65,7 +65,9 @@ static int bman_offline_cpu(unsigned int cpu)
65 if (!pcfg) 65 if (!pcfg)
66 return 0; 66 return 0;
67 67
68 irq_set_affinity(pcfg->irq, cpumask_of(0)); 68 /* use any other online CPU */
69 cpu = cpumask_any_but(cpu_online_mask, cpu);
70 irq_set_affinity(pcfg->irq, cpumask_of(cpu));
69 return 0; 71 return 0;
70} 72}
71 73
diff --git a/drivers/soc/fsl/qbman/qman_portal.c b/drivers/soc/fsl/qbman/qman_portal.c
index 3e9391d117c5..661c9b234d32 100644
--- a/drivers/soc/fsl/qbman/qman_portal.c
+++ b/drivers/soc/fsl/qbman/qman_portal.c
@@ -195,8 +195,10 @@ static int qman_offline_cpu(unsigned int cpu)
195 if (p) { 195 if (p) {
196 pcfg = qman_get_qm_portal_config(p); 196 pcfg = qman_get_qm_portal_config(p);
197 if (pcfg) { 197 if (pcfg) {
198 irq_set_affinity(pcfg->irq, cpumask_of(0)); 198 /* select any other online CPU */
199 qman_portal_update_sdest(pcfg, 0); 199 cpu = cpumask_any_but(cpu_online_mask, cpu);
200 irq_set_affinity(pcfg->irq, cpumask_of(cpu));
201 qman_portal_update_sdest(pcfg, cpu);
200 } 202 }
201 } 203 }
202 return 0; 204 return 0;