lkml.org 
[lkml]   [2014]   [Oct]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [PATCH 1/2 v2] binfmt_misc: add comments & debug logs
On Mon, 20 Oct 2014 19:54:14 -0400 Mike Frysinger <vapier@gentoo.org> wrote:

> On 20 Oct 2014 15:59, Joe Perches wrote:
> > On Mon, 2014-10-20 at 18:45 -0400, Mike Frysinger wrote:
> > > diff --git a/fs/binfmt_misc.c b/fs/binfmt_misc.c
> > []
> > > @@ -323,46 +343,113 @@ static Node *create_entry(const char __user *buffer, size_t count)
> > []
> > > + if (e->mask) {
> > > + int i;
> > > + char *masked = kmalloc(e->size, GFP_USER);
> >
> > Why GFP_USER? Does it need it?
>
> mostly a copy & paste from earlier in this func:
> e = kmalloc(memsize, GFP_USER);
>
> the code is running process context and this buffer is only for
> debugging on behalf of the user (and is shortly freed there after), so
> GFP_USER seemed appropriate. that said, i'm certainly not an expert
> here, so if the convention is to use GFP_KERNEL, it's easy enough to
> change. the kmalloc API doesn't seem to provide guidance.

I can't see any reason to me using GFP_USER for these objects so how
about


From: Andrew Morton <akpm@linux-foundation.org>
Subject: fs/binfmt_misc.c: use GFP_KERNEL instead of GFP_USER

GFP_USER means "honour cpuset nodes-allowed beancounting". These are
regular old kernel objects and there seems no reason to give them this
treatment.

Cc: Mike Frysinger <vapier@gentoo.org>
Cc: Joe Perches <joe@perches.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---

fs/binfmt_misc.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff -puN fs/binfmt_misc.c~fs-binfmt_miscc-use-gfp_kernel-instead-of-gfp_user fs/binfmt_misc.c
--- a/fs/binfmt_misc.c~fs-binfmt_miscc-use-gfp_kernel-instead-of-gfp_user
+++ a/fs/binfmt_misc.c
@@ -308,7 +308,7 @@ static Node *create_entry(const char __u

err = -ENOMEM;
memsize = sizeof(Node) + count + 8;
- e = kmalloc(memsize, GFP_USER);
+ e = kmalloc(memsize, GFP_KERNEL);
if (!e)
goto out;

@@ -416,7 +416,7 @@ static Node *create_entry(const char __u

if (e->mask) {
int i;
- char *masked = kmalloc(e->size, GFP_USER);
+ char *masked = kmalloc(e->size, GFP_KERNEL);

print_hex_dump_bytes(
KBUILD_MODNAME ": register: mask[decoded]: ",
_


\
 
 \ /
  Last update: 2014-10-29 00:21    [W:0.040 / U:0.136 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site