From: Thomas Zimmermann <tzimmermann@suse.de> To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann <tzimmermann@suse.de> Subject: [PATCH 00/99] fbdev: Fix memory leak in option parsing Date: Mon, 6 Mar 2023 16:58:37 +0100 [thread overview] Message-ID: <20230306160016.4459-1-tzimmermann@suse.de> (raw) 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, the memory was leaked. Commit 73ce73c30ba9 ("fbdev: Transfer video= option strings to caller; clarify ownership") changed sematics 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 individial comma-separated pairs. Various modules use this pattern, so the code is located under lib/. Patches 2 to 98 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(","). Patch 99 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. Thomas Zimmermann (99): 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/sti: 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: Parse option string with struct option_iter fbdev: Constify option strings Documentation/core-api/kernel-api.rst | 9 ++ drivers/staging/sm750fb/sm750.c | 45 +++--- drivers/video/fbdev/68328fb.c | 24 +-- drivers/video/fbdev/acornfb.c | 25 ++- drivers/video/fbdev/amifb.c | 30 ++-- drivers/video/fbdev/arkfb.c | 15 +- drivers/video/fbdev/atafb.c | 25 ++- drivers/video/fbdev/aty/aty128fb.c | 28 +++- drivers/video/fbdev/aty/atyfb_base.c | 29 +++- drivers/video/fbdev/aty/radeon_base.c | 32 ++-- drivers/video/fbdev/au1100fb.c | 13 +- drivers/video/fbdev/au1200fb.c | 15 +- drivers/video/fbdev/cirrusfb.c | 37 +++-- drivers/video/fbdev/controlfb.c | 49 +++--- drivers/video/fbdev/core/fb_cmdline.c | 13 +- drivers/video/fbdev/core/modedb.c | 8 +- drivers/video/fbdev/cyber2000fb.c | 19 +-- drivers/video/fbdev/efifb.c | 48 +++--- drivers/video/fbdev/ep93xx-fb.c | 2 +- drivers/video/fbdev/fm2fb.c | 16 +- drivers/video/fbdev/fsl-diu-fb.c | 30 ++-- drivers/video/fbdev/gbefb.c | 25 +-- drivers/video/fbdev/geode/gx1fb_core.c | 18 +-- drivers/video/fbdev/geode/gxfb_core.c | 25 +-- drivers/video/fbdev/geode/lxfb_core.c | 29 ++-- drivers/video/fbdev/grvga.c | 32 +++- drivers/video/fbdev/gxt4500.c | 18 ++- drivers/video/fbdev/hyperv_fb.c | 18 ++- drivers/video/fbdev/i740fb.c | 32 ++-- drivers/video/fbdev/i810/i810_main.c | 30 +++- drivers/video/fbdev/imsttfb.c | 18 ++- drivers/video/fbdev/imxfb.c | 23 ++- drivers/video/fbdev/intelfb/intelfbdrv.c | 29 +++- drivers/video/fbdev/kyro/fbdev.c | 27 ++-- drivers/video/fbdev/macfb.c | 28 ++-- drivers/video/fbdev/matrox/matroxfb_base.c | 21 +-- drivers/video/fbdev/mx3fb.c | 27 +++- drivers/video/fbdev/neofb.c | 32 ++-- drivers/video/fbdev/nvidia/nvidia.c | 32 ++-- drivers/video/fbdev/ocfb.c | 25 ++- drivers/video/fbdev/omap/omapfb_main.c | 15 +- drivers/video/fbdev/platinumfb.c | 46 +++--- drivers/video/fbdev/pm2fb.c | 31 ++-- drivers/video/fbdev/pm3fb.c | 33 ++-- drivers/video/fbdev/ps3fb.c | 32 ++-- drivers/video/fbdev/pvr2fb.c | 29 ++-- drivers/video/fbdev/pxafb.c | 20 ++- drivers/video/fbdev/riva/fbdev.c | 32 ++-- drivers/video/fbdev/s3fb.c | 33 ++-- drivers/video/fbdev/savage/savagefb_driver.c | 26 ++- drivers/video/fbdev/sis/sis_main.c | 26 +-- drivers/video/fbdev/skeletonfb.c | 17 +- drivers/video/fbdev/sm712fb.c | 19 ++- drivers/video/fbdev/sstfb.c | 31 ++-- drivers/video/fbdev/stifb.c | 162 +++++++++---------- drivers/video/fbdev/tdfxfb.c | 27 ++-- drivers/video/fbdev/tgafb.c | 35 ++-- drivers/video/fbdev/tmiofb.c | 24 +-- drivers/video/fbdev/tridentfb.c | 33 ++-- drivers/video/fbdev/uvesafb.c | 27 ++-- drivers/video/fbdev/valkyriefb.c | 32 ++-- drivers/video/fbdev/vermilion/vermilion.c | 7 +- drivers/video/fbdev/vesafb.c | 18 ++- drivers/video/fbdev/vfb.c | 41 +++-- drivers/video/fbdev/via/viafbdev.c | 17 +- drivers/video/fbdev/vt8623fb.c | 16 +- include/linux/cmdline.h | 29 ++++ include/linux/fb.h | 2 +- lib/Makefile | 2 +- lib/cmdline_iter.c | 97 +++++++++++ 70 files changed, 1252 insertions(+), 708 deletions(-) create mode 100644 include/linux/cmdline.h create mode 100644 lib/cmdline_iter.c -- 2.39.2
WARNING: multiple messages have this Message-ID (diff)
From: Thomas Zimmermann <tzimmermann@suse.de> To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: Thomas Zimmermann <tzimmermann@suse.de>, linux-fbdev@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org Subject: [PATCH 00/99] fbdev: Fix memory leak in option parsing Date: Mon, 6 Mar 2023 16:58:37 +0100 [thread overview] Message-ID: <20230306160016.4459-1-tzimmermann@suse.de> (raw) 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, the memory was leaked. Commit 73ce73c30ba9 ("fbdev: Transfer video= option strings to caller; clarify ownership") changed sematics 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 individial comma-separated pairs. Various modules use this pattern, so the code is located under lib/. Patches 2 to 98 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(","). Patch 99 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. Thomas Zimmermann (99): 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/sti: 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: Parse option string with struct option_iter fbdev: Constify option strings Documentation/core-api/kernel-api.rst | 9 ++ drivers/staging/sm750fb/sm750.c | 45 +++--- drivers/video/fbdev/68328fb.c | 24 +-- drivers/video/fbdev/acornfb.c | 25 ++- drivers/video/fbdev/amifb.c | 30 ++-- drivers/video/fbdev/arkfb.c | 15 +- drivers/video/fbdev/atafb.c | 25 ++- drivers/video/fbdev/aty/aty128fb.c | 28 +++- drivers/video/fbdev/aty/atyfb_base.c | 29 +++- drivers/video/fbdev/aty/radeon_base.c | 32 ++-- drivers/video/fbdev/au1100fb.c | 13 +- drivers/video/fbdev/au1200fb.c | 15 +- drivers/video/fbdev/cirrusfb.c | 37 +++-- drivers/video/fbdev/controlfb.c | 49 +++--- drivers/video/fbdev/core/fb_cmdline.c | 13 +- drivers/video/fbdev/core/modedb.c | 8 +- drivers/video/fbdev/cyber2000fb.c | 19 +-- drivers/video/fbdev/efifb.c | 48 +++--- drivers/video/fbdev/ep93xx-fb.c | 2 +- drivers/video/fbdev/fm2fb.c | 16 +- drivers/video/fbdev/fsl-diu-fb.c | 30 ++-- drivers/video/fbdev/gbefb.c | 25 +-- drivers/video/fbdev/geode/gx1fb_core.c | 18 +-- drivers/video/fbdev/geode/gxfb_core.c | 25 +-- drivers/video/fbdev/geode/lxfb_core.c | 29 ++-- drivers/video/fbdev/grvga.c | 32 +++- drivers/video/fbdev/gxt4500.c | 18 ++- drivers/video/fbdev/hyperv_fb.c | 18 ++- drivers/video/fbdev/i740fb.c | 32 ++-- drivers/video/fbdev/i810/i810_main.c | 30 +++- drivers/video/fbdev/imsttfb.c | 18 ++- drivers/video/fbdev/imxfb.c | 23 ++- drivers/video/fbdev/intelfb/intelfbdrv.c | 29 +++- drivers/video/fbdev/kyro/fbdev.c | 27 ++-- drivers/video/fbdev/macfb.c | 28 ++-- drivers/video/fbdev/matrox/matroxfb_base.c | 21 +-- drivers/video/fbdev/mx3fb.c | 27 +++- drivers/video/fbdev/neofb.c | 32 ++-- drivers/video/fbdev/nvidia/nvidia.c | 32 ++-- drivers/video/fbdev/ocfb.c | 25 ++- drivers/video/fbdev/omap/omapfb_main.c | 15 +- drivers/video/fbdev/platinumfb.c | 46 +++--- drivers/video/fbdev/pm2fb.c | 31 ++-- drivers/video/fbdev/pm3fb.c | 33 ++-- drivers/video/fbdev/ps3fb.c | 32 ++-- drivers/video/fbdev/pvr2fb.c | 29 ++-- drivers/video/fbdev/pxafb.c | 20 ++- drivers/video/fbdev/riva/fbdev.c | 32 ++-- drivers/video/fbdev/s3fb.c | 33 ++-- drivers/video/fbdev/savage/savagefb_driver.c | 26 ++- drivers/video/fbdev/sis/sis_main.c | 26 +-- drivers/video/fbdev/skeletonfb.c | 17 +- drivers/video/fbdev/sm712fb.c | 19 ++- drivers/video/fbdev/sstfb.c | 31 ++-- drivers/video/fbdev/stifb.c | 162 +++++++++---------- drivers/video/fbdev/tdfxfb.c | 27 ++-- drivers/video/fbdev/tgafb.c | 35 ++-- drivers/video/fbdev/tmiofb.c | 24 +-- drivers/video/fbdev/tridentfb.c | 33 ++-- drivers/video/fbdev/uvesafb.c | 27 ++-- drivers/video/fbdev/valkyriefb.c | 32 ++-- drivers/video/fbdev/vermilion/vermilion.c | 7 +- drivers/video/fbdev/vesafb.c | 18 ++- drivers/video/fbdev/vfb.c | 41 +++-- drivers/video/fbdev/via/viafbdev.c | 17 +- drivers/video/fbdev/vt8623fb.c | 16 +- include/linux/cmdline.h | 29 ++++ include/linux/fb.h | 2 +- lib/Makefile | 2 +- lib/cmdline_iter.c | 97 +++++++++++ 70 files changed, 1252 insertions(+), 708 deletions(-) create mode 100644 include/linux/cmdline.h create mode 100644 lib/cmdline_iter.c -- 2.39.2
next reply other threads:[~2023-03-06 16:01 UTC|newest] Thread overview: 232+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-03-06 15:58 Thomas Zimmermann [this message] 2023-03-06 15:58 ` [PATCH 00/99] fbdev: Fix memory leak in option parsing Thomas Zimmermann 2023-03-06 15:58 ` [PATCH 01/99] lib: Add option iterator Thomas Zimmermann 2023-03-06 15:58 ` Thomas Zimmermann 2023-03-06 22:37 ` Randy Dunlap 2023-03-06 22:37 ` Randy Dunlap 2023-03-07 8:40 ` Thomas Zimmermann 2023-03-07 8:40 ` Thomas Zimmermann 2023-03-06 15:58 ` [PATCH 02/99] fbdev/68328fb: Remove trailing whitespaces Thomas Zimmermann 2023-03-06 15:58 ` Thomas Zimmermann 2023-03-06 15:58 ` [PATCH 03/99] fbdev/68328fb: Remove unused option string Thomas Zimmermann 2023-03-06 15:58 ` Thomas Zimmermann 2023-03-06 15:58 ` [PATCH 04/99] fbdev/acornfb: Only init fb_info once Thomas Zimmermann 2023-03-06 15:58 ` Thomas Zimmermann 2023-03-06 15:58 ` [PATCH 05/99] fbdev/acornfb: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 15:58 ` Thomas Zimmermann 2023-03-06 15:58 ` [PATCH 06/99] fbdev/amifb: Duplicate video-mode option string Thomas Zimmermann 2023-03-06 15:58 ` Thomas Zimmermann 2023-03-06 15:58 ` [PATCH 07/99] fbdev/amifb: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 15:58 ` Thomas Zimmermann 2023-03-06 17:57 ` kernel test robot 2023-03-06 17:57 ` kernel test robot 2023-03-06 15:58 ` [PATCH 08/99] fbdev/arkfb: Duplicate video-mode option string Thomas Zimmermann 2023-03-06 15:58 ` Thomas Zimmermann 2023-03-06 21:12 ` kernel test robot 2023-03-06 21:12 ` kernel test robot 2023-03-06 15:58 ` [PATCH 09/99] fbdev/atafb: " Thomas Zimmermann 2023-03-06 15:58 ` Thomas Zimmermann 2023-03-06 15:58 ` [PATCH 10/99] fbdev/atafb: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 15:58 ` Thomas Zimmermann 2023-03-06 18:58 ` kernel test robot 2023-03-06 18:58 ` kernel test robot 2023-03-06 15:58 ` [PATCH 11/99] fbdev/aty: Duplicate video-mode option string Thomas Zimmermann 2023-03-06 15:58 ` Thomas Zimmermann 2023-03-06 16:13 ` Geert Uytterhoeven 2023-03-06 16:13 ` Geert Uytterhoeven 2023-03-07 8:24 ` Thomas Zimmermann 2023-03-07 8:24 ` Thomas Zimmermann 2023-03-06 15:58 ` [PATCH 12/99] fbdev/aty: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 15:58 ` Thomas Zimmermann 2023-03-06 15:58 ` [PATCH 13/99] fbdev/au1100fb: " Thomas Zimmermann 2023-03-06 15:58 ` Thomas Zimmermann 2023-03-06 15:58 ` [PATCH 14/99] fbdev/au1200fb: " Thomas Zimmermann 2023-03-06 15:58 ` Thomas Zimmermann 2023-03-06 15:58 ` [PATCH 15/99] fbdev/cirrusfb: Duplicate video-mode option string Thomas Zimmermann 2023-03-06 15:58 ` Thomas Zimmermann 2023-03-06 15:58 ` [PATCH 16/99] fbdev/cirrusfb: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 15:58 ` Thomas Zimmermann 2023-03-06 15:58 ` [PATCH 17/99] fbdev/controlfb: Remove trailing whitespaces Thomas Zimmermann 2023-03-06 15:58 ` Thomas Zimmermann 2023-03-06 15:58 ` [PATCH 18/99] fbdev/controlfb: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 15:58 ` Thomas Zimmermann 2023-03-06 15:58 ` [PATCH 19/99] fbdev/cyber2000fb: " Thomas Zimmermann 2023-03-06 15:58 ` Thomas Zimmermann 2023-03-06 15:58 ` [PATCH 20/99] fbdev/efifb: " Thomas Zimmermann 2023-03-06 15:58 ` Thomas Zimmermann 2023-03-06 15:58 ` [PATCH 21/99] fbdev/fm2fb: " Thomas Zimmermann 2023-03-06 15:58 ` Thomas Zimmermann 2023-03-06 15:58 ` [PATCH 22/99] fbdev/fsl-diu-fb: Duplicate video-mode option string Thomas Zimmermann 2023-03-06 15:58 ` Thomas Zimmermann 2023-03-06 20:04 ` Timur Tabi 2023-03-06 20:04 ` Timur Tabi 2023-03-07 8:28 ` Thomas Zimmermann 2023-03-07 8:28 ` Thomas Zimmermann 2023-03-08 16:26 ` Timur Tabi 2023-03-08 16:26 ` Timur Tabi 2023-03-09 12:15 ` Thomas Zimmermann 2023-03-09 12:15 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 23/99] fbdev/fsl-diu-fb: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 24/99] fbdev/gbefb: Duplicate video-mode option string Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 25/99] fbdev/gbefb: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 26/99] fbdev/geode: Duplicate video-mode option string Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 27/99] fbdev/geode: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 28/99] fbdev/grvga: Duplicate video-mode option string Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 29/99] fbdev/grvga: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 20:00 ` kernel test robot 2023-03-06 20:00 ` kernel test robot 2023-03-06 15:59 ` [PATCH 30/99] fbdev/gxt4500: Duplicate video-mode option string Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 31/99] fbdev/hyperv_fb: " Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 32/99] fbdev/i740fb: " Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 33/99] fbdev/i740fb: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 34/99] fbdev/i810: Duplicate video-mode option string Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 35/99] fbdev/i810: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 36/99] fbdev/imsttfb: " Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 37/99] fbdev/intelfb: Duplicate video-mode option string Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 38/99] fbdev/intelfb: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 39/99] fbdev/imxfb: Duplicate video-mode option string Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 40/99] fbdev/imxfb: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 41/99] fbdev/kyrofb: Duplicate video-mode option string Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 42/99] fbdev/kyrofb: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 43/99] fbdev/macfb: Remove trailing whitespaces Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 44/99] fbdev/macfb: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 45/99] fbdev/matroxfb: " Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 46/99] fbdev/mx3fb: Duplicate video-mode option string Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 47/99] fbdev/mx3fb: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 48/99] fbdev/neofb: Duplicate video-mode option string Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 49/99] fbdev/neofb: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 50/99] fbdev/nvidiafb: Duplicate video-mode option string Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 51/99] fbdev/nvidiafb: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 52/99] fbdev/ocfb: Duplicate video-mode option string Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 53/99] fbdev/ocfb: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 54/99] fbdev/omapfb: " Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 55/99] fbdev/platinumfb: Remove trailing whitespaces Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 56/99] fbdev/platinumfb: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 57/99] fbdev/pm2fb: Duplicate video-mode option string Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 58/99] fbdev/pm2fb: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 59/99] fbdev/pm3fb: Duplicate video-mode option string Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 60/99] fbdev/pm3fb: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 61/99] fbdev/ps3fb: Duplicate video-mode option string Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 62/99] fbdev/ps3fb: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 63/99] fbdev/pvr2fb: Duplicate video-mode option string Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 64/99] fbdev/pvr2fb: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 65/99] fbdev/pxafb: " Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 66/99] fbdev/rivafb: Duplicate video-mode option string Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 67/99] fbdev/rivafb: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 68/99] fbdev/s3fb: Duplicate video-mode option string Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 69/99] fbdev/s3fb: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 70/99] fbdev/savagefb: Duplicate video-mode option string Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 71/99] fbdev/savagefb: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 72/99] fbdev/sisfb: Constify mode string Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 73/99] fbdev/sisfb: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 74/99] fbdev/skeletonfb: " Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 75/99] fbdev/sm712fb: Duplicate video-mode option string Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 76/99] fbdev/sstfb: " Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 77/99] fbdev/sstfb: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 78/99] fbdev/stifb: Remove trailing whitespaces Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 79/99] fbdev/sti: Constify option string Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 80/99] fbdev/tdfxfb: Duplicate video-mode " Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 81/99] fbdev/tdfxfb: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 15:59 ` [PATCH 82/99] fbdev/tgafb: Duplicate video-mode option string Thomas Zimmermann 2023-03-06 15:59 ` Thomas Zimmermann 2023-03-06 16:00 ` [PATCH 83/99] fbdev/tgafb: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 16:00 ` Thomas Zimmermann 2023-03-06 16:00 ` [PATCH 84/99] fbdev/tmiofb: Remove unused option string Thomas Zimmermann 2023-03-06 16:00 ` Thomas Zimmermann 2023-03-06 16:00 ` [PATCH 85/99] fbdev/tridentfb: Duplicate video-mode " Thomas Zimmermann 2023-03-06 16:00 ` Thomas Zimmermann 2023-03-06 16:00 ` [PATCH 86/99] fbdev/tridentfb: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 16:00 ` Thomas Zimmermann 2023-03-06 16:00 ` [PATCH 87/99] fbdev/uvesafb: Duplicate video-mode option string Thomas Zimmermann 2023-03-06 16:00 ` Thomas Zimmermann 2023-03-06 16:00 ` [PATCH 88/99] fbdev/uvesafb: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 16:00 ` Thomas Zimmermann 2023-03-06 16:00 ` [PATCH 89/99] fbdev/valkyriefb: Remove trailing whitespaces Thomas Zimmermann 2023-03-06 16:00 ` Thomas Zimmermann 2023-03-06 16:00 ` [PATCH 90/99] fbdev/valkyriefb: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 16:00 ` Thomas Zimmermann 2023-03-06 16:00 ` [PATCH 91/99] fbdev/vermilion: Remove unused option string Thomas Zimmermann 2023-03-06 16:00 ` Thomas Zimmermann 2023-03-06 16:00 ` [PATCH 92/99] fbdev/vesafb: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 16:00 ` Thomas Zimmermann 2023-03-06 16:00 ` [PATCH 93/99] fbdev/vfb: Remove trailing whitespaces Thomas Zimmermann 2023-03-06 16:00 ` Thomas Zimmermann 2023-03-06 16:00 ` [PATCH 94/99] fbdev/vfb: Duplicate video-mode option string Thomas Zimmermann 2023-03-06 16:00 ` Thomas Zimmermann 2023-03-06 16:00 ` [PATCH 95/99] fbdev/vfb: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 16:00 ` Thomas Zimmermann 2023-03-06 16:00 ` [PATCH 96/99] fbdev/viafb: " Thomas Zimmermann 2023-03-06 16:00 ` Thomas Zimmermann 2023-03-06 16:00 ` [PATCH 97/99] fbdev/vt8623fb: Duplicate video-mode option string Thomas Zimmermann 2023-03-06 16:00 ` Thomas Zimmermann 2023-03-07 0:26 ` kernel test robot 2023-03-07 0:26 ` kernel test robot 2023-03-06 16:00 ` [PATCH 98/99] staging/sm750fb: Parse option string with struct option_iter Thomas Zimmermann 2023-03-06 16:00 ` Thomas Zimmermann 2023-03-06 16:00 ` [PATCH 99/99] fbdev: Constify option strings Thomas Zimmermann 2023-03-06 16:00 ` Thomas Zimmermann 2023-03-07 7:53 ` [PATCH 00/99] fbdev: Fix memory leak in option parsing Geert Uytterhoeven 2023-03-07 7:53 ` Geert Uytterhoeven 2023-03-07 8:23 ` Thomas Zimmermann 2023-03-07 8:23 ` Thomas Zimmermann 2023-03-07 8:57 ` Geert Uytterhoeven 2023-03-07 8:57 ` Geert Uytterhoeven
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=20230306160016.4459-1-tzimmermann@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=s.hauer@pengutronix.de \ --cc=shawnguo@kernel.org \ --cc=spock@gentoo.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: linkBe 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.