projects
/
powerpc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fault injection: fix failslab with CONFIG_NUMA
[powerpc.git]
/
mm
/
slab.c
diff --git
a/mm/slab.c
b/mm/slab.c
index
583644f
..
2a3cbd6
100644
(file)
--- a/
mm/slab.c
+++ b/
mm/slab.c
@@
-3170,7
+3170,7
@@
static int __init failslab_debugfs(void)
struct dentry *dir;
int err;
struct dentry *dir;
int err;
-
err = init_fault_attr_dentries(&failslab.attr, "failslab");
+ err = init_fault_attr_dentries(&failslab.attr, "failslab");
if (err)
return err;
dir = failslab.attr.dentries.dir;
if (err)
return err;
dir = failslab.attr.dentries.dir;
@@
-3208,9
+3208,6
@@
static inline void *____cache_alloc(struct kmem_cache *cachep, gfp_t flags)
check_irq_off();
check_irq_off();
- if (should_failslab(cachep, flags))
- return NULL;
-
ac = cpu_cache_get(cachep);
if (likely(ac->avail)) {
STATS_INC_ALLOCHIT(cachep);
ac = cpu_cache_get(cachep);
if (likely(ac->avail)) {
STATS_INC_ALLOCHIT(cachep);
@@
-3402,6
+3399,9
@@
__cache_alloc_node(struct kmem_cache *cachep, gfp_t flags, int nodeid,
unsigned long save_flags;
void *ptr;
unsigned long save_flags;
void *ptr;
+ if (should_failslab(cachep, flags))
+ return NULL;
+
cache_alloc_debugcheck_before(cachep, flags);
local_irq_save(save_flags);
cache_alloc_debugcheck_before(cachep, flags);
local_irq_save(save_flags);
@@
-3472,6
+3472,9
@@
__cache_alloc(struct kmem_cache *cachep, gfp_t flags, void *caller)
unsigned long save_flags;
void *objp;
unsigned long save_flags;
void *objp;
+ if (should_failslab(cachep, flags))
+ return NULL;
+
cache_alloc_debugcheck_before(cachep, flags);
local_irq_save(save_flags);
objp = __do_cache_alloc(cachep, flags);
cache_alloc_debugcheck_before(cachep, flags);
local_irq_save(save_flags);
objp = __do_cache_alloc(cachep, flags);