[LAU] [PATCH] [RT] tasklets: fix typo in tasklet_hi_action

Adam Sampson ats at offog.org
Sun Jan 4 10:20:58 EST 2009


[l-a-u CCed because we've been talking about this problem there
recently, and that's what prodded me to do the bisection to track it
down... fortunately the -rt8 to -rt9 interdiff was pretty small!]

Subject: [PATCH] [RT] tasklets: fix typo in tasklet_hi_action

Fix a typo in tasklet_hi_action -- using the wrong tasklet list when removing
actions.

This appears to be what was causing the ALSA sequencer device not to work in
2.6.26 with the RT patch: the sequencer was flaky in -rt1 to -rt8, and just
hung in -rt9 and later, after tasklets-fix-tasklet_hi_schedule.patch which
fixed the same typo when adding to the list. I guess that's because before -rt9
the actions were going onto the wrong list, whereas after -rt9 they were being
lost entirely once the first one had been performed. It seems happy now,
anyway.

Signed-off-by: Adam Sampson <ats at offog.org>

--- linux-2.6.26/kernel/softirq.c_orig	2009-01-04 14:41:06.000000000 +0000
+++ linux-2.6.26/kernel/softirq.c	2009-01-04 14:41:49.000000000 +0000
@@ -657,7 +657,7 @@
 	local_irq_disable();
 	list = __get_cpu_var(tasklet_hi_vec).head;
 	__get_cpu_var(tasklet_hi_vec).head = NULL;
-	__get_cpu_var(tasklet_hi_vec).tail = &__get_cpu_var(tasklet_vec).head;
+	__get_cpu_var(tasklet_hi_vec).tail = &__get_cpu_var(tasklet_hi_vec).head;
 	local_irq_enable();
 
 	__tasklet_action(a, list);

-- 
Adam Sampson <ats at offog.org>                         <http://offog.org/>



More information about the Linux-audio-user mailing list