Skip to contentSkip to conversation

Address Sparse Static Warning inside kernel/fork.c

PATCH In review Subrata Modak 2 participants 2 messages Aug 6, 2009

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Address Sparse Static Warning inside kernel/fork.c

Hi Ingo,

The patch below fixes the following SPARSE warning:
kernel/fork.c:81:5: warning: symbol 'max_threads' was not declared. Should it be static? kernel/fork.c:171:13: warning: symbol 'fork_init' was not declared. Should it be static?

To: Ingo Molnar <[email protected]>,
Cc: LKML <[email protected]>,
Cc: Balbir Singh <[email protected]>,
Cc: Sachin P Sant <[email protected]>,
---

kernel/fork.c +2 -2
@@ -78,7 +78,7 @@
 unsigned long total_forks;	/* Handle normal Linux uptimes. */
 int nr_threads; 		/* The idle threads do not count.. */
 
-int max_threads;		/* tunable limit on nr_threads */
+static int max_threads;		/* tunable limit on nr_threads */
 
 DEFINE_PER_CPU(unsigned long, process_counts) = 0;
 
@@ -168,7 +168,7 @@ void __put_task_struct(struct task_struc
 #define arch_task_cache_init()
 #endif
 
-void __init fork_init(unsigned long mempages)
+static void __init fork_init(unsigned long mempages)
 {
 #ifndef __HAVE_ARCH_TASK_STRUCT_ALLOCATOR
 #ifndef ARCH_MIN_TASKALIGN

Regards--
Subrata

#1 lore raw
Quoted 12 lines · Subrata Modak
kernel/fork.c +1 -1
@@ -78,7 +78,7 @@
 unsigned long total_forks;	/* Handle normal Linux uptimes. */
 int nr_threads; 		/* The idle threads do not count.. */
 
-int max_threads;		/* tunable limit on nr_threads */
+static int max_threads;		/* tunable limit on nr_threads */
 
 DEFINE_PER_CPU(unsigned long, process_counts) = 0;
 

kernel/fork.c void __put_task_struct(struct task_struc · line 174

Quoted 8 lines
kernel/fork.c +1 -1
@@ -168,7 +168,7 @@ void __put_task_struct(struct task_struc
 #define arch_task_cache_init()
 #endif
 
-void __init fork_init(unsigned long mempages)
+static void __init fork_init(unsigned long mempages)
 {
 #ifndef __HAVE_ARCH_TASK_STRUCT_ALLOCATOR
 #ifndef ARCH_MIN_TASKALIGN

These are both wrong (you didn't try compiling the kernel with that patch, did you?):
fork_init() is called from init/main.c, max_threads is accessed in kernel/sysctl.c.

If you had tried building this, you would have seen a warning about unused symbols in the compile stage, followed by a linker error.

I would still be good to address these two though. Please do a patch that moves the extern declarations for these two symbols to an appropriate header file that is included in fork.c.

	Arnd <><