From 886c74b9356c905b528d51ac6ab1628496caf3f0 Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Tue, 15 Mar 2011 22:05:24 +0100 Subject: [PATCH] sched: Only call post_select() if task is not in error state. Fixes a bug introduced in 86611501 which caused para_audiod to segfault if the connection to para_server terminated unexpectedly. para_audiod relies (in kill_btrn()) on a task's ->post_select method never being called if t->error is negative. --- sched.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sched.c b/sched.c index 4e989d34..9be3a2e8 100644 --- a/sched.c +++ b/sched.c @@ -93,7 +93,8 @@ static void sched_post_select(struct sched *s) struct task *t, *tmp; list_for_each_entry_safe(t, tmp, &post_select_list, post_select_node) { - call_post_select(s, t); + if (t->error >= 0) + call_post_select(s, t); // PARA_INFO_LOG("%s: %d\n", t->status, t->ret); if (t->error >= 0) continue; -- 2.39.5