• Neil Armstrong's avatar
    drm/fb_helper: Allow leaking fbdev smem_start · 4be9bd10
    Neil Armstrong authored
    Since "drm/fb: Stop leaking physical address", the default behaviour of
    the DRM fbdev emulation is to set the smem_base to 0 and pass the new
    FBINFO_HIDE_SMEM_START flag.
    
    The main reason is to avoid leaking physical addresse to user-space, and
    it follows a general move over the kernel code to avoid user-space to
    manipulate physical addresses and then use some other mechanisms like
    dma-buf to transfer physical buffer handles over multiple subsystems.
    
    But, a lot of devices depends on closed sources binaries to enable
    OpenGL hardware acceleration that uses this smem_start value to
    pass physical addresses to out-of-tree modules in order to render
    into these physical adresses. These should use dma-buf buffers allocated
    from the DRM display device instead and stop relying on fbdev overallocation
    to gather DMA memory (some HW vendors delivers GBM and Wayland capable
    binaries, but older unsupported devices won't have these new binaries
    and are doomed until an Open Source solution like Lima finalizes).
    
    Since these devices heavily depends on this kind of software and because
    the smem_start population was available for years, it's a breakage to
    stop leaking smem_start without any alternative solutions.
    
    This patch adds a Kconfig depending on the EXPERT config and an unsafe
    kernel module parameter tainting the kernel when enabled.
    
    A clear comment and Kconfig help text was added to clarify why and when
    this patch should be reverted, but in the meantime it's a necessary
    feature to keep.
    
    Cc: Dave Airlie <airlied@gmail.com>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Cc: Noralf Trønnes <noralf@tronnes.org>
    Cc: Maxime Ripard <maxime.ripard@bootlin.com>
    Cc: Eric Anholt <eric@anholt.net>
    Cc: Lucas Stach <l.stach@pengutronix.de>
    Cc: Rob Clark <robdclark@gmail.com>
    Cc: Ben Skeggs <skeggsb@gmail.com>
    Cc: Christian König <christian.koenig@amd.com>
    Signed-off-by: default avatarNeil Armstrong <narmstrong@baylibre.com>
    Reviewed-by: default avatarMaxime Ripard <maxime.ripard@bootlin.com>
    Tested-by: default avatarMaxime Ripard <maxime.ripard@bootlin.com>
    Acked-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    Acked-by: default avatarDave Airlie <airlied@gmail.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/1538136355-15383-1-git-send-email-narmstrong@baylibre.com
    4be9bd10
drm_fb_helper.c 90.9 KB