Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --- a/kernel/softirq.c
- +++ b/kernel/softirq.c
- @@ -186,16 +186,26 @@
- * we want to handle softirqs as soon as possible, but they
- * should not be able to lock up the box.
- */
- -#define MAX_SOFTIRQ_RESTART 10
- +#define MAX_SOFTIRQ_RESTART 1
- asmlinkage void __do_softirq(void)
- {
- struct softirq_action *h;
- __u32 pending;
- - int max_restart = MAX_SOFTIRQ_RESTART;
- int cpu;
- +#ifdef CONFIG_BOARD_LIVEBOX
- + __u32 mask;
- +#else
- + int max_restart = MAX_SOFTIRQ_RESTART;
- +#endif
- +
- pending = local_softirq_pending();
- +
- +#ifdef CONFIG_BOARD_LIVEBOX
- + mask = ~pending;
- +#endif
- +
- account_system_vtime(current);
- __local_bh_disable((unsigned long)__builtin_return_address(0));
- @@ -236,8 +246,15 @@
- local_irq_disable();
- pending = local_softirq_pending();
- +#ifdef CONFIG_BOARD_LIVEBOX
- + if (pending & mask) {
- + mask &= ~pending;
- + goto restart;
- + }
- +#else
- if (pending && --max_restart)
- goto restart;
- +#endif
- if (pending)
- wakeup_softirqd();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement