From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: kbuild test robot <fengguang.wu@intel.com>,
Linux Memory Management List <linux-mm@kvack.org>,
Johannes Weiner <hannes@cmpxchg.org>,
kbuild-all@01.org
Subject: Re: [mmotm:master 251/287] lib/test-string_helpers.c:293:1: warning: the frame size of 1316 bytes is larger than 1024 bytes
Date: Thu, 04 Sep 2014 12:19:47 +0300 [thread overview]
Message-ID: <1409822387.30155.77.camel@linux.intel.com> (raw)
In-Reply-To: <20140903152619.c26f0c7b9031a1d39d729fab@linux-foundation.org>
On Wed, 2014-09-03 at 15:26 -0700, Andrew Morton wrote:
> On Sat, 30 Aug 2014 07:28:12 +0800 kbuild test robot <fengguang.wu@intel.com> wrote:
>
> > tree: git://git.cmpxchg.org/linux-mmotm.git master
> > head: 8f1fc64dc9b39fedb7390e086001ce5ec327e80d
> > commit: 626105764fd29c75bd8b01d36b54d0aaca61ac36 [251/287] lib / string_helpers: introduce string_escape_mem()
> > config: make ARCH=i386 allyesconfig
> >
> > All warnings:
> >
> > lib/test-string_helpers.c: In function 'test_string_escape':
> > >> lib/test-string_helpers.c:293:1: warning: the frame size of 1316 bytes is larger than 1024 bytes [-Wframe-larger-than=]
> > }
>
> 1k isn't excessive for an __init function but I guess we should fix it
> to avoid drawing attention to ourselves.
>
> Andy, please review, test, etc?
Sorry, living in the other timezone :-)
Now confirm it works. Compiled and real run testing.
Thanks for fixes!
>
>
> I figure the out-of-memory warning means we don't need a warning
> printk. It won't happen anyway.
>
>
> --- a/lib/test-string_helpers.c~lib-string_helpers-introduce-string_escape_mem-fix
> +++ a/lib/test-string_helpers.c
> @@ -5,6 +5,7 @@
>
> #include <linux/init.h>
> #include <linux/kernel.h>
> +#include <linux/slab.h>
> #include <linux/module.h>
> #include <linux/random.h>
> #include <linux/string.h>
> @@ -62,10 +63,14 @@ static const struct test_string strings[
> static void __init test_string_unescape(const char *name, unsigned int flags,
> bool inplace)
> {
> - char in[256];
> - char out_test[256];
> - char out_real[256];
> - int i, p = 0, q_test = 0, q_real = sizeof(out_real);
> + int q_real = 256;
> + char *in = kmalloc(q_real, GFP_KERNEL);
> + char *out_test = kmalloc(q_real, GFP_KERNEL);
> + char *out_real = kmalloc(q_real, GFP_KERNEL);
> + int i, p = 0, q_test = 0;
> +
> + if (!in || !out_test || !out_real)
> + goto out;
>
> for (i = 0; i < ARRAY_SIZE(strings); i++) {
> const char *s = strings[i].in;
> @@ -100,6 +105,10 @@ static void __init test_string_unescape(
>
> test_string_check_buf(name, flags, in, p - 1, out_real, q_real,
> out_test, q_test);
> +out:
> + kfree(out_real);
> + kfree(out_test);
> + kfree(in);
> }
>
> struct test_string_1 {
> @@ -255,10 +264,15 @@ static __init void test_string_escape(co
> const struct test_string_2 *s2,
> unsigned int flags, const char *esc)
> {
> - char in[256];
> - char out_test[512];
> - char out_real[512], *buf = out_real;
> - int p = 0, q_test = 0, q_real = sizeof(out_real);
> + int q_real = 512;
> + char *out_test = kmalloc(q_real, GFP_KERNEL);
> + char *out_real = kmalloc(q_real, GFP_KERNEL);
> + char *in = kmalloc(256, GFP_KERNEL);
> + char *buf = out_real;
> + int p = 0, q_test = 0;
> +
> + if (!out_test || !out_real || !in)
> + goto out;
>
> for (; s2->in; s2++) {
> const char *out;
> @@ -289,7 +303,12 @@ static __init void test_string_escape(co
>
> q_real = string_escape_mem(in, p, &buf, q_real, flags, esc);
>
> - test_string_check_buf(name, flags, in, p, out_real, q_real, out_test, q_test);
> + test_string_check_buf(name, flags, in, p, out_real, q_real, out_test,
> + q_test);
> +out:
> + kfree(in);
> + kfree(out_real);
> + kfree(out_test);
> }
>
> static __init void test_string_escape_nomem(void)
> _
>
--
Andy Shevchenko <andriy.shevchenko@intel.com>
Intel Finland Oy
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
prev parent reply other threads:[~2014-09-04 9:22 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-29 23:28 [mmotm:master 251/287] lib/test-string_helpers.c:293:1: warning: the frame size of 1316 bytes is larger than 1024 bytes kbuild test robot
2014-09-03 22:26 ` Andrew Morton
2014-09-04 9:19 ` Andy Shevchenko [this message]
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=1409822387.30155.77.camel@linux.intel.com \
--to=andriy.shevchenko@linux.intel.com \
--cc=akpm@linux-foundation.org \
--cc=fengguang.wu@intel.com \
--cc=hannes@cmpxchg.org \
--cc=kbuild-all@01.org \
--cc=linux-mm@kvack.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: link
Be 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.