linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Geert Uytterhoeven <geert@linux-m68k.org>
To: Thomas Zimmermann <tzimmermann@suse.de>
Cc: deller@gmx.de, 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, linux-fbdev@vger.kernel.org,
	dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 061/101] fbdev/ps3fb: Duplicate video-mode option string
Date: Fri, 10 Mar 2023 09:18:14 +0100	[thread overview]
Message-ID: <CAMuHMdUi9s6TCyQMsMwFErmvgb_RppAMHjBuXNSRk7rEAuiGrA@mail.gmail.com> (raw)
In-Reply-To: <20230309160201.5163-62-tzimmermann@suse.de>

Hi Thomas,

On Thu, Mar 9, 2023 at 5:02 PM Thomas Zimmermann <tzimmermann@suse.de> wrote:
> Assume that the driver does not own the option string or its substrings
> and hence duplicate the option string for the video mode. Allocate the
> copy's memory with kstrdup() and free it in the module's exit function.
>
> Done in preparation of switching the driver to struct option_iter and
> constifying the option string.
>
> v2:
>         * replace static memory with kstrdup()/kfree() (Geert)
>
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>

Thanks for the upodate!

> --- a/drivers/video/fbdev/ps3fb.c
> +++ b/drivers/video/fbdev/ps3fb.c
> @@ -260,6 +260,7 @@ static const struct fb_videomode ps3fb_modedb[] = {
>  static int ps3fb_mode;
>  module_param(ps3fb_mode, int, 0);
>
> +static char *mode_option_buf;

Do you really need this variable? It contains the same value
as mode_option below.
This is a common pattern in several patches.

>  static char *mode_option;
>
>  static int ps3fb_cmp_mode(const struct fb_videomode *vmode,
> @@ -1276,8 +1277,11 @@ static int __init ps3fb_setup(void)
>                         continue;
>                 if (!strncmp(this_opt, "mode:", 5))
>                         ps3fb_mode = simple_strtoul(this_opt + 5, NULL, 0);
> -               else
> -                       mode_option = this_opt;
> +               else {
> +                       kfree(mode_option_buf);
> +                       mode_option_buf = kstrdup(this_opt, GFP_KERNEL); // ignore errors
> +                       mode_option = mode_option_buf;
> +               }
>         }
>         return 0;
>  }
> @@ -1294,6 +1298,7 @@ static void __exit ps3fb_exit(void)
>  {
>         pr_debug(" -> %s:%d\n", __func__, __LINE__);
>         ps3_system_bus_driver_unregister(&ps3fb_driver);
> +       kfree(mode_option_buf);
>         pr_debug(" <- %s:%d\n", __func__, __LINE__);
>  }

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

  reply	other threads:[~2023-03-10  8:18 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 [this message]
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
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=CAMuHMdUi9s6TCyQMsMwFErmvgb_RppAMHjBuXNSRk7rEAuiGrA@mail.gmail.com \
    --to=geert@linux-m68k.org \
    --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=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 \
    --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).