2015-07-16 17:34:42

by Tom Zanussi

[permalink] [raw]
Subject: [PATCH v4 0/6] kallsyms header cleanup

During review of an unrelated patchset, the question was asked why
module.h was included in code that wouldn't be a module and didn't do
anything with modules [1].

The reason is that it uses kallsyms defines, but kallsyms.h doesn't
include module.h, though it should because it uses MODULE_NAME_LEN.
The code in question also didn't include kallsyms.h but relied on
ftrace.h to pull it in. But ftrace.h no longer contains anything that
needs kallsyms.h, and continues to include it only because other code
expects it to.

This patchset is the start of cleaning all that up. It also adds
explicit kallsyms.h includes and removes module.h includes for obvious
cases in kernel/trace and lib/, where I happened to be working.

There are a bunch of other files that probably include module.h only
for kallsyms, but I haven't gone through them yet. I can submit a
follow-on patchset to this one assuming this is best way to do it...

[1] https://lkml.org/lkml/2015/4/4/70

Changes from v3:
- rebased to latest linux-next, which now includes a patch that adds
module.h to kallsyms.h [commit 5ed0a999 kernel/kallsyns.c: define
kallsyms_cmp_symbol_t as function type to simplify the code], so
patch 2 of the previous version was removed.

Changes from v2:
- rebased to linux-next
- trace.c now needs module.h so leave it

Changes from v1:
- added KSYM_SYMBOL_LEN patches for fnic and slub
- separated tracing changes into KSYM_SYMBOL_LEN-only module.h changes
- fixed up bogus lib change from previous patchset
- separate patch to remove unnecessary tracing kallsyms.h and module.h usage

The following changes since commit 6593e2dcdedd0493e1b1fcb419609d2101c4d0be:

Add linux-next specific files for 20150716 (2015-07-16 16:23:42 +1000)

are available in the git repository at:

git://git.yoctoproject.org/linux-yocto-contrib.git tzanussi/kallsyms-header-cleanup-v4
http://git.yoctoproject.org/cgit/cgit.cgi/linux-yocto-contrib/log/?h=tzanussi/kallsyms-header-cleanup-v4

Tom Zanussi (6):
tracing: Remove kallsyms.h include from linux/ftrace.h
tracing: Remove redundant module.h includes
lib: Remove redundant module.h includes
fnic: Remove redundant module.h includes
slub: Remove redundant module.h includes
tracing: Remove unnecessary kallsyms.h and module.h includes

drivers/scsi/fnic/fnic_trace.c | 1 -
include/linux/ftrace.h | 1 -
kernel/trace/trace.c | 1 -
kernel/trace/trace_branch.c | 2 --
kernel/trace/trace_export.c | 2 --
kernel/trace/trace_irqsoff.c | 2 --
kernel/trace/trace_kprobe.c | 1 +
kernel/trace/trace_output.c | 2 +-
kernel/trace/trace_sched_switch.c | 2 --
kernel/trace/trace_sched_wakeup.c | 2 --
kernel/trace/trace_stack.c | 2 --
kernel/trace/trace_syscalls.c | 2 +-
lib/vsprintf.c | 1 -
mm/slub.c | 1 -
14 files changed, 3 insertions(+), 19 deletions(-)

--
1.9.3


2015-07-16 17:34:45

by Tom Zanussi

[permalink] [raw]
Subject: [PATCH v4 1/6] tracing: Remove kallsyms.h include from linux/ftrace.h

kallsyms.h was included by ftrace.h for KSYM_NAME_LEN, but that usage
was removed by commit 3f5ec13696f [tracing/fastboot: move boot tracer
structs and funcs into their own header].

Remove kallsyms.h and have users relying on ftrace.h to include it for
them include it explicitly.

Signed-off-by: Tom Zanussi <[email protected]>
---
include/linux/ftrace.h | 1 -
kernel/trace/trace_kprobe.c | 1 +
kernel/trace/trace_output.c | 1 +
kernel/trace/trace_syscalls.c | 1 +
4 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h
index 1da6029..8554dd5 100644
--- a/include/linux/ftrace.h
+++ b/include/linux/ftrace.h
@@ -7,7 +7,6 @@
#define _LINUX_FTRACE_H

#include <linux/trace_clock.h>
-#include <linux/kallsyms.h>
#include <linux/linkage.h>
#include <linux/bitops.h>
#include <linux/ptrace.h>
diff --git a/kernel/trace/trace_kprobe.c b/kernel/trace/trace_kprobe.c
index b7d0cdd..afdabd0 100644
--- a/kernel/trace/trace_kprobe.c
+++ b/kernel/trace/trace_kprobe.c
@@ -18,6 +18,7 @@
*/

#include <linux/module.h>
+#include <linux/kallsyms.h>
#include <linux/uaccess.h>

#include "trace_probe.h"
diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c
index dfab253..6747d85 100644
--- a/kernel/trace/trace_output.c
+++ b/kernel/trace/trace_output.c
@@ -6,6 +6,7 @@
*/

#include <linux/module.h>
+#include <linux/kallsyms.h>
#include <linux/mutex.h>
#include <linux/ftrace.h>

diff --git a/kernel/trace/trace_syscalls.c b/kernel/trace/trace_syscalls.c
index 7d567a4..e9bf9c6 100644
--- a/kernel/trace/trace_syscalls.c
+++ b/kernel/trace/trace_syscalls.c
@@ -4,6 +4,7 @@
#include <linux/slab.h>
#include <linux/kernel.h>
#include <linux/module.h> /* for MODULE_NAME_LEN via KSYM_SYMBOL_LEN */
+#include <linux/kallsyms.h>
#include <linux/ftrace.h>
#include <linux/perf_event.h>
#include <asm/syscall.h>
--
1.9.3

2015-07-16 17:35:51

by Tom Zanussi

[permalink] [raw]
Subject: [PATCH v4 2/6] tracing: Remove redundant module.h includes

kallsyms.h now includes module.h, so remove module.h includes that
were apparently there only to satisfy kallsyms use of MODULE_NAME_LEN
(via KSYM_SYMBOL_LEN).

Signed-off-by: Tom Zanussi <[email protected]>
---
kernel/trace/trace_output.c | 1 -
kernel/trace/trace_syscalls.c | 1 -
2 files changed, 2 deletions(-)

diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c
index 6747d85..7876c61 100644
--- a/kernel/trace/trace_output.c
+++ b/kernel/trace/trace_output.c
@@ -5,7 +5,6 @@
*
*/

-#include <linux/module.h>
#include <linux/kallsyms.h>
#include <linux/mutex.h>
#include <linux/ftrace.h>
diff --git a/kernel/trace/trace_syscalls.c b/kernel/trace/trace_syscalls.c
index e9bf9c6..f2bad21 100644
--- a/kernel/trace/trace_syscalls.c
+++ b/kernel/trace/trace_syscalls.c
@@ -3,7 +3,6 @@
#include <linux/syscalls.h>
#include <linux/slab.h>
#include <linux/kernel.h>
-#include <linux/module.h> /* for MODULE_NAME_LEN via KSYM_SYMBOL_LEN */
#include <linux/kallsyms.h>
#include <linux/ftrace.h>
#include <linux/perf_event.h>
--
1.9.3

2015-07-16 17:34:48

by Tom Zanussi

[permalink] [raw]
Subject: [PATCH v4 3/6] lib: Remove redundant module.h includes

kallsyms.h now includes module.h, so remove module.h includes that
were apparently there only to satisfy kallsyms use of MODULE_NAME_LEN
(via KSYM_SYMBOL_LEN).

Signed-off-by: Tom Zanussi <[email protected]>
---
lib/vsprintf.c | 1 -
1 file changed, 1 deletion(-)

diff --git a/lib/vsprintf.c b/lib/vsprintf.c
index 7f0cdd2..fa587aa 100644
--- a/lib/vsprintf.c
+++ b/lib/vsprintf.c
@@ -19,7 +19,6 @@
#include <stdarg.h>
#include <linux/clk.h>
#include <linux/clk-provider.h>
-#include <linux/module.h> /* for KSYM_SYMBOL_LEN */
#include <linux/types.h>
#include <linux/string.h>
#include <linux/ctype.h>
--
1.9.3

2015-07-16 17:34:53

by Tom Zanussi

[permalink] [raw]
Subject: [PATCH v4 4/6] fnic: Remove redundant module.h includes

kallsyms.h now includes module.h, so remove module.h includes that
were apparently there only to satisfy kallsyms use of MODULE_NAME_LEN
(via KSYM_SYMBOL_LEN).

Signed-off-by: Tom Zanussi <[email protected]>
---
drivers/scsi/fnic/fnic_trace.c | 1 -
1 file changed, 1 deletion(-)

diff --git a/drivers/scsi/fnic/fnic_trace.c b/drivers/scsi/fnic/fnic_trace.c
index 4e15c4b..503f9c5 100644
--- a/drivers/scsi/fnic/fnic_trace.c
+++ b/drivers/scsi/fnic/fnic_trace.c
@@ -15,7 +15,6 @@
* SOFTWARE.
*/

-#include <linux/module.h>
#include <linux/mempool.h>
#include <linux/errno.h>
#include <linux/spinlock.h>
--
1.9.3

2015-07-16 17:34:54

by Tom Zanussi

[permalink] [raw]
Subject: [PATCH v4 5/6] slub: Remove redundant module.h includes

kallsyms.h now includes module.h, so remove module.h includes that
were apparently there only to satisfy kallsyms use of MODULE_NAME_LEN
(via KSYM_SYMBOL_LEN).

Signed-off-by: Tom Zanussi <[email protected]>
Acked-by: David Rientjes <[email protected]>
---
mm/slub.c | 1 -
1 file changed, 1 deletion(-)

diff --git a/mm/slub.c b/mm/slub.c
index 257283f..797530f 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -11,7 +11,6 @@

#include <linux/mm.h>
#include <linux/swap.h> /* struct reclaim_state */
-#include <linux/module.h>
#include <linux/bit_spinlock.h>
#include <linux/interrupt.h>
#include <linux/bitops.h>
--
1.9.3

2015-07-16 17:35:24

by Tom Zanussi

[permalink] [raw]
Subject: [PATCH v4 6/6] tracing: Remove unnecessary kallsyms.h and module.h includes

At some point, these files made use of something from kallsyms.h
and/or module.h, but they now use nothing from either and can be
removed.

Signed-off-by: Tom Zanussi <[email protected]>
---
kernel/trace/trace.c | 1 -
kernel/trace/trace_branch.c | 2 --
kernel/trace/trace_export.c | 2 --
kernel/trace/trace_irqsoff.c | 2 --
kernel/trace/trace_sched_switch.c | 2 --
kernel/trace/trace_sched_wakeup.c | 2 --
kernel/trace/trace_stack.c | 2 --
7 files changed, 13 deletions(-)

diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index abcbf7f..a164198 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -15,7 +15,6 @@
#include <generated/utsrelease.h>
#include <linux/stacktrace.h>
#include <linux/writeback.h>
-#include <linux/kallsyms.h>
#include <linux/seq_file.h>
#include <linux/notifier.h>
#include <linux/irqflags.h>
diff --git a/kernel/trace/trace_branch.c b/kernel/trace/trace_branch.c
index e2e12ad..eab76d8 100644
--- a/kernel/trace/trace_branch.c
+++ b/kernel/trace/trace_branch.c
@@ -3,12 +3,10 @@
*
* Copyright (C) 2008 Steven Rostedt <[email protected]>
*/
-#include <linux/kallsyms.h>
#include <linux/seq_file.h>
#include <linux/spinlock.h>
#include <linux/irqflags.h>
#include <linux/uaccess.h>
-#include <linux/module.h>
#include <linux/ftrace.h>
#include <linux/hash.h>
#include <linux/fs.h>
diff --git a/kernel/trace/trace_export.c b/kernel/trace/trace_export.c
index adabf7d..cc48161 100644
--- a/kernel/trace/trace_export.c
+++ b/kernel/trace/trace_export.c
@@ -4,11 +4,9 @@
* Copyright (C) 2009 Steven Rostedt <[email protected]>
*/
#include <linux/stringify.h>
-#include <linux/kallsyms.h>
#include <linux/seq_file.h>
#include <linux/uaccess.h>
#include <linux/ftrace.h>
-#include <linux/module.h>
#include <linux/init.h>

#include "trace_output.h"
diff --git a/kernel/trace/trace_irqsoff.c b/kernel/trace/trace_irqsoff.c
index 8523ea3..f65f596 100644
--- a/kernel/trace/trace_irqsoff.c
+++ b/kernel/trace/trace_irqsoff.c
@@ -9,9 +9,7 @@
* Copyright (C) 2004-2006 Ingo Molnar
* Copyright (C) 2004 Nadia Yvette Chambers
*/
-#include <linux/kallsyms.h>
#include <linux/uaccess.h>
-#include <linux/module.h>
#include <linux/ftrace.h>

#include "trace.h"
diff --git a/kernel/trace/trace_sched_switch.c b/kernel/trace/trace_sched_switch.c
index 419ca37..e1793f2 100644
--- a/kernel/trace/trace_sched_switch.c
+++ b/kernel/trace/trace_sched_switch.c
@@ -4,8 +4,6 @@
* Copyright (C) 2007 Steven Rostedt <[email protected]>
*
*/
-#include <linux/module.h>
-#include <linux/kallsyms.h>
#include <linux/uaccess.h>
#include <linux/ftrace.h>
#include <trace/events/sched.h>
diff --git a/kernel/trace/trace_sched_wakeup.c b/kernel/trace/trace_sched_wakeup.c
index 9b33dd1..b7692d4 100644
--- a/kernel/trace/trace_sched_wakeup.c
+++ b/kernel/trace/trace_sched_wakeup.c
@@ -9,8 +9,6 @@
* Copyright (C) 2004-2006 Ingo Molnar
* Copyright (C) 2004 Nadia Yvette Chambers
*/
-#include <linux/module.h>
-#include <linux/kallsyms.h>
#include <linux/uaccess.h>
#include <linux/ftrace.h>
#include <linux/sched/rt.h>
diff --git a/kernel/trace/trace_stack.c b/kernel/trace/trace_stack.c
index 3f34496..06ad4c0 100644
--- a/kernel/trace/trace_stack.c
+++ b/kernel/trace/trace_stack.c
@@ -3,12 +3,10 @@
*
*/
#include <linux/stacktrace.h>
-#include <linux/kallsyms.h>
#include <linux/seq_file.h>
#include <linux/spinlock.h>
#include <linux/uaccess.h>
#include <linux/ftrace.h>
-#include <linux/module.h>
#include <linux/sysctl.h>
#include <linux/init.h>

--
1.9.3