[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <c6d2e7db-f728-c867-2f14-528895e99927@suse.de>
Date: Tue, 7 Mar 2023 09:24:57 +0100
From: Thomas Zimmermann <tzimmermann@...e.de>
To: Geert Uytterhoeven <geert@...ux-m68k.org>
Cc: deller@....de, paulus@...ba.org, benh@...nel.crashing.org,
linux@...linux.org.uk, pjones@...hat.com, timur@...nel.org,
adaplas@...il.com, s.hauer@...gutronix.de, shawnguo@...nel.org,
mbroemme@...mpq.org, thomas@...ischhofer.net,
James.Bottomley@...senpartnership.com, spock@...too.org,
sudipm.mukherjee@...il.com, teddy.wang@...iconmotion.com,
geert+renesas@...der.be, corbet@....net,
linux-fbdev@...r.kernel.org, dri-devel@...ts.freedesktop.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH 11/99] fbdev/aty: Duplicate video-mode option string
Hi
Am 06.03.23 um 17:13 schrieb Geert Uytterhoeven:
> Hi Thomas,
>
> Thanks for your patch!
>
> On Mon, Mar 6, 2023 at 5:00 PM Thomas Zimmermann <tzimmermann@...e.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. The driver only
>> parses the option string once as part of module initialization, so use
>> a static buffer to store the duplicated mode option. Linux automatically
>> frees the memory upon releasing the module.
>
> Are you sure about that?
> All of this code is inside "#ifndef MODULE".
> In the aty128fb case, the function is not marked __init.
> Enabling these 3 drivers adds 3x256 bytes of static buffer, more
> if you enable more fbdev drivers.
Right. Please see my reply to [00/99].
>
>> Done in preparation of switching the driver to struct option_iter and
>> constifying the option string.
>>
>> Signed-off-by: Thomas Zimmermann <tzimmermann@...e.de>
>
>> --- a/drivers/video/fbdev/aty/aty128fb.c
>> +++ b/drivers/video/fbdev/aty/aty128fb.c
>> @@ -1723,7 +1723,17 @@ static int aty128fb_setup(char *options)
>> continue;
>> }
>> #endif /* CONFIG_PPC_PMAC */
>> - mode_option = this_opt;
>> + {
>> + static char mode_option_buf[256];
>> + int ret;
>> +
>> + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", this_opt);
>> + if (WARN(ret < 0, "aty128: ignoring invalid option, ret=%d\n", ret))
>> + continue;
>> + if (WARN(ret >= sizeof(mode_option_buf), "aty128fb: option too long\n"))
>> + continue;
>> + mode_option = mode_option_buf;
>> + }
>> }
>> return 0;
>> }
> eturn 0;
>> }
>
> Gr{oetje,eeting}s,
>
> Geert
>
--
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
Download attachment "OpenPGP_signature" of type "application/pgp-signature" (841 bytes)
Powered by blists - more mailing lists