Is there a point to FOP_UNSIGNED_OFFSET now that everyone is on 64bit? I thought the flag was for back in the day where we it was a huge deal to access 4GB instead of 2GB.
It's mostly used in DRM. drm_open_helper() forces you to set the flag but drm_read() ignores the offset so I don't understand the point of this. regards, dan carpenter $ git grep FOP_UNSIGNED_OFFSET drivers/accel/amdxdna/amdxdna_pci_drv.c: .fop_flags = FOP_UNSIGNED_OFFSET, drivers/char/adi.c: .fop_flags = FOP_UNSIGNED_OFFSET, drivers/char/mem.c: .fop_flags = FOP_UNSIGNED_OFFSET, drivers/gpu/drm/adp/adp_drv.c: .fop_flags = FOP_UNSIGNED_OFFSET, drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c: .fop_flags = FOP_UNSIGNED_OFFSET, drivers/gpu/drm/drm_file.c: if (WARN_ON_ONCE(!(filp->f_op->fop_flags & FOP_UNSIGNED_OFFSET))) drivers/gpu/drm/gma500/psb_drv.c: .fop_flags = FOP_UNSIGNED_OFFSET, drivers/gpu/drm/i915/i915_driver.c: .fop_flags = FOP_UNSIGNED_OFFSET, drivers/gpu/drm/nouveau/nouveau_drm.c: .fop_flags = FOP_UNSIGNED_OFFSET, drivers/gpu/drm/panthor/panthor_drv.c: .fop_flags = FOP_UNSIGNED_OFFSET, drivers/gpu/drm/radeon/radeon_drv.c: .fop_flags = FOP_UNSIGNED_OFFSET, drivers/gpu/drm/tegra/drm.c: .fop_flags = FOP_UNSIGNED_OFFSET, drivers/gpu/drm/vmwgfx/vmwgfx_drv.c: .fop_flags = FOP_UNSIGNED_OFFSET, drivers/gpu/drm/xe/xe_device.c: .fop_flags = FOP_UNSIGNED_OFFSET, fs/proc/base.c: if (WARN_ON_ONCE(!(file->f_op->fop_flags & FOP_UNSIGNED_OFFSET))) fs/proc/base.c: .fop_flags = FOP_UNSIGNED_OFFSET, fs/read_write.c: return file->f_op->fop_flags & FOP_UNSIGNED_OFFSET; include/drm/drm_accel.h: .fop_flags = FOP_UNSIGNED_OFFSET include/drm/drm_gem.h: .fop_flags = FOP_UNSIGNED_OFFSET include/drm/drm_gem_dma_helper.h: .fop_flags = FOP_UNSIGNED_OFFSET, \ include/linux/fs.h:#define FOP_UNSIGNED_OFFSET ((__force fop_flags_t)(1 << 5)) mm/mmap.c: if (file->f_op->fop_flags & FOP_UNSIGNED_OFFSET) rust/bindings/bindings_helper.h:const fop_flags_t RUST_CONST_HELPER_FOP_UNSIGNED_OFFSET = FOP_UNSIGNED_OFFSET; rust/kernel/drm/gem/mod.rs: fops.fop_flags = bindings::FOP_UNSIGNED_OFFSET;
