From: William Lee Irwin III profile=schedule parsing is not quite what it should be. First, str[7] is 'e', not ',', but then even if it did fall through, prof_on = SCHED_PROFILING would be clobbered inside if (get_option(...)) So a small amount of rearrangement is done in this patch to correct it. Signed-off-by: Andrew Morton --- kernel/profile.c | 16 ++++++++++------ 1 files changed, 10 insertions(+), 6 deletions(-) diff -puN kernel/profile.c~profilec-schedule-parsing-fix kernel/profile.c --- 25/kernel/profile.c~profilec-schedule-parsing-fix 2005-05-15 20:47:32.000000000 -0700 +++ 25-akpm/kernel/profile.c 2005-05-15 20:47:32.000000000 -0700 @@ -49,15 +49,19 @@ static DECLARE_MUTEX(profile_flip_mutex) static int __init profile_setup(char * str) { + static char __initdata schedstr[] = "schedule"; int par; - if (!strncmp(str, "schedule", 8)) { + if (!strncmp(str, schedstr, strlen(schedstr))) { prof_on = SCHED_PROFILING; - printk(KERN_INFO "kernel schedule profiling enabled\n"); - if (str[7] == ',') - str += 8; - } - if (get_option(&str,&par)) { + if (str[strlen(schedstr)] == ',') + str += strlen(schedstr) + 1; + if (get_option(&str, &par)) + prof_shift = par; + printk(KERN_INFO + "kernel schedule profiling enabled (shift: %ld)\n", + prof_shift); + } else if (get_option(&str, &par)) { prof_shift = par; prof_on = CPU_PROFILING; printk(KERN_INFO "kernel profiling enabled (shift: %ld)\n", _