Privatise the domain sysctl functions as they refer to runqueue structures which may differ between schedulers. Signed-off-by: Con Kolivas Index: linux-2.6.10-rc1-mm2-plugsched1/include/linux/scheduler.h =================================================================== --- linux-2.6.10-rc1-mm2-plugsched1.orig/include/linux/scheduler.h 2004-10-30 00:25:30.713684348 +1000 +++ linux-2.6.10-rc1-mm2-plugsched1/include/linux/scheduler.h 2004-10-30 00:28:48.232081876 +1000 @@ -10,6 +10,8 @@ */ struct sched_drv { + void (*init_sched_domain_sysctl)(void); + void (*destroy_sched_domain_sysctl)(void); void (*account_steal_time)(struct task_struct *, cputime_t); void (*account_system_time)(struct task_struct *, int, cputime_t); void (*account_user_time)(struct task_struct *, cputime_t); Index: linux-2.6.10-rc1-mm2-plugsched1/kernel/sched.c =================================================================== --- linux-2.6.10-rc1-mm2-plugsched1.orig/kernel/sched.c 2004-10-30 00:25:30.715684028 +1000 +++ linux-2.6.10-rc1-mm2-plugsched1/kernel/sched.c 2004-10-30 00:25:31.031633479 +1000 @@ -4036,7 +4036,7 @@ static ctl_table *sd_alloc_ctl_cpu_table } static struct ctl_table_header *sd_sysctl_header; -void init_sched_domain_sysctl() +void ingo_init_sched_domain_sysctl(void) { int i, cpu_num = num_online_cpus(); char buf[32]; @@ -4054,7 +4054,7 @@ void init_sched_domain_sysctl() sd_sysctl_header = register_sysctl_table(sd_ctl_root, 0); } -void destroy_sched_domain_sysctl() +static void ingo_destroy_sched_domain_sysctl(void) { int cpu, cpu_num = num_online_cpus(); struct sched_domain *sd; @@ -4076,15 +4076,17 @@ void destroy_sched_domain_sysctl() kfree(root); } #else -void init_sched_domain_sysctl() +static void ingo_init_sched_domain_sysctl() { } -void destroy_sched_domain_sysctl() +static void ingo_destroy_sched_domain_sysctl() { } #endif struct sched_drv ingo_sched_drv = { + .init_sched_domain_sysctl = ingo_init_sched_domain_sysctl, + .destroy_sched_domain_sysctl = ingo_destroy_sched_domain_sysctl, .account_steal_time = ingo_account_steal_time, .account_system_time = ingo_account_system_time, .account_user_time = ingo_account_user_time, Index: linux-2.6.10-rc1-mm2-plugsched1/kernel/scheduler.c =================================================================== --- linux-2.6.10-rc1-mm2-plugsched1.orig/kernel/scheduler.c 2004-10-30 00:26:06.424970765 +1000 +++ linux-2.6.10-rc1-mm2-plugsched1/kernel/scheduler.c 2004-10-30 00:29:12.255238106 +1000 @@ -993,6 +993,16 @@ static int __init scheduler_setup(char * __setup ("cpusched=", scheduler_setup); +void init_sched_domain_sysctl(void) +{ + scheduler->init_sched_domain_sysctl(); +} + +void destroy_sched_domain_sysctl(void) +{ + scheduler->destroy_sched_domain_sysctl(); +} + void account_steal_time(struct task_struct *p, cputime_t steal) { scheduler->account_steal_time(p, steal);