Blob Blame History Raw
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;