Skip to contentSkip to conversation

provide irq_force_affinity fallback for non-SMP

PATCH In review Arnd Bergmann 3 participants 3 messages Apr 23, 2014 – May 6, 2014

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 provide irq_force_affinity fallback for non-SMP

Patch 01f8fa4f01d "genirq: Allow forcing cpu affinity of interrupts" added an irq_force_affinity() function, and 30ccf03b4a6 "clocksource: Exynos_mct:
Use irq_force_affinity() in cpu bringup" subsequently uses it. However, the driver can be used with CONFIG_SMP disabled, but the function declaration is only available for CONFIG_SMP, leading to this build error:

drivers/clocksource/exynos_mct.c:431:3: error: implicit declaration of function 'irq_force_affinity' [-Werror=implicit-function-declaration]
irq_force_affinity(mct_irqs[MCT_L0_IRQ + cpu], cpumask_of(cpu));

This patch introduces a dummy helper function for the non-SMP case that always returns success, to get rid of the build error. Since the patches causing the problem are marked for stable backports, this one should be as well.

---

include/linux/interrupt.h +5 -0
index 0e6b23f..b72a643 100644
@@ -272,6 +272,11 @@ static inline int irq_set_affinity(unsigned int irq, const struct cpumask *m)
 	return -EINVAL;
 }
 
+static inline int irq_force_affinity(unsigned int irq, const struct cpumask *cpumask)
+{
+	return 0;
+}
+
 static inline int irq_can_set_affinity(unsigned int irq)
 {
 	return 0;
Acked-by on v1 1/1
#1 lore raw
Quoted 3 lines · Arnd Bergmann

Patch 01f8fa4f01d "genirq: Allow forcing cpu affinity of interrupts" added an irq_force_affinity() function, and 30ccf03b4a6 "clocksource:

Exynos_mct:

Quoted 9 lines

Use irq_force_affinity() in cpu bringup" subsequently uses it. However, the
driver can be used with CONFIG_SMP disabled, but the function declaration is only available for CONFIG_SMP, leading to this build error:

drivers/clocksource/exynos_mct.c:431:3: error: implicit declaration of function 'irq_force_affinity' [-Werror=implicit-function-declaration]
irq_force_affinity(mct_irqs[MCT_L0_IRQ + cpu], cpumask_of(cpu));

Quoted 6 lines

This patch introduces a dummy helper function for the non-SMP case that always returns success, to get rid of the build error. Since the patches causing the problem are marked for stable backports, this one should be as well.

Arnd, thanks for your fix the build error.

- Kukjin

Quoted 20 lines

---

include/linux/interrupt.h +5 -0
index 0e6b23f..b72a643 100644
@@ -272,6 +272,11 @@ static inline int irq_set_affinity(unsigned int irq,
 const struct cpumask *m)
 	return -EINVAL;
 }
 
+static inline int irq_force_affinity(unsigned int irq, const struct
 cpumask *cpumask)
+{
+	return 0;
+}
+
 static inline int irq_can_set_affinity(unsigned int irq)

{
return 0;

#2 lore raw

[tip:irq/urgent] genirq: Provide irq_force_affinity fallback for non-SMP

In reply to Arnd Bergmann
genirq: Provide irq_force_affinity fallback for non-SMP
Commit-ID:  4c88d7f9b0d5fb0588c3386be62115cc2eaa8f9f
Gitweb:     http://git.kernel.org/tip/4c88d7f9b0d5fb0588c3386be62115cc2eaa8f9f
Author:     Arnd Bergmann <[email protected]>
AuthorDate: Wed, 23 Apr 2014 14:49:17 +0200
Committer:  Thomas Gleixner <[email protected]>
CommitDate: Wed, 7 May 2014 00:42:09 +0200

genirq: Provide irq_force_affinity fallback for non-SMP

Patch 01f8fa4f01d "genirq: Allow forcing cpu affinity of interrupts" added an irq_force_affinity() function, and 30ccf03b4a6 "clocksource: Exynos_mct:
Use irq_force_affinity() in cpu bringup" subsequently uses it. However, the driver can be used with CONFIG_SMP disabled, but the function declaration is only available for CONFIG_SMP, leading to this build error:

drivers/clocksource/exynos_mct.c:431:3: error: implicit declaration of function 'irq_force_affinity' [-Werror=implicit-function-declaration]
irq_force_affinity(mct_irqs[MCT_L0_IRQ + cpu], cpumask_of(cpu));

This patch introduces a dummy helper function for the non-SMP case that always returns success, to get rid of the build error. Since the patches causing the problem are marked for stable backports, this one should be as well.

---
 include/linux/interrupt.h | 5 +++++
 1 file changed, 5 insertions(+)
include/linux/interrupt.h +5 -0
index 97ac926..051c850 100644
@@ -272,6 +272,11 @@ static inline int irq_set_affinity(unsigned int irq, const struct cpumask *m)
 	return -EINVAL;
 }
 
+static inline int irq_force_affinity(unsigned int irq, const struct cpumask *cpumask)
+{
+	return 0;
+}
+
 static inline int irq_can_set_affinity(unsigned int irq)
 {
 	return 0;