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

Commit 0fbe4b19 authored by Satya Durga Srinivasu Prabhala's avatar Satya Durga Srinivasu Prabhala Committed by Gerrit - the friendly Code Review server
Browse files

Revert "Mark HI and TASKLET softirq synchronous"



This reverts commit 3c53776e.
Reverting the change to match what we have on previous Kernels.

Change-Id: I4af64cd7e2c4291dda5f503bf2d74ede459a76c6
[satyap@codeaurora.org: Port to 5.x and fix trivial merge conflict]
Signed-off-by: default avatarSatya Durga Srinivasu Prabhala <satyap@codeaurora.org>
parent 1c71817e
Loading
Loading
Loading
Loading
+4 −8
Original line number Original line Diff line number Diff line
@@ -85,16 +85,12 @@ static void wakeup_softirqd(void)


/*
/*
 * If ksoftirqd is scheduled, we do not want to process pending softirqs
 * 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,
 * 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(void)
static bool ksoftirqd_running(unsigned long pending)
{
{
	struct task_struct *tsk = __this_cpu_read(ksoftirqd);
	struct task_struct *tsk = __this_cpu_read(ksoftirqd);


	if (pending & SOFTIRQ_NOW_MASK)
		return false;
	return tsk && (tsk->state == TASK_RUNNING) &&
	return tsk && (tsk->state == TASK_RUNNING) &&
		!__kthread_should_park(tsk);
		!__kthread_should_park(tsk);
}
}
@@ -355,7 +351,7 @@ asmlinkage __visible void do_softirq(void)


	pending = local_softirq_pending();
	pending = local_softirq_pending();


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


	local_irq_restore(flags);
	local_irq_restore(flags);
@@ -382,7 +378,7 @@ void irq_enter(void)


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


	if (!force_irqthreads) {
	if (!force_irqthreads) {