Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bca46300 authored by qctecmdr Service's avatar qctecmdr Service Committed by Gerrit - the friendly Code Review server
Browse files

Merge "Revert "softirq: Let ksoftirqd do its job""

parents 5348fdd3 ee49f6cb
Loading
Loading
Loading
Loading
+1 −19
Original line number Diff line number Diff line
@@ -84,21 +84,6 @@ static void wakeup_softirqd(void)
		wake_up_process(tsk);
}

/*
 * If ksoftirqd is scheduled, we do not want to process pending softirqs
 * right now. Let ksoftirqd handle this at its own rate, to get fairness,
 * unless we're doing some of the synchronous softirqs.
 */
#define SOFTIRQ_NOW_MASK ((1 << HI_SOFTIRQ) | (1 << TASKLET_SOFTIRQ))
static bool ksoftirqd_running(unsigned long pending)
{
	struct task_struct *tsk = __this_cpu_read(ksoftirqd);

	if (pending & SOFTIRQ_NOW_MASK)
		return false;
	return tsk && (tsk->state == TASK_RUNNING);
}

/*
 * preempt_count and SOFTIRQ_OFFSET usage:
 * - preempt_count is changed by SOFTIRQ_OFFSET on entering or leaving
@@ -354,7 +339,7 @@ asmlinkage __visible void do_softirq(void)

	pending = local_softirq_pending();

	if (pending && !ksoftirqd_running(pending))
	if (pending)
		do_softirq_own_stack();

	local_irq_restore(flags);
@@ -381,9 +366,6 @@ void irq_enter(void)

static inline void invoke_softirq(void)
{
	if (ksoftirqd_running(local_softirq_pending()))
		return;

	if (!force_irqthreads) {
#ifdef CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK
		/*