public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] - create common header for init/main.c called init functions
@ 2005-10-14  0:42 Ben Dooks
  2005-10-18 23:11 ` Arthur Othieno
  0 siblings, 1 reply; 5+ messages in thread
From: Ben Dooks @ 2005-10-14  0:42 UTC (permalink / raw)
  To: linux-kernel

[-- Attachment #1: Type: text/plain, Size: 284 bytes --]

init/main.c calls a number of functions externally
but declaring them locally. This patch creates a
new header (linux/kernel_init.h) and moves all
the declarations into it.

Also removes any old init functions now done by
an initcall()

Signed-off-by: Ben Dooks <ben-linux@fluff.org>

[-- Attachment #2: kernel-init.patch --]
[-- Type: text/plain, Size: 7146 bytes --]

diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/drivers/acpi/bus.c linux-2.6.14-rc4-bjd3c/drivers/acpi/bus.c
--- linux-2.6.14-rc4-bjd3b/drivers/acpi/bus.c	2005-10-11 10:56:31.000000000 +0100
+++ linux-2.6.14-rc4-bjd3c/drivers/acpi/bus.c	2005-10-14 01:32:27.000000000 +0100
@@ -30,6 +30,7 @@
 #include <linux/pm.h>
 #include <linux/device.h>
 #include <linux/proc_fs.h>
+#include <linux/kernel_init.h>
 #ifdef CONFIG_X86
 #include <asm/mpspec.h>
 #endif
diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/drivers/base/init.c linux-2.6.14-rc4-bjd3c/drivers/base/init.c
--- linux-2.6.14-rc4-bjd3b/drivers/base/init.c	2005-10-13 15:27:05.000000000 +0100
+++ linux-2.6.14-rc4-bjd3c/drivers/base/init.c	2005-10-14 01:29:35.000000000 +0100
@@ -9,6 +9,7 @@
 
 #include <linux/device.h>
 #include <linux/init.h>
+#include <linux/kernel_init.h>
 
 #include "base.h"
 
diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/fs/buffer.c linux-2.6.14-rc4-bjd3c/fs/buffer.c
--- linux-2.6.14-rc4-bjd3b/fs/buffer.c	2005-10-11 10:56:33.000000000 +0100
+++ linux-2.6.14-rc4-bjd3c/fs/buffer.c	2005-10-14 01:36:06.000000000 +0100
@@ -19,7 +19,9 @@
  */
 
 #include <linux/config.h>
+#include <linux/init.h>
 #include <linux/kernel.h>
+#include <linux/kernel_init.h>
 #include <linux/syscalls.h>
 #include <linux/fs.h>
 #include <linux/mm.h>
diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/include/linux/kernel_init.h linux-2.6.14-rc4-bjd3c/include/linux/kernel_init.h
--- linux-2.6.14-rc4-bjd3b/include/linux/kernel_init.h	1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.14-rc4-bjd3c/include/linux/kernel_init.h	2005-10-14 01:34:28.000000000 +0100
@@ -0,0 +1,26 @@
+/* include/linux/kernel_init.h
+ *
+ * (C) 2005 Simtec Electronics
+ *	Ben Dooks <ben@simtec.co.uk>
+ *
+ * Initialisation function prototypes
+*/
+
+extern void init_IRQ(void);
+extern void __init fork_init(unsigned long);
+extern void __init signals_init(void);
+extern void __init buffer_init(void);
+extern void __init driver_init(void);
+extern void __init pidhash_init(void);
+extern void __init pidmap_init(void);
+extern void __init prio_tree_init(void);
+extern void __init populate_rootfs(void);
+extern void __init prepare_namespace(void);
+
+extern void free_initmem(void);
+
+#ifdef	CONFIG_ACPI
+extern void __init acpi_early_init(void);
+#else
+static inline void acpi_early_init(void) { }
+#endif
diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/init/do_mounts.c linux-2.6.14-rc4-bjd3c/init/do_mounts.c
--- linux-2.6.14-rc4-bjd3b/init/do_mounts.c	2005-10-11 10:56:34.000000000 +0100
+++ linux-2.6.14-rc4-bjd3c/init/do_mounts.c	2005-10-14 01:31:42.000000000 +0100
@@ -8,6 +8,7 @@
 #include <linux/security.h>
 #include <linux/delay.h>
 #include <linux/mount.h>
+#include <linux/kernel_init.h>
 
 #include <linux/nfs_fs.h>
 #include <linux/nfs_fs_sb.h>
diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/init/initramfs.c linux-2.6.14-rc4-bjd3c/init/initramfs.c
--- linux-2.6.14-rc4-bjd3b/init/initramfs.c	2005-10-11 23:47:02.000000000 +0100
+++ linux-2.6.14-rc4-bjd3c/init/initramfs.c	2005-10-14 01:29:01.000000000 +0100
@@ -6,6 +6,7 @@
 #include <linux/delay.h>
 #include <linux/string.h>
 #include <linux/syscalls.h>
+#include <linux/kernel_init.h>
 
 static __initdata char *message;
 static void __init error(char *x)
diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/init/main.c linux-2.6.14-rc4-bjd3c/init/main.c
--- linux-2.6.14-rc4-bjd3b/init/main.c	2005-10-11 10:56:34.000000000 +0100
+++ linux-2.6.14-rc4-bjd3c/init/main.c	2005-10-14 01:35:11.000000000 +0100
@@ -17,6 +17,7 @@
 #include <linux/proc_fs.h>
 #include <linux/devfs_fs_kernel.h>
 #include <linux/kernel.h>
+#include <linux/kernel_init.h>
 #include <linux/syscalls.h>
 #include <linux/string.h>
 #include <linux/ctype.h>
@@ -47,8 +48,11 @@
 #include <linux/rmap.h>
 #include <linux/mempolicy.h>
 #include <linux/key.h>
+#include <linux/sysctl.h>
 #include <net/sock.h>
 
+#include <linux/radix-tree.h>
+
 #include <asm/io.h>
 #include <asm/bugs.h>
 #include <asm/setup.h>
@@ -80,30 +84,7 @@
 
 static int init(void *);
 
-extern void init_IRQ(void);
-extern void fork_init(unsigned long);
-extern void mca_init(void);
-extern void sbus_init(void);
-extern void sysctl_init(void);
-extern void signals_init(void);
-extern void buffer_init(void);
-extern void pidhash_init(void);
-extern void pidmap_init(void);
-extern void prio_tree_init(void);
-extern void radix_tree_init(void);
-extern void free_initmem(void);
-extern void populate_rootfs(void);
-extern void driver_init(void);
-extern void prepare_namespace(void);
-#ifdef	CONFIG_ACPI
-extern void acpi_early_init(void);
-#else
-static inline void acpi_early_init(void) { }
-#endif
 
-#ifdef CONFIG_TC
-extern void tc_init(void);
-#endif
 
 enum system_states system_state;
 EXPORT_SYMBOL(system_state);
diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/kernel/fork.c linux-2.6.14-rc4-bjd3c/kernel/fork.c
--- linux-2.6.14-rc4-bjd3b/kernel/fork.c	2005-10-11 10:56:34.000000000 +0100
+++ linux-2.6.14-rc4-bjd3c/kernel/fork.c	2005-10-14 01:18:16.000000000 +0100
@@ -42,6 +42,7 @@
 #include <linux/profile.h>
 #include <linux/rmap.h>
 #include <linux/acct.h>
+#include <linux/kernel_init.h>
 
 #include <asm/pgtable.h>
 #include <asm/pgalloc.h>
diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/kernel/pid.c linux-2.6.14-rc4-bjd3c/kernel/pid.c
--- linux-2.6.14-rc4-bjd3b/kernel/pid.c	2005-06-17 20:48:29.000000000 +0100
+++ linux-2.6.14-rc4-bjd3c/kernel/pid.c	2005-10-14 01:24:27.000000000 +0100
@@ -26,6 +26,7 @@
 #include <linux/init.h>
 #include <linux/bootmem.h>
 #include <linux/hash.h>
+#include <linux/kernel_init.h>
 
 #define pid_hashfn(nr) hash_long((unsigned long)nr, pidhash_shift)
 static struct hlist_head *pid_hash[PIDTYPE_MAX];
diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/kernel/signal.c linux-2.6.14-rc4-bjd3c/kernel/signal.c
--- linux-2.6.14-rc4-bjd3b/kernel/signal.c	2005-10-11 10:56:34.000000000 +0100
+++ linux-2.6.14-rc4-bjd3c/kernel/signal.c	2005-10-14 01:22:16.000000000 +0100
@@ -25,6 +25,7 @@
 #include <linux/posix-timers.h>
 #include <linux/signal.h>
 #include <linux/audit.h>
+#include <linux/kernel_init.h>
 #include <asm/param.h>
 #include <asm/uaccess.h>
 #include <asm/unistd.h>
diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/lib/prio_tree.c linux-2.6.14-rc4-bjd3c/lib/prio_tree.c
--- linux-2.6.14-rc4-bjd3b/lib/prio_tree.c	2005-06-17 20:48:29.000000000 +0100
+++ linux-2.6.14-rc4-bjd3c/lib/prio_tree.c	2005-10-14 01:27:04.000000000 +0100
@@ -14,6 +14,7 @@
 #include <linux/init.h>
 #include <linux/mm.h>
 #include <linux/prio_tree.h>
+#include <linux/kernel_init.h>
 
 /*
  * A clever mix of heap and radix trees forms a radix priority search tree (PST)
diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/lib/radix-tree.c linux-2.6.14-rc4-bjd3c/lib/radix-tree.c
--- linux-2.6.14-rc4-bjd3b/lib/radix-tree.c	2005-10-11 10:56:34.000000000 +0100
+++ linux-2.6.14-rc4-bjd3c/lib/radix-tree.c	2005-10-14 01:27:21.000000000 +0100
@@ -21,6 +21,7 @@
 #include <linux/errno.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
+#include <linux/kernel_init.h>
 #include <linux/module.h>
 #include <linux/radix-tree.h>
 #include <linux/percpu.h>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] - create common header for init/main.c called init functions
  2005-10-14  0:42 [PATCH] - create common header for init/main.c called init functions Ben Dooks
@ 2005-10-18 23:11 ` Arthur Othieno
  2005-10-18 23:44   ` Adrian Bunk
                     ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Arthur Othieno @ 2005-10-18 23:11 UTC (permalink / raw)
  To: Ben Dooks; +Cc: linux-kernel

On Fri, Oct 14, 2005 at 01:42:10AM +0100, Ben Dooks wrote:
> init/main.c calls a number of functions externally
> but declaring them locally. This patch creates a
> new header (linux/kernel_init.h) and moves all
> the declarations into it.

These functions are only referenced in init/main.c, and rightfully so.
In the end, this doesn't change anything much, other than maintainance
overhead for the new include/linux/kernel_init.h

But, comments within..

> Also removes any old init functions now done by
> an initcall()

(mca|sbus|tc)_init() removal look good.

> Signed-off-by: Ben Dooks <ben-linux@fluff.org>

> diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/drivers/acpi/bus.c linux-2.6.14-rc4-bjd3c/drivers/acpi/bus.c
> --- linux-2.6.14-rc4-bjd3b/drivers/acpi/bus.c	2005-10-11 10:56:31.000000000 +0100
> +++ linux-2.6.14-rc4-bjd3c/drivers/acpi/bus.c	2005-10-14 01:32:27.000000000 +0100
> @@ -30,6 +30,7 @@
>  #include <linux/pm.h>
>  #include <linux/device.h>
>  #include <linux/proc_fs.h>
> +#include <linux/kernel_init.h>

Unecessary, acpi_early_init() defined here.

>  #ifdef CONFIG_X86
>  #include <asm/mpspec.h>
>  #endif
> diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/drivers/base/init.c linux-2.6.14-rc4-bjd3c/drivers/base/init.c
> --- linux-2.6.14-rc4-bjd3b/drivers/base/init.c	2005-10-13 15:27:05.000000000 +0100
> +++ linux-2.6.14-rc4-bjd3c/drivers/base/init.c	2005-10-14 01:29:35.000000000 +0100
> @@ -9,6 +9,7 @@
>  
>  #include <linux/device.h>
>  #include <linux/init.h>
> +#include <linux/kernel_init.h>

Ditto driver_init().

>  #include "base.h"
>  
> diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/fs/buffer.c linux-2.6.14-rc4-bjd3c/fs/buffer.c
> --- linux-2.6.14-rc4-bjd3b/fs/buffer.c	2005-10-11 10:56:33.000000000 +0100
> +++ linux-2.6.14-rc4-bjd3c/fs/buffer.c	2005-10-14 01:36:06.000000000 +0100
> @@ -19,7 +19,9 @@
>   */
>  
>  #include <linux/config.h>
> +#include <linux/init.h>
>  #include <linux/kernel.h>
> +#include <linux/kernel_init.h>

Ditto buffer_init().

>  #include <linux/syscalls.h>
>  #include <linux/fs.h>
>  #include <linux/mm.h>
> diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/include/linux/kernel_init.h linux-2.6.14-rc4-bjd3c/include/linux/kernel_init.h
> --- linux-2.6.14-rc4-bjd3b/include/linux/kernel_init.h	1970-01-01 01:00:00.000000000 +0100
> +++ linux-2.6.14-rc4-bjd3c/include/linux/kernel_init.h	2005-10-14 01:34:28.000000000 +0100
> @@ -0,0 +1,26 @@

#ifndef _LINUX_KERNEL_INIT_H
#define _LINUX_KERNEL_INIT_H

> +/* include/linux/kernel_init.h
> + *
> + * (C) 2005 Simtec Electronics
> + *	Ben Dooks <ben@simtec.co.uk>

A little too much, no? This is only moving existing stuff around..

> + *
> + * Initialisation function prototypes
> +*/
> +
> +extern void init_IRQ(void);
> +extern void __init fork_init(unsigned long);
> +extern void __init signals_init(void);
> +extern void __init buffer_init(void);
> +extern void __init driver_init(void);
> +extern void __init pidhash_init(void);
> +extern void __init pidmap_init(void);
> +extern void __init prio_tree_init(void);
> +extern void __init populate_rootfs(void);
> +extern void __init prepare_namespace(void);

extern void foo_init(void) __init;

> +
> +extern void free_initmem(void);
> +
> +#ifdef	CONFIG_ACPI
> +extern void __init acpi_early_init(void);
> +#else
> +static inline void acpi_early_init(void) { }
> +#endif

#endif /* _LINUX_KERNEL_INIT_H */

> diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/init/do_mounts.c linux-2.6.14-rc4-bjd3c/init/do_mounts.c
> --- linux-2.6.14-rc4-bjd3b/init/do_mounts.c	2005-10-11 10:56:34.000000000 +0100
> +++ linux-2.6.14-rc4-bjd3c/init/do_mounts.c	2005-10-14 01:31:42.000000000 +0100
> @@ -8,6 +8,7 @@
>  #include <linux/security.h>
>  #include <linux/delay.h>
>  #include <linux/mount.h>
> +#include <linux/kernel_init.h>

Unecessary, prepare_namespace() defined here.

>  #include <linux/nfs_fs.h>
>  #include <linux/nfs_fs_sb.h>
> diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/init/initramfs.c linux-2.6.14-rc4-bjd3c/init/initramfs.c
> --- linux-2.6.14-rc4-bjd3b/init/initramfs.c	2005-10-11 23:47:02.000000000 +0100
> +++ linux-2.6.14-rc4-bjd3c/init/initramfs.c	2005-10-14 01:29:01.000000000 +0100
> @@ -6,6 +6,7 @@
>  #include <linux/delay.h>
>  #include <linux/string.h>
>  #include <linux/syscalls.h>
> +#include <linux/kernel_init.h>

Ditto populate_rootfs().

>  static __initdata char *message;
>  static void __init error(char *x)
> diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/init/main.c linux-2.6.14-rc4-bjd3c/init/main.c
> --- linux-2.6.14-rc4-bjd3b/init/main.c	2005-10-11 10:56:34.000000000 +0100
> +++ linux-2.6.14-rc4-bjd3c/init/main.c	2005-10-14 01:35:11.000000000 +0100
> @@ -17,6 +17,7 @@
>  #include <linux/proc_fs.h>
>  #include <linux/devfs_fs_kernel.h>
>  #include <linux/kernel.h>
> +#include <linux/kernel_init.h>
>  #include <linux/syscalls.h>
>  #include <linux/string.h>
>  #include <linux/ctype.h>
> @@ -47,8 +48,11 @@
>  #include <linux/rmap.h>
>  #include <linux/mempolicy.h>
>  #include <linux/key.h>
> +#include <linux/sysctl.h>
>  #include <net/sock.h>
>  
> +#include <linux/radix-tree.h>
> +

No need for the extra whitespace, could have as well gone right below
<linux/sysctl.h>

>  #include <asm/io.h>
>  #include <asm/bugs.h>
>  #include <asm/setup.h>
> @@ -80,30 +84,7 @@
>  
>  static int init(void *);
>  
> -extern void init_IRQ(void);
> -extern void fork_init(unsigned long);
> -extern void mca_init(void);
> -extern void sbus_init(void);
> -extern void sysctl_init(void);
> -extern void signals_init(void);
> -extern void buffer_init(void);
> -extern void pidhash_init(void);
> -extern void pidmap_init(void);
> -extern void prio_tree_init(void);
> -extern void radix_tree_init(void);
> -extern void free_initmem(void);
> -extern void populate_rootfs(void);
> -extern void driver_init(void);
> -extern void prepare_namespace(void);
> -#ifdef	CONFIG_ACPI
> -extern void acpi_early_init(void);
> -#else
> -static inline void acpi_early_init(void) { }
> -#endif
>  
> -#ifdef CONFIG_TC
> -extern void tc_init(void);
> -#endif
>  
>  enum system_states system_state;
>  EXPORT_SYMBOL(system_state);
> diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/kernel/fork.c linux-2.6.14-rc4-bjd3c/kernel/fork.c
> --- linux-2.6.14-rc4-bjd3b/kernel/fork.c	2005-10-11 10:56:34.000000000 +0100
> +++ linux-2.6.14-rc4-bjd3c/kernel/fork.c	2005-10-14 01:18:16.000000000 +0100
> @@ -42,6 +42,7 @@
>  #include <linux/profile.h>
>  #include <linux/rmap.h>
>  #include <linux/acct.h>
> +#include <linux/kernel_init.h>

Unecessary, fork_init() defined here.

>  #include <asm/pgtable.h>
>  #include <asm/pgalloc.h>
> diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/kernel/pid.c linux-2.6.14-rc4-bjd3c/kernel/pid.c
> --- linux-2.6.14-rc4-bjd3b/kernel/pid.c	2005-06-17 20:48:29.000000000 +0100
> +++ linux-2.6.14-rc4-bjd3c/kernel/pid.c	2005-10-14 01:24:27.000000000 +0100
> @@ -26,6 +26,7 @@
>  #include <linux/init.h>
>  #include <linux/bootmem.h>
>  #include <linux/hash.h>
> +#include <linux/kernel_init.h>

Ditto pid(map|hash)_init().

>  #define pid_hashfn(nr) hash_long((unsigned long)nr, pidhash_shift)
>  static struct hlist_head *pid_hash[PIDTYPE_MAX];
> diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/kernel/signal.c linux-2.6.14-rc4-bjd3c/kernel/signal.c
> --- linux-2.6.14-rc4-bjd3b/kernel/signal.c	2005-10-11 10:56:34.000000000 +0100
> +++ linux-2.6.14-rc4-bjd3c/kernel/signal.c	2005-10-14 01:22:16.000000000 +0100
> @@ -25,6 +25,7 @@
>  #include <linux/posix-timers.h>
>  #include <linux/signal.h>
>  #include <linux/audit.h>
> +#include <linux/kernel_init.h>

Ditto signals_init().

>  #include <asm/param.h>
>  #include <asm/uaccess.h>
>  #include <asm/unistd.h>
> diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/lib/prio_tree.c linux-2.6.14-rc4-bjd3c/lib/prio_tree.c
> --- linux-2.6.14-rc4-bjd3b/lib/prio_tree.c	2005-06-17 20:48:29.000000000 +0100
> +++ linux-2.6.14-rc4-bjd3c/lib/prio_tree.c	2005-10-14 01:27:04.000000000 +0100
> @@ -14,6 +14,7 @@
>  #include <linux/init.h>
>  #include <linux/mm.h>
>  #include <linux/prio_tree.h>
> +#include <linux/kernel_init.h>

Ditto prio_tree_init().

>  /*
>   * A clever mix of heap and radix trees forms a radix priority search tree (PST)
> diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/lib/radix-tree.c linux-2.6.14-rc4-bjd3c/lib/radix-tree.c
> --- linux-2.6.14-rc4-bjd3b/lib/radix-tree.c	2005-10-11 10:56:34.000000000 +0100
> +++ linux-2.6.14-rc4-bjd3c/lib/radix-tree.c	2005-10-14 01:27:21.000000000 +0100
> @@ -21,6 +21,7 @@
>  #include <linux/errno.h>
>  #include <linux/init.h>
>  #include <linux/kernel.h>
> +#include <linux/kernel_init.h>

Ditto radix_tree_init(), and already prototyped in include/linux/radix-tree.h:

>  #include <linux/module.h>
>  #include <linux/radix-tree.h>
>  #include <linux/percpu.h>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] - create common header for init/main.c called init functions
  2005-10-18 23:11 ` Arthur Othieno
@ 2005-10-18 23:44   ` Adrian Bunk
  2005-10-19  6:30   ` Ben Dooks
  2005-10-19 19:50   ` Ben Dooks
  2 siblings, 0 replies; 5+ messages in thread
From: Adrian Bunk @ 2005-10-18 23:44 UTC (permalink / raw)
  To: Arthur Othieno; +Cc: Ben Dooks, linux-kernel

On Tue, Oct 18, 2005 at 07:11:09PM -0400, Arthur Othieno wrote:
> On Fri, Oct 14, 2005 at 01:42:10AM +0100, Ben Dooks wrote:
> > init/main.c calls a number of functions externally
> > but declaring them locally. This patch creates a
> > new header (linux/kernel_init.h) and moves all
> > the declarations into it.
> 
> These functions are only referenced in init/main.c, and rightfully so.
> In the end, this doesn't change anything much, other than maintainance
> overhead for the new include/linux/kernel_init.h
>...

I disagree.

Without having looked deeper at the details of this specific patch, it's 
generally a good cleanup to move function declarations to header files.

This avoids the nasty class of runtime errors we sometimes get when 
someone changes the prototype of a function but forgets to update all 
the prototypes floating around in .c files.

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] - create common header for init/main.c called init functions
  2005-10-18 23:11 ` Arthur Othieno
  2005-10-18 23:44   ` Adrian Bunk
@ 2005-10-19  6:30   ` Ben Dooks
  2005-10-19 19:50   ` Ben Dooks
  2 siblings, 0 replies; 5+ messages in thread
From: Ben Dooks @ 2005-10-19  6:30 UTC (permalink / raw)
  To: Arthur Othieno; +Cc: Ben Dooks, linux-kernel

On Tue, Oct 18, 2005 at 07:11:09PM -0400, Arthur Othieno wrote:
> On Fri, Oct 14, 2005 at 01:42:10AM +0100, Ben Dooks wrote:
> > init/main.c calls a number of functions externally
> > but declaring them locally. This patch creates a
> > new header (linux/kernel_init.h) and moves all
> > the declarations into it.
> 
> These functions are only referenced in init/main.c, and rightfully so.
> In the end, this doesn't change anything much, other than maintainance
> overhead for the new include/linux/kernel_init.h

Yes, but they generate warnings from sparse, and there
are currently quite a lot of them.

Maybe the patch should move the init functions into their
respective header files, i'll look at sortig that out and
re-issuing them.
 
> But, comments within..
> 
> > Also removes any old init functions now done by
> > an initcall()
> 
> (mca|sbus|tc)_init() removal look good.
> 
> > Signed-off-by: Ben Dooks <ben-linux@fluff.org>
> 
> > diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/drivers/acpi/bus.c linux-2.6.14-rc4-bjd3c/drivers/acpi/bus.c
> > --- linux-2.6.14-rc4-bjd3b/drivers/acpi/bus.c	2005-10-11 10:56:31.000000000 +0100
> > +++ linux-2.6.14-rc4-bjd3c/drivers/acpi/bus.c	2005-10-14 01:32:27.000000000 +0100
> > @@ -30,6 +30,7 @@
> >  #include <linux/pm.h>
> >  #include <linux/device.h>
> >  #include <linux/proc_fs.h>
> > +#include <linux/kernel_init.h>
> 
> Unecessary, acpi_early_init() defined here.

I missed the actual definition, but, you notice it is
wrappered in `CONFIG_X86`, which isn't much used on non X86
systems.

> >  #ifdef CONFIG_X86
> >  #include <asm/mpspec.h>
> >  #endif
> > diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/drivers/base/init.c linux-2.6.14-rc4-bjd3c/drivers/base/init.c
> > --- linux-2.6.14-rc4-bjd3b/drivers/base/init.c	2005-10-13 15:27:05.000000000 +0100
> > +++ linux-2.6.14-rc4-bjd3c/drivers/base/init.c	2005-10-14 01:29:35.000000000 +0100
> > @@ -9,6 +9,7 @@
> >  
> >  #include <linux/device.h>
> >  #include <linux/init.h>
> > +#include <linux/kernel_init.h>
> 
> Ditto driver_init().
> 
> >  #include "base.h"
> >  
> > diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/fs/buffer.c linux-2.6.14-rc4-bjd3c/fs/buffer.c
> > --- linux-2.6.14-rc4-bjd3b/fs/buffer.c	2005-10-11 10:56:33.000000000 +0100
> > +++ linux-2.6.14-rc4-bjd3c/fs/buffer.c	2005-10-14 01:36:06.000000000 +0100
> > @@ -19,7 +19,9 @@
> >   */
> >  
> >  #include <linux/config.h>
> > +#include <linux/init.h>
> >  #include <linux/kernel.h>
> > +#include <linux/kernel_init.h>
> 
> Ditto buffer_init().

not a header file
 
> >  #include <linux/syscalls.h>
> >  #include <linux/fs.h>
> >  #include <linux/mm.h>
> > diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/include/linux/kernel_init.h linux-2.6.14-rc4-bjd3c/include/linux/kernel_init.h
> > --- linux-2.6.14-rc4-bjd3b/include/linux/kernel_init.h	1970-01-01 01:00:00.000000000 +0100
> > +++ linux-2.6.14-rc4-bjd3c/include/linux/kernel_init.h	2005-10-14 01:34:28.000000000 +0100
> > @@ -0,0 +1,26 @@
> 
> #ifndef _LINUX_KERNEL_INIT_H
> #define _LINUX_KERNEL_INIT_H
> 
> > +/* include/linux/kernel_init.h
> > + *
> > + * (C) 2005 Simtec Electronics
> > + *	Ben Dooks <ben@simtec.co.uk>
> 
> A little too much, no? This is only moving existing stuff around..
> 
> > + *
> > + * Initialisation function prototypes
> > +*/
> > +
> > +extern void init_IRQ(void);
> > +extern void __init fork_init(unsigned long);
> > +extern void __init signals_init(void);
> > +extern void __init buffer_init(void);
> > +extern void __init driver_init(void);
> > +extern void __init pidhash_init(void);
> > +extern void __init pidmap_init(void);
> > +extern void __init prio_tree_init(void);
> > +extern void __init populate_rootfs(void);
> > +extern void __init prepare_namespace(void);
> 
> extern void foo_init(void) __init;
> 
> > +
> > +extern void free_initmem(void);
> > +
> > +#ifdef	CONFIG_ACPI
> > +extern void __init acpi_early_init(void);
> > +#else
> > +static inline void acpi_early_init(void) { }
> > +#endif
> 
> #endif /* _LINUX_KERNEL_INIT_H */
> 
> > diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/init/do_mounts.c linux-2.6.14-rc4-bjd3c/init/do_mounts.c
> > --- linux-2.6.14-rc4-bjd3b/init/do_mounts.c	2005-10-11 10:56:34.000000000 +0100
> > +++ linux-2.6.14-rc4-bjd3c/init/do_mounts.c	2005-10-14 01:31:42.000000000 +0100
> > @@ -8,6 +8,7 @@
> >  #include <linux/security.h>
> >  #include <linux/delay.h>
> >  #include <linux/mount.h>
> > +#include <linux/kernel_init.h>
> 
> Unecessary, prepare_namespace() defined here.

not a header file
 
> >  #include <linux/nfs_fs.h>
> >  #include <linux/nfs_fs_sb.h>
> > diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/init/initramfs.c linux-2.6.14-rc4-bjd3c/init/initramfs.c
> > --- linux-2.6.14-rc4-bjd3b/init/initramfs.c	2005-10-11 23:47:02.000000000 +0100
> > +++ linux-2.6.14-rc4-bjd3c/init/initramfs.c	2005-10-14 01:29:01.000000000 +0100
> > @@ -6,6 +6,7 @@
> >  #include <linux/delay.h>
> >  #include <linux/string.h>
> >  #include <linux/syscalls.h>
> > +#include <linux/kernel_init.h>
> 
> Ditto populate_rootfs().
> 
> >  static __initdata char *message;
> >  static void __init error(char *x)
> > diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/init/main.c linux-2.6.14-rc4-bjd3c/init/main.c
> > --- linux-2.6.14-rc4-bjd3b/init/main.c	2005-10-11 10:56:34.000000000 +0100
> > +++ linux-2.6.14-rc4-bjd3c/init/main.c	2005-10-14 01:35:11.000000000 +0100
> > @@ -17,6 +17,7 @@
> >  #include <linux/proc_fs.h>
> >  #include <linux/devfs_fs_kernel.h>
> >  #include <linux/kernel.h>
> > +#include <linux/kernel_init.h>
> >  #include <linux/syscalls.h>
> >  #include <linux/string.h>
> >  #include <linux/ctype.h>
> > @@ -47,8 +48,11 @@
> >  #include <linux/rmap.h>
> >  #include <linux/mempolicy.h>
> >  #include <linux/key.h>
> > +#include <linux/sysctl.h>
> >  #include <net/sock.h>
> >  
> > +#include <linux/radix-tree.h>
> > +
> 
> No need for the extra whitespace, could have as well gone right below
> <linux/sysctl.h>
> 
> >  #include <asm/io.h>
> >  #include <asm/bugs.h>
> >  #include <asm/setup.h>
> > @@ -80,30 +84,7 @@
> >  
> >  static int init(void *);
> >  
> > -extern void init_IRQ(void);
> > -extern void fork_init(unsigned long);
> > -extern void mca_init(void);
> > -extern void sbus_init(void);
> > -extern void sysctl_init(void);
> > -extern void signals_init(void);
> > -extern void buffer_init(void);
> > -extern void pidhash_init(void);
> > -extern void pidmap_init(void);
> > -extern void prio_tree_init(void);
> > -extern void radix_tree_init(void);
> > -extern void free_initmem(void);
> > -extern void populate_rootfs(void);
> > -extern void driver_init(void);
> > -extern void prepare_namespace(void);
> > -#ifdef	CONFIG_ACPI
> > -extern void acpi_early_init(void);
> > -#else
> > -static inline void acpi_early_init(void) { }
> > -#endif
> >  
> > -#ifdef CONFIG_TC
> > -extern void tc_init(void);
> > -#endif
> >  
> >  enum system_states system_state;
> >  EXPORT_SYMBOL(system_state);
> > diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/kernel/fork.c linux-2.6.14-rc4-bjd3c/kernel/fork.c
> > --- linux-2.6.14-rc4-bjd3b/kernel/fork.c	2005-10-11 10:56:34.000000000 +0100
> > +++ linux-2.6.14-rc4-bjd3c/kernel/fork.c	2005-10-14 01:18:16.000000000 +0100
> > @@ -42,6 +42,7 @@
> >  #include <linux/profile.h>
> >  #include <linux/rmap.h>
> >  #include <linux/acct.h>
> > +#include <linux/kernel_init.h>
> 
> Unecessary, fork_init() defined here.

not a header file!
 
> >  #include <asm/pgtable.h>
> >  #include <asm/pgalloc.h>
> > diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/kernel/pid.c linux-2.6.14-rc4-bjd3c/kernel/pid.c
> > --- linux-2.6.14-rc4-bjd3b/kernel/pid.c	2005-06-17 20:48:29.000000000 +0100
> > +++ linux-2.6.14-rc4-bjd3c/kernel/pid.c	2005-10-14 01:24:27.000000000 +0100
> > @@ -26,6 +26,7 @@
> >  #include <linux/init.h>
> >  #include <linux/bootmem.h>
> >  #include <linux/hash.h>
> > +#include <linux/kernel_init.h>
> 
> Ditto pid(map|hash)_init().
> 
> >  #define pid_hashfn(nr) hash_long((unsigned long)nr, pidhash_shift)
> >  static struct hlist_head *pid_hash[PIDTYPE_MAX];
> > diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/kernel/signal.c linux-2.6.14-rc4-bjd3c/kernel/signal.c
> > --- linux-2.6.14-rc4-bjd3b/kernel/signal.c	2005-10-11 10:56:34.000000000 +0100
> > +++ linux-2.6.14-rc4-bjd3c/kernel/signal.c	2005-10-14 01:22:16.000000000 +0100
> > @@ -25,6 +25,7 @@
> >  #include <linux/posix-timers.h>
> >  #include <linux/signal.h>
> >  #include <linux/audit.h>
> > +#include <linux/kernel_init.h>
> 
> Ditto signals_init().

hmm, 
 
> >  #include <asm/param.h>
> >  #include <asm/uaccess.h>
> >  #include <asm/unistd.h>
> > diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/lib/prio_tree.c linux-2.6.14-rc4-bjd3c/lib/prio_tree.c
> > --- linux-2.6.14-rc4-bjd3b/lib/prio_tree.c	2005-06-17 20:48:29.000000000 +0100
> > +++ linux-2.6.14-rc4-bjd3c/lib/prio_tree.c	2005-10-14 01:27:04.000000000 +0100
> > @@ -14,6 +14,7 @@
> >  #include <linux/init.h>
> >  #include <linux/mm.h>
> >  #include <linux/prio_tree.h>
> > +#include <linux/kernel_init.h>
> 
> Ditto prio_tree_init().

aha

> >  /*
> >   * A clever mix of heap and radix trees forms a radix priority search tree (PST)
> > diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/lib/radix-tree.c linux-2.6.14-rc4-bjd3c/lib/radix-tree.c
> > --- linux-2.6.14-rc4-bjd3b/lib/radix-tree.c	2005-10-11 10:56:34.000000000 +0100
> > +++ linux-2.6.14-rc4-bjd3c/lib/radix-tree.c	2005-10-14 01:27:21.000000000 +0100
> > @@ -21,6 +21,7 @@
> >  #include <linux/errno.h>
> >  #include <linux/init.h>
> >  #include <linux/kernel.h>
> > +#include <linux/kernel_init.h>
> 
> Ditto radix_tree_init(), and already prototyped in include/linux/radix-tree.h:

ok, missed that one

-- 
Ben (ben@fluff.org, http://www.fluff.org/)

  'a smiley only costs 4 bytes'

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] - create common header for init/main.c called init functions
  2005-10-18 23:11 ` Arthur Othieno
  2005-10-18 23:44   ` Adrian Bunk
  2005-10-19  6:30   ` Ben Dooks
@ 2005-10-19 19:50   ` Ben Dooks
  2 siblings, 0 replies; 5+ messages in thread
From: Ben Dooks @ 2005-10-19 19:50 UTC (permalink / raw)
  To: Arthur Othieno; +Cc: linux-kernel

[-- Attachment #1: Type: text/plain, Size: 1433 bytes --]

On Tue, Oct 18, 2005 at 07:11:09PM -0400, Arthur Othieno wrote:
> On Fri, Oct 14, 2005 at 01:42:10AM +0100, Ben Dooks wrote:
> > init/main.c calls a number of functions externally
> > but declaring them locally. This patch creates a
> > new header (linux/kernel_init.h) and moves all
> > the declarations into it.
> 
> These functions are only referenced in init/main.c, and rightfully so.
> In the end, this doesn't change anything much, other than maintainance
> overhead for the new include/linux/kernel_init.h
> 
> But, comments within..
> 
> > Also removes any old init functions now done by
> > an initcall()
> 
> (mca|sbus|tc)_init() removal look good.
> 
> > Signed-off-by: Ben Dooks <ben-linux@fluff.org>
> 
> > diff -urpN -X ../dontdiff linux-2.6.14-rc4-bjd3b/drivers/acpi/bus.c linux-2.6.14-rc4-bjd3c/drivers/acpi/bus.c
> > --- linux-2.6.14-rc4-bjd3b/drivers/acpi/bus.c	2005-10-11 10:56:31.000000000 +0100
> > +++ linux-2.6.14-rc4-bjd3c/drivers/acpi/bus.c	2005-10-14 01:32:27.000000000 +0100
> > @@ -30,6 +30,7 @@
> >  #include <linux/pm.h>
> >  #include <linux/device.h>
> >  #include <linux/proc_fs.h>
> > +#include <linux/kernel_init.h>

I've attached a pair of patches, the first removes
the unused functions, and the second moves the init
function declarations into include/linux/init.h
(and adds the init to include/linux/prio_tree.h)

-- 
Ben (ben@fluff.org, http://www.fluff.org/)

  'a smiley only costs 4 bytes'

[-- Attachment #2: init-remove-unused.patch --]
[-- Type: text/plain, Size: 791 bytes --]

diff -urp -X linux-2.6.14-rc4-git7-bjd1/Documentation/dontdiff linux-2.6.14-rc4-git7/init/main.c linux-2.6.14-rc4-git7-bjd1/init/main.c
--- linux-2.6.14-rc4-git7/init/main.c	2005-10-19 12:44:36.000000000 +0100
+++ linux-2.6.14-rc4-git7-bjd1/init/main.c	2005-10-19 12:51:19.000000000 +0100
@@ -82,8 +82,6 @@ static int init(void *);
 
 extern void init_IRQ(void);
 extern void fork_init(unsigned long);
-extern void mca_init(void);
-extern void sbus_init(void);
 extern void sysctl_init(void);
 extern void signals_init(void);
 extern void buffer_init(void);
@@ -101,10 +99,6 @@ extern void acpi_early_init(void);
 static inline void acpi_early_init(void) { }
 #endif
 
-#ifdef CONFIG_TC
-extern void tc_init(void);
-#endif
-
 enum system_states system_state;
 EXPORT_SYMBOL(system_state);
 

[-- Attachment #3: init-move-delarations.patch --]
[-- Type: text/plain, Size: 2790 bytes --]

diff -urp -X linux-2.6.14-rc4-git7-bjd1/Documentation/dontdiff linux-2.6.14-rc4-git7-bjd1/include/linux/init.h linux-2.6.14-rc4-git7-bjd2/include/linux/init.h
--- linux-2.6.14-rc4-git7-bjd1/include/linux/init.h	2005-08-29 00:41:01.000000000 +0100
+++ linux-2.6.14-rc4-git7-bjd2/include/linux/init.h	2005-10-19 14:15:20.000000000 +0100
@@ -143,6 +143,25 @@ struct obs_kernel_param {
 
 /* Relies on saved_command_line being set */
 void __init parse_early_param(void);
+
+/* items used by init/main.c */
+
+extern void __init init_IRQ(void);
+extern void __init fork_init(unsigned long);
+extern void __init sysctl_init(void);
+extern void __init signals_init(void);
+extern void __init buffer_init(void);
+extern void __init pidhash_init(void);
+extern void __init pidmap_init(void);
+extern void __init free_initmem(void);
+extern void __init populate_rootfs(void);
+extern void __init driver_init(void);
+extern void __init prepare_namespace(void);
+
+#ifdef CONFIG_ACPI
+extern void __init acpi_early_init(void);
+#endif
+
 #endif /* __ASSEMBLY__ */
 
 /**
diff -urp -X linux-2.6.14-rc4-git7-bjd1/Documentation/dontdiff linux-2.6.14-rc4-git7-bjd1/include/linux/prio_tree.h linux-2.6.14-rc4-git7-bjd2/include/linux/prio_tree.h
--- linux-2.6.14-rc4-git7-bjd1/include/linux/prio_tree.h	2005-08-29 00:41:01.000000000 +0100
+++ linux-2.6.14-rc4-git7-bjd2/include/linux/prio_tree.h	2005-10-19 13:31:41.000000000 +0100
@@ -117,4 +117,6 @@ struct prio_tree_node *prio_tree_next(st
 #define raw_prio_tree_remove(root, node) \
 	prio_tree_remove(root, (struct prio_tree_node *) (node))
 
+extern void __init prio_tree_init(void);
+
 #endif /* _LINUX_PRIO_TREE_H */
diff -urp -X linux-2.6.14-rc4-git7-bjd1/Documentation/dontdiff linux-2.6.14-rc4-git7-bjd1/init/main.c linux-2.6.14-rc4-git7-bjd2/init/main.c
--- linux-2.6.14-rc4-git7-bjd1/init/main.c	2005-10-19 12:51:19.000000000 +0100
+++ linux-2.6.14-rc4-git7-bjd2/init/main.c	2005-10-19 14:15:26.000000000 +0100
@@ -47,6 +47,8 @@
 #include <linux/rmap.h>
 #include <linux/mempolicy.h>
 #include <linux/key.h>
+#include <linux/prio_tree.h>
+#include <linux/radix-tree.h>
 #include <net/sock.h>
 
 #include <asm/io.h>
@@ -80,22 +82,7 @@
 
 static int init(void *);
 
-extern void init_IRQ(void);
-extern void fork_init(unsigned long);
-extern void sysctl_init(void);
-extern void signals_init(void);
-extern void buffer_init(void);
-extern void pidhash_init(void);
-extern void pidmap_init(void);
-extern void prio_tree_init(void);
-extern void radix_tree_init(void);
-extern void free_initmem(void);
-extern void populate_rootfs(void);
-extern void driver_init(void);
-extern void prepare_namespace(void);
-#ifdef	CONFIG_ACPI
-extern void acpi_early_init(void);
-#else
+#ifndef	CONFIG_ACPI
 static inline void acpi_early_init(void) { }
 #endif
 

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2005-10-19 19:51 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-10-14  0:42 [PATCH] - create common header for init/main.c called init functions Ben Dooks
2005-10-18 23:11 ` Arthur Othieno
2005-10-18 23:44   ` Adrian Bunk
2005-10-19  6:30   ` Ben Dooks
2005-10-19 19:50   ` Ben Dooks

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox