|
@@ -675,15 +675,8 @@ static struct page *get_ksm_page(struct stable_node *stable_node, bool lock_it)
|
|
|
expected_mapping = (void *)((unsigned long)stable_node |
|
|
|
PAGE_MAPPING_KSM);
|
|
|
again:
|
|
|
- kpfn = READ_ONCE(stable_node->kpfn);
|
|
|
+ kpfn = READ_ONCE(stable_node->kpfn); /* Address dependency. */
|
|
|
page = pfn_to_page(kpfn);
|
|
|
-
|
|
|
- /*
|
|
|
- * page is computed from kpfn, so on most architectures reading
|
|
|
- * page->mapping is naturally ordered after reading node->kpfn,
|
|
|
- * but on Alpha we need to be more careful.
|
|
|
- */
|
|
|
- smp_read_barrier_depends();
|
|
|
if (READ_ONCE(page->mapping) != expected_mapping)
|
|
|
goto stale;
|
|
|
|