diff options
| author | Eric Paris <eparis@redhat.com> | 2013-11-22 18:57:08 -0500 |
|---|---|---|
| committer | Eric Paris <eparis@redhat.com> | 2013-11-22 18:57:54 -0500 |
| commit | fc582aef7dcc27a7120cf232c1e76c569c7b6eab (patch) | |
| tree | 7d275dd4ceab6067b91e9a25a5f6338b425fbccd /include/linux/interrupt.h | |
| parent | 9175c9d2aed528800175ef81c90569d00d23f9be (diff) | |
| parent | 5e01dc7b26d9f24f39abace5da98ccbd6a5ceb52 (diff) | |
Merge tag 'v3.12'
Linux 3.12
Conflicts:
fs/exec.c
Diffstat (limited to 'include/linux/interrupt.h')
| -rw-r--r-- | include/linux/interrupt.h | 75 |
1 files changed, 3 insertions, 72 deletions
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h index 5fa5afeeb759..5e865b554940 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h | |||
| @@ -120,7 +120,6 @@ struct irqaction { | |||
| 120 | 120 | ||
| 121 | extern irqreturn_t no_action(int cpl, void *dev_id); | 121 | extern irqreturn_t no_action(int cpl, void *dev_id); |
| 122 | 122 | ||
| 123 | #ifdef CONFIG_GENERIC_HARDIRQS | ||
| 124 | extern int __must_check | 123 | extern int __must_check |
| 125 | request_threaded_irq(unsigned int irq, irq_handler_t handler, | 124 | request_threaded_irq(unsigned int irq, irq_handler_t handler, |
| 126 | irq_handler_t thread_fn, | 125 | irq_handler_t thread_fn, |
| @@ -140,40 +139,6 @@ request_any_context_irq(unsigned int irq, irq_handler_t handler, | |||
| 140 | extern int __must_check | 139 | extern int __must_check |
| 141 | request_percpu_irq(unsigned int irq, irq_handler_t handler, | 140 | request_percpu_irq(unsigned int irq, irq_handler_t handler, |
| 142 | const char *devname, void __percpu *percpu_dev_id); | 141 | const char *devname, void __percpu *percpu_dev_id); |
| 143 | #else | ||
| 144 | |||
| 145 | extern int __must_check | ||
| 146 | request_irq(unsigned int irq, irq_handler_t handler, unsigned long flags, | ||
| 147 | const char *name, void *dev); | ||
| 148 | |||
| 149 | /* | ||
| 150 | * Special function to avoid ifdeffery in kernel/irq/devres.c which | ||
| 151 | * gets magically built by GENERIC_HARDIRQS=n architectures (sparc, | ||
| 152 | * m68k). I really love these $@%#!* obvious Makefile references: | ||
| 153 | * ../../../kernel/irq/devres.o | ||
| 154 | */ | ||
| 155 | static inline int __must_check | ||
| 156 | request_threaded_irq(unsigned int irq, irq_handler_t handler, | ||
| 157 | irq_handler_t thread_fn, | ||
| 158 | unsigned long flags, const char *name, void *dev) | ||
| 159 | { | ||
| 160 | return request_irq(irq, handler, flags, name, dev); | ||
| 161 | } | ||
| 162 | |||
| 163 | static inline int __must_check | ||
| 164 | request_any_context_irq(unsigned int irq, irq_handler_t handler, | ||
| 165 | unsigned long flags, const char *name, void *dev_id) | ||
| 166 | { | ||
| 167 | return request_irq(irq, handler, flags, name, dev_id); | ||
| 168 | } | ||
| 169 | |||
| 170 | static inline int __must_check | ||
| 171 | request_percpu_irq(unsigned int irq, irq_handler_t handler, | ||
| 172 | const char *devname, void __percpu *percpu_dev_id) | ||
| 173 | { | ||
| 174 | return request_irq(irq, handler, 0, devname, percpu_dev_id); | ||
| 175 | } | ||
| 176 | #endif | ||
| 177 | 142 | ||
| 178 | extern void free_irq(unsigned int, void *); | 143 | extern void free_irq(unsigned int, void *); |
| 179 | extern void free_percpu_irq(unsigned int, void __percpu *); | 144 | extern void free_percpu_irq(unsigned int, void __percpu *); |
| @@ -221,7 +186,6 @@ extern void enable_irq(unsigned int irq); | |||
| 221 | extern void enable_percpu_irq(unsigned int irq, unsigned int type); | 186 | extern void enable_percpu_irq(unsigned int irq, unsigned int type); |
| 222 | 187 | ||
| 223 | /* The following three functions are for the core kernel use only. */ | 188 | /* The following three functions are for the core kernel use only. */ |
| 224 | #ifdef CONFIG_GENERIC_HARDIRQS | ||
| 225 | extern void suspend_device_irqs(void); | 189 | extern void suspend_device_irqs(void); |
| 226 | extern void resume_device_irqs(void); | 190 | extern void resume_device_irqs(void); |
| 227 | #ifdef CONFIG_PM_SLEEP | 191 | #ifdef CONFIG_PM_SLEEP |
| @@ -229,13 +193,8 @@ extern int check_wakeup_irqs(void); | |||
| 229 | #else | 193 | #else |
| 230 | static inline int check_wakeup_irqs(void) { return 0; } | 194 | static inline int check_wakeup_irqs(void) { return 0; } |
| 231 | #endif | 195 | #endif |
| 232 | #else | ||
| 233 | static inline void suspend_device_irqs(void) { }; | ||
| 234 | static inline void resume_device_irqs(void) { }; | ||
| 235 | static inline int check_wakeup_irqs(void) { return 0; } | ||
| 236 | #endif | ||
| 237 | 196 | ||
| 238 | #if defined(CONFIG_SMP) && defined(CONFIG_GENERIC_HARDIRQS) | 197 | #if defined(CONFIG_SMP) |
| 239 | 198 | ||
| 240 | extern cpumask_var_t irq_default_affinity; | 199 | extern cpumask_var_t irq_default_affinity; |
| 241 | 200 | ||
| @@ -287,9 +246,8 @@ static inline int irq_set_affinity_hint(unsigned int irq, | |||
| 287 | { | 246 | { |
| 288 | return -EINVAL; | 247 | return -EINVAL; |
| 289 | } | 248 | } |
| 290 | #endif /* CONFIG_SMP && CONFIG_GENERIC_HARDIRQS */ | 249 | #endif /* CONFIG_SMP */ |
| 291 | 250 | ||
| 292 | #ifdef CONFIG_GENERIC_HARDIRQS | ||
| 293 | /* | 251 | /* |
| 294 | * Special lockdep variants of irq disabling/enabling. | 252 | * Special lockdep variants of irq disabling/enabling. |
| 295 | * These should be used for locking constructs that | 253 | * These should be used for locking constructs that |
| @@ -354,33 +312,6 @@ static inline int disable_irq_wake(unsigned int irq) | |||
| 354 | return irq_set_irq_wake(irq, 0); | 312 | return irq_set_irq_wake(irq, 0); |
| 355 | } | 313 | } |
| 356 | 314 | ||
| 357 | #else /* !CONFIG_GENERIC_HARDIRQS */ | ||
| 358 | /* | ||
| 359 | * NOTE: non-genirq architectures, if they want to support the lock | ||
| 360 | * validator need to define the methods below in their asm/irq.h | ||
| 361 | * files, under an #ifdef CONFIG_LOCKDEP section. | ||
| 362 | */ | ||
| 363 | #ifndef CONFIG_LOCKDEP | ||
| 364 | # define disable_irq_nosync_lockdep(irq) disable_irq_nosync(irq) | ||
| 365 | # define disable_irq_nosync_lockdep_irqsave(irq, flags) \ | ||
| 366 | disable_irq_nosync(irq) | ||
| 367 | # define disable_irq_lockdep(irq) disable_irq(irq) | ||
| 368 | # define enable_irq_lockdep(irq) enable_irq(irq) | ||
| 369 | # define enable_irq_lockdep_irqrestore(irq, flags) \ | ||
| 370 | enable_irq(irq) | ||
| 371 | # endif | ||
| 372 | |||
| 373 | static inline int enable_irq_wake(unsigned int irq) | ||
| 374 | { | ||
| 375 | return 0; | ||
| 376 | } | ||
| 377 | |||
| 378 | static inline int disable_irq_wake(unsigned int irq) | ||
| 379 | { | ||
| 380 | return 0; | ||
| 381 | } | ||
| 382 | #endif /* CONFIG_GENERIC_HARDIRQS */ | ||
| 383 | |||
| 384 | 315 | ||
| 385 | #ifdef CONFIG_IRQ_FORCED_THREADING | 316 | #ifdef CONFIG_IRQ_FORCED_THREADING |
| 386 | extern bool force_irqthreads; | 317 | extern bool force_irqthreads; |
| @@ -655,7 +586,7 @@ void tasklet_hrtimer_cancel(struct tasklet_hrtimer *ttimer) | |||
| 655 | * if more than one irq occurred. | 586 | * if more than one irq occurred. |
| 656 | */ | 587 | */ |
| 657 | 588 | ||
| 658 | #if defined(CONFIG_GENERIC_HARDIRQS) && !defined(CONFIG_GENERIC_IRQ_PROBE) | 589 | #if !defined(CONFIG_GENERIC_IRQ_PROBE) |
| 659 | static inline unsigned long probe_irq_on(void) | 590 | static inline unsigned long probe_irq_on(void) |
| 660 | { | 591 | { |
| 661 | return 0; | 592 | return 0; |
