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
 
   
   #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)
   {
 -      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)
 - {
 --     char *buf;
 --     int r = 0;
 --     int len = 0;
        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