From: Dexuan Cui <decui@microsoft.com>
Date: Mon, 29 Oct 2018 23:18:48 -0700
Subject: x86/irq: implement irq_data_get_effective_affinity_mask() for v4.12
Patch-mainline: never, base kernel too old
References: bsc#1109772
See __assign_irq_vector():
cpumask_copy(d->domain, vector_cpumask);
The function is required by Hyper-V pci-hyperv driver.
Signed-off-by: Dexuan Cui <decui@microsoft.com>
Signed-off-by: Olaf Hering <ohering@suse.de>
--- a/arch/x86/kernel/apic/vector.c
+++ b/arch/x86/kernel/apic/vector.c
@@ -74,6 +74,13 @@ struct irq_cfg *irq_cfg(unsigned int irq
return irqd_cfg(irq_get_irq_data(irq));
}
+struct cpumask *irq_data_get_effective_affinity_mask(struct irq_data *d)
+{
+ struct apic_chip_data *data = apic_chip_data(d);
+ return data->domain;
+}
+EXPORT_SYMBOL_GPL(irq_data_get_effective_affinity_mask);
+
static struct apic_chip_data *alloc_apic_chip_data(int node)
{
struct apic_chip_data *data;
--- a/include/linux/irq.h
+++ b/include/linux/irq.h
@@ -745,6 +745,7 @@ static inline struct cpumask *irq_get_af
return d ? d->common->affinity : NULL;
}
+struct cpumask *irq_data_get_effective_affinity_mask(struct irq_data *d);
static inline struct cpumask *irq_data_get_affinity_mask(struct irq_data *d)
{
return d->common->affinity;