2005-01-23 10:17:44

by Adrian Bunk

[permalink] [raw]
Subject: [2.6 patch] loop.c: make two functions static

This patch makes two needlessly global functions static.

Signed-off-by: Adrian Bunk <[email protected]>

---

drivers/block/loop.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

This patch was already sent on:
- 29 Nov 2004

--- linux-2.6.10-rc1-mm3-full/drivers/block/loop.c.old 2004-11-06 20:09:10.000000000 +0100
+++ linux-2.6.10-rc1-mm3-full/drivers/block/loop.c 2004-11-06 20:09:31.000000000 +0100
@@ -1114,7 +1114,7 @@
EXPORT_SYMBOL(loop_register_transfer);
EXPORT_SYMBOL(loop_unregister_transfer);

-int __init loop_init(void)
+static int __init loop_init(void)
{
int i;

@@ -1189,7 +1189,7 @@
return -ENOMEM;
}

-void loop_exit(void)
+static void loop_exit(void)
{
int i;



2005-01-23 10:36:32

by Andyliu

[permalink] [raw]
Subject: Re: [2.6 patch] loop.c: make two functions static

hi, adrian

i always see patches which set functions and variables to static.
what's the main difference between static and non-static things?

On Sun, 23 Jan 2005 11:17:10 +0100, Adrian Bunk <[email protected]> wrote:
> This patch makes two needlessly global functions static.
>
> Signed-off-by: Adrian Bunk <[email protected]>
>
> ---
>
> drivers/block/loop.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> This patch was already sent on:
> - 29 Nov 2004
>
> --- linux-2.6.10-rc1-mm3-full/drivers/block/loop.c.old 2004-11-06 20:09:10.000000000 +0100
> +++ linux-2.6.10-rc1-mm3-full/drivers/block/loop.c 2004-11-06 20:09:31.000000000 +0100
> @@ -1114,7 +1114,7 @@
> EXPORT_SYMBOL(loop_register_transfer);
> EXPORT_SYMBOL(loop_unregister_transfer);
>
> -int __init loop_init(void)
> +static int __init loop_init(void)
> {
> int i;
>
> @@ -1189,7 +1189,7 @@
> return -ENOMEM;
> }
>
> -void loop_exit(void)
> +static void loop_exit(void)
> {
> int i;
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>


--
Yours andyliu

2005-01-23 11:04:09

by Arjan van de Ven

[permalink] [raw]
Subject: Re: [2.6 patch] loop.c: make two functions static

On Sun, 2005-01-23 at 18:32 +0800, andyliu wrote:
> hi, adrian
>
> i always see patches which set functions and variables to static.
> what's the main difference between static and non-static things?

1) namespace; static functions/variables are not visible name wise to
other .c files
2) optimisation: because of 1), gcc can know that there are no outside
users (assuming also no address-off is taken, which gcc also knows), and
in that case gcc can do a series of extra optimisations (such as more
agressive inlining, since gcc knows the exact user count of the function
now, but also gcc 3.4 will do things like make the function be regparm=3
equivalent, tail/head optimisations are possible (eg partial inlining)