diff options
| author | Ingo Molnar <mingo@kernel.org> | 2016-09-30 10:54:46 +0200 |
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2016-09-30 10:54:46 +0200 |
| commit | 0b429e18c284af3e7a39f8ec44d95116c473fef8 (patch) | |
| tree | 7957f57dc70c95a32f71896c9a526ca88b5517ad /lib/radix-tree.c | |
| parent | d32cdbfb0ba319e44f75437afde868f7cafdc467 (diff) | |
| parent | 53061afee43bc5041b67a45b6d793e7afdcf9ca7 (diff) | |
| download | linux-0b429e18c284af3e7a39f8ec44d95116c473fef8.tar.gz linux-0b429e18c284af3e7a39f8ec44d95116c473fef8.tar.bz2 linux-0b429e18c284af3e7a39f8ec44d95116c473fef8.zip | |
Merge branch 'linus' into locking/core, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
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 |
