Messages in this thread |  | | Date | Mon, 23 Feb 2009 11:17:57 +0300 | | From | Cyrill Gorcunov <> | | Subject | Re: [PATCH] Remove some pointless conditionals before kfree() in kernel/cgroup.c |
| |
[Paul Menage - Mon, Feb 23, 2009 at 12:12:51AM -0800] | On Sun, Feb 22, 2009 at 2:05 PM, Jesper Juhl <jj@chaosbits.net> wrote: | > Hi, | > | > Here's a small patch for kernel/cgroup.c | > | > Removes a few pointless tests of pointer == 0 before kfree() in | > kernel/cgroup.c. | > If the pointer we hand to kfree() is 0, then kfree() is a noop, so there | > is no need to test. | > | > Reduces object file size a bit : | > | > Before: | > $ size kernel/cgroup.o | > text data bss dec hex filename | > 21593 7804 4924 34321 8611 kernel/cgroup.o | > After: | > $ size kernel/cgroup.o | > text data bss dec hex filename | > 21537 7744 4924 34205 859d kernel/cgroup.o | | Thanks. I'm a bit surprised that it also shrunk the data segment size | (and in fact, by more than the text segment size). Any idea how that | came about?
Maybe kfree was inlined by gcc for some reason?
| | > | > Signed-off-by: Jesper Juhl <jj@chaosbits.net> | | Acked-by: Paul Menage <menage@google.com> | | Paul | | > --- | > | > diff --git a/kernel/cgroup.c b/kernel/cgroup.c | > index 9edb5c4..1c0a9b5 100644 | > --- a/kernel/cgroup.c | > +++ b/kernel/cgroup.c | > @@ -865,8 +865,7 @@ static int cgroup_remount(struct super_block *sb, int *flags, char *data) | > if (opts.release_agent) | > strcpy(root->release_agent_path, opts.release_agent); | > out_unlock: | > - if (opts.release_agent) | > - kfree(opts.release_agent); | > + kfree(opts.release_agent); | > mutex_unlock(&cgroup_mutex); | > mutex_unlock(&cgrp->dentry->d_inode->i_mutex); | > return ret; | > @@ -969,15 +968,13 @@ static int cgroup_get_sb(struct file_system_type *fs_type, | > /* First find the desired set of subsystems */ | > ret = parse_cgroupfs_options(data, &opts); | > if (ret) { | > - if (opts.release_agent) | > - kfree(opts.release_agent); | > + kfree(opts.release_agent); | > return ret; | > } | > | > root = kzalloc(sizeof(*root), GFP_KERNEL); | > if (!root) { | > - if (opts.release_agent) | > - kfree(opts.release_agent); | > + kfree(opts.release_agent); | > return -ENOMEM; | > } | > | > | > | > -- | > Jesper Juhl <jj@chaosbits.net> http://www.chaosbits.net/ | > Plain text mails only, please http://www.expita.com/nomime.html | > Don't top-post http://www.catb.org/~esr/jargon/html/T/top-post.html | > | > | - Cyrill -
|  |