tegra: Fix mmap() of GEM buffer objects
Store 64-bit offset values and use libdrm's built-in drm_mmap() function instead of mmap() to ensure the full 64-bit offset is used. Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>main
parent
e44e781603
commit
1842707183
|
@ -41,7 +41,7 @@ struct drm_tegra {
|
|||
struct drm_tegra_bo {
|
||||
struct drm_tegra *drm;
|
||||
uint32_t handle;
|
||||
uint32_t offset;
|
||||
uint64_t offset;
|
||||
uint32_t flags;
|
||||
uint32_t size;
|
||||
atomic_t ref;
|
||||
|
|
|
@ -211,8 +211,8 @@ drm_public int drm_tegra_bo_map(struct drm_tegra_bo *bo, void **ptr)
|
|||
|
||||
bo->offset = args.offset;
|
||||
|
||||
bo->map = mmap(0, bo->size, PROT_READ | PROT_WRITE, MAP_SHARED,
|
||||
drm->fd, bo->offset);
|
||||
bo->map = drm_mmap(NULL, bo->size, PROT_READ | PROT_WRITE, MAP_SHARED,
|
||||
drm->fd, bo->offset);
|
||||
if (bo->map == MAP_FAILED) {
|
||||
bo->map = NULL;
|
||||
return -errno;
|
||||
|
|
Loading…
Reference in New Issue