From d294e41a6a49ddaa6f8d7d5cda266168095fe1f5 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Mon, 4 Jul 2011 13:45:06 +0100 Subject: sna: Update flush/retirement lists after a implicit flush for mmap Signed-off-by: Chris Wilson --- src/sna/kgem.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/sna/kgem.c b/src/sna/kgem.c index d85b5cc2..b2468981 100644 --- a/src/sna/kgem.c +++ b/src/sna/kgem.c @@ -1557,7 +1557,18 @@ uint32_t kgem_add_reloc(struct kgem *kgem, void *kgem_bo_map(struct kgem *kgem, struct kgem_bo *bo, int prot) { - return gem_mmap(kgem->fd, bo->handle, bo->size, prot); + void *ptr = gem_mmap(kgem->fd, bo->handle, bo->size, prot); + if (ptr == NULL) + return NULL; + + bo->needs_flush = false; + if (prot & PROT_WRITE) { + if (bo->rq) + kgem_retire(kgem); + bo->gpu = false; + } + + return ptr; } uint32_t kgem_bo_flink(struct kgem *kgem, struct kgem_bo *bo) -- cgit v1.2.3