diff options
Diffstat (limited to 'kernel/softirq.c')
-rw-r--r-- | kernel/softirq.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/kernel/softirq.c b/kernel/softirq.c index 07b4f1b1a73a..b3cb1dc15795 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c | |||
@@ -212,18 +212,20 @@ restart: | |||
212 | 212 | ||
213 | do { | 213 | do { |
214 | if (pending & 1) { | 214 | if (pending & 1) { |
215 | unsigned int vec_nr = h - softirq_vec; | ||
215 | int prev_count = preempt_count(); | 216 | int prev_count = preempt_count(); |
216 | kstat_incr_softirqs_this_cpu(h - softirq_vec); | ||
217 | 217 | ||
218 | trace_softirq_entry(h, softirq_vec); | 218 | kstat_incr_softirqs_this_cpu(vec_nr); |
219 | |||
220 | trace_softirq_entry(vec_nr); | ||
219 | h->action(h); | 221 | h->action(h); |
220 | trace_softirq_exit(h, softirq_vec); | 222 | trace_softirq_exit(vec_nr); |
221 | if (unlikely(prev_count != preempt_count())) { | 223 | if (unlikely(prev_count != preempt_count())) { |
222 | printk(KERN_ERR "huh, entered softirq %td %s %p" | 224 | printk(KERN_ERR "huh, entered softirq %u %s %p" |
223 | "with preempt_count %08x," | 225 | "with preempt_count %08x," |
224 | " exited with %08x?\n", h - softirq_vec, | 226 | " exited with %08x?\n", vec_nr, |
225 | softirq_to_name[h - softirq_vec], | 227 | softirq_to_name[vec_nr], h->action, |
226 | h->action, prev_count, preempt_count()); | 228 | prev_count, preempt_count()); |
227 | preempt_count() = prev_count; | 229 | preempt_count() = prev_count; |
228 | } | 230 | } |
229 | 231 | ||