aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2014-05-20 22:33:09 -0400
committerThomas Gleixner <tglx@linutronix.de>2014-05-20 22:33:09 -0400
commit1e5418c2535f4fddbbee4036750de41e16e0f7b0 (patch)
tree9f76c917b131c20d614b2c6cfa12853120e90d4b
parentd8179bc0db8d0c9654d5de43de2874bf6d0a58fa (diff)
parentf0ba3d05c9c647ab42ed6a0dbdfdeae42bfbd6de (diff)
Merge branch 'irq/for-net' into irq/core
Reason: Import the change which might be pulled in from net Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-rw-r--r--include/linux/interrupt.h46
1 files changed, 26 insertions, 20 deletions
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
index 051c85032f48..7785db3d34ae 100644
--- a/include/linux/interrupt.h
+++ b/include/linux/interrupt.h
@@ -199,6 +199,26 @@ extern int check_wakeup_irqs(void);
199static inline int check_wakeup_irqs(void) { return 0; } 199static inline int check_wakeup_irqs(void) { return 0; }
200#endif 200#endif
201 201
202/**
203 * struct irq_affinity_notify - context for notification of IRQ affinity changes
204 * @irq: Interrupt to which notification applies
205 * @kref: Reference count, for internal use
206 * @work: Work item, for internal use
207 * @notify: Function to be called on change. This will be
208 * called in process context.
209 * @release: Function to be called on release. This will be
210 * called in process context. Once registered, the
211 * structure must only be freed when this function is
212 * called or later.
213 */
214struct irq_affinity_notify {
215 unsigned int irq;
216 struct kref kref;
217 struct work_struct work;
218 void (*notify)(struct irq_affinity_notify *, const cpumask_t *mask);
219 void (*release)(struct kref *ref);
220};
221
202#if defined(CONFIG_SMP) 222#if defined(CONFIG_SMP)
203 223
204extern cpumask_var_t irq_default_affinity; 224extern cpumask_var_t irq_default_affinity;
@@ -242,26 +262,6 @@ extern int irq_select_affinity(unsigned int irq);
242 262
243extern int irq_set_affinity_hint(unsigned int irq, const struct cpumask *m); 263extern int irq_set_affinity_hint(unsigned int irq, const struct cpumask *m);
244 264
245/**
246 * struct irq_affinity_notify - context for notification of IRQ affinity changes
247 * @irq: Interrupt to which notification applies
248 * @kref: Reference count, for internal use
249 * @work: Work item, for internal use
250 * @notify: Function to be called on change. This will be
251 * called in process context.
252 * @release: Function to be called on release. This will be
253 * called in process context. Once registered, the
254 * structure must only be freed when this function is
255 * called or later.
256 */
257struct irq_affinity_notify {
258 unsigned int irq;
259 struct kref kref;
260 struct work_struct work;
261 void (*notify)(struct irq_affinity_notify *, const cpumask_t *mask);
262 void (*release)(struct kref *ref);
263};
264
265extern int 265extern int
266irq_set_affinity_notifier(unsigned int irq, struct irq_affinity_notify *notify); 266irq_set_affinity_notifier(unsigned int irq, struct irq_affinity_notify *notify);
267 267
@@ -289,6 +289,12 @@ static inline int irq_set_affinity_hint(unsigned int irq,
289{ 289{
290 return -EINVAL; 290 return -EINVAL;
291} 291}
292
293static inline int
294irq_set_affinity_notifier(unsigned int irq, struct irq_affinity_notify *notify)
295{
296 return 0;
297}
292#endif /* CONFIG_SMP */ 298#endif /* CONFIG_SMP */
293 299
294/* 300/*