[RFC Part2 v1 03/21] x86, irq: Save destination CPU ID in irq_cfg
From: Jiang Liu <hidden>
Date: 2014-09-17 02:25:11
Also in:
linux-acpi, linux-pci, lkml
On 2014/9/17 1:47, Thomas Gleixner wrote:
On Thu, 11 Sep 2014, Jiang Liu wrote:quoted
Cache destination CPU APIC ID into struct irq_cfg when assigning vector for interrupt. Upper layer just needs to read the cached APIC ID instead of calling apic->cpu_mask_to_apicid_and(), it helps to hide APIC driver details from IOAPIC/HPET/MSI drivers.. Signed-off-by: Jiang Liu <redacted> --- arch/x86/include/asm/hw_irq.h | 1 + arch/x86/kernel/apic/vector.c | 4 ++++ 2 files changed, 5 insertions(+)diff --git a/arch/x86/include/asm/hw_irq.h b/arch/x86/include/asm/hw_irq.h index 7624fffc2822..3d51d74d6c01 100644 --- a/arch/x86/include/asm/hw_irq.h +++ b/arch/x86/include/asm/hw_irq.h@@ -116,6 +116,7 @@ struct irq_data; struct irq_cfg { cpumask_var_t domain; cpumask_var_t old_domain; + unsigned int dest_apicid; u8 vector; u8 move_in_progress : 1; #ifdef CONFIG_IRQ_REMAPdiff --git a/arch/x86/kernel/apic/vector.c b/arch/x86/kernel/apic/vector.c index 7562cb15b3bd..287ae4e8d500 100644 --- a/arch/x86/kernel/apic/vector.c +++ b/arch/x86/kernel/apic/vector.c@@ -188,6 +188,10 @@ next: } free_cpumask_var(tmp_mask);Lacks a comment what this call is actually doing.
How about this? /* cache destination APIC IDs into cfg->dest_apicid */ Regards! Gerry
quoted
+ if (!err) + err = apic->cpu_mask_to_apicid_and(mask, cfg->domain, + &cfg->dest_apicid); +Thanks, tglx