Commit c4e85f82 authored by Florian Westphal's avatar Florian Westphal Committed by David S. Miller

sctp: Don't abort initialization when CONFIG_PROC_FS=n

This puts CONFIG_PROC_FS defines around the proc init/exit functions
and also avoids compiling proc.c if procfs is not supported.
Also make SCTP_DBG_OBJCNT depend on procfs.
Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
Signed-off-by: default avatarVlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent c1e20f7c
...@@ -47,11 +47,11 @@ config SCTP_DBG_MSG ...@@ -47,11 +47,11 @@ config SCTP_DBG_MSG
config SCTP_DBG_OBJCNT config SCTP_DBG_OBJCNT
bool "SCTP: Debug object counts" bool "SCTP: Debug object counts"
depends on PROC_FS
help help
If you say Y, this will enable debugging support for counting the If you say Y, this will enable debugging support for counting the
type of objects that are currently allocated. This is useful for type of objects that are currently allocated. This is useful for
identifying memory leaks. If the /proc filesystem is enabled this identifying memory leaks. This debug information can be viewed by
debug information can be viewed by
'cat /proc/net/sctp/sctp_dbg_objcnt' 'cat /proc/net/sctp/sctp_dbg_objcnt'
If unsure, say N If unsure, say N
......
...@@ -9,10 +9,10 @@ sctp-y := sm_statetable.o sm_statefuns.o sm_sideeffect.o \ ...@@ -9,10 +9,10 @@ sctp-y := sm_statetable.o sm_statefuns.o sm_sideeffect.o \
transport.o chunk.o sm_make_chunk.o ulpevent.o \ transport.o chunk.o sm_make_chunk.o ulpevent.o \
inqueue.o outqueue.o ulpqueue.o command.o \ inqueue.o outqueue.o ulpqueue.o command.o \
tsnmap.o bind_addr.o socket.o primitive.o \ tsnmap.o bind_addr.o socket.o primitive.o \
output.o input.o debug.o ssnmap.o proc.o \ output.o input.o debug.o ssnmap.o auth.o
auth.o
sctp-$(CONFIG_SCTP_DBG_OBJCNT) += objcnt.o sctp-$(CONFIG_SCTP_DBG_OBJCNT) += objcnt.o
sctp-$(CONFIG_PROC_FS) += proc.o
sctp-$(CONFIG_SYSCTL) += sysctl.o sctp-$(CONFIG_SYSCTL) += sysctl.o
sctp-$(subst m,y,$(CONFIG_IPV6)) += ipv6.o sctp-$(subst m,y,$(CONFIG_IPV6)) += ipv6.o
...@@ -64,9 +64,12 @@ ...@@ -64,9 +64,12 @@
/* Global data structures. */ /* Global data structures. */
struct sctp_globals sctp_globals __read_mostly; struct sctp_globals sctp_globals __read_mostly;
struct proc_dir_entry *proc_net_sctp;
DEFINE_SNMP_STAT(struct sctp_mib, sctp_statistics) __read_mostly; DEFINE_SNMP_STAT(struct sctp_mib, sctp_statistics) __read_mostly;
#ifdef CONFIG_PROC_FS
struct proc_dir_entry *proc_net_sctp;
#endif
struct idr sctp_assocs_id; struct idr sctp_assocs_id;
DEFINE_SPINLOCK(sctp_assocs_id_lock); DEFINE_SPINLOCK(sctp_assocs_id_lock);
...@@ -97,6 +100,7 @@ struct sock *sctp_get_ctl_sock(void) ...@@ -97,6 +100,7 @@ struct sock *sctp_get_ctl_sock(void)
/* Set up the proc fs entry for the SCTP protocol. */ /* Set up the proc fs entry for the SCTP protocol. */
static __init int sctp_proc_init(void) static __init int sctp_proc_init(void)
{ {
#ifdef CONFIG_PROC_FS
if (!proc_net_sctp) { if (!proc_net_sctp) {
struct proc_dir_entry *ent; struct proc_dir_entry *ent;
ent = proc_mkdir("sctp", init_net.proc_net); ent = proc_mkdir("sctp", init_net.proc_net);
...@@ -131,6 +135,9 @@ out_snmp_proc_init: ...@@ -131,6 +135,9 @@ out_snmp_proc_init:
} }
out_nomem: out_nomem:
return -ENOMEM; return -ENOMEM;
#else
return 0;
#endif /* CONFIG_PROC_FS */
} }
/* Clean up the proc fs entry for the SCTP protocol. /* Clean up the proc fs entry for the SCTP protocol.
...@@ -139,6 +146,7 @@ out_nomem: ...@@ -139,6 +146,7 @@ out_nomem:
*/ */
static void sctp_proc_exit(void) static void sctp_proc_exit(void)
{ {
#ifdef CONFIG_PROC_FS
sctp_snmp_proc_exit(); sctp_snmp_proc_exit();
sctp_eps_proc_exit(); sctp_eps_proc_exit();
sctp_assocs_proc_exit(); sctp_assocs_proc_exit();
...@@ -148,6 +156,7 @@ static void sctp_proc_exit(void) ...@@ -148,6 +156,7 @@ static void sctp_proc_exit(void)
proc_net_sctp = NULL; proc_net_sctp = NULL;
remove_proc_entry("sctp", init_net.proc_net); remove_proc_entry("sctp", init_net.proc_net);
} }
#endif
} }
/* Private helper to extract ipv4 address and stash them in /* Private helper to extract ipv4 address and stash them in
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment