lkml.org 
[lkml]   [2014]   [Jul]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 3.2 072/125] drm/radeon: stop poisoning the GART TLB
    3.2.61-rc1 review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Christian König <christian.koenig@amd.com>

    commit 0986c1a55ca64b44ee126a2f719a6e9f28cbe0ed upstream.

    When we set the valid bit on invalid GART entries they are
    loaded into the TLB when an adjacent entry is loaded. This
    poisons the TLB with invalid entries which are sometimes
    not correctly removed on TLB flush.

    For stable inclusion the patch probably needs to be modified a bit.

    Signed-off-by: Christian König <christian.koenig@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    [bwh: Backported to 3.2: R600_PTE_GART is not defined and we list all the
    flags indvidually]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    ---
    --- a/drivers/gpu/drm/radeon/rs600.c
    +++ b/drivers/gpu/drm/radeon/rs600.c
    @@ -529,8 +529,11 @@ int rs600_gart_set_page(struct radeon_de
    return -EINVAL;
    }
    addr = addr & 0xFFFFFFFFFFFFF000ULL;
    - addr |= R600_PTE_VALID | R600_PTE_SYSTEM | R600_PTE_SNOOPED;
    - addr |= R600_PTE_READABLE | R600_PTE_WRITEABLE;
    + if (addr == rdev->dummy_page.addr)
    + addr |= R600_PTE_SYSTEM | R600_PTE_SNOOPED;
    + else
    + addr |= (R600_PTE_VALID | R600_PTE_SYSTEM | R600_PTE_SNOOPED |
    + R600_PTE_READABLE | R600_PTE_WRITEABLE);
    writeq(addr, ptr + (i * 8));
    return 0;
    }
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2014-07-09 02:41    [W:4.059 / U:0.112 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site