From 28bb235bc39be5d1cd9f0881f999cba7444f887d Mon Sep 17 00:00:00 2001 From: Naomi Luis Date: Thu, 1 Sep 2011 18:08:34 -0700 Subject: [PATCH] libgralloc-qsd8k: Use correct vaddr for clean/invalidate pmem regions CRs-fixed: 304740 Change-Id: Id72bb9ae874a56be89aec79d23e8d2e79856409d --- libgralloc-qsd8k/mapper.cpp | 4 ++-- libgralloc-qsd8k/pmemalloc.cpp | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/libgralloc-qsd8k/mapper.cpp b/libgralloc-qsd8k/mapper.cpp index 883c10b..cdd9bbc 100755 --- a/libgralloc-qsd8k/mapper.cpp +++ b/libgralloc-qsd8k/mapper.cpp @@ -297,8 +297,8 @@ int gralloc_unlock(gralloc_module_t const* module, err = ioctl(hnd->fd, ASHMEM_CACHE_FLUSH_RANGE, NULL); } - LOGE_IF(err < 0, "cannot flush handle %p (offs=%x len=%x)\n", - hnd, hnd->offset, hnd->size); + LOGE_IF(err < 0, "cannot flush handle %p (offs=%x len=%x, flags = 0x%x) err=%s\n", + hnd, hnd->offset, hnd->size, hnd->flags, strerror(errno)); hnd->flags &= ~private_handle_t::PRIV_FLAGS_NEEDS_FLUSH; } diff --git a/libgralloc-qsd8k/pmemalloc.cpp b/libgralloc-qsd8k/pmemalloc.cpp index f7f9059..e9c5247 100755 --- a/libgralloc-qsd8k/pmemalloc.cpp +++ b/libgralloc-qsd8k/pmemalloc.cpp @@ -182,7 +182,10 @@ int PmemUserspaceAllocator::alloc_pmem_buffer(size_t size, int usage, LOGV("%s: mapped fd %d at offset %d, size %d", pmemdev, fd, offset, size); memset((char*)base + offset, 0, size); //Clean cache before flushing to ensure pmem is properly flushed - deps.cleanPmem(fd, (unsigned long) base, offset, size); + err = deps.cleanPmem(fd, (unsigned long) base + offset, offset, size); + if (err < 0) { + LOGE("cleanPmem failed: (%s)", strerror(deps.getErrno())); + } #ifdef HOST cacheflush(intptr_t(base) + offset, intptr_t(base) + offset + size, 0); #endif