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 [李琼斯]
WARNING: multiple messages have this Message-ID (diff)
From: Lee Jones <lee@kernel.org>
To: Thomas Zimmermann <tzimmermann@suse.de>
Cc: daniel.thompson@linaro.org, linux-kernel@vger.kernel.org,
geert+renesas@glider.be, linux-sh@vger.kernel.org,
jingoohan1@gmail.com, deller@gmx.de,
linux-staging@lists.linux.dev, javierm@redhat.com,
dri-devel@lists.freedesktop.org, linux-fbdev@vger.kernel.org,
michael.j.ruhl@intel.com, linux-omap@vger.kernel.org,
sam@ravnborg.org, dan.carpenter@linaro.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 [李琼斯]
next prev parent reply other threads:[~2023-06-19 8:32 UTC|newest]
Thread overview: 92+ 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 ` Thomas Zimmermann
2023-06-13 11:06 ` [PATCH v3 01/38] backlight/bd6107: Compare against struct fb_info.device Thomas Zimmermann
2023-06-13 11:06 ` Thomas Zimmermann
2023-06-14 13:51 ` Lee Jones
2023-06-14 13:51 ` Lee Jones
2023-06-14 14:13 ` Thomas Zimmermann
2023-06-14 14:13 ` Thomas Zimmermann
2023-06-16 14:37 ` Thomas Zimmermann
2023-06-16 14:37 ` Thomas Zimmermann
2023-06-19 8:31 ` Lee Jones
2023-06-19 8:31 ` Lee Jones
2023-06-19 8:42 ` Thomas Zimmermann
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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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:06 ` 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 ` 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 ` Thomas Zimmermann
2023-06-13 11:07 ` [PATCH v3 27/38] fbdev/sh7760fb: Alloc DMA memory from hardware device Thomas Zimmermann
2023-06-13 11:07 ` Thomas Zimmermann
2023-06-26 12:27 ` Javier Martinez Canillas
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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` Thomas Zimmermann
2023-06-13 11:07 ` [PATCH v3 37/38] fbdev/core: Rework fb init code Thomas Zimmermann
2023-06-13 11:07 ` Thomas Zimmermann
2023-06-13 11:07 ` [PATCH v3 38/38] fbdev: Make support for userspace interfaces configurable Thomas Zimmermann
2023-06-13 11:07 ` Thomas Zimmermann
2023-06-19 8:32 ` Lee Jones [this message]
2023-06-19 8:32 ` [PATCH v3 00/38] fbdev: Make userspace interfaces optional Lee Jones
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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.