Messages in this thread | | | From | Michael Tirado <> | Date | Tue, 23 Oct 2018 01:47:20 +0000 | Subject | Re: |
| |
That preprocessor define worked but I'm still confused about this DRM_FILE_PAGE_OFFSET thing. Check out drivers/gpu/drm/drm_gem.c right above drm_gem_init.
---
/* * We make up offsets for buffer objects so we can recognize them at * mmap time. */
/* pgoff in mmap is an unsigned long, so we need to make sure that * the faked up offset will fit */
#if BITS_PER_LONG == 64 #define DRM_FILE_PAGE_OFFSET_START ((0xFFFFFFFFUL >> PAGE_SHIFT) + 1) #define DRM_FILE_PAGE_OFFSET_SIZE ((0xFFFFFFFFUL >> PAGE_SHIFT) * 16) #else #define DRM_FILE_PAGE_OFFSET_START ((0xFFFFFFFUL >> PAGE_SHIFT) + 1) #define DRM_FILE_PAGE_OFFSET_SIZE ((0xFFFFFFFUL >> PAGE_SHIFT) * 16) #endif
---
Why is having a 64-bit file offsets critical, causing -EINVAL on mmap? What problems might be associated with using (0x10000000UL >> PAGE_SHIFT) ? On Mon, Oct 22, 2018 at 1:50 AM Dave Airlie <airlied@gmail.com> wrote: > > On Mon, 22 Oct 2018 at 10:49, Michael Tirado <mtirado418@gmail.com> wrote: > > > > On Mon, Oct 22, 2018 at 12:26 AM Dave Airlie <airlied@gmail.com> wrote: > > > > > > This shouldn't be necessary, did someone misbackport the mmap changes without: > > > > > > drm: set FMODE_UNSIGNED_OFFSET for drm files > > > > > > Dave. > > > > The latest kernel I have had to patch was a 4.18-rc6. I'll try with a > > newer 4.19 and let you know if it decides to work. If not I'll > > prepare a test case for demonstration on qemu-system-i386. > > If you have custom userspace software, make sure it's using > AC_SYS_LARGEFILE or whatever the equivalant is in your build system. > > 64-bit file offsets are important. > > Dave.
| |