diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2016-09-30 12:38:28 +0200 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2016-09-30 12:38:28 +0200 |
commit | d7e25c66c9bf882450060fd9464e784bd229d3ae (patch) | |
tree | 0fb9525f91b11226a5a4b861cefd9fc5679f5c9b /lib/radix-tree.c | |
parent | thread_info: Use unsigned long for flags (diff) | |
parent | x86/vdso: Fix building on big endian host (diff) | |
download | linux-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.c | 8 |
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 |