Skip to content

Commit

Permalink
[PATCH] profile.c: `schedule' parsing fix
Browse files Browse the repository at this point in the history
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 <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
  • Loading branch information
William Lee Irwin III authored and Linus Torvalds committed May 17, 2005
1 parent 5418b69 commit dfaa9c9
Showing 1 changed file with 10 additions and 6 deletions.
16 changes: 10 additions & 6 deletions kernel/profile.c
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down

0 comments on commit dfaa9c9

Please sign in to comment.