From eba61d21b1ad88f9d4f63b5844f17da1dc8d8930 Mon Sep 17 00:00:00 2001 From: Dexuan Cui Date: Mon, 29 Oct 2018 23:18:48 -0700 Subject: [PATCH] x86/irq: implement irq_data_get_effective_affinity_mask() for v4.12.14 See __assign_irq_vector(): cpumask_copy(d->domain, vector_cpumask); The function is required by Hyper-V pci-hyperv driver. See 79aa801e8994 ("PCI: hv: Use effective affinity mask") Signed-off-by: Dexuan Cui Signed-off-by: Ajay Kaher --- arch/x86/kernel/apic/vector.c | 8 ++++++++ include/linux/irq.h | 2 ++ 2 files changed, 10 insertions(+) diff --git a/arch/x86/kernel/apic/vector.c b/arch/x86/kernel/apic/vector.c index 26c3769..627985a 100644 --- a/arch/x86/kernel/apic/vector.c +++ b/arch/x86/kernel/apic/vector.c @@ -69,6 +69,14 @@ struct irq_cfg *irqd_cfg(struct irq_data *irq_data) } EXPORT_SYMBOL_GPL(irqd_cfg); +struct cpumask *irq_data_get_effective_affinity_mask(struct irq_data *d) +{ + struct apic_chip_data *data = apic_chip_data(d); + + return data ? data->domain : NULL; +} +EXPORT_SYMBOL_GPL(irq_data_get_effective_affinity_mask); + struct irq_cfg *irq_cfg(unsigned int irq) { return irqd_cfg(irq_get_irq_data(irq)); diff --git a/include/linux/irq.h b/include/linux/irq.h index 45b037e..a3c8c0d 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h @@ -695,6 +695,8 @@ static inline struct cpumask *irq_data_get_affinity_mask(struct irq_data *d) return d->common->affinity; } +struct cpumask *irq_data_get_effective_affinity_mask(struct irq_data *d); + unsigned int arch_dynirq_lower_bound(unsigned int from); int __irq_alloc_descs(int irq, unsigned int from, unsigned int cnt, int node, -- 2.7.4