Re: [PATCH v3 2/3] irqchip/loongson-eiointc: Refine irq affinity setting during resume

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



My work area is hypervisor and I find gaps between other architectures and hypervisors, try to keep up. And We prepare to provide eiointc virtualization extension patch, so there is such patch.

For internal repo, you can give suggestion in internal forum to driver owner. This is linux kernel mainline forum, I suggest we had better discuss patch based on mainline base code.

Regards
Bibo Mao

On 2024/1/24 下午5:56, Huacai Chen wrote:
I can give an Acked-by if these lines are also removed in our internal repo.

Huacai

On Thu, Jan 18, 2024 at 8:15 PM Bibo Mao <maobibo@xxxxxxxxxxx> wrote:

During suspend and resume, CPUs except CPU0 are hot-unpluged and IRQs
are migrated to CPU0. So it is not necessary to restore irq affinity for
eiointc irq controller when system resumes. This patch removes the piece
of code about irq affinity restoring in function eiointc_resume.

Signed-off-by: Bibo Mao <maobibo@xxxxxxxxxxx>
---
  drivers/irqchip/irq-loongson-eiointc.c | 16 ----------------
  1 file changed, 16 deletions(-)

diff --git a/drivers/irqchip/irq-loongson-eiointc.c b/drivers/irqchip/irq-loongson-eiointc.c
index 6143adb1b73b..86f4faad0695 100644
--- a/drivers/irqchip/irq-loongson-eiointc.c
+++ b/drivers/irqchip/irq-loongson-eiointc.c
@@ -315,23 +315,7 @@ static int eiointc_suspend(void)

  static void eiointc_resume(void)
  {
-       int i, j;
-       struct irq_desc *desc;
-       struct irq_data *irq_data;
-
         eiointc_router_init(0);
-
-       for (i = 0; i < nr_pics; i++) {
-               for (j = 0; j < eiointc_priv[0]->vec_count; j++) {
-                       desc = irq_resolve_mapping(eiointc_priv[i]->eiointc_domain, j);
-                       if (desc && desc->handle_irq && desc->handle_irq != handle_bad_irq) {
-                               raw_spin_lock(&desc->lock);
-                               irq_data = irq_domain_get_irq_data(eiointc_priv[i]->eiointc_domain, irq_desc_get_irq(desc));
-                               eiointc_set_irq_affinity(irq_data, irq_data->common->affinity, 0);
-                               raw_spin_unlock(&desc->lock);
-                       }
-               }
-       }
  }

  static struct syscore_ops eiointc_syscore_ops = {
--
2.39.3






[Index of Archives]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux