linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Lee Jones <lee@kernel.org>
To: Thomas Zimmermann <tzimmermann@suse.de>
Cc: daniel@ffwll.ch, javierm@redhat.com, sam@ravnborg.org,
	deller@gmx.de, geert+renesas@glider.be,
	daniel.thompson@linaro.org, jingoohan1@gmail.com,
	dan.carpenter@linaro.org, michael.j.ruhl@intel.com,
	linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org,
	linux-sh@vger.kernel.org, linux-omap@vger.kernel.org,
	linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 00/38] fbdev: Make userspace interfaces optional
Date: Mon, 19 Jun 2023 09:32:07 +0100	[thread overview]
Message-ID: <20230619083207.GP3635807@google.com> (raw)
In-Reply-To: <20230613110953.24176-1-tzimmermann@suse.de>

On Tue, 13 Jun 2023, Thomas Zimmermann wrote:

> Add the new config option FB_DEVICE. If enabled, fbdev provides
> traditional userspace interfaces in devfs, sysfs and procfs, such
> as /dev/fb0 or /proc/fb.
> 
> Modern Linux distrobutions have adopted DRM drivers for graphics
> output and use fbdev only for the kernel's framebuffer console.
> Userspace has also moved on, with no new fbdev code being written
> and existing support being removed.
> 
> OTOH, fbdev provides userspace a way of accessing kernel or I/O
> memory, which might compromise the system's security. See the recent
> commit c8687694bb1f ("drm/fbdev-generic: prohibit potential
> out-of-bounds access") for an example. Disabling fbdev userspace
> interfaces is therefore a useful feature to limit unnecessary
> exposure of fbdev code to processes of low privilegues.
> 
> Patches 1 to 31 fix various bugs and issues in fbdev-related code.
> In most cases the code uses the fbdev device where it should use
> the Linux hardware device or something else. Most of these patches
> fix existing problems and should therefore be considered in any case.
> 
> Patches 32 to 37 refactor the fbdev core code. The patches move
> support for backlights, sysfs, procfs and devfs into separate files
> and hide it behind simple interfaces. These changes will allow to
> easily build the userspace support conditionally.
> 
> Patch 38 introduces the config option FB_DEVICE and adapts the fbdev
> core to support it. The field struct fb_info.dev is now optional,
> hence the name of the config option.
> 
> Tested on simpledrm and i915, including the device handover.
> 
> Future directions: With the support for disabling fbdev userspace
> interfaces in place, it will be possible to make most fbdev drivers'
> file-I/O code in struct fb_ops optional as well. 
> 
> v3:
> 	* add missing file fb_chrdev.c
> 	* fix typo in Kconfig help (Daniel)
> v2:
> 	* fix fsl-diu-fb and sh7760fb
> 	* split backlight patches
> 	* set 'default y' for FB_CONFIG
> 	* minor fixes and corrections
> 
> Thomas Zimmermann (38):
>   backlight/bd6107: Compare against struct fb_info.device
>   backlight/bd6107: Rename struct bd6107_platform_data.fbdev to 'dev'
>   backlight/gpio_backlight: Compare against struct fb_info.device
>   backlight/gpio_backlight: Rename field 'fbdev' to 'dev'
>   backlight/lv5207lp: Compare against struct fb_info.device
>   backlight/lv5207lp: Rename struct lv5207lp_platform_data.fbdev to
>     'dev'
>   fbdev/atyfb: Reorder backlight and framebuffer init/cleanup
>   fbdev/atyfb: Use hardware device as backlight parent
>   fbdev/aty128fb: Reorder backlight and framebuffer init/cleanup
>   fbdev/aty128fb: Use hardware device as backlight parent
>   fbdev/broadsheetfb: Call device_remove_file() with hardware device
>   fbdev/ep93xx-fb: Alloc DMA memory from hardware device
>   fbdev/ep93xx-fb: Output messages with fb_info() and fb_err()
>   fbdev/ep93xx-fb: Do not assign to struct fb_info.dev
>   fbdev/fsl-diu-fb: Output messages with fb_*() helpers
>   fbdev/mb862xxfb: Output messages with fb_dbg()
>   fbdev/metronomefb: Use hardware device for dev_err()
>   fbdev/nvidiafb: Reorder backlight and framebuffer init/cleanup
>   fbdev/nvidiafb: Use hardware device as backlight parent
>   fbdev/pxa168fb: Do not assign to struct fb_info.dev
>   fbdev/radeonfb: Reorder backlight and framebuffer cleanup
>   fbdev/radeonfb: Use hardware device as backlight parent
>   fbdev/rivafb: Reorder backlight and framebuffer init/cleanup
>   fbdev/rivafb: Use hardware device as backlight parent
>   fbdev/sh7760fb: Use fb_dbg() in sh7760fb_get_color_info()
>   fbdev/sh7760fb: Output messages with fb_dbg()
>   fbdev/sh7760fb: Alloc DMA memory from hardware device
>   fbdev/sh7760fb: Use hardware device with dev_() output during probe
>   fbdev/sm501fb: Output message with fb_err()
>   fbdev/smscufx: Detect registered fb_info from refcount
>   fbdev/tdfxfb: Set i2c adapter parent to hardware device
>   fbdev/core: Pass Linux device to pm_vt_switch_*() functions
>   fbdev/core: Move framebuffer and backlight helpers into separate files
>   fbdev/core: Add fb_device_{create,destroy}()
>   fbdev/core: Move procfs code to separate file
>   fbdev/core: Move file-I/O code into separate file
>   fbdev/core: Rework fb init code
>   fbdev: Make support for userspace interfaces configurable
> 
>  Documentation/gpu/todo.rst                   |  13 +
>  arch/sh/boards/mach-ecovec24/setup.c         |   2 +-
>  arch/sh/boards/mach-kfr2r09/setup.c          |   2 +-
>  drivers/staging/fbtft/Kconfig                |   1 +

>  drivers/video/backlight/bd6107.c             |   2 +-
>  drivers/video/backlight/gpio_backlight.c     |   6 +-
>  drivers/video/backlight/lv5207lp.c           |   2 +-

Acked-by: Lee Jones <lee@kernel.org>

-- 
Lee Jones [李琼斯]

      parent reply	other threads:[~2023-06-19  8:32 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-13 11:06 [PATCH v3 00/38] fbdev: Make userspace interfaces optional Thomas Zimmermann
2023-06-13 11:06 ` [PATCH v3 01/38] backlight/bd6107: Compare against struct fb_info.device Thomas Zimmermann
2023-06-14 13:51   ` Lee Jones
2023-06-14 14:13     ` Thomas Zimmermann
2023-06-16 14:37       ` Thomas Zimmermann
2023-06-19  8:31         ` Lee Jones
2023-06-19  8:42           ` Thomas Zimmermann
2023-06-13 11:06 ` [PATCH v3 02/38] backlight/bd6107: Rename struct bd6107_platform_data.fbdev to 'dev' Thomas Zimmermann
2023-06-13 11:06 ` [PATCH v3 03/38] backlight/gpio_backlight: Compare against struct fb_info.device Thomas Zimmermann
2023-06-13 11:06 ` [PATCH v3 04/38] backlight/gpio_backlight: Rename field 'fbdev' to 'dev' Thomas Zimmermann
2023-06-13 11:06 ` [PATCH v3 05/38] backlight/lv5207lp: Compare against struct fb_info.device Thomas Zimmermann
2023-06-13 11:06 ` [PATCH v3 06/38] backlight/lv5207lp: Rename struct lv5207lp_platform_data.fbdev to 'dev' Thomas Zimmermann
2023-06-13 11:06 ` [PATCH v3 07/38] fbdev/atyfb: Reorder backlight and framebuffer init/cleanup Thomas Zimmermann
2023-06-13 11:06 ` [PATCH v3 08/38] fbdev/atyfb: Use hardware device as backlight parent Thomas Zimmermann
2023-06-13 11:06 ` [PATCH v3 09/38] fbdev/aty128fb: Reorder backlight and framebuffer init/cleanup Thomas Zimmermann
2023-06-13 11:06 ` [PATCH v3 10/38] fbdev/aty128fb: Use hardware device as backlight parent Thomas Zimmermann
2023-06-13 11:06 ` [PATCH v3 11/38] fbdev/broadsheetfb: Call device_remove_file() with hardware device Thomas Zimmermann
2023-06-13 11:06 ` [PATCH v3 12/38] fbdev/ep93xx-fb: Alloc DMA memory from " Thomas Zimmermann
2023-06-13 11:06 ` [PATCH v3 13/38] fbdev/ep93xx-fb: Output messages with fb_info() and fb_err() Thomas Zimmermann
2023-06-13 11:06 ` [PATCH v3 14/38] fbdev/ep93xx-fb: Do not assign to struct fb_info.dev Thomas Zimmermann
2023-06-13 11:06 ` [PATCH v3 15/38] fbdev/fsl-diu-fb: Output messages with fb_*() helpers Thomas Zimmermann
2023-06-13 11:06 ` [PATCH v3 16/38] fbdev/mb862xxfb: Output messages with fb_dbg() Thomas Zimmermann
2023-06-13 11:06 ` [PATCH v3 17/38] fbdev/metronomefb: Use hardware device for dev_err() Thomas Zimmermann
2023-06-13 11:06 ` [PATCH v3 18/38] fbdev/nvidiafb: Reorder backlight and framebuffer init/cleanup Thomas Zimmermann
2023-06-13 11:06 ` [PATCH v3 19/38] fbdev/nvidiafb: Use hardware device as backlight parent Thomas Zimmermann
2023-06-13 11:06 ` [PATCH v3 20/38] fbdev/pxa168fb: Do not assign to struct fb_info.dev Thomas Zimmermann
2023-06-13 11:06 ` [PATCH v3 21/38] fbdev/radeonfb: Reorder backlight and framebuffer cleanup Thomas Zimmermann
2023-06-13 11:06 ` [PATCH v3 22/38] fbdev/radeonfb: Use hardware device as backlight parent Thomas Zimmermann
2023-06-13 11:06 ` [PATCH v3 23/38] fbdev/rivafb: Reorder backlight and framebuffer init/cleanup Thomas Zimmermann
2023-06-13 11:06 ` [PATCH v3 24/38] fbdev/rivafb: Use hardware device as backlight parent Thomas Zimmermann
2023-06-13 11:07 ` [PATCH v3 25/38] fbdev/sh7760fb: Use fb_dbg() in sh7760fb_get_color_info() Thomas Zimmermann
2023-06-13 11:07 ` [PATCH v3 26/38] fbdev/sh7760fb: Output messages with fb_dbg() Thomas Zimmermann
2023-06-13 11:07 ` [PATCH v3 27/38] fbdev/sh7760fb: Alloc DMA memory from hardware device Thomas Zimmermann
2023-06-26 12:27   ` Javier Martinez Canillas
2023-06-13 11:07 ` [PATCH v3 28/38] fbdev/sh7760fb: Use hardware device with dev_() output during probe Thomas Zimmermann
2023-06-13 11:07 ` [PATCH v3 29/38] fbdev/sm501fb: Output message with fb_err() Thomas Zimmermann
2023-06-13 11:07 ` [PATCH v3 30/38] fbdev/smscufx: Detect registered fb_info from refcount Thomas Zimmermann
2023-06-13 11:07 ` [PATCH v3 31/38] fbdev/tdfxfb: Set i2c adapter parent to hardware device Thomas Zimmermann
2023-06-13 11:07 ` [PATCH v3 32/38] fbdev/core: Pass Linux device to pm_vt_switch_*() functions Thomas Zimmermann
2023-06-13 11:07 ` [PATCH v3 33/38] fbdev/core: Move framebuffer and backlight helpers into separate files Thomas Zimmermann
2023-06-13 11:07 ` [PATCH v3 34/38] fbdev/core: Add fb_device_{create,destroy}() Thomas Zimmermann
2023-06-13 11:07 ` [PATCH v3 35/38] fbdev/core: Move procfs code to separate file Thomas Zimmermann
2023-06-13 11:07 ` [PATCH v3 36/38] fbdev/core: Move file-I/O code into " Thomas Zimmermann
2023-06-13 11:07 ` [PATCH v3 37/38] fbdev/core: Rework fb init code Thomas Zimmermann
2023-06-13 11:07 ` [PATCH v3 38/38] fbdev: Make support for userspace interfaces configurable Thomas Zimmermann
2023-06-19  8:32 ` Lee Jones [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230619083207.GP3635807@google.com \
    --to=lee@kernel.org \
    --cc=dan.carpenter@linaro.org \
    --cc=daniel.thompson@linaro.org \
    --cc=daniel@ffwll.ch \
    --cc=deller@gmx.de \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=geert+renesas@glider.be \
    --cc=javierm@redhat.com \
    --cc=jingoohan1@gmail.com \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-sh@vger.kernel.org \
    --cc=linux-staging@lists.linux.dev \
    --cc=michael.j.ruhl@intel.com \
    --cc=sam@ravnborg.org \
    --cc=tzimmermann@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).