diff options
| author | Christoph Hellwig <hch@infradead.org> | 2013-11-14 17:32:06 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-11-14 19:32:22 -0500 |
| commit | fc21c0cff2f425891b28ff6fb6b03b325c977428 (patch) | |
| tree | 920565aba013c83db09bc677c15d17280eee0707 /include/linux | |
| parent | c853b167e6ec1f25023cfc58ba2f43f9f6f5b49b (diff) | |
revert "softirq: Add support for triggering softirq work on softirqs"
This commit was incomplete in that code to remove items from the per-cpu
lists was missing and never acquired a user in the 5 years it has been in
the tree. We're going to implement what it seems to try to archive in a
simpler way, and this code is in the way of doing so.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Cc: Jan Kara <jack@suse.cz>
Cc: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/interrupt.h | 22 |
1 files changed, 0 insertions, 22 deletions
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h index c9e831dc80bc..db43b58a3355 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h | |||
| @@ -11,8 +11,6 @@ | |||
| 11 | #include <linux/irqnr.h> | 11 | #include <linux/irqnr.h> |
| 12 | #include <linux/hardirq.h> | 12 | #include <linux/hardirq.h> |
| 13 | #include <linux/irqflags.h> | 13 | #include <linux/irqflags.h> |
| 14 | #include <linux/smp.h> | ||
| 15 | #include <linux/percpu.h> | ||
| 16 | #include <linux/hrtimer.h> | 14 | #include <linux/hrtimer.h> |
| 17 | #include <linux/kref.h> | 15 | #include <linux/kref.h> |
| 18 | #include <linux/workqueue.h> | 16 | #include <linux/workqueue.h> |
| @@ -392,15 +390,6 @@ extern void __raise_softirq_irqoff(unsigned int nr); | |||
| 392 | extern void raise_softirq_irqoff(unsigned int nr); | 390 | extern void raise_softirq_irqoff(unsigned int nr); |
| 393 | extern void raise_softirq(unsigned int nr); | 391 | extern void raise_softirq(unsigned int nr); |
| 394 | 392 | ||
| 395 | /* This is the worklist that queues up per-cpu softirq work. | ||
| 396 | * | ||
| 397 | * send_remote_sendirq() adds work to these lists, and | ||
| 398 | * the softirq handler itself dequeues from them. The queues | ||
| 399 | * are protected by disabling local cpu interrupts and they must | ||
| 400 | * only be accessed by the local cpu that they are for. | ||
| 401 | */ | ||
| 402 | DECLARE_PER_CPU(struct list_head [NR_SOFTIRQS], softirq_work_list); | ||
| 403 | |||
| 404 | DECLARE_PER_CPU(struct task_struct *, ksoftirqd); | 393 | DECLARE_PER_CPU(struct task_struct *, ksoftirqd); |
| 405 | 394 | ||
| 406 | static inline struct task_struct *this_cpu_ksoftirqd(void) | 395 | static inline struct task_struct *this_cpu_ksoftirqd(void) |
| @@ -408,17 +397,6 @@ static inline struct task_struct *this_cpu_ksoftirqd(void) | |||
| 408 | return this_cpu_read(ksoftirqd); | 397 | return this_cpu_read(ksoftirqd); |
| 409 | } | 398 | } |
| 410 | 399 | ||
| 411 | /* Try to send a softirq to a remote cpu. If this cannot be done, the | ||
| 412 | * work will be queued to the local cpu. | ||
| 413 | */ | ||
| 414 | extern void send_remote_softirq(struct call_single_data *cp, int cpu, int softirq); | ||
| 415 | |||
| 416 | /* Like send_remote_softirq(), but the caller must disable local cpu interrupts | ||
| 417 | * and compute the current cpu, passed in as 'this_cpu'. | ||
| 418 | */ | ||
| 419 | extern void __send_remote_softirq(struct call_single_data *cp, int cpu, | ||
| 420 | int this_cpu, int softirq); | ||
| 421 | |||
| 422 | /* Tasklets --- multithreaded analogue of BHs. | 400 | /* Tasklets --- multithreaded analogue of BHs. |
| 423 | 401 | ||
| 424 | Main feature differing them of generic softirqs: tasklet | 402 | Main feature differing them of generic softirqs: tasklet |
