drm-shim: Explicitly use off64_t for the offset to drm_shim_mmap
authorIcecream95 <ixn@disroot.org>
Mon, 6 Sep 2021 07:44:23 +0000 (19:44 +1200)
committerMarge Bot <emma+marge@anholt.net>
Tue, 12 Apr 2022 10:01:39 +0000 (10:01 +0000)
drm_shim.c undefines the _FILE_OFFSET_BITS macro, so plain off_t might
be 32 bits, while it's 64 bits in device.c. To avoid this mismatch,
use off64_t which will always be 64 bits in both source files.

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12203>

src/drm-shim/device.c
src/drm-shim/drm_shim.h

index 211eb2e..fecdb1f 100644 (file)
@@ -373,7 +373,7 @@ drm_shim_bo_get_mmap_offset(struct shim_fd *shim_fd, struct shim_bo *bo)
  */
 void *
 drm_shim_mmap(struct shim_fd *shim_fd, size_t length, int prot, int flags,
-              int fd, off_t offset)
+              int fd, off64_t offset)
 {
    struct shim_bo *bo = (void *)(uintptr_t)offset;
 
index cb3951a..dbb8317 100644 (file)
@@ -83,7 +83,7 @@ void drm_shim_fd_register(int fd, struct shim_fd *shim_fd);
 struct shim_fd *drm_shim_fd_lookup(int fd);
 int drm_shim_ioctl(int fd, unsigned long request, void *arg);
 void *drm_shim_mmap(struct shim_fd *shim_fd, size_t length, int prot, int flags,
-                    int fd, off_t offset);
+                    int fd, off64_t offset);
 
 void drm_shim_bo_init(struct shim_bo *bo, size_t size);
 void drm_shim_bo_get(struct shim_bo *bo);