Merge branches 'sched/core', 'core/core' and 'tracing/core' into cpus4096
Ingo Molnar [Mon, 24 Nov 2008 16:46:57 +0000 (17:46 +0100)]
1  2  3 
arch/x86/Kconfig
include/linux/sched.h
kernel/Makefile
kernel/exit.c
kernel/sched.c

Simple merge
Simple merge
diff --cc kernel/Makefile
@@@@ -19,7 -19,8 -19,12 +19,11 @@@@ CFLAGS_REMOVE_mutex-debug.o = -p
   CFLAGS_REMOVE_rtmutex-debug.o = -pg
   CFLAGS_REMOVE_cgroup-debug.o = -pg
   CFLAGS_REMOVE_sched_clock.o = -pg
 --CFLAGS_REMOVE_sched.o = -pg
 + endif
++ ifdef CONFIG_FUNCTION_RET_TRACER
++ CFLAGS_REMOVE_extable.o = -pg # For __kernel_text_address()
++ CFLAGS_REMOVE_module.o = -pg # For __module_text_address()
+  endif
   
   obj-$(CONFIG_FREEZER) += freezer.o
   obj-$(CONFIG_PROFILING) += profile.o
diff --cc kernel/exit.c
Simple merge
diff --cc kernel/sched.c
@@@@ -703,18 -703,45 -709,45 +709,18 @@@@ static __read_mostly char *sched_feat_n
   
   #undef SCHED_FEAT
   
 --static int sched_feat_open(struct inode *inode, struct file *filp)
  -{
  -     filp->private_data = inode->i_private;
  -     return 0;
  -}
  -
  -static ssize_t
  -sched_feat_read(struct file *filp, char __user *ubuf,
  -             size_t cnt, loff_t *ppos)
 ++static int sched_feat_show(struct seq_file *m, void *v)
   {
        int i;
   
        for (i = 0; sched_feat_names[i]; i++) {
 --             len += strlen(sched_feat_names[i]);
 --             len += 4;
  -     }
  -
  -     buf = kmalloc(len + 2, GFP_KERNEL);
  -     if (!buf)
  -             return -ENOMEM;
  -
  -     for (i = 0; sched_feat_names[i]; i++) {
  -             if (sysctl_sched_features & (1UL << i))
  -                     r += sprintf(buf + r, "%s ", sched_feat_names[i]);
  -             else
  -                     r += sprintf(buf + r, "NO_%s ", sched_feat_names[i]);
 ++             if (!(sysctl_sched_features & (1UL << i)))
 ++                     seq_puts(m, "NO_");
 ++             seq_printf(m, "%s ", sched_feat_names[i]);
        }
 ++     seq_puts(m, "\n");
   
 -      buf = kmalloc(len + 2, GFP_KERNEL);
 -      if (!buf)
 -              return -ENOMEM;
 - 
 -      for (i = 0; sched_feat_names[i]; i++) {
 -              if (sysctl_sched_features & (1UL << i))
 -                      r += sprintf(buf + r, "%s ", sched_feat_names[i]);
 -              else
 -                      r += sprintf(buf + r, "NO_%s ", sched_feat_names[i]);
 -      }
 - 
 --     r += sprintf(buf + r, "\n");
 --     WARN_ON(r >= len + 2);
 --
 --     r = simple_read_from_buffer(ubuf, cnt, ppos, buf, r);
 --
 --     kfree(buf);
 --
 --     return r;
 ++     return 0;
   }
   
   static ssize_t