Merge branch 'tracing-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorLinus Torvalds <torvalds@linux-foundation.org>
Sun, 5 Apr 2009 18:04:19 +0000 (11:04 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sun, 5 Apr 2009 18:04:19 +0000 (11:04 -0700)
* 'tracing-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (413 commits)
  tracing, net: fix net tree and tracing tree merge interaction
  tracing, powerpc: fix powerpc tree and tracing tree interaction
  ring-buffer: do not remove reader page from list on ring buffer free
  function-graph: allow unregistering twice
  trace: make argument 'mem' of trace_seq_putmem() const
  tracing: add missing 'extern' keywords to trace_output.h
  tracing: provide trace_seq_reserve()
  blktrace: print out BLK_TN_MESSAGE properly
  blktrace: extract duplidate code
  blktrace: fix memory leak when freeing struct blk_io_trace
  blktrace: fix blk_probes_ref chaos
  blktrace: make classic output more classic
  blktrace: fix off-by-one bug
  blktrace: fix the original blktrace
  blktrace: fix a race when creating blk_tree_root in debugfs
  blktrace: fix timestamp in binary output
  tracing, Text Edit Lock: cleanup
  tracing: filter fix for TRACE_EVENT_FORMAT events
  ftrace: Using FTRACE_WARN_ON() to check "freed record" in ftrace_release()
  x86: kretprobe-booster interrupt emulation code fix
  ...

Fix up trivial conflicts in
 arch/parisc/include/asm/ftrace.h
 include/linux/memory.h
 kernel/extable.c
 kernel/module.c

21 files changed:
1  2 
Documentation/kernel-parameters.txt
MAINTAINERS
arch/ia64/kernel/Makefile
arch/ia64/kernel/entry.S
arch/x86/Kconfig
arch/x86/kernel/process.c
arch/x86/kernel/ptrace.c
include/linux/kernel.h
include/linux/memory.h
include/linux/module.h
include/linux/sched.h
include/linux/syscalls.h
init/Kconfig
kernel/extable.c
kernel/module.c
kernel/relay.c
kernel/sched.c
kernel/softirq.c
kernel/trace/Kconfig
kernel/workqueue.c
mm/slab.c

Simple merge
diff --cc MAINTAINERS
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 42767d1a62e784e9ce25dfbc9cc37ab9232f226a,86a6c0f0518db5654bf8a17af4baa9a17462501b..37fa19b34ef584bcd8626059675a33baef2df939
@@@ -99,15 -99,10 +99,21 @@@ enum mem_add_context { BOOT, HOTPLUG }
  #define hotplug_memory_notifier(fn, pri) do { } while (0)
  #endif
  
 +/*
 + * 'struct memory_accessor' is a generic interface to provide
 + * in-kernel access to persistent memory such as i2c or SPI EEPROMs
 + */
 +struct memory_accessor {
 +      ssize_t (*read)(struct memory_accessor *, char *buf, off_t offset,
 +                      size_t count);
 +      ssize_t (*write)(struct memory_accessor *, const char *buf,
 +                       off_t offset, size_t count);
 +};
 +
+ /*
+  * Kernel text modification mutex, used for code patching. Users of this lock
+  * can sleep.
+  */
+ extern struct mutex text_mutex;
  #endif /* _LINUX_MEMORY_H_ */
Simple merge
Simple merge
Simple merge
diff --cc init/Kconfig
Simple merge
index 81e99d1f0d5be93476ff27761d0a44232463dc9f,b54a6017b6b57bd77919fedd865b6bba24fcac8e..7f8f263f85249a15ca8492fa5056c868262aa0f1
@@@ -41,15 -52,7 +52,15 @@@ const struct exception_table_entry *sea
        return e;
  }
  
- __notrace_funcgraph int core_kernel_text(unsigned long addr)
 +static inline int init_kernel_text(unsigned long addr)
 +{
 +      if (addr >= (unsigned long)_sinittext &&
 +          addr <= (unsigned long)_einittext)
 +              return 1;
 +      return 0;
 +}
 +
+ int core_kernel_text(unsigned long addr)
  {
        if (addr >= (unsigned long)_stext &&
            addr <= (unsigned long)_etext)
diff --cc kernel/module.c
index f6e08b7cff7c23292a0cf6a1c5830af9de49431f,41f50605eed03e8ea0538c1ce2db52ee080f62dc..c268a771595c46cde09a5ac5bcf3d001082de6bf
@@@ -2753,31 -2744,29 +2753,31 @@@ const struct exception_table_entry *sea
  }
  
  /*
 - * Is this a valid module address?
 + * is_module_address - is this address inside a module?
 + * @addr: the address to check.
 + *
 + * See is_module_text_address() if you simply want to see if the address
 + * is code (not data).
   */
 -int is_module_address(unsigned long addr)
 +bool is_module_address(unsigned long addr)
  {
 -      struct module *mod;
 +      bool ret;
  
        preempt_disable();
 -
 -      list_for_each_entry_rcu(mod, &modules, list) {
 -              if (within_module_core(addr, mod)) {
 -                      preempt_enable();
 -                      return 1;
 -              }
 -      }
 -
 +      ret = __module_address(addr) != NULL;
        preempt_enable();
  
 -      return 0;
 +      return ret;
  }
  
 -
 -/* Is this a valid kernel address? */
 -struct module *__module_text_address(unsigned long addr)
 +/*
 + * __module_address - get the module which contains an address.
 + * @addr: the address.
 + *
 + * Must be called with preempt disabled or module mutex held so that
 + * module doesn't get freed during this.
 + */
- __notrace_funcgraph struct module *__module_address(unsigned long addr)
++struct module *__module_address(unsigned long addr)
  {
        struct module *mod;
  
diff --cc kernel/relay.c
Simple merge
diff --cc kernel/sched.c
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc mm/slab.c
Simple merge