Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc
[cascardo/linux.git] / kernel / softirq.c
index b50990a..5918d22 100644 (file)
@@ -223,7 +223,7 @@ static inline bool lockdep_softirq_start(void) { return false; }
 static inline void lockdep_softirq_end(bool in_hardirq) { }
 #endif
 
-asmlinkage void __do_softirq(void)
+asmlinkage __visible void __do_softirq(void)
 {
        unsigned long end = jiffies + MAX_SOFTIRQ_TIME;
        unsigned long old_flags = current->flags;
@@ -232,7 +232,6 @@ asmlinkage void __do_softirq(void)
        bool in_hardirq;
        __u32 pending;
        int softirq_bit;
-       int cpu;
 
        /*
         * Mask out PF_MEMALLOC s current task context is borrowed for the
@@ -247,7 +246,6 @@ asmlinkage void __do_softirq(void)
        __local_bh_disable_ip(_RET_IP_, SOFTIRQ_OFFSET);
        in_hardirq = lockdep_softirq_start();
 
-       cpu = smp_processor_id();
 restart:
        /* Reset the pending bitmask before enabling irqs */
        set_softirq_pending(0);
@@ -276,11 +274,11 @@ restart:
                               prev_count, preempt_count());
                        preempt_count_set(prev_count);
                }
-               rcu_bh_qs(cpu);
                h++;
                pending >>= softirq_bit;
        }
 
+       rcu_bh_qs(smp_processor_id());
        local_irq_disable();
 
        pending = local_softirq_pending();
@@ -299,7 +297,7 @@ restart:
        tsk_restore_flags(current, old_flags, PF_MEMALLOC);
 }
 
-asmlinkage void do_softirq(void)
+asmlinkage __visible void do_softirq(void)
 {
        __u32 pending;
        unsigned long flags;
@@ -779,3 +777,8 @@ int __init __weak arch_early_irq_init(void)
 {
        return 0;
 }
+
+unsigned int __weak arch_dynirq_lower_bound(unsigned int from)
+{
+       return from;
+}