2010-08-17 15:24:14

by Jerome Marchand

[permalink] [raw]
Subject: [PATCH] ecryptfs: properly mark init functions


Some ecryptfs init functions are not prefixed by __init and thus not
freed after initialization. This patch saved about 1kB in ecryptfs
module.

Signed-off-by: Jerome Marchand <[email protected]>
---
crypto.c | 2 +-
kthread.c | 2 +-
messaging.c | 2 +-
miscdev.c | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/fs/ecryptfs/crypto.c b/fs/ecryptfs/crypto.c
index a2e3b56..13ff48b 100644
--- a/fs/ecryptfs/crypto.c
+++ b/fs/ecryptfs/crypto.c
@@ -1793,7 +1793,7 @@ struct kmem_cache *ecryptfs_key_tfm_cache;
static struct list_head key_tfm_list;
struct mutex key_tfm_list_mutex;

-int ecryptfs_init_crypto(void)
+int __init ecryptfs_init_crypto(void)
{
mutex_init(&key_tfm_list_mutex);
INIT_LIST_HEAD(&key_tfm_list);
diff --git a/fs/ecryptfs/kthread.c b/fs/ecryptfs/kthread.c
index d8c3a37..0851ab6 100644
--- a/fs/ecryptfs/kthread.c
+++ b/fs/ecryptfs/kthread.c
@@ -86,7 +86,7 @@ out:
return 0;
}

-int ecryptfs_init_kthread(void)
+int __init ecryptfs_init_kthread(void)
{
int rc = 0;

diff --git a/fs/ecryptfs/messaging.c b/fs/ecryptfs/messaging.c
index bcb68c0..ab22480 100644
--- a/fs/ecryptfs/messaging.c
+++ b/fs/ecryptfs/messaging.c
@@ -473,7 +473,7 @@ sleep:
return rc;
}

-int ecryptfs_init_messaging(void)
+int __init ecryptfs_init_messaging(void)
{
int i;
int rc = 0;
diff --git a/fs/ecryptfs/miscdev.c b/fs/ecryptfs/miscdev.c
index 3745f61..00208c3 100644
--- a/fs/ecryptfs/miscdev.c
+++ b/fs/ecryptfs/miscdev.c
@@ -500,7 +500,7 @@ static struct miscdevice ecryptfs_miscdev = {
*
* Returns zero on success; non-zero otherwise
*/
-int ecryptfs_init_ecryptfs_miscdev(void)
+int __init ecryptfs_init_ecryptfs_miscdev(void)
{
int rc;


2010-08-19 00:28:41

by Tyler Hicks

[permalink] [raw]
Subject: Re: [PATCH] ecryptfs: properly mark init functions

On Tue Aug 17, 2010 at 05:24:05PM +0200, Jerome Marchand <[email protected]> wrote:
>
> Some ecryptfs init functions are not prefixed by __init and thus not
> freed after initialization. This patch saved about 1kB in ecryptfs
> module.
>
> Signed-off-by: Jerome Marchand <[email protected]>
> ---

Thanks Jerome - We could also get away with marking
ecryptfs_init_kmem_caches() and do_sysfs_registration() with __init,
right?

Tyler

> crypto.c | 2 +-
> kthread.c | 2 +-
> messaging.c | 2 +-
> miscdev.c | 2 +-
> 4 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/fs/ecryptfs/crypto.c b/fs/ecryptfs/crypto.c
> index a2e3b56..13ff48b 100644
> --- a/fs/ecryptfs/crypto.c
> +++ b/fs/ecryptfs/crypto.c
> @@ -1793,7 +1793,7 @@ struct kmem_cache *ecryptfs_key_tfm_cache;
> static struct list_head key_tfm_list;
> struct mutex key_tfm_list_mutex;
>
> -int ecryptfs_init_crypto(void)
> +int __init ecryptfs_init_crypto(void)
> {
> mutex_init(&key_tfm_list_mutex);
> INIT_LIST_HEAD(&key_tfm_list);
> diff --git a/fs/ecryptfs/kthread.c b/fs/ecryptfs/kthread.c
> index d8c3a37..0851ab6 100644
> --- a/fs/ecryptfs/kthread.c
> +++ b/fs/ecryptfs/kthread.c
> @@ -86,7 +86,7 @@ out:
> return 0;
> }
>
> -int ecryptfs_init_kthread(void)
> +int __init ecryptfs_init_kthread(void)
> {
> int rc = 0;
>
> diff --git a/fs/ecryptfs/messaging.c b/fs/ecryptfs/messaging.c
> index bcb68c0..ab22480 100644
> --- a/fs/ecryptfs/messaging.c
> +++ b/fs/ecryptfs/messaging.c
> @@ -473,7 +473,7 @@ sleep:
> return rc;
> }
>
> -int ecryptfs_init_messaging(void)
> +int __init ecryptfs_init_messaging(void)
> {
> int i;
> int rc = 0;
> diff --git a/fs/ecryptfs/miscdev.c b/fs/ecryptfs/miscdev.c
> index 3745f61..00208c3 100644
> --- a/fs/ecryptfs/miscdev.c
> +++ b/fs/ecryptfs/miscdev.c
> @@ -500,7 +500,7 @@ static struct miscdevice ecryptfs_miscdev = {
> *
> * Returns zero on success; non-zero otherwise
> */
> -int ecryptfs_init_ecryptfs_miscdev(void)
> +int __init ecryptfs_init_ecryptfs_miscdev(void)
> {
> int rc;
>

2010-08-19 08:24:20

by Jerome Marchand

[permalink] [raw]
Subject: Re: [PATCH] ecryptfs: properly mark init functions

On 08/19/2010 02:28 AM, Tyler Hicks wrote:
> On Tue Aug 17, 2010 at 05:24:05PM +0200, Jerome Marchand <[email protected]> wrote:
>>
>> Some ecryptfs init functions are not prefixed by __init and thus not
>> freed after initialization. This patch saved about 1kB in ecryptfs
>> module.
>>
>> Signed-off-by: Jerome Marchand <[email protected]>
>> ---
>
> Thanks Jerome - We could also get away with marking
> ecryptfs_init_kmem_caches() and do_sysfs_registration() with __init,
> right?
>
> Tyler
>

I guess we could. But it doesn't really matter, these are static functions which
are called from only one place, so they're inlined anyway. I don't know what the
convention is in such case.

J?r?me

2010-08-20 22:24:54

by Tyler Hicks

[permalink] [raw]
Subject: Re: [PATCH] ecryptfs: properly mark init functions

On Thu Aug 19, 2010 at 10:24:00AM +0200, Jerome Marchand <[email protected]> wrote:
> On 08/19/2010 02:28 AM, Tyler Hicks wrote:
> > On Tue Aug 17, 2010 at 05:24:05PM +0200, Jerome Marchand <[email protected]> wrote:
> >>
> >> Some ecryptfs init functions are not prefixed by __init and thus not
> >> freed after initialization. This patch saved about 1kB in ecryptfs
> >> module.
> >>
> >> Signed-off-by: Jerome Marchand <[email protected]>
> >> ---
> >
> > Thanks Jerome - We could also get away with marking
> > ecryptfs_init_kmem_caches() and do_sysfs_registration() with __init,
> > right?
> >
> > Tyler
> >
>
> I guess we could. But it doesn't really matter, these are static functions which
> are called from only one place, so they're inlined anyway. I don't know what the
> convention is in such case.
>

Good point - this has been applied to
git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6.git#next

Thanks,
Tyler