mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-21 22:21:21 +00:00
Staging tree patches for 3.6-rc1
Here's the big staging tree merge for the 3.6-rc1 merge window. There are some patches in here outside of drivers/staging/, notibly the iio code (which is still stradeling the staging / not staging boundry), the pstore code, and the tracing code. All of these have gotten ackes from the various subsystem maintainers to be included in this tree. The pstore and tracing patches are related, and are coming here as they replace one of the android staging drivers. Otherwise, the normal staging mess. Lots of cleanups and a few new drivers (some iio drivers, and the large csr wireless driver abomination.) Note, you will get a merge issue with the following files: drivers/staging/comedi/drivers/s626.h drivers/staging/gdm72xx/netlink_k.c both of which should be trivial for you to handle. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.18 (GNU/Linux) iEYEABECAAYFAlAQiD8ACgkQMUfUDdst+ykxhgCeMUjvc+1RTtSprzvkzpejgoUU 6A4AnAleWMnkaCD8vruGnRdGl/Qtz51+ =mN6M -----END PGP SIGNATURE----- Merge tag 'staging-3.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging Pull staging tree patches from Greg Kroah-Hartman: "Here's the big staging tree merge for the 3.6-rc1 merge window. There are some patches in here outside of drivers/staging/, notibly the iio code (which is still stradeling the staging / not staging boundry), the pstore code, and the tracing code. All of these have gotten acks from the various subsystem maintainers to be included in this tree. The pstore and tracing patches are related, and are coming here as they replace one of the android staging drivers. Otherwise, the normal staging mess. Lots of cleanups and a few new drivers (some iio drivers, and the large csr wireless driver abomination.) Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>" Fixed up trivial conflicts in drivers/staging/comedi/drivers/s626.h and drivers/staging/gdm72xx/netlink_k.c * tag 'staging-3.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (1108 commits) staging: csr: delete a bunch of unused library functions staging: csr: remove csr_utf16.c staging: csr: remove csr_pmem.h staging: csr: remove CsrPmemAlloc staging: csr: remove CsrPmemFree() staging: csr: remove CsrMemAllocDma() staging: csr: remove CsrMemCalloc() staging: csr: remove CsrMemAlloc() staging: csr: remove CsrMemFree() and CsrMemFreeDma() staging: csr: remove csr_util.h staging: csr: remove CsrOffSetOf() stating: csr: remove unneeded #includes in csr_util.c staging: csr: make CsrUInt16ToHex static staging: csr: remove CsrMemCpy() staging: csr: remove CsrStrLen() staging: csr: remove CsrVsnprintf() staging: csr: remove CsrStrDup staging: csr: remove CsrStrChr() staging: csr: remove CsrStrNCmp staging: csr: remove CsrStrCmp ...
This commit is contained in:
commit
b13bc8dda8
660 changed files with 122330 additions and 26548 deletions
|
@ -3187,10 +3187,10 @@ static int tracing_set_tracer(const char *buf)
|
|||
}
|
||||
destroy_trace_option_files(topts);
|
||||
|
||||
current_trace = t;
|
||||
current_trace = &nop_trace;
|
||||
|
||||
topts = create_trace_option_files(current_trace);
|
||||
if (current_trace->use_max_tr) {
|
||||
topts = create_trace_option_files(t);
|
||||
if (t->use_max_tr) {
|
||||
int cpu;
|
||||
/* we need to make per cpu buffer sizes equivalent */
|
||||
for_each_tracing_cpu(cpu) {
|
||||
|
@ -3210,6 +3210,7 @@ static int tracing_set_tracer(const char *buf)
|
|||
goto out;
|
||||
}
|
||||
|
||||
current_trace = t;
|
||||
trace_branch_enable(tr);
|
||||
out:
|
||||
mutex_unlock(&trace_types_lock);
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
#include <linux/debugfs.h>
|
||||
#include <linux/uaccess.h>
|
||||
#include <linux/ftrace.h>
|
||||
#include <linux/pstore.h>
|
||||
#include <linux/fs.h>
|
||||
|
||||
#include "trace.h"
|
||||
|
@ -74,6 +75,14 @@ function_trace_call_preempt_only(unsigned long ip, unsigned long parent_ip)
|
|||
preempt_enable_notrace();
|
||||
}
|
||||
|
||||
/* Our two options */
|
||||
enum {
|
||||
TRACE_FUNC_OPT_STACK = 0x1,
|
||||
TRACE_FUNC_OPT_PSTORE = 0x2,
|
||||
};
|
||||
|
||||
static struct tracer_flags func_flags;
|
||||
|
||||
static void
|
||||
function_trace_call(unsigned long ip, unsigned long parent_ip)
|
||||
{
|
||||
|
@ -97,6 +106,12 @@ function_trace_call(unsigned long ip, unsigned long parent_ip)
|
|||
disabled = atomic_inc_return(&data->disabled);
|
||||
|
||||
if (likely(disabled == 1)) {
|
||||
/*
|
||||
* So far tracing doesn't support multiple buffers, so
|
||||
* we make an explicit call for now.
|
||||
*/
|
||||
if (unlikely(func_flags.val & TRACE_FUNC_OPT_PSTORE))
|
||||
pstore_ftrace_call(ip, parent_ip);
|
||||
pc = preempt_count();
|
||||
trace_function(tr, ip, parent_ip, flags, pc);
|
||||
}
|
||||
|
@ -158,14 +173,12 @@ static struct ftrace_ops trace_stack_ops __read_mostly =
|
|||
.flags = FTRACE_OPS_FL_GLOBAL,
|
||||
};
|
||||
|
||||
/* Our two options */
|
||||
enum {
|
||||
TRACE_FUNC_OPT_STACK = 0x1,
|
||||
};
|
||||
|
||||
static struct tracer_opt func_opts[] = {
|
||||
#ifdef CONFIG_STACKTRACE
|
||||
{ TRACER_OPT(func_stack_trace, TRACE_FUNC_OPT_STACK) },
|
||||
#endif
|
||||
#ifdef CONFIG_PSTORE_FTRACE
|
||||
{ TRACER_OPT(func_pstore, TRACE_FUNC_OPT_PSTORE) },
|
||||
#endif
|
||||
{ } /* Always set a last empty entry */
|
||||
};
|
||||
|
@ -204,10 +217,11 @@ static void tracing_stop_function_trace(void)
|
|||
|
||||
static int func_set_flag(u32 old_flags, u32 bit, int set)
|
||||
{
|
||||
if (bit == TRACE_FUNC_OPT_STACK) {
|
||||
switch (bit) {
|
||||
case TRACE_FUNC_OPT_STACK:
|
||||
/* do nothing if already set */
|
||||
if (!!set == !!(func_flags.val & TRACE_FUNC_OPT_STACK))
|
||||
return 0;
|
||||
break;
|
||||
|
||||
if (set) {
|
||||
unregister_ftrace_function(&trace_ops);
|
||||
|
@ -217,10 +231,14 @@ static int func_set_flag(u32 old_flags, u32 bit, int set)
|
|||
register_ftrace_function(&trace_ops);
|
||||
}
|
||||
|
||||
return 0;
|
||||
break;
|
||||
case TRACE_FUNC_OPT_PSTORE:
|
||||
break;
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
return -EINVAL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct tracer function_trace __read_mostly =
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue