[PATCH] clk: don't use __initconst for non-const arrays
Ard Biesheuvel
ard.biesheuvel at linaro.org
Fri Sep 12 00:42:29 PDT 2014
On 12 September 2014 00:04, Uwe Kleine-König
<u.kleine-koenig at pengutronix.de> wrote:
> Hello,
>
> On Thu, Sep 11, 2014 at 11:04:31PM +0200, Uwe Kleine-König wrote:
>> /* Mux parent lists. */
>> -static const char *fin_pll_p[] __initconst = {
>> +static const char *fin_pll_p[] __initdata = {
>> "xxti",
>> "xusbxti"
>> };
> As discussed with Tomasz on irc: The sad thing here is that for this
> array only 8 bytes are freed when .init.rodata is thrown away (that is
> two pointers). The actual data---5 + 8 bytes + maybe aligning---isn't
> freed though.
>
> We wondered if there is a nice and easy way to throw away the
> characters, too.
>
> The only way I currently see is:
>
> const char xxti[] __initconst = "xxti";
> ...
>
> static const char *fin_pll_p[] __initdata = {
> xxti,
> ...
> };
>
> but this definitively doesn't qualify as "nice and easy". Is there an
> alternative?
>
What about doing
static const char fin_pll_p[][8] __initconst = {
"xxti",
"xusbxti"
};
More information about the linux-arm-kernel
mailing list