]> git.baikalelectronics.ru Git - kernel.git/commit
fbdev: Put mmap for deferred I/O into drivers
authorThomas Zimmermann <tzimmermann@suse.de>
Fri, 29 Apr 2022 10:08:30 +0000 (12:08 +0200)
committerThomas Zimmermann <tzimmermann@suse.de>
Tue, 3 May 2022 14:04:21 +0000 (16:04 +0200)
commit52c08befe2ab93178bd0deb41ffbffc33f115e26
treeb440972605773f8144366c0d96394ce32136f1d2
parentff7c732119b3f4637b06e2f7befab5ca7b3a2246
fbdev: Put mmap for deferred I/O into drivers

The fbdev mmap function fb_mmap() unconditionally overrides the
driver's implementation if deferred I/O has been activated. This
makes it hard to implement mmap with anything but a vmalloc()'ed
software buffer. That is specifically a problem for DRM, where
video memory is maintained by a memory manager.

Leave the mmap handling to drivers and expect them to call the
helper for deferred I/O by thmeselves.

v4:
* unlock mm_lock in fb_mmap() error path (Dan)
v3:
* fix warning if fb_mmap is missing (kernel test robot)
v2:
* print a helpful error message if the defio setup is
  incorrect (Javier)

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220429100834.18898-2-tzimmermann@suse.de
15 files changed:
drivers/gpu/drm/drm_fb_helper.c
drivers/gpu/drm/vmwgfx/vmwgfx_fb.c
drivers/hid/hid-picolcd_fb.c
drivers/staging/fbtft/fbtft-core.c
drivers/video/fbdev/broadsheetfb.c
drivers/video/fbdev/core/fb_defio.c
drivers/video/fbdev/core/fbmem.c
drivers/video/fbdev/hecubafb.c
drivers/video/fbdev/hyperv_fb.c
drivers/video/fbdev/metronomefb.c
drivers/video/fbdev/sh_mobile_lcdcfb.c
drivers/video/fbdev/smscufx.c
drivers/video/fbdev/ssd1307fb.c
drivers/video/fbdev/udlfb.c
drivers/video/fbdev/xen-fbfront.c