From fe21f7d286f857d6680b3c733f2e2f40b7557ac8 Mon Sep 17 00:00:00 2001 From: Tejun Heo Date: Tue, 17 Aug 2010 14:13:42 +0200 Subject: [PATCH] --- yaml --- r: 210011 b: refs/heads/master c: aba8a08ded89a74f1ba04ae94ecc98f26e27d41c h: refs/heads/master i: 210009: 58165bd91ed352f6bc575bdf75899eb13419bda3 210007: a5c3c33ad88fed8147b64d9bd132f9de7c70821f v: v3 --- [refs] | 2 +- trunk/drivers/ata/pata_cmd64x.c | 6 ------ trunk/mm/rmap.c | 19 +++---------------- 3 files changed, 4 insertions(+), 23 deletions(-) diff --git a/[refs] b/[refs] index 6c515b4798da..9f2f111407f2 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f18194275c39835cb84563500995e0d503a32d9a +refs/heads/master: aba8a08ded89a74f1ba04ae94ecc98f26e27d41c diff --git a/trunk/drivers/ata/pata_cmd64x.c b/trunk/drivers/ata/pata_cmd64x.c index 9f5da1c7454b..905ff76d3cbb 100644 --- a/trunk/drivers/ata/pata_cmd64x.c +++ b/trunk/drivers/ata/pata_cmd64x.c @@ -121,14 +121,8 @@ static void cmd64x_set_timing(struct ata_port *ap, struct ata_device *adev, u8 m if (pair) { struct ata_timing tp; - ata_timing_compute(pair, pair->pio_mode, &tp, T, 0); ata_timing_merge(&t, &tp, &t, ATA_TIMING_SETUP); - if (pair->dma_mode) { - ata_timing_compute(pair, pair->dma_mode, - &tp, T, 0); - ata_timing_merge(&tp, &t, &t, ATA_TIMING_SETUP); - } } } diff --git a/trunk/mm/rmap.c b/trunk/mm/rmap.c index f6f0d2dda2ea..87b9e8ad4509 100644 --- a/trunk/mm/rmap.c +++ b/trunk/mm/rmap.c @@ -316,7 +316,7 @@ void __init anon_vma_init(void) */ struct anon_vma *page_lock_anon_vma(struct page *page) { - struct anon_vma *anon_vma, *root_anon_vma; + struct anon_vma *anon_vma; unsigned long anon_mapping; rcu_read_lock(); @@ -327,21 +327,8 @@ struct anon_vma *page_lock_anon_vma(struct page *page) goto out; anon_vma = (struct anon_vma *) (anon_mapping - PAGE_MAPPING_ANON); - root_anon_vma = ACCESS_ONCE(anon_vma->root); - spin_lock(&root_anon_vma->lock); - - /* - * If this page is still mapped, then its anon_vma cannot have been - * freed. But if it has been unmapped, we have no security against - * the anon_vma structure being freed and reused (for another anon_vma: - * SLAB_DESTROY_BY_RCU guarantees that - so the spin_lock above cannot - * corrupt): with anon_vma_prepare() or anon_vma_fork() redirecting - * anon_vma->root before page_unlock_anon_vma() is called to unlock. - */ - if (page_mapped(page)) - return anon_vma; - - spin_unlock(&root_anon_vma->lock); + anon_vma_lock(anon_vma); + return anon_vma; out: rcu_read_unlock(); return NULL;