git://ftp.safe.ca
/
safe
/
jmp
/
linux-2.6
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
x86, atomic64: In selftest, distinguish x86-64 from 586+
[safe/jmp/linux-2.6]
/
lib
/
fault-inject.c
diff --git
a/lib/fault-inject.c
b/lib/fault-inject.c
index
0fabd12
..
7e65af7
100644
(file)
--- a/
lib/fault-inject.c
+++ b/
lib/fault-inject.c
@@
-1,12
+1,12
@@
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/random.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/random.h>
+#include <linux/sched.h>
#include <linux/stat.h>
#include <linux/types.h>
#include <linux/fs.h>
#include <linux/module.h>
#include <linux/interrupt.h>
#include <linux/stat.h>
#include <linux/types.h>
#include <linux/fs.h>
#include <linux/module.h>
#include <linux/interrupt.h>
-#include <linux/unwind.h>
#include <linux/stacktrace.h>
#include <linux/kallsyms.h>
#include <linux/fault-inject.h>
#include <linux/stacktrace.h>
#include <linux/kallsyms.h>
#include <linux/fault-inject.h>
@@
-72,9
+72,8
@@
static bool fail_stacktrace(struct fault_attr *attr)
trace.entries = entries;
trace.max_entries = depth;
trace.skip = 1;
trace.entries = entries;
trace.max_entries = depth;
trace.skip = 1;
- trace.all_contexts = 0;
- save_stack_trace(&trace
, NULL
);
+ save_stack_trace(&trace);
for (n = 0; n < trace.nr_entries; n++) {
if (attr->reject_start <= entries[n] &&
entries[n] < attr->reject_end)
for (n = 0; n < trace.nr_entries; n++) {
if (attr->reject_start <= entries[n] &&
entries[n] < attr->reject_end)
@@
-135,21
+134,26
@@
bool should_fail(struct fault_attr *attr, ssize_t size)
#ifdef CONFIG_FAULT_INJECTION_DEBUG_FS
#ifdef CONFIG_FAULT_INJECTION_DEBUG_FS
-static
void
debugfs_ul_set(void *data, u64 val)
+static
int
debugfs_ul_set(void *data, u64 val)
{
*(unsigned long *)data = val;
{
*(unsigned long *)data = val;
+ return 0;
}
}
-static void debugfs_ul_set_MAX_STACK_TRACE_DEPTH(void *data, u64 val)
+#ifdef CONFIG_FAULT_INJECTION_STACKTRACE_FILTER
+static int debugfs_ul_set_MAX_STACK_TRACE_DEPTH(void *data, u64 val)
{
*(unsigned long *)data =
val < MAX_STACK_TRACE_DEPTH ?
val : MAX_STACK_TRACE_DEPTH;
{
*(unsigned long *)data =
val < MAX_STACK_TRACE_DEPTH ?
val : MAX_STACK_TRACE_DEPTH;
+ return 0;
}
}
+#endif /* CONFIG_FAULT_INJECTION_STACKTRACE_FILTER */
-static
u64 debugfs_ul_get(void *data
)
+static
int debugfs_ul_get(void *data, u64 *val
)
{
{
- return *(unsigned long *)data;
+ *val = *(unsigned long *)data;
+ return 0;
}
DEFINE_SIMPLE_ATTRIBUTE(fops_ul, debugfs_ul_get, debugfs_ul_set, "%llu\n");
}
DEFINE_SIMPLE_ATTRIBUTE(fops_ul, debugfs_ul_get, debugfs_ul_set, "%llu\n");
@@
-160,6
+164,7
@@
static struct dentry *debugfs_create_ul(const char *name, mode_t mode,
return debugfs_create_file(name, mode, parent, value, &fops_ul);
}
return debugfs_create_file(name, mode, parent, value, &fops_ul);
}
+#ifdef CONFIG_FAULT_INJECTION_STACKTRACE_FILTER
DEFINE_SIMPLE_ATTRIBUTE(fops_ul_MAX_STACK_TRACE_DEPTH, debugfs_ul_get,
debugfs_ul_set_MAX_STACK_TRACE_DEPTH, "%llu\n");
DEFINE_SIMPLE_ATTRIBUTE(fops_ul_MAX_STACK_TRACE_DEPTH, debugfs_ul_get,
debugfs_ul_set_MAX_STACK_TRACE_DEPTH, "%llu\n");
@@
-170,15
+175,18
@@
static struct dentry *debugfs_create_ul_MAX_STACK_TRACE_DEPTH(
return debugfs_create_file(name, mode, parent, value,
&fops_ul_MAX_STACK_TRACE_DEPTH);
}
return debugfs_create_file(name, mode, parent, value,
&fops_ul_MAX_STACK_TRACE_DEPTH);
}
+#endif /* CONFIG_FAULT_INJECTION_STACKTRACE_FILTER */
-static
void
debugfs_atomic_t_set(void *data, u64 val)
+static
int
debugfs_atomic_t_set(void *data, u64 val)
{
atomic_set((atomic_t *)data, val);
{
atomic_set((atomic_t *)data, val);
+ return 0;
}
}
-static
u64 debugfs_atomic_t_get(void *data
)
+static
int debugfs_atomic_t_get(void *data, u64 *val
)
{
{
- return atomic_read((atomic_t *)data);
+ *val = atomic_read((atomic_t *)data);
+ return 0;
}
DEFINE_SIMPLE_ATTRIBUTE(fops_atomic_t, debugfs_atomic_t_get,
}
DEFINE_SIMPLE_ATTRIBUTE(fops_atomic_t, debugfs_atomic_t_get,