summaryrefslogtreecommitdiffstats
path: root/lib/radix-tree.c
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2016-09-30 12:38:28 +0200
committerThomas Gleixner <tglx@linutronix.de>2016-09-30 12:38:28 +0200
commitd7e25c66c9bf882450060fd9464e784bd229d3ae (patch)
tree0fb9525f91b11226a5a4b861cefd9fc5679f5c9b /lib/radix-tree.c
parentthread_info: Use unsigned long for flags (diff)
parentx86/vdso: Fix building on big endian host (diff)
downloadlinux-d7e25c66c9bf882450060fd9464e784bd229d3ae.tar.xz
linux-d7e25c66c9bf882450060fd9464e784bd229d3ae.zip
Merge branch 'x86/urgent' into x86/asm
Get the cr4 fixes so we can apply the final cleanup
Diffstat (limited to 'lib/radix-tree.c')
-rw-r--r--lib/radix-tree.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/radix-tree.c b/lib/radix-tree.c
index 1b7bf7314141..91f0727e3cad 100644
--- a/lib/radix-tree.c
+++ b/lib/radix-tree.c
@@ -105,10 +105,10 @@ static unsigned int radix_tree_descend(struct radix_tree_node *parent,
#ifdef CONFIG_RADIX_TREE_MULTIORDER
if (radix_tree_is_internal_node(entry)) {
- unsigned long siboff = get_slot_offset(parent, entry);
- if (siboff < RADIX_TREE_MAP_SIZE) {
- offset = siboff;
- entry = rcu_dereference_raw(parent->slots[offset]);
+ if (is_sibling_entry(parent, entry)) {
+ void **sibentry = (void **) entry_to_node(entry);
+ offset = get_slot_offset(parent, sibentry);
+ entry = rcu_dereference_raw(*sibentry);
}
}
#endif