diff options
Diffstat (limited to 'include/linux/interrupt.h')
-rw-r--r-- | include/linux/interrupt.h | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h index f6efed0039ed..9fc31289a1bb 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h | |||
@@ -445,6 +445,7 @@ static inline void __raise_softirq_irqoff(unsigned int nr) | |||
445 | 445 | ||
446 | extern void raise_softirq_irqoff(unsigned int nr); | 446 | extern void raise_softirq_irqoff(unsigned int nr); |
447 | extern void raise_softirq(unsigned int nr); | 447 | extern void raise_softirq(unsigned int nr); |
448 | extern void wakeup_softirqd(void); | ||
448 | 449 | ||
449 | /* This is the worklist that queues up per-cpu softirq work. | 450 | /* This is the worklist that queues up per-cpu softirq work. |
450 | * | 451 | * |
@@ -500,6 +501,16 @@ struct tasklet_struct | |||
500 | atomic_t count; | 501 | atomic_t count; |
501 | void (*func)(unsigned long); | 502 | void (*func)(unsigned long); |
502 | unsigned long data; | 503 | unsigned long data; |
504 | |||
505 | #if defined(CONFIG_LITMUS_SOFTIRQD) || defined(CONFIG_LITMUS_PAI_SOFTIRQD) | ||
506 | struct task_struct *owner; | ||
507 | #endif | ||
508 | }; | ||
509 | |||
510 | struct tasklet_head | ||
511 | { | ||
512 | struct tasklet_struct *head; | ||
513 | struct tasklet_struct **tail; | ||
503 | }; | 514 | }; |
504 | 515 | ||
505 | #define DECLARE_TASKLET(name, func, data) \ | 516 | #define DECLARE_TASKLET(name, func, data) \ |
@@ -537,6 +548,7 @@ static inline void tasklet_unlock_wait(struct tasklet_struct *t) | |||
537 | #define tasklet_unlock(t) do { } while (0) | 548 | #define tasklet_unlock(t) do { } while (0) |
538 | #endif | 549 | #endif |
539 | 550 | ||
551 | extern void ___tasklet_schedule(struct tasklet_struct *t); | ||
540 | extern void __tasklet_schedule(struct tasklet_struct *t); | 552 | extern void __tasklet_schedule(struct tasklet_struct *t); |
541 | 553 | ||
542 | static inline void tasklet_schedule(struct tasklet_struct *t) | 554 | static inline void tasklet_schedule(struct tasklet_struct *t) |
@@ -545,6 +557,7 @@ static inline void tasklet_schedule(struct tasklet_struct *t) | |||
545 | __tasklet_schedule(t); | 557 | __tasklet_schedule(t); |
546 | } | 558 | } |
547 | 559 | ||
560 | extern void ___tasklet_hi_schedule(struct tasklet_struct *t); | ||
548 | extern void __tasklet_hi_schedule(struct tasklet_struct *t); | 561 | extern void __tasklet_hi_schedule(struct tasklet_struct *t); |
549 | 562 | ||
550 | static inline void tasklet_hi_schedule(struct tasklet_struct *t) | 563 | static inline void tasklet_hi_schedule(struct tasklet_struct *t) |
@@ -553,6 +566,7 @@ static inline void tasklet_hi_schedule(struct tasklet_struct *t) | |||
553 | __tasklet_hi_schedule(t); | 566 | __tasklet_hi_schedule(t); |
554 | } | 567 | } |
555 | 568 | ||
569 | extern void ___tasklet_hi_schedule_first(struct tasklet_struct *t); | ||
556 | extern void __tasklet_hi_schedule_first(struct tasklet_struct *t); | 570 | extern void __tasklet_hi_schedule_first(struct tasklet_struct *t); |
557 | 571 | ||
558 | /* | 572 | /* |
@@ -582,7 +596,7 @@ static inline void tasklet_disable(struct tasklet_struct *t) | |||
582 | } | 596 | } |
583 | 597 | ||
584 | static inline void tasklet_enable(struct tasklet_struct *t) | 598 | static inline void tasklet_enable(struct tasklet_struct *t) |
585 | { | 599 | { |
586 | smp_mb__before_atomic_dec(); | 600 | smp_mb__before_atomic_dec(); |
587 | atomic_dec(&t->count); | 601 | atomic_dec(&t->count); |
588 | } | 602 | } |