From f6bce541808556cecf5b142c38bcf4b50050a895 Mon Sep 17 00:00:00 2001 From: Franck Bui-Huu Date: Thu, 3 Aug 2006 09:29:18 +0200 Subject: [PATCH] --- yaml --- r: 35998 b: refs/heads/master c: 6057a7987608941a203f40f8b53513af433d8d2f h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/mips/kernel/process.c | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/[refs] b/[refs] index 568bb4d32ca4..83b16ce08d4f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 87151ae39bf5556abe83d69af0be9580c32c501b +refs/heads/master: 6057a7987608941a203f40f8b53513af433d8d2f diff --git a/trunk/arch/mips/kernel/process.c b/trunk/arch/mips/kernel/process.c index 93d5432759db..da332d707ce5 100644 --- a/trunk/arch/mips/kernel/process.c +++ b/trunk/arch/mips/kernel/process.c @@ -370,15 +370,15 @@ static int __init frame_info_init(void) mfinfo[0].func = schedule; schedule_frame = &mfinfo[0]; #endif - for (i = 0; i < ARRAY_SIZE(mfinfo) && mfinfo[i].func; i++) { - struct mips_frame_info *info = &mfinfo[i]; - if (get_frame_info(info)) { - /* leaf or unknown */ - if (info->func == schedule) - printk("Can't analyze prologue code at %p\n", - info->func); - } - } + for (i = 0; i < ARRAY_SIZE(mfinfo) && mfinfo[i].func; i++) + get_frame_info(mfinfo + i); + + /* + * Without schedule() frame info, result given by + * thread_saved_pc() and get_wchan() are not reliable. + */ + if (schedule_frame->pc_offset < 0) + printk("Can't analyze schedule() prologue at %p\n", schedule); mfinfo_num = i; return 0;