linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Thomas Zimmermann <tzimmermann@suse.de>
To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org,
	rdunlap@infradead.org, paulus@samba.org,
	benh@kernel.crashing.org, linux@armlinux.org.uk,
	pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de,
	shawnguo@kernel.org, mbroemme@libmpq.org,
	thomas@winischhofer.net, James.Bottomley@HansenPartnership.com,
	sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com,
	corbet@lwn.net
Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 000/101] fbdev: Fix memory leak in option parsing
Date: Mon, 20 Mar 2023 11:07:01 +0100	[thread overview]
Message-ID: <2d278ea0-287c-dbaf-f0c0-cd1fb5a9bc31@suse.de> (raw)
In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de>


[-- Attachment #1.1: Type: text/plain, Size: 13198 bytes --]

Geert, Helge?  Do you have further comments?  There's not really much 
for a v3 yet.

Best regards
Thomas

Am 09.03.23 um 17:00 schrieb Thomas Zimmermann:
> Introduce struct option_iter and helpers to parse command-line
> options with comma-separated key-value pairs. Then convert fbdev
> drivers to the new interface. Fixes a memory leak in the parsing of
> the video= option.
> 
> Before commit 73ce73c30ba9 ("fbdev: Transfer video= option strings to
> caller; clarify ownership"), a call to fb_get_options() either
> returned an internal string or a duplicated string; hence ownership of
> the string's memory buffer was not well defined, but depended on how
> users specified the video= option on the kernel command line. For
> global settings, the caller owned the returned memory and for per-driver
> settings, fb_get_options() owned the memory. As calling drivers were
> unable to detect the case, they had no option but to leak the the memory.
> 
> Commit 73ce73c30ba9 ("fbdev: Transfer video= option strings to caller;
> clarify ownership") changed semantics to caller-owned strings. Drivers
> still leaked the memory, but at least ownership was clear.
> 
> This patchset fixes the memory leak and changes string ownership back
> to fb_get_options(). Patch 1 introduces struct option_iter and a few
> helpers. The interface takes an option string, such as video=, in the
> common form value1,key2:value2,value3 etc and returns the individual
> comma-separated pairs. Various modules use this pattern, so the code
> is located under lib/.
> 
> Patches 2 to 100 go through fbdev drivers and convert them to the new
> interface. This often requires a number of cleanups. A driver would
> typically refer to the option string's video mode. Such strings are now
> copied to driver-allocated memory so that drivers don't refer directly
> to the option string's memory. The option iterator then replaces manual
> parsing loops based on strsep(","). All driver-allocated memory is
> released by removing the device or unloading the module.
> 
> Patch 101 finally changes the ownership of the option string to be
> internal to fb_get_option(); thereby fixing the memory leak. The option
> iterator holds its own copy of the string and is not affected by the
> change.
> 
> Most fbdev drivers only support to parse option strings if they are
> built-in. I assume that's because of the original fuzzy semantics of
> fb_get_options(). A later patchset could change the driver to respect
> video= settings in any configuration.
> 
> v2:
> 	* use kstrdup()/kfree() for video strings (Geert, Timur)
> 	* fix iterator docs (Randy)
> 	* update iterator interface
> 
> Thomas Zimmermann (101):
>    lib: Add option iterator
>    fbdev/68328fb: Remove trailing whitespaces
>    fbdev/68328fb: Remove unused option string
>    fbdev/acornfb: Only init fb_info once
>    fbdev/acornfb: Parse option string with struct option_iter
>    fbdev/amifb: Duplicate video-mode option string
>    fbdev/amifb: Parse option string with struct option_iter
>    fbdev/arkfb: Duplicate video-mode option string
>    fbdev/atafb: Duplicate video-mode option string
>    fbdev/atafb: Parse option string with struct option_iter
>    fbdev/aty: Duplicate video-mode option string
>    fbdev/aty: Parse option string with struct option_iter
>    fbdev/au1100fb: Parse option string with struct option_iter
>    fbdev/au1200fb: Parse option string with struct option_iter
>    fbdev/cirrusfb: Duplicate video-mode option string
>    fbdev/cirrusfb: Parse option string with struct option_iter
>    fbdev/controlfb: Remove trailing whitespaces
>    fbdev/controlfb: Parse option string with struct option_iter
>    fbdev/cyber2000fb: Parse option string with struct option_iter
>    fbdev/efifb: Parse option string with struct option_iter
>    fbdev/fm2fb: Parse option string with struct option_iter
>    fbdev/fsl-diu-fb: Duplicate video-mode option string
>    fbdev/fsl-diu-fb: Parse option string with struct option_iter
>    fbdev/gbefb: Duplicate video-mode option string
>    fbdev/gbefb: Parse option string with struct option_iter
>    fbdev/geode: Duplicate video-mode option string
>    fbdev/geode: Parse option string with struct option_iter
>    fbdev/grvga: Duplicate video-mode option string
>    fbdev/grvga: Parse option string with struct option_iter
>    fbdev/gxt4500: Duplicate video-mode option string
>    fbdev/hyperv_fb: Duplicate video-mode option string
>    fbdev/i740fb: Duplicate video-mode option string
>    fbdev/i740fb: Parse option string with struct option_iter
>    fbdev/i810: Duplicate video-mode option string
>    fbdev/i810: Parse option string with struct option_iter
>    fbdev/imsttfb: Parse option string with struct option_iter
>    fbdev/intelfb: Duplicate video-mode option string
>    fbdev/intelfb: Parse option string with struct option_iter
>    fbdev/imxfb: Duplicate video-mode option string
>    fbdev/imxfb: Parse option string with struct option_iter
>    fbdev/kyrofb: Duplicate video-mode option string
>    fbdev/kyrofb: Parse option string with struct option_iter
>    fbdev/macfb: Remove trailing whitespaces
>    fbdev/macfb: Parse option string with struct option_iter
>    fbdev/matroxfb: Parse option string with struct option_iter
>    fbdev/mx3fb: Duplicate video-mode option string
>    fbdev/mx3fb: Parse option string with struct option_iter
>    fbdev/neofb: Duplicate video-mode option string
>    fbdev/neofb: Parse option string with struct option_iter
>    fbdev/nvidiafb: Duplicate video-mode option string
>    fbdev/nvidiafb: Parse option string with struct option_iter
>    fbdev/ocfb: Duplicate video-mode option string
>    fbdev/ocfb: Parse option string with struct option_iter
>    fbdev/omapfb: Parse option string with struct option_iter
>    fbdev/platinumfb: Remove trailing whitespaces
>    fbdev/platinumfb: Parse option string with struct option_iter
>    fbdev/pm2fb: Duplicate video-mode option string
>    fbdev/pm2fb: Parse option string with struct option_iter
>    fbdev/pm3fb: Duplicate video-mode option string
>    fbdev/pm3fb: Parse option string with struct option_iter
>    fbdev/ps3fb: Duplicate video-mode option string
>    fbdev/ps3fb: Parse option string with struct option_iter
>    fbdev/pvr2fb: Duplicate video-mode option string
>    fbdev/pvr2fb: Parse option string with struct option_iter
>    fbdev/pxafb: Parse option string with struct option_iter
>    fbdev/rivafb: Duplicate video-mode option string
>    fbdev/rivafb: Parse option string with struct option_iter
>    fbdev/s3fb: Duplicate video-mode option string
>    fbdev/s3fb: Parse option string with struct option_iter
>    fbdev/savagefb: Duplicate video-mode option string
>    fbdev/savagefb: Parse option string with struct option_iter
>    fbdev/sisfb: Constify mode string
>    fbdev/sisfb: Parse option string with struct option_iter
>    fbdev/skeletonfb: Parse option string with struct option_iter
>    fbdev/sm712fb: Duplicate video-mode option string
>    fbdev/sstfb: Duplicate video-mode option string
>    fbdev/sstfb: Parse option string with struct option_iter
>    fbdev/stifb: Remove trailing whitespaces
>    fbdev/stifb: Constify option string
>    fbdev/tdfxfb: Duplicate video-mode option string
>    fbdev/tdfxfb: Parse option string with struct option_iter
>    fbdev/tgafb: Duplicate video-mode option string
>    fbdev/tgafb: Parse option string with struct option_iter
>    fbdev/tmiofb: Remove unused option string
>    fbdev/tridentfb: Duplicate video-mode option string
>    fbdev/tridentfb: Parse option string with struct option_iter
>    fbdev/uvesafb: Duplicate video-mode option string
>    fbdev/uvesafb: Parse option string with struct option_iter
>    fbdev/valkyriefb: Remove trailing whitespaces
>    fbdev/valkyriefb: Parse option string with struct option_iter
>    fbdev/vermilion: Remove unused option string
>    fbdev/vesafb: Parse option string with struct option_iter
>    fbdev/vfb: Remove trailing whitespaces
>    fbdev/vfb: Duplicate video-mode option string
>    fbdev/vfb: Parse option string with struct option_iter
>    fbdev/viafb: Parse option string with struct option_iter
>    fbdev/vt8623fb: Duplicate video-mode option string
>    staging/sm750fb: Release g_settings in module-exit function
>    staging/sm750fb: Duplicate video-mode option string
>    staging/sm750fb: Parse option string with struct option_iter
>    fbdev: Constify option strings
> 
>   Documentation/core-api/kernel-api.rst        |   9 ++
>   drivers/staging/sm750fb/sm750.c              |  63 ++++----
>   drivers/video/fbdev/68328fb.c                |  24 +--
>   drivers/video/fbdev/acornfb.c                |  23 ++-
>   drivers/video/fbdev/amifb.c                  |  23 +--
>   drivers/video/fbdev/arkfb.c                  |  10 +-
>   drivers/video/fbdev/atafb.c                  |  21 +--
>   drivers/video/fbdev/aty/aty128fb.c           |  22 ++-
>   drivers/video/fbdev/aty/atyfb_base.c         |  23 ++-
>   drivers/video/fbdev/aty/radeon_base.c        |  26 +--
>   drivers/video/fbdev/au1100fb.c               |  13 +-
>   drivers/video/fbdev/au1200fb.c               |  15 +-
>   drivers/video/fbdev/cirrusfb.c               |  30 ++--
>   drivers/video/fbdev/controlfb.c              |  47 +++---
>   drivers/video/fbdev/core/fb_cmdline.c        |  13 +-
>   drivers/video/fbdev/core/modedb.c            |   8 +-
>   drivers/video/fbdev/cyber2000fb.c            |  17 +-
>   drivers/video/fbdev/efifb.c                  |  44 ++---
>   drivers/video/fbdev/ep93xx-fb.c              |   2 +-
>   drivers/video/fbdev/fm2fb.c                  |  14 +-
>   drivers/video/fbdev/fsl-diu-fb.c             |  24 +--
>   drivers/video/fbdev/gbefb.c                  |  23 +--
>   drivers/video/fbdev/geode/gx1fb_core.c       |  16 +-
>   drivers/video/fbdev/geode/gxfb_core.c        |  23 +--
>   drivers/video/fbdev/geode/lxfb_core.c        |  25 +--
>   drivers/video/fbdev/grvga.c                  |  18 ++-
>   drivers/video/fbdev/gxt4500.c                |  13 +-
>   drivers/video/fbdev/hyperv_fb.c              |  18 ++-
>   drivers/video/fbdev/i740fb.c                 |  26 +--
>   drivers/video/fbdev/i810/i810_main.c         |  26 ++-
>   drivers/video/fbdev/imsttfb.c                |  16 +-
>   drivers/video/fbdev/imxfb.c                  |  21 +--
>   drivers/video/fbdev/intelfb/intelfbdrv.c     |  23 ++-
>   drivers/video/fbdev/kyro/fbdev.c             |  21 ++-
>   drivers/video/fbdev/macfb.c                  |  26 +--
>   drivers/video/fbdev/matrox/matroxfb_base.c   |  19 +--
>   drivers/video/fbdev/mx3fb.c                  |  23 ++-
>   drivers/video/fbdev/neofb.c                  |  26 +--
>   drivers/video/fbdev/nvidia/nvidia.c          |  26 ++-
>   drivers/video/fbdev/ocfb.c                   |  21 ++-
>   drivers/video/fbdev/omap/omapfb_main.c       |  15 +-
>   drivers/video/fbdev/platinumfb.c             |  44 ++---
>   drivers/video/fbdev/pm2fb.c                  |  25 +--
>   drivers/video/fbdev/pm3fb.c                  |  27 ++--
>   drivers/video/fbdev/ps3fb.c                  |  28 ++--
>   drivers/video/fbdev/pvr2fb.c                 |  32 ++--
>   drivers/video/fbdev/pxafb.c                  |  18 ++-
>   drivers/video/fbdev/riva/fbdev.c             |  26 ++-
>   drivers/video/fbdev/s3fb.c                   |  27 ++--
>   drivers/video/fbdev/savage/savagefb_driver.c |  20 ++-
>   drivers/video/fbdev/sis/sis_main.c           |  24 +--
>   drivers/video/fbdev/skeletonfb.c             |  17 +-
>   drivers/video/fbdev/sm712fb.c                |  12 +-
>   drivers/video/fbdev/sstfb.c                  |  25 +--
>   drivers/video/fbdev/stifb.c                  | 162 +++++++++----------
>   drivers/video/fbdev/tdfxfb.c                 |  21 ++-
>   drivers/video/fbdev/tgafb.c                  |  30 ++--
>   drivers/video/fbdev/tmiofb.c                 |  24 +--
>   drivers/video/fbdev/tridentfb.c              |  27 ++--
>   drivers/video/fbdev/uvesafb.c                |  21 ++-
>   drivers/video/fbdev/valkyriefb.c             |  30 ++--
>   drivers/video/fbdev/vermilion/vermilion.c    |   7 +-
>   drivers/video/fbdev/vesafb.c                 |  16 +-
>   drivers/video/fbdev/vfb.c                    |  35 ++--
>   drivers/video/fbdev/via/viafbdev.c           |  15 +-
>   drivers/video/fbdev/vt8623fb.c               |  11 +-
>   include/linux/cmdline.h                      |  36 +++++
>   include/linux/fb.h                           |   2 +-
>   lib/Makefile                                 |   2 +-
>   lib/cmdline_iter.c                           | 109 +++++++++++++
>   70 files changed, 1087 insertions(+), 682 deletions(-)
>   create mode 100644 include/linux/cmdline.h
>   create mode 100644 lib/cmdline_iter.c
> 

-- 
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Ivo Totev

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]

  parent reply	other threads:[~2023-03-20 10:07 UTC|newest]

Thread overview: 112+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-09 16:00 [PATCH v2 000/101] fbdev: Fix memory leak in option parsing Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 001/101] lib: Add option iterator Thomas Zimmermann
2023-03-10  8:21   ` Geert Uytterhoeven
2023-03-10 12:38     ` Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 002/101] fbdev/68328fb: Remove trailing whitespaces Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 003/101] fbdev/68328fb: Remove unused option string Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 004/101] fbdev/acornfb: Only init fb_info once Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 005/101] fbdev/acornfb: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 006/101] fbdev/amifb: Duplicate video-mode option string Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 007/101] fbdev/amifb: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 008/101] fbdev/arkfb: Duplicate video-mode option string Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 009/101] fbdev/atafb: " Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 010/101] fbdev/atafb: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 011/101] fbdev/aty: Duplicate video-mode option string Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 012/101] fbdev/aty: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 013/101] fbdev/au1100fb: " Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 014/101] fbdev/au1200fb: " Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 015/101] fbdev/cirrusfb: Duplicate video-mode option string Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 016/101] fbdev/cirrusfb: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 017/101] fbdev/controlfb: Remove trailing whitespaces Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 018/101] fbdev/controlfb: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 019/101] fbdev/cyber2000fb: " Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 020/101] fbdev/efifb: " Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 021/101] fbdev/fm2fb: " Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 022/101] fbdev/fsl-diu-fb: Duplicate video-mode option string Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 023/101] fbdev/fsl-diu-fb: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 024/101] fbdev/gbefb: Duplicate video-mode option string Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 025/101] fbdev/gbefb: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 026/101] fbdev/geode: Duplicate video-mode option string Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 027/101] fbdev/geode: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 028/101] fbdev/grvga: Duplicate video-mode option string Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 029/101] fbdev/grvga: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 030/101] fbdev/gxt4500: Duplicate video-mode option string Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 031/101] fbdev/hyperv_fb: " Thomas Zimmermann
2023-03-12 10:51   ` Michael Kelley (LINUX)
2023-03-09 16:00 ` [PATCH v2 032/101] fbdev/i740fb: " Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 033/101] fbdev/i740fb: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 034/101] fbdev/i810: Duplicate video-mode option string Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 035/101] fbdev/i810: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 036/101] fbdev/imsttfb: " Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 037/101] fbdev/intelfb: Duplicate video-mode option string Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 038/101] fbdev/intelfb: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:00 ` [PATCH v2 039/101] fbdev/imxfb: Duplicate video-mode option string Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 040/101] fbdev/imxfb: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 041/101] fbdev/kyrofb: Duplicate video-mode option string Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 042/101] fbdev/kyrofb: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 043/101] fbdev/macfb: Remove trailing whitespaces Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 044/101] fbdev/macfb: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 045/101] fbdev/matroxfb: " Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 046/101] fbdev/mx3fb: Duplicate video-mode option string Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 047/101] fbdev/mx3fb: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 048/101] fbdev/neofb: Duplicate video-mode option string Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 049/101] fbdev/neofb: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 050/101] fbdev/nvidiafb: Duplicate video-mode option string Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 051/101] fbdev/nvidiafb: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 052/101] fbdev/ocfb: Duplicate video-mode option string Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 053/101] fbdev/ocfb: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 054/101] fbdev/omapfb: " Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 055/101] fbdev/platinumfb: Remove trailing whitespaces Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 056/101] fbdev/platinumfb: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 057/101] fbdev/pm2fb: Duplicate video-mode option string Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 058/101] fbdev/pm2fb: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 059/101] fbdev/pm3fb: Duplicate video-mode option string Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 060/101] fbdev/pm3fb: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 061/101] fbdev/ps3fb: Duplicate video-mode option string Thomas Zimmermann
2023-03-10  8:18   ` Geert Uytterhoeven
2023-03-10 12:21     ` Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 062/101] fbdev/ps3fb: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 063/101] fbdev/pvr2fb: Duplicate video-mode option string Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 064/101] fbdev/pvr2fb: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 065/101] fbdev/pxafb: " Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 066/101] fbdev/rivafb: Duplicate video-mode option string Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 067/101] fbdev/rivafb: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 068/101] fbdev/s3fb: Duplicate video-mode option string Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 069/101] fbdev/s3fb: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 070/101] fbdev/savagefb: Duplicate video-mode option string Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 071/101] fbdev/savagefb: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 072/101] fbdev/sisfb: Constify mode string Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 073/101] fbdev/sisfb: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 074/101] fbdev/skeletonfb: " Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 075/101] fbdev/sm712fb: Duplicate video-mode option string Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 076/101] fbdev/sstfb: " Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 077/101] fbdev/sstfb: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 078/101] fbdev/stifb: Remove trailing whitespaces Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 079/101] fbdev/stifb: Constify option string Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 080/101] fbdev/tdfxfb: Duplicate video-mode " Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 081/101] fbdev/tdfxfb: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 082/101] fbdev/tgafb: Duplicate video-mode option string Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 083/101] fbdev/tgafb: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 084/101] fbdev/tmiofb: Remove unused option string Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 085/101] fbdev/tridentfb: Duplicate video-mode " Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 086/101] fbdev/tridentfb: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 087/101] fbdev/uvesafb: Duplicate video-mode option string Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 088/101] fbdev/uvesafb: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 089/101] fbdev/valkyriefb: Remove trailing whitespaces Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 090/101] fbdev/valkyriefb: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 091/101] fbdev/vermilion: Remove unused option string Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 092/101] fbdev/vesafb: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 093/101] fbdev/vfb: Remove trailing whitespaces Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 094/101] fbdev/vfb: Duplicate video-mode option string Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 095/101] fbdev/vfb: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 096/101] fbdev/viafb: " Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 097/101] fbdev/vt8623fb: Duplicate video-mode option string Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 098/101] staging/sm750fb: Release g_settings in module-exit function Thomas Zimmermann
2023-03-09 16:01 ` [PATCH v2 099/101] staging/sm750fb: Duplicate video-mode option string Thomas Zimmermann
2023-03-09 16:02 ` [PATCH v2 100/101] staging/sm750fb: Parse option string with struct option_iter Thomas Zimmermann
2023-03-09 16:02 ` [PATCH v2 101/101] fbdev: Constify option strings Thomas Zimmermann
2023-03-10  8:24 ` [PATCH v2 000/101] fbdev: Fix memory leak in option parsing Geert Uytterhoeven
2023-03-10 12:44   ` Thomas Zimmermann
2023-03-20 10:07 ` Thomas Zimmermann [this message]
2023-03-20 19:25   ` Helge Deller
2023-03-21  8:53     ` Thomas Zimmermann

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=2d278ea0-287c-dbaf-f0c0-cd1fb5a9bc31@suse.de \
    --to=tzimmermann@suse.de \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=adaplas@gmail.com \
    --cc=benh@kernel.crashing.org \
    --cc=corbet@lwn.net \
    --cc=deller@gmx.de \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=geert+renesas@glider.be \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=mbroemme@libmpq.org \
    --cc=paulus@samba.org \
    --cc=pjones@redhat.com \
    --cc=rdunlap@infradead.org \
    --cc=s.hauer@pengutronix.de \
    --cc=shawnguo@kernel.org \
    --cc=sudipm.mukherjee@gmail.com \
    --cc=teddy.wang@siliconmotion.com \
    --cc=thomas@winischhofer.net \
    --cc=timur@kernel.org \
    /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).