linux-mips
[Top] [All Lists]

Re: COMMAND_LINE_SIZE and CONFIG_FRAME_WARN

To: David Daney <ddaney@caviumnetworks.com>
Subject: Re: COMMAND_LINE_SIZE and CONFIG_FRAME_WARN
From: Dmitri Vorobiev <dmitri.vorobiev@gmail.com>
Date: Fri, 6 Nov 2009 19:07:54 +0200
Cc: Atsushi Nemoto <anemo@mba.ocn.ne.jp>, linux-mips@linux-mips.org
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type; bh=OqlBHZmp/lTAsvFMnBVr+2eArn1No3T6bU0XrKpTjC8=; b=S8HdLXn80eD1wmtcD/mKYzzNmawjRMkoUkNnKQnq1k/nlhOnaRYWOTsyg652PknksV OgOgG0Xsgkv2JGkzjBpk6VbW/B27I2IqT0AX6jBtLkskWo+x82QSoW8drOYEkXsUV6sh gjO7x1+GVG2sUrliEoZMz4ZHGi0AIjEDLHeOs=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=wJXZy2gsw2CioFaIVTbdJfAVlE/QI5JgT3QjrQfD7+nWtb0vbglmK5GuF5DilyosXe Tmci/ixdlswfQje6WXrMDHwifxZB1hxduRubhi+sCYviW6KDWTaukMLoU/UVjLORmjHw fJPgb1N0yHXTgaVQCJxy5VlVUwtfb1j9KLecs=
In-reply-to: <4AF4526B.3020502@caviumnetworks.com>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <20091107.010839.246840249.anemo@mba.ocn.ne.jp> <90edad820911060822g40233a8ft28001d68186b989e@mail.gmail.com> <90edad820911060834t5c14aa30t847c3b75bf7e36e@mail.gmail.com> <4AF4526B.3020502@caviumnetworks.com>
Sender: linux-mips-bounce@linux-mips.org
On Fri, Nov 6, 2009 at 6:44 PM, David Daney <ddaney@caviumnetworks.com> wrote:
> Dmitri Vorobiev wrote:
>>
>> On Fri, Nov 6, 2009 at 6:22 PM, Dmitri Vorobiev
>> <dmitri.vorobiev@gmail.com> wrote:
>>>
>>> On Fri, Nov 6, 2009 at 6:08 PM, Atsushi Nemoto <anemo@mba.ocn.ne.jp>
>>> wrote:
>>>>
>>>> Recently COMMAND_LINE_SIZE (CL_SIZE) was extended to 4096 from 512.
>>>> (commit 22242681 "MIPS: Extend COMMAND_LINE_SIZE")
>>>>
>>>> This cause warning if something like buf[CL_SIZE] was declared as a
>>>> local variable, for example in prom_init_cmdline() on some platforms.
>>>>
>>>> And since many Makefiles in arch/mips enables -Werror, this cause
>>>> build failure.
>>>>
>>>> How can we avoid this error?
>>>>
>>>> - do not use local array? (but dynamic allocation cannot be used in
>>>>  such an early stage.  static array?)
>>>
>>> Maybe a static array marked with __initdata?
>>
>> Also, I just thought that maybe it's possible to use a c99
>> variable-length array here? Like this:
>>
>> int n = COMMAND_LINE_SIZE;
>> char buf[n];
>>
>> This way, we don't put yet another variable in the .init.data section,
>> unlike with the static array solution.
>>
>> However, this is totally untested, just a thought...
>>
>
> It depends on your concerns.  You are still using 4096 bytes of stack, but
> you are trying to trick the compiler into not warning.
>
> If you think the warning is bogus, you should remove it for all code, not
> just this file.  If you think the warning is valid, then you should fix the
> code so that it doesn't use as much stack space.

Frankly, I don't think that the warning is bogus, especially if we're
talking about the case of the 4K page and 32-bit kernel, and I started
thinking htat probably the static array solution would be the safest
bet here.

Dmitri

<Prev in Thread] Current Thread [Next in Thread>