Patchwork [net-next] tipc: cleanup function namespace

login
register
mail settings
Submitter stephen hemminger
Date Oct. 13, 2010, 11:20 p.m.
Message ID <20101013162035.0c2e8123@nehalam>
Download mbox | patch
Permalink /patch/67751/
State Accepted
Delegated to: David Miller
Headers show

Comments

stephen hemminger - Oct. 13, 2010, 11:20 p.m.
Do some cleanups of TIPC based on make namespacecheck
  1. Don't export unused symbols
  2. Eliminate dead code
  3. Make functions and variables local
  4. Rename buf_acquire to tipc_buf_acquire since it is used in several files

Compile tested only.
This make break out of tree kernel modules that depend on TIPC routines.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>

---
 include/net/tipc/tipc.h      |   71 -------------
 include/net/tipc/tipc_port.h |    2 
 net/tipc/addr.c              |    5 
 net/tipc/bcast.c             |   10 +
 net/tipc/bcast.h             |    3 
 net/tipc/cluster.c           |   21 ---
 net/tipc/cluster.h           |    2 
 net/tipc/config.c            |    7 +
 net/tipc/config.h            |    6 -
 net/tipc/core.c              |   28 +----
 net/tipc/core.h              |    9 -
 net/tipc/dbg.c               |   13 +-
 net/tipc/dbg.h               |    3 
 net/tipc/discover.c          |   16 --
 net/tipc/discover.h          |    2 
 net/tipc/link.c              |   45 ++++----
 net/tipc/link.h              |    4 
 net/tipc/msg.c               |    2 
 net/tipc/name_distr.c        |    2 
 net/tipc/node.c              |   19 ---
 net/tipc/node.h              |    1 
 net/tipc/port.c              |  234 ++++---------------------------------------
 net/tipc/port.h              |    2 
 net/tipc/ref.c               |   17 ---
 net/tipc/ref.h               |    1 
 net/tipc/subscr.c            |    9 -
 net/tipc/zone.c              |   11 --
 net/tipc/zone.h              |    1 
 28 files changed, 84 insertions(+), 462 deletions(-)



--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Paul Gortmaker - Oct. 14, 2010, 12:23 a.m.
On 10-10-13 07:20 PM, Stephen Hemminger wrote:
> Do some cleanups of TIPC based on make namespacecheck
>    1. Don't export unused symbols
>    2. Eliminate dead code
>    3. Make functions and variables local
>    4. Rename buf_acquire to tipc_buf_acquire since it is used in several files
> 
> Compile tested only.
> This make break out of tree kernel modules that depend on TIPC routines.

Hi Stephen,

When I first started looking at TIPC code, I too came to the
same conclusion as you did and was about to do #1,2,3 -- but
then I was told that the exported symbols were part of an API
and might be in use by folks here and there as per this thread:

http://www.mail-archive.com/netdev@vger.kernel.org/msg30208.html

I'm generally the 1st one to agree that the kernel should not
be libc, and that exporting all sorts of functions without a
clearly defined use case so that one can insert all sorts of
brewed up modules is *not* the way to go -- and was asking if
we could phase this API out if nobody was using it:

http://sourceforge.net/mailarchive/message.php?msg_name=29C1DC0826876849BDD9F1C67ABA294308C1FEB6%40ala-mail09.corp.ad.wrs.com

...but apparently there are a couple of API users out there.

I'd like to better understand their use case(es) and what parts
of this API they use, but I haven't got that far yet, since
there are a bunch of other TIPC bugfixes and changes queued on
sourceforge which need cleaning and integration into mainline.

I was thinking one idea would be to wrap them in a TIPC specific
Kconfig (off by default) so that it would at least highlight
this atypical use case for EXPORT_SYMBOL -- which might help
bring these users to the surface so we can learn about their
use cases.  Having it as a Kconfig option would also help in
giving us something to point our finger at for the feature
removal file, if indeed we could find a better way for these
users to get done whatever it is that they are doing.

In any event, I think your #2 (dead code) and #3 (add static)
are items considered dead or candidates for static because
of #1, i.e. tossing the API exports out.

I've already tossed out the explicitly dead code in #if 0
blocks -- Dave just merged that today.   But the #4 from your
list seems to make sense, and we can do that as a standalone
item of course.

Thanks,
Paul.

> 
> Signed-off-by: Stephen Hemminger<shemminger@vyatta.com>
> 
> ---
>   include/net/tipc/tipc.h      |   71 -------------
>   include/net/tipc/tipc_port.h |    2
>   net/tipc/addr.c              |    5
>   net/tipc/bcast.c             |   10 +
>   net/tipc/bcast.h             |    3
>   net/tipc/cluster.c           |   21 ---
>   net/tipc/cluster.h           |    2
>   net/tipc/config.c            |    7 +
>   net/tipc/config.h            |    6 -
>   net/tipc/core.c              |   28 +----
>   net/tipc/core.h              |    9 -
>   net/tipc/dbg.c               |   13 +-
>   net/tipc/dbg.h               |    3
>   net/tipc/discover.c          |   16 --
>   net/tipc/discover.h          |    2
>   net/tipc/link.c              |   45 ++++----
>   net/tipc/link.h              |    4
>   net/tipc/msg.c               |    2
>   net/tipc/name_distr.c        |    2
>   net/tipc/node.c              |   19 ---
>   net/tipc/node.h              |    1
>   net/tipc/port.c              |  234 ++++---------------------------------------
>   net/tipc/port.h              |    2
>   net/tipc/ref.c               |   17 ---
>   net/tipc/ref.h               |    1
>   net/tipc/subscr.c            |    9 -
>   net/tipc/zone.c              |   11 --
>   net/tipc/zone.h              |    1
>   28 files changed, 84 insertions(+), 462 deletions(-)
> 
> --- a/include/net/tipc/tipc.h	2010-10-13 15:43:50.025580173 -0700
> +++ b/include/net/tipc/tipc.h	2010-10-13 16:14:33.731207018 -0700
> @@ -50,8 +50,6 @@
>    * TIPC operating mode routines
>    */
> 
> -u32 tipc_get_addr(void);
> -
>   #define TIPC_NOT_RUNNING  0
>   #define TIPC_NODE_MODE    1
>   #define TIPC_NET_MODE     2
> @@ -62,8 +60,6 @@ int tipc_attach(unsigned int *userref, t
> 
>   void tipc_detach(unsigned int userref);
> 
> -int tipc_get_mode(void);
> -
>   /*
>    * TIPC port manipulation routines
>    */
> @@ -153,12 +149,6 @@ int tipc_disconnect(u32 portref);
> 
>   int tipc_shutdown(u32 ref);
> 
> -int tipc_isconnected(u32 portref, int *isconnected);
> -
> -int tipc_peer(u32 portref, struct tipc_portid *peer);
> -
> -int tipc_ref_valid(u32 portref);
> -
>   /*
>    * TIPC messaging routines
>    */
> @@ -170,38 +160,12 @@ int tipc_send(u32 portref,
>   	      unsigned int num_sect,
>   	      struct iovec const *msg_sect);
> 
> -int tipc_send_buf(u32 portref,
> -		  struct sk_buff *buf,
> -		  unsigned int dsz);
> -
>   int tipc_send2name(u32 portref,
>   		   struct tipc_name const *name,
>   		   u32 domain,
>   		   unsigned int num_sect,
>   		   struct iovec const *msg_sect);
> 
> -int tipc_send_buf2name(u32 portref,
> -		       struct tipc_name const *name,
> -		       u32 domain,
> -		       struct sk_buff *buf,
> -		       unsigned int dsz);
> -
> -int tipc_forward2name(u32 portref,
> -		      struct tipc_name const *name,
> -		      u32 domain,
> -		      unsigned int section_count,
> -		      struct iovec const *msg_sect,
> -		      struct tipc_portid const *origin,
> -		      unsigned int importance);
> -
> -int tipc_forward_buf2name(u32 portref,
> -			  struct tipc_name const *name,
> -			  u32 domain,
> -			  struct sk_buff *buf,
> -			  unsigned int dsz,
> -			  struct tipc_portid const *orig,
> -			  unsigned int importance);
> -
>   int tipc_send2port(u32 portref,
>   		   struct tipc_portid const *dest,
>   		   unsigned int num_sect,
> @@ -212,46 +176,11 @@ int tipc_send_buf2port(u32 portref,
>   		       struct sk_buff *buf,
>   		       unsigned int dsz);
> 
> -int tipc_forward2port(u32 portref,
> -		      struct tipc_portid const *dest,
> -		      unsigned int num_sect,
> -		      struct iovec const *msg_sect,
> -		      struct tipc_portid const *origin,
> -		      unsigned int importance);
> -
> -int tipc_forward_buf2port(u32 portref,
> -			  struct tipc_portid const *dest,
> -			  struct sk_buff *buf,
> -			  unsigned int dsz,
> -			  struct tipc_portid const *orig,
> -			  unsigned int importance);
> -
>   int tipc_multicast(u32 portref,
>   		   struct tipc_name_seq const *seq,
>   		   u32 domain,	/* currently unused */
>   		   unsigned int section_count,
>   		   struct iovec const *msg);
> -
> -#if 0
> -int tipc_multicast_buf(u32 portref,
> -		       struct tipc_name_seq const *seq,
> -		       u32 domain,
> -		       void *buf,
> -		       unsigned int size);
> -#endif
> -
> -/*
> - * TIPC subscription routines
> - */
> -
> -int tipc_ispublished(struct tipc_name const *name);
> -
> -/*
> - * Get number of available nodes within specified domain (excluding own node)
> - */
> -
> -unsigned int tipc_available_nodes(const u32 domain);
> -
>   #endif
> 
>   #endif
> --- a/net/tipc/bcast.c	2010-10-13 15:34:09.359325773 -0700
> +++ b/net/tipc/bcast.c	2010-10-13 15:58:43.362005611 -0700
> @@ -121,6 +121,9 @@ static DEFINE_SPINLOCK(bc_lock);
> 
>   const char tipc_bclink_name[] = "broadcast-link";
> 
> +static void tipc_nmap_diff(struct tipc_node_map *nm_a,
> +			   struct tipc_node_map *nm_b,
> +			   struct tipc_node_map *nm_diff);
> 
>   static u32 buf_seqno(struct sk_buff *buf)
>   {
> @@ -287,7 +290,7 @@ static void bclink_send_nack(struct tipc
>   	if (!less(n_ptr->bclink.gap_after, n_ptr->bclink.gap_to))
>   		return;
> 
> -	buf = buf_acquire(INT_H_SIZE);
> +	buf = tipc_buf_acquire(INT_H_SIZE);
>   	if (buf) {
>   		msg = buf_msg(buf);
>   		tipc_msg_init(msg, BCAST_PROTOCOL, STATE_MSG,
> @@ -871,8 +874,9 @@ void tipc_nmap_remove(struct tipc_node_m
>    * @nm_diff: output node map A-B (i.e. nodes of A that are not in B)
>    */
> 
> -void tipc_nmap_diff(struct tipc_node_map *nm_a, struct tipc_node_map *nm_b,
> -				  struct tipc_node_map *nm_diff)
> +static void tipc_nmap_diff(struct tipc_node_map *nm_a,
> +			   struct tipc_node_map *nm_b,
> +			   struct tipc_node_map *nm_diff)
>   {
>   	int stop = ARRAY_SIZE(nm_a->map);
>   	int w;
> --- a/net/tipc/bcast.h	2010-10-13 15:34:39.167747046 -0700
> +++ b/net/tipc/bcast.h	2010-10-13 15:42:10.321560582 -0700
> @@ -84,9 +84,6 @@ static inline int tipc_nmap_equal(struct
>   	return !memcmp(nm_a, nm_b, sizeof(*nm_a));
>   }
> 
> -void tipc_nmap_diff(struct tipc_node_map *nm_a, struct tipc_node_map *nm_b,
> -				  struct tipc_node_map *nm_diff);
> -
>   void tipc_port_list_add(struct port_list *pl_ptr, u32 port);
>   void tipc_port_list_free(struct port_list *pl_ptr);
> 
> --- a/net/tipc/cluster.c	2010-10-13 15:44:43.583143953 -0700
> +++ b/net/tipc/cluster.c	2010-10-13 16:03:22.148331782 -0700
> @@ -113,25 +113,6 @@ void tipc_cltr_delete(struct cluster *c_
>   	kfree(c_ptr);
>   }
> 
> -u32 tipc_cltr_next_node(struct cluster *c_ptr, u32 addr)
> -{
> -	struct tipc_node *n_ptr;
> -	u32 n_num = tipc_node(addr) + 1;
> -
> -	if (!c_ptr)
> -		return addr;
> -	for (; n_num<= c_ptr->highest_node; n_num++) {
> -		n_ptr = c_ptr->nodes[n_num];
> -		if (n_ptr&&  tipc_node_has_active_links(n_ptr))
> -			return n_ptr->addr;
> -	}
> -	for (n_num = 1; n_num<  tipc_node(addr); n_num++) {
> -		n_ptr = c_ptr->nodes[n_num];
> -		if (n_ptr&&  tipc_node_has_active_links(n_ptr))
> -			return n_ptr->addr;
> -	}
> -	return 0;
> -}
> 
>   void tipc_cltr_attach_node(struct cluster *c_ptr, struct tipc_node *n_ptr)
>   {
> @@ -232,7 +213,7 @@ struct tipc_node *tipc_cltr_select_node(
>   static struct sk_buff *tipc_cltr_prepare_routing_msg(u32 data_size, u32 dest)
>   {
>   	u32 size = INT_H_SIZE + data_size;
> -	struct sk_buff *buf = buf_acquire(size);
> +	struct sk_buff *buf = tipc_buf_acquire(size);
>   	struct tipc_msg *msg;
> 
>   	if (buf) {
> --- a/net/tipc/config.c	2010-10-13 15:35:16.359281659 -0700
> +++ b/net/tipc/config.c	2010-10-13 16:07:20.471544155 -0700
> @@ -95,7 +95,7 @@ int tipc_cfg_append_tlv(struct sk_buff *
>   	return 1;
>   }
> 
> -struct sk_buff *tipc_cfg_reply_unsigned_type(u16 tlv_type, u32 value)
> +static struct sk_buff *tipc_cfg_reply_unsigned_type(u16 tlv_type, u32 value)
>   {
>   	struct sk_buff *buf;
>   	__be32 value_net;
> @@ -109,6 +109,11 @@ struct sk_buff *tipc_cfg_reply_unsigned_
>   	return buf;
>   }
> 
> +static struct sk_buff *tipc_cfg_reply_unsigned(u32 value)
> +{
> +	return tipc_cfg_reply_unsigned_type(TIPC_TLV_UNSIGNED, value);
> +}
> +
>   struct sk_buff *tipc_cfg_reply_string_type(u16 tlv_type, char *string)
>   {
>   	struct sk_buff *buf;
> --- a/net/tipc/config.h	2010-10-13 15:43:36.031261839 -0700
> +++ b/net/tipc/config.h	2010-10-13 15:49:35.868009966 -0700
> @@ -45,7 +45,6 @@
>   struct sk_buff *tipc_cfg_reply_alloc(int payload_size);
>   int tipc_cfg_append_tlv(struct sk_buff *buf, int tlv_type,
>   			void *tlv_data, int tlv_data_size);
> -struct sk_buff *tipc_cfg_reply_unsigned_type(u16 tlv_type, u32 value);
>   struct sk_buff *tipc_cfg_reply_string_type(u16 tlv_type, char *string);
> 
>   static inline struct sk_buff *tipc_cfg_reply_none(void)
> @@ -53,11 +52,6 @@ static inline struct sk_buff *tipc_cfg_r
>   	return tipc_cfg_reply_alloc(0);
>   }
> 
> -static inline struct sk_buff *tipc_cfg_reply_unsigned(u32 value)
> -{
> -	return tipc_cfg_reply_unsigned_type(TIPC_TLV_UNSIGNED, value);
> -}
> -
>   static inline struct sk_buff *tipc_cfg_reply_error_string(char *string)
>   {
>   	return tipc_cfg_reply_string_type(TIPC_TLV_ERROR_STRING, string);
> --- a/net/tipc/core.c	2010-10-13 15:32:35.750562985 -0700
> +++ b/net/tipc/core.c	2010-10-13 16:00:58.197719377 -0700
> @@ -96,13 +96,13 @@ int tipc_net_id;
>   int tipc_remote_management;
> 
> 
> -int tipc_get_mode(void)
> +static int tipc_get_mode(void)
>   {
>   	return tipc_mode;
>   }
> 
>   /**
> - * buf_acquire - creates a TIPC message buffer
> + * tipc_buf_acquire - creates a TIPC message buffer
>    * @size: message size (including TIPC header)
>    *
>    * Returns a new buffer with data pointers set to the specified size.
> @@ -111,7 +111,7 @@ int tipc_get_mode(void)
>    *       There may also be unrequested tailroom present at the buffer's end.
>    */
> 
> -struct sk_buff *buf_acquire(u32 size)
> +struct sk_buff *tipc_buf_acquire(u32 size)
>   {
>   	struct sk_buff *skb;
>   	unsigned int buf_size = (BUF_HEADROOM + size + 3)&  ~3u;
> @@ -129,7 +129,7 @@ struct sk_buff *buf_acquire(u32 size)
>    * tipc_core_stop_net - shut down TIPC networking sub-systems
>    */
> 
> -void tipc_core_stop_net(void)
> +static void tipc_core_stop_net(void)
>   {
>   	tipc_eth_media_stop();
>   	tipc_net_stop();
> @@ -154,7 +154,7 @@ int tipc_core_start_net(unsigned long ad
>    * tipc_core_stop - switch TIPC from SINGLE NODE to NOT RUNNING mode
>    */
> 
> -void tipc_core_stop(void)
> +static void tipc_core_stop(void)
>   {
>   	if (tipc_mode != TIPC_NODE_MODE)
>   		return;
> @@ -176,7 +176,7 @@ void tipc_core_stop(void)
>    * tipc_core_start - switch TIPC from NOT RUNNING to SINGLE NODE mode
>    */
> 
> -int tipc_core_start(void)
> +static int tipc_core_start(void)
>   {
>   	int res;
> 
> @@ -246,7 +246,6 @@ MODULE_VERSION(TIPC_MOD_VER);
> 
>   EXPORT_SYMBOL(tipc_attach);
>   EXPORT_SYMBOL(tipc_detach);
> -EXPORT_SYMBOL(tipc_get_addr);
>   EXPORT_SYMBOL(tipc_get_mode);
>   EXPORT_SYMBOL(tipc_createport);
>   EXPORT_SYMBOL(tipc_deleteport);
> @@ -262,23 +261,10 @@ EXPORT_SYMBOL(tipc_withdraw);
>   EXPORT_SYMBOL(tipc_connect2port);
>   EXPORT_SYMBOL(tipc_disconnect);
>   EXPORT_SYMBOL(tipc_shutdown);
> -EXPORT_SYMBOL(tipc_isconnected);
> -EXPORT_SYMBOL(tipc_peer);
> -EXPORT_SYMBOL(tipc_ref_valid);
>   EXPORT_SYMBOL(tipc_send);
> -EXPORT_SYMBOL(tipc_send_buf);
>   EXPORT_SYMBOL(tipc_send2name);
> -EXPORT_SYMBOL(tipc_forward2name);
> -EXPORT_SYMBOL(tipc_send_buf2name);
> -EXPORT_SYMBOL(tipc_forward_buf2name);
>   EXPORT_SYMBOL(tipc_send2port);
> -EXPORT_SYMBOL(tipc_forward2port);
> -EXPORT_SYMBOL(tipc_send_buf2port);
> -EXPORT_SYMBOL(tipc_forward_buf2port);
>   EXPORT_SYMBOL(tipc_multicast);
> -/* EXPORT_SYMBOL(tipc_multicast_buf); not available yet */
> -EXPORT_SYMBOL(tipc_ispublished);
> -EXPORT_SYMBOL(tipc_available_nodes);
> 
>   /* TIPC API for external bearers (see tipc_bearer.h) */
> 
> @@ -295,6 +281,4 @@ EXPORT_SYMBOL(tipc_createport_raw);
>   EXPORT_SYMBOL(tipc_reject_msg);
>   EXPORT_SYMBOL(tipc_send_buf_fast);
>   EXPORT_SYMBOL(tipc_acknowledge);
> -EXPORT_SYMBOL(tipc_get_port);
> -EXPORT_SYMBOL(tipc_get_handle);
> 
> --- a/net/tipc/core.h	2010-10-13 15:36:36.237690119 -0700
> +++ b/net/tipc/core.h	2010-10-13 16:07:56.727164658 -0700
> @@ -83,9 +83,7 @@
>    * Note: TIPC_LOG is configured to echo its output to the system console;
>    *       user-defined buffers can be configured to do the same thing.
>    */
> -
>   extern struct print_buf *const TIPC_NULL;
> -extern struct print_buf *const TIPC_CONS;
>   extern struct print_buf *const TIPC_LOG;
> 
>   void tipc_printf(struct print_buf *, const char *fmt, ...);
> @@ -204,10 +202,7 @@ extern atomic_t tipc_user_count;
>    * Routines available to privileged subsystems
>    */
> 
> -extern int  tipc_core_start(void);
> -extern void tipc_core_stop(void);
> -extern int  tipc_core_start_net(unsigned long addr);
> -extern void tipc_core_stop_net(void);
> +extern int tipc_core_start_net(unsigned long);
>   extern int  tipc_handler_start(void);
>   extern void tipc_handler_stop(void);
>   extern int  tipc_netlink_start(void);
> @@ -328,7 +323,7 @@ static inline struct tipc_msg *buf_msg(s
>   	return (struct tipc_msg *)skb->data;
>   }
> 
> -extern struct sk_buff *buf_acquire(u32 size);
> +extern struct sk_buff *tipc_buf_acquire(u32 size);
> 
>   /**
>    * buf_discard - frees a TIPC message buffer
> --- a/net/tipc/dbg.c	2010-10-13 15:35:34.049157629 -0700
> +++ b/net/tipc/dbg.c	2010-10-13 15:58:43.362005611 -0700
> @@ -52,7 +52,7 @@ static struct print_buf null_buf = { NUL
>   struct print_buf *const TIPC_NULL =&null_buf;
> 
>   static struct print_buf cons_buf = { NULL, 0, NULL, 1 };
> -struct print_buf *const TIPC_CONS =&cons_buf;
> +static struct print_buf *const TIPC_CONS =&cons_buf;
> 
>   static struct print_buf log_buf = { NULL, 0, NULL, 1 };
>   struct print_buf *const TIPC_LOG =&log_buf;
> @@ -76,6 +76,10 @@ struct print_buf *const TIPC_LOG =&log_
>   static char print_string[TIPC_PB_MAX_STR];
>   static DEFINE_SPINLOCK(print_lock);
> 
> +static void tipc_printbuf_reset(struct print_buf *pb);
> +static int  tipc_printbuf_empty(struct print_buf *pb);
> +static void tipc_printbuf_move(struct print_buf *pb_to,
> +			       struct print_buf *pb_from);
> 
>   #define FORMAT(PTR,LEN,FMT) \
>   {\
> @@ -116,7 +120,7 @@ void tipc_printbuf_init(struct print_buf
>    * @pb: pointer to print buffer structure
>    */
> 
> -void tipc_printbuf_reset(struct print_buf *pb)
> +static void tipc_printbuf_reset(struct print_buf *pb)
>   {
>   	if (pb->buf) {
>   		pb->crs = pb->buf;
> @@ -132,7 +136,7 @@ void tipc_printbuf_reset(struct print_bu
>    * Returns non-zero if print buffer is empty.
>    */
> 
> -int tipc_printbuf_empty(struct print_buf *pb)
> +static int tipc_printbuf_empty(struct print_buf *pb)
>   {
>   	return !pb->buf || (pb->crs == pb->buf);
>   }
> @@ -181,7 +185,8 @@ int tipc_printbuf_validate(struct print_
>    * Source print buffer becomes empty if a successful move occurs.
>    */
> 
> -void tipc_printbuf_move(struct print_buf *pb_to, struct print_buf *pb_from)
> +static void tipc_printbuf_move(struct print_buf *pb_to,
> +			       struct print_buf *pb_from)
>   {
>   	int len;
> 
> --- a/net/tipc/dbg.h	2010-10-13 15:37:37.134376966 -0700
> +++ b/net/tipc/dbg.h	2010-10-13 15:42:09.489660536 -0700
> @@ -56,10 +56,7 @@ struct print_buf {
>   #define TIPC_PB_MAX_STR 512	/* max printable string (with trailing NUL) */
> 
>   void tipc_printbuf_init(struct print_buf *pb, char *buf, u32 size);
> -void tipc_printbuf_reset(struct print_buf *pb);
> -int  tipc_printbuf_empty(struct print_buf *pb);
>   int  tipc_printbuf_validate(struct print_buf *pb);
> -void tipc_printbuf_move(struct print_buf *pb_to, struct print_buf *pb_from);
> 
>   int tipc_log_resize(int log_size);
> 
> --- a/net/tipc/discover.c	2010-10-13 15:38:16.357666201 -0700
> +++ b/net/tipc/discover.c	2010-10-13 15:52:14.740906596 -0700
> @@ -68,20 +68,6 @@ struct link_req {
>   	unsigned int timer_intv;
>   };
> 
> -
> -/*
> - * disc_lost_link(): A link has lost contact
> - */
> -
> -void tipc_disc_link_event(u32 addr, char *name, int up)
> -{
> -	if (in_own_cluster(addr))
> -		return;
> -	/*
> -	 * Code for inter cluster link setup here
> -	 */
> -}
> -
>   /**
>    * tipc_disc_init_msg - initialize a link setup message
>    * @type: message type (request or response)
> @@ -95,7 +81,7 @@ static struct sk_buff *tipc_disc_init_ms
>   					  u32 dest_domain,
>   					  struct bearer *b_ptr)
>   {
> -	struct sk_buff *buf = buf_acquire(DSC_H_SIZE);
> +	struct sk_buff *buf = tipc_buf_acquire(DSC_H_SIZE);
>   	struct tipc_msg *msg;
> 
>   	if (buf) {
> --- a/net/tipc/discover.h	2010-10-13 15:47:41.609746110 -0700
> +++ b/net/tipc/discover.h	2010-10-13 15:47:50.604664821 -0700
> @@ -50,6 +50,4 @@ void tipc_disc_stop_link_req(struct link
> 
>   void tipc_disc_recv_msg(struct sk_buff *buf, struct bearer *b_ptr);
> 
> -void tipc_disc_link_event(u32 addr, char *name, int up);
> -
>   #endif
> --- a/net/tipc/link.c	2010-10-13 15:38:30.243998362 -0700
> +++ b/net/tipc/link.c	2010-10-13 15:53:47.961684397 -0700
> @@ -112,6 +112,9 @@ static void link_state_event(struct link
>   static void link_reset_statistics(struct link *l_ptr);
>   static void link_print(struct link *l_ptr, struct print_buf *buf,
>   		       const char *str);
> +static void link_start(struct link *l_ptr);
> +static int link_send_long_buf(struct link *l_ptr, struct sk_buff *buf);
> +
> 
>   /*
>    * Debugging code used by link routines only
> @@ -442,7 +445,7 @@ struct link *tipc_link_create(struct bea
> 
>   	k_init_timer(&l_ptr->timer, (Handler)link_timeout, (unsigned long)l_ptr);
>   	list_add_tail(&l_ptr->link_list,&b_ptr->links);
> -	tipc_k_signal((Handler)tipc_link_start, (unsigned long)l_ptr);
> +	tipc_k_signal((Handler)link_start, (unsigned long)l_ptr);
> 
>   	dbg("tipc_link_create(): tolerance = %u,cont intv = %u, abort_limit = %u\n",
>   	    l_ptr->tolerance, l_ptr->continuity_interval, l_ptr->abort_limit);
> @@ -482,9 +485,9 @@ void tipc_link_delete(struct link *l_ptr
>   	kfree(l_ptr);
>   }
> 
> -void tipc_link_start(struct link *l_ptr)
> +static void link_start(struct link *l_ptr)
>   {
> -	dbg("tipc_link_start %x\n", l_ptr);
> +	dbg("link_start %x\n", l_ptr);
>   	link_state_event(l_ptr, STARTING_EVT);
>   }
> 
> @@ -1000,7 +1003,7 @@ int tipc_link_send_buf(struct link *l_pt
>   	/* Fragmentation needed ? */
> 
>   	if (size>  max_packet)
> -		return tipc_link_send_long_buf(l_ptr, buf);
> +		return link_send_long_buf(l_ptr, buf);
> 
>   	/* Packet can be queued or sent: */
> 
> @@ -1036,7 +1039,7 @@ int tipc_link_send_buf(struct link *l_pt
>   		/* Try creating a new bundle */
> 
>   		if (size<= max_packet * 2 / 3) {
> -			struct sk_buff *bundler = buf_acquire(max_packet);
> +			struct sk_buff *bundler = tipc_buf_acquire(max_packet);
>   			struct tipc_msg bundler_hdr;
> 
>   			if (bundler) {
> @@ -1312,7 +1315,7 @@ again:
> 
>   	/* Prepare header of first fragment: */
> 
> -	buf_chain = buf = buf_acquire(max_pkt);
> +	buf_chain = buf = tipc_buf_acquire(max_pkt);
>   	if (!buf)
>   		return -ENOMEM;
>   	buf->next = NULL;
> @@ -1369,7 +1372,7 @@ error:
>   			msg_set_size(&fragm_hdr, fragm_sz + INT_H_SIZE);
>   			msg_set_fragm_no(&fragm_hdr, ++fragm_no);
>   			prev = buf;
> -			buf = buf_acquire(fragm_sz + INT_H_SIZE);
> +			buf = tipc_buf_acquire(fragm_sz + INT_H_SIZE);
>   			if (!buf)
>   				goto error;
> 
> @@ -2145,7 +2148,7 @@ void tipc_link_send_proto_msg(struct lin
>   	if (tipc_bearer_congested(l_ptr->b_ptr, l_ptr)) {
>   		if (!l_ptr->proto_msg_queue) {
>   			l_ptr->proto_msg_queue =
> -				buf_acquire(sizeof(l_ptr->proto_msg));
> +				tipc_buf_acquire(sizeof(l_ptr->proto_msg));
>   		}
>   		buf = l_ptr->proto_msg_queue;
>   		if (!buf)
> @@ -2159,7 +2162,7 @@ void tipc_link_send_proto_msg(struct lin
> 
>   	msg_dbg(msg, ">>");
> 
> -	buf = buf_acquire(msg_size);
> +	buf = tipc_buf_acquire(msg_size);
>   	if (!buf)
>   		return;
> 
> @@ -2318,10 +2321,10 @@ exit:
>    * tipc_link_tunnel(): Send one message via a link belonging to
>    * another bearer. Owner node is locked.
>    */
> -void tipc_link_tunnel(struct link *l_ptr,
> -		      struct tipc_msg *tunnel_hdr,
> -		      struct tipc_msg  *msg,
> -		      u32 selector)
> +static void tipc_link_tunnel(struct link *l_ptr,
> +			     struct tipc_msg *tunnel_hdr,
> +			     struct tipc_msg  *msg,
> +			     u32 selector)
>   {
>   	struct link *tunnel;
>   	struct sk_buff *buf;
> @@ -2334,7 +2337,7 @@ void tipc_link_tunnel(struct link *l_ptr
>   		return;
>   	}
>   	msg_set_size(tunnel_hdr, length + INT_H_SIZE);
> -	buf = buf_acquire(length + INT_H_SIZE);
> +	buf = tipc_buf_acquire(length + INT_H_SIZE);
>   	if (!buf) {
>   		warn("Link changeover error, "
>   		     "unable to send tunnel msg\n");
> @@ -2380,7 +2383,7 @@ void tipc_link_changeover(struct link *l
>   	if (!l_ptr->first_out) {
>   		struct sk_buff *buf;
> 
> -		buf = buf_acquire(INT_H_SIZE);
> +		buf = tipc_buf_acquire(INT_H_SIZE);
>   		if (buf) {
>   			skb_copy_to_linear_data(buf,&tunnel_hdr, INT_H_SIZE);
>   			msg_set_size(&tunnel_hdr, INT_H_SIZE);
> @@ -2441,7 +2444,7 @@ void tipc_link_send_duplicate(struct lin
>   		msg_set_ack(msg, mod(l_ptr->next_in_no - 1));	/* Update */
>   		msg_set_bcast_ack(msg, l_ptr->owner->bclink.last_in);
>   		msg_set_size(&tunnel_hdr, length + INT_H_SIZE);
> -		outbuf = buf_acquire(length + INT_H_SIZE);
> +		outbuf = tipc_buf_acquire(length + INT_H_SIZE);
>   		if (outbuf == NULL) {
>   			warn("Link changeover error, "
>   			     "unable to send duplicate msg\n");
> @@ -2477,7 +2480,7 @@ static struct sk_buff *buf_extract(struc
>   	u32 size = msg_size(msg);
>   	struct sk_buff *eb;
> 
> -	eb = buf_acquire(size);
> +	eb = tipc_buf_acquire(size);
>   	if (eb)
>   		skb_copy_to_linear_data(eb, msg, size);
>   	return eb;
> @@ -2605,11 +2608,11 @@ void tipc_link_recv_bundle(struct sk_buf
> 
> 
>   /*
> - * tipc_link_send_long_buf: Entry for buffers needing fragmentation.
> + * link_send_long_buf: Entry for buffers needing fragmentation.
>    * The buffer is complete, inclusive total message length.
>    * Returns user data length.
>    */
> -int tipc_link_send_long_buf(struct link *l_ptr, struct sk_buff *buf)
> +static int link_send_long_buf(struct link *l_ptr, struct sk_buff *buf)
>   {
>   	struct tipc_msg *inmsg = buf_msg(buf);
>   	struct tipc_msg fragm_hdr;
> @@ -2648,7 +2651,7 @@ int tipc_link_send_long_buf(struct link
>   			fragm_sz = rest;
>   			msg_set_type(&fragm_hdr, LAST_FRAGMENT);
>   		}
> -		fragm = buf_acquire(fragm_sz + INT_H_SIZE);
> +		fragm = tipc_buf_acquire(fragm_sz + INT_H_SIZE);
>   		if (fragm == NULL) {
>   			warn("Link unable to fragment message\n");
>   			dsz = -ENOMEM;
> @@ -2753,7 +2756,7 @@ int tipc_link_recv_fragment(struct sk_bu
>   			buf_discard(fbuf);
>   			return 0;
>   		}
> -		pbuf = buf_acquire(msg_size(imsg));
> +		pbuf = tipc_buf_acquire(msg_size(imsg));
>   		if (pbuf != NULL) {
>   			pbuf->next = *pending;
>   			*pending = pbuf;
> --- a/net/tipc/link.h	2010-10-13 15:51:49.403953468 -0700
> +++ b/net/tipc/link.h	2010-10-13 15:52:06.877852172 -0700
> @@ -225,7 +225,6 @@ void tipc_link_send_duplicate(struct lin
>   void tipc_link_reset_fragments(struct link *l_ptr);
>   int tipc_link_is_up(struct link *l_ptr);
>   int tipc_link_is_active(struct link *l_ptr);
> -void tipc_link_start(struct link *l_ptr);
>   u32 tipc_link_push_packet(struct link *l_ptr);
>   void tipc_link_stop(struct link *l_ptr);
>   struct sk_buff *tipc_link_cmd_config(const void *req_tlv_area, int req_tlv_space, u16 cmd);
> @@ -239,9 +238,6 @@ int tipc_link_send_sections_fast(struct
>   				 struct iovec const *msg_sect,
>   				 const u32 num_sect,
>   				 u32 destnode);
> -int tipc_link_send_long_buf(struct link *l_ptr, struct sk_buff *buf);
> -void tipc_link_tunnel(struct link *l_ptr, struct tipc_msg *tnl_hdr,
> -		      struct tipc_msg *msg, u32 selector);
>   void tipc_link_recv_bundle(struct sk_buff *buf);
>   int  tipc_link_recv_fragment(struct sk_buff **pending,
>   			     struct sk_buff **fb,
> --- a/net/tipc/msg.c	2010-10-13 15:45:42.760031835 -0700
> +++ b/net/tipc/msg.c	2010-10-13 15:45:52.410871897 -0700
> @@ -112,7 +112,7 @@ int tipc_msg_build(struct tipc_msg *hdr,
>   		return dsz;
>   	}
> 
> -	*buf = buf_acquire(sz);
> +	*buf = tipc_buf_acquire(sz);
>   	if (!(*buf))
>   		return -ENOMEM;
>   	skb_copy_to_linear_data(*buf, hdr, hsz);
> --- a/net/tipc/name_distr.c	2010-10-13 15:45:56.098428684 -0700
> +++ b/net/tipc/name_distr.c	2010-10-13 15:46:05.505298048 -0700
> @@ -98,7 +98,7 @@ static void publ_to_item(struct distr_it
> 
>   static struct sk_buff *named_prepare_buf(u32 type, u32 size, u32 dest)
>   {
> -	struct sk_buff *buf = buf_acquire(LONG_H_SIZE + size);
> +	struct sk_buff *buf = tipc_buf_acquire(LONG_H_SIZE + size);
>   	struct tipc_msg *msg;
> 
>   	if (buf != NULL) {
> --- a/net/tipc/node.c	2010-10-13 15:39:25.165401568 -0700
> +++ b/net/tipc/node.c	2010-10-13 16:03:21.564402314 -0700
> @@ -50,7 +50,8 @@ void node_print(struct print_buf *buf, s
>   static void node_lost_contact(struct tipc_node *n_ptr);
>   static void node_established_contact(struct tipc_node *n_ptr);
> 
> -struct tipc_node *tipc_nodes = NULL;	/* sorted list of nodes within cluster */
> +/* sorted list of nodes within cluster */
> +static struct tipc_node *tipc_nodes = NULL;
> 
>   static DEFINE_SPINLOCK(node_create_lock);
> 
> @@ -587,22 +588,6 @@ void tipc_node_remove_router(struct tipc
>   		node_lost_contact(n_ptr);
>   }
> 
> -u32 tipc_available_nodes(const u32 domain)
> -{
> -	struct tipc_node *n_ptr;
> -	u32 cnt = 0;
> -
> -	read_lock_bh(&tipc_net_lock);
> -	for (n_ptr = tipc_nodes; n_ptr; n_ptr = n_ptr->next) {
> -		if (!tipc_in_scope(domain, n_ptr->addr))
> -			continue;
> -		if (tipc_node_is_up(n_ptr))
> -			cnt++;
> -	}
> -	read_unlock_bh(&tipc_net_lock);
> -	return cnt;
> -}
> -
>   struct sk_buff *tipc_node_get_nodes(const void *req_tlv_area, int req_tlv_space)
>   {
>   	u32 domain;
> --- a/net/tipc/node.h	2010-10-13 15:54:01.616035253 -0700
> +++ b/net/tipc/node.h	2010-10-13 15:54:11.830801530 -0700
> @@ -96,7 +96,6 @@ struct tipc_node {
>   	} bclink;
>   };
> 
> -extern struct tipc_node *tipc_nodes;
>   extern u32 tipc_own_tag;
> 
>   struct tipc_node *tipc_node_create(u32 addr);
> --- a/net/tipc/port.c	2010-10-13 15:40:52.362926772 -0700
> +++ b/net/tipc/port.c	2010-10-13 16:16:41.435779874 -0700
> @@ -293,34 +293,6 @@ int tipc_deleteport(u32 ref)
>   	return 0;
>   }
> 
> -/**
> - * tipc_get_port() - return port associated with 'ref'
> - *
> - * Note: Port is not locked.
> - */
> -
> -struct tipc_port *tipc_get_port(const u32 ref)
> -{
> -	return (struct tipc_port *)tipc_ref_deref(ref);
> -}
> -
> -/**
> - * tipc_get_handle - return user handle associated to port 'ref'
> - */
> -
> -void *tipc_get_handle(const u32 ref)
> -{
> -	struct port *p_ptr;
> -	void * handle;
> -
> -	p_ptr = tipc_port_lock(ref);
> -	if (!p_ptr)
> -		return NULL;
> -	handle = p_ptr->publ.usr_handle;
> -	tipc_port_unlock(p_ptr);
> -	return handle;
> -}
> -
>   static int port_unreliable(struct port *p_ptr)
>   {
>   	return msg_src_droppable(&p_ptr->publ.phdr);
> @@ -392,7 +364,7 @@ static struct sk_buff *port_build_proto_
>   	struct sk_buff *buf;
>   	struct tipc_msg *msg;
> 
> -	buf = buf_acquire(LONG_H_SIZE);
> +	buf = tipc_buf_acquire(LONG_H_SIZE);
>   	if (buf) {
>   		msg = buf_msg(buf);
>   		tipc_msg_init(msg, usr, type, LONG_H_SIZE, destnode);
> @@ -433,7 +405,7 @@ int tipc_reject_msg(struct sk_buff *buf,
>   		hdr_sz = MCAST_H_SIZE;
>   	else
>   		hdr_sz = LONG_H_SIZE;
> -	rbuf = buf_acquire(data_sz + hdr_sz);
> +	rbuf = tipc_buf_acquire(data_sz + hdr_sz);
>   	if (rbuf == NULL) {
>   		buf_discard(buf);
>   		return data_sz;
> @@ -1242,50 +1214,13 @@ int tipc_shutdown(u32 ref)
>   	return tipc_disconnect(ref);
>   }
> 
> -int tipc_isconnected(u32 ref, int *isconnected)
> -{
> -	struct port *p_ptr;
> -
> -	p_ptr = tipc_port_lock(ref);
> -	if (!p_ptr)
> -		return -EINVAL;
> -	*isconnected = p_ptr->publ.connected;
> -	tipc_port_unlock(p_ptr);
> -	return 0;
> -}
> -
> -int tipc_peer(u32 ref, struct tipc_portid *peer)
> -{
> -	struct port *p_ptr;
> -	int res;
> -
> -	p_ptr = tipc_port_lock(ref);
> -	if (!p_ptr)
> -		return -EINVAL;
> -	if (p_ptr->publ.connected) {
> -		peer->ref = port_peerport(p_ptr);
> -		peer->node = port_peernode(p_ptr);
> -		res = 0;
> -	} else
> -		res = -ENOTCONN;
> -	tipc_port_unlock(p_ptr);
> -	return res;
> -}
> -
> -int tipc_ref_valid(u32 ref)
> -{
> -	/* Works irrespective of type */
> -	return !!tipc_ref_deref(ref);
> -}
> -
> -
>   /*
>    *  tipc_port_recv_sections(): Concatenate and deliver sectioned
>    *                        message for this node.
>    */
> 
> -int tipc_port_recv_sections(struct port *sender, unsigned int num_sect,
> -		       struct iovec const *msg_sect)
> +static int tipc_port_recv_sections(struct port *sender, unsigned int num_sect,
> +				   struct iovec const *msg_sect)
>   {
>   	struct sk_buff *buf;
>   	int res;
> @@ -1336,65 +1271,16 @@ int tipc_send(u32 ref, unsigned int num_
>   }
> 
>   /**
> - * tipc_send_buf - send message buffer on connection
> - */
> -
> -int tipc_send_buf(u32 ref, struct sk_buff *buf, unsigned int dsz)
> -{
> -	struct port *p_ptr;
> -	struct tipc_msg *msg;
> -	u32 destnode;
> -	u32 hsz;
> -	u32 sz;
> -	u32 res;
> -
> -	p_ptr = tipc_port_deref(ref);
> -	if (!p_ptr || !p_ptr->publ.connected)
> -		return -EINVAL;
> -
> -	msg =&p_ptr->publ.phdr;
> -	hsz = msg_hdr_sz(msg);
> -	sz = hsz + dsz;
> -	msg_set_size(msg, sz);
> -	if (skb_cow(buf, hsz))
> -		return -ENOMEM;
> -
> -	skb_push(buf, hsz);
> -	skb_copy_to_linear_data(buf, msg, hsz);
> -	destnode = msg_destnode(msg);
> -	p_ptr->publ.congested = 1;
> -	if (!tipc_port_congested(p_ptr)) {
> -		if (likely(destnode != tipc_own_addr))
> -			res = tipc_send_buf_fast(buf, destnode);
> -		else {
> -			tipc_port_recv_msg(buf);
> -			res = sz;
> -		}
> -		if (likely(res != -ELINKCONG)) {
> -			port_incr_out_seqno(p_ptr);
> -			p_ptr->sent++;
> -			p_ptr->publ.congested = 0;
> -			return res;
> -		}
> -	}
> -	if (port_unreliable(p_ptr)) {
> -		p_ptr->publ.congested = 0;
> -		return dsz;
> -	}
> -	return -ELINKCONG;
> -}
> -
> -/**
>    * tipc_forward2name - forward message sections to port name
>    */
> 
> -int tipc_forward2name(u32 ref,
> -		      struct tipc_name const *name,
> -		      u32 domain,
> -		      u32 num_sect,
> -		      struct iovec const *msg_sect,
> -		      struct tipc_portid const *orig,
> -		      unsigned int importance)
> +static int tipc_forward2name(u32 ref,
> +			     struct tipc_name const *name,
> +			     u32 domain,
> +			     u32 num_sect,
> +			     struct iovec const *msg_sect,
> +			     struct tipc_portid const *orig,
> +			     unsigned int importance)
>   {
>   	struct port *p_ptr;
>   	struct tipc_msg *msg;
> @@ -1457,89 +1343,15 @@ int tipc_send2name(u32 ref,
>   }
> 
>   /**
> - * tipc_forward_buf2name - forward message buffer to port name
> - */
> -
> -int tipc_forward_buf2name(u32 ref,
> -			  struct tipc_name const *name,
> -			  u32 domain,
> -			  struct sk_buff *buf,
> -			  unsigned int dsz,
> -			  struct tipc_portid const *orig,
> -			  unsigned int importance)
> -{
> -	struct port *p_ptr;
> -	struct tipc_msg *msg;
> -	u32 destnode = domain;
> -	u32 destport;
> -	int res;
> -
> -	p_ptr = (struct port *)tipc_ref_deref(ref);
> -	if (!p_ptr || p_ptr->publ.connected)
> -		return -EINVAL;
> -
> -	msg =&p_ptr->publ.phdr;
> -	if (importance<= TIPC_CRITICAL_IMPORTANCE)
> -		msg_set_importance(msg, importance);
> -	msg_set_type(msg, TIPC_NAMED_MSG);
> -	msg_set_orignode(msg, orig->node);
> -	msg_set_origport(msg, orig->ref);
> -	msg_set_nametype(msg, name->type);
> -	msg_set_nameinst(msg, name->instance);
> -	msg_set_lookup_scope(msg, tipc_addr_scope(domain));
> -	msg_set_hdr_sz(msg, LONG_H_SIZE);
> -	msg_set_size(msg, LONG_H_SIZE + dsz);
> -	destport = tipc_nametbl_translate(name->type, name->instance,&destnode);
> -	msg_set_destnode(msg, destnode);
> -	msg_set_destport(msg, destport);
> -	msg_dbg(msg, "forw2name ==>  ");
> -	if (skb_cow(buf, LONG_H_SIZE))
> -		return -ENOMEM;
> -	skb_push(buf, LONG_H_SIZE);
> -	skb_copy_to_linear_data(buf, msg, LONG_H_SIZE);
> -	msg_dbg(buf_msg(buf),"PREP:");
> -	if (likely(destport)) {
> -		p_ptr->sent++;
> -		if (destnode == tipc_own_addr)
> -			return tipc_port_recv_msg(buf);
> -		res = tipc_send_buf_fast(buf, destnode);
> -		if (likely(res != -ELINKCONG))
> -			return res;
> -		if (port_unreliable(p_ptr))
> -			return dsz;
> -		return -ELINKCONG;
> -	}
> -	return tipc_reject_msg(buf, TIPC_ERR_NO_NAME);
> -}
> -
> -/**
> - * tipc_send_buf2name - send message buffer to port name
> - */
> -
> -int tipc_send_buf2name(u32 ref,
> -		       struct tipc_name const *dest,
> -		       u32 domain,
> -		       struct sk_buff *buf,
> -		       unsigned int dsz)
> -{
> -	struct tipc_portid orig;
> -
> -	orig.ref = ref;
> -	orig.node = tipc_own_addr;
> -	return tipc_forward_buf2name(ref, dest, domain, buf, dsz,&orig,
> -				     TIPC_PORT_IMPORTANCE);
> -}
> -
> -/**
>    * tipc_forward2port - forward message sections to port identity
>    */
> 
> -int tipc_forward2port(u32 ref,
> -		      struct tipc_portid const *dest,
> -		      unsigned int num_sect,
> -		      struct iovec const *msg_sect,
> -		      struct tipc_portid const *orig,
> -		      unsigned int importance)
> +static int tipc_forward2port(u32 ref,
> +			     struct tipc_portid const *dest,
> +			     unsigned int num_sect,
> +			     struct iovec const *msg_sect,
> +			     struct tipc_portid const *orig,
> +			     unsigned int importance)
>   {
>   	struct port *p_ptr;
>   	struct tipc_msg *msg;
> @@ -1591,12 +1403,12 @@ int tipc_send2port(u32 ref,
>   /**
>    * tipc_forward_buf2port - forward message buffer to port identity
>    */
> -int tipc_forward_buf2port(u32 ref,
> -			  struct tipc_portid const *dest,
> -			  struct sk_buff *buf,
> -			  unsigned int dsz,
> -			  struct tipc_portid const *orig,
> -			  unsigned int importance)
> +static int tipc_forward_buf2port(u32 ref,
> +				 struct tipc_portid const *dest,
> +				 struct sk_buff *buf,
> +				 unsigned int dsz,
> +				 struct tipc_portid const *orig,
> +				 unsigned int importance)
>   {
>   	struct port *p_ptr;
>   	struct tipc_msg *msg;
> --- a/net/tipc/port.h	2010-10-13 15:48:09.502393058 -0700
> +++ b/net/tipc/port.h	2010-10-13 16:14:00.819182858 -0700
> @@ -109,8 +109,6 @@ struct port {
>   extern spinlock_t tipc_port_list_lock;
>   struct port_list;
> 
> -int tipc_port_recv_sections(struct port *p_ptr, u32 num_sect,
> -			    struct iovec const *msg_sect);
>   int tipc_port_reject_sections(struct port *p_ptr, struct tipc_msg *hdr,
>   			      struct iovec const *msg_sect, u32 num_sect,
>   			      int err);
> --- a/net/tipc/ref.c	2010-10-13 15:41:13.468391212 -0700
> +++ b/net/tipc/ref.c	2010-10-13 16:03:20.908481542 -0700
> @@ -282,23 +282,6 @@ void *tipc_ref_lock(u32 ref)
>   	return NULL;
>   }
> 
> -/**
> - * tipc_ref_unlock - unlock referenced object
> - */
> -
> -void tipc_ref_unlock(u32 ref)
> -{
> -	if (likely(tipc_ref_table.entries)) {
> -		struct reference *entry;
> -
> -		entry =&tipc_ref_table.entries[ref&
> -						tipc_ref_table.index_mask];
> -		if (likely((entry->ref == ref)&&  (entry->object)))
> -			spin_unlock_bh(&entry->lock);
> -		else
> -			err("Attempt to unlock non-existent reference\n");
> -	}
> -}
> 
>   /**
>    * tipc_ref_deref - return pointer referenced object (without locking it)
> --- a/net/tipc/ref.h	2010-10-13 15:47:56.028012866 -0700
> +++ b/net/tipc/ref.h	2010-10-13 15:48:04.642977233 -0700
> @@ -44,7 +44,6 @@ u32 tipc_ref_acquire(void *object, spinl
>   void tipc_ref_discard(u32 ref);
> 
>   void *tipc_ref_lock(u32 ref);
> -void tipc_ref_unlock(u32 ref);
>   void *tipc_ref_deref(u32 ref);
> 
>   #endif
> --- a/net/tipc/zone.c	2010-10-13 15:41:49.324083397 -0700
> +++ b/net/tipc/zone.c	2010-10-13 15:54:26.329050453 -0700
> @@ -160,14 +160,3 @@ u32 tipc_zone_select_router(struct _zone
>   	}
>   	return 0;
>   }
> -
> -
> -u32 tipc_zone_next_node(u32 addr)
> -{
> -	struct cluster *c_ptr = tipc_cltr_find(addr);
> -
> -	if (c_ptr)
> -		return tipc_cltr_next_node(c_ptr, addr);
> -	return 0;
> -}
> -
> --- a/net/tipc/zone.h	2010-10-13 15:48:24.460594837 -0700
> +++ b/net/tipc/zone.h	2010-10-13 15:48:33.715482229 -0700
> @@ -61,7 +61,6 @@ void tipc_zone_send_external_routes(stru
>   struct _zone *tipc_zone_create(u32 addr);
>   void tipc_zone_delete(struct _zone *z_ptr);
>   void tipc_zone_attach_cluster(struct _zone *z_ptr, struct cluster *c_ptr);
> -u32 tipc_zone_next_node(u32 addr);
> 
>   static inline struct _zone *tipc_zone_find(u32 addr)
>   {
> --- a/net/tipc/addr.c	2010-10-13 15:33:41.742641197 -0700
> +++ b/net/tipc/addr.c	2010-10-13 16:02:50.348172914 -0700
> @@ -41,11 +41,6 @@
>   #include "cluster.h"
>   #include "net.h"
> 
> -u32 tipc_get_addr(void)
> -{
> -	return tipc_own_addr;
> -}
> -
>   /**
>    * tipc_addr_domain_valid - validates a network domain address
>    *
> --- a/net/tipc/cluster.h	2010-10-13 16:01:44.276153671 -0700
> +++ b/net/tipc/cluster.h	2010-10-13 16:01:56.218711152 -0700
> @@ -75,7 +75,7 @@ void tipc_cltr_attach_node(struct cluste
>   void tipc_cltr_send_slave_routes(struct cluster *c_ptr, u32 dest);
>   void tipc_cltr_broadcast(struct sk_buff *buf);
>   int tipc_cltr_init(void);
> -u32 tipc_cltr_next_node(struct cluster *c_ptr, u32 addr);
> +
>   void tipc_cltr_bcast_new_route(struct cluster *c_ptr, u32 dest, u32 lo, u32 hi);
>   void tipc_cltr_send_local_routes(struct cluster *c_ptr, u32 dest);
>   void tipc_cltr_bcast_lost_route(struct cluster *c_ptr, u32 dest, u32 lo, u32 hi);
> --- a/net/tipc/subscr.c	2010-10-13 16:01:08.020532905 -0700
> +++ b/net/tipc/subscr.c	2010-10-13 16:03:03.330604772 -0700
> @@ -598,12 +598,3 @@ void tipc_subscr_stop(void)
>   		topsrv.user_ref = 0;
>   	}
>   }
> -
> -
> -int tipc_ispublished(struct tipc_name const *name)
> -{
> -	u32 domain = 0;
> -
> -	return tipc_nametbl_translate(name->type, name->instance,&domain) != 0;
> -}
> -
> --- a/include/net/tipc/tipc_port.h	2010-10-13 16:05:35.080274751 -0700
> +++ b/include/net/tipc/tipc_port.h	2010-10-13 16:06:14.247543618 -0700
> @@ -88,8 +88,6 @@ void tipc_acknowledge(u32 port_ref,u32 a
> 
>   struct tipc_port *tipc_get_port(const u32 ref);
> 
> -void *tipc_get_handle(const u32 ref);
> -
>   /*
>    * The following routines require that the port be locked on entry
>    */
> 
> 

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
stephen hemminger - Oct. 14, 2010, 12:32 a.m.
On Wed, 13 Oct 2010 20:23:24 -0400
Paul Gortmaker <paul.gortmaker@windriver.com> wrote:

> On 10-10-13 07:20 PM, Stephen Hemminger wrote:
> > Do some cleanups of TIPC based on make namespacecheck
> >    1. Don't export unused symbols
> >    2. Eliminate dead code
> >    3. Make functions and variables local
> >    4. Rename buf_acquire to tipc_buf_acquire since it is used in several files
> > 
> > Compile tested only.
> > This make break out of tree kernel modules that depend on TIPC routines.
> 
> Hi Stephen,
> 
> When I first started looking at TIPC code, I too came to the
> same conclusion as you did and was about to do #1,2,3 -- but
> then I was told that the exported symbols were part of an API
> and might be in use by folks here and there as per this thread:
> 
> http://www.mail-archive.com/netdev@vger.kernel.org/msg30208.html
> 
> I'm generally the 1st one to agree that the kernel should not
> be libc, and that exporting all sorts of functions without a
> clearly defined use case so that one can insert all sorts of
> brewed up modules is *not* the way to go -- and was asking if
> we could phase this API out if nobody was using it:
> 
> http://sourceforge.net/mailarchive/message.php?msg_name=29C1DC0826876849BDD9F1C67ABA294308C1FEB6%40ala-mail09.corp.ad.wrs.com
> 
> ...but apparently there are a couple of API users out there.
> 
> I'd like to better understand their use case(es) and what parts
> of this API they use, but I haven't got that far yet, since
> there are a bunch of other TIPC bugfixes and changes queued on
> sourceforge which need cleaning and integration into mainline.
> 
> I was thinking one idea would be to wrap them in a TIPC specific
> Kconfig (off by default) so that it would at least highlight
> this atypical use case for EXPORT_SYMBOL -- which might help
> bring these users to the surface so we can learn about their
> use cases.  Having it as a Kconfig option would also help in
> giving us something to point our finger at for the feature
> removal file, if indeed we could find a better way for these
> users to get done whatever it is that they are doing.
> 
> In any event, I think your #2 (dead code) and #3 (add static)
> are items considered dead or candidates for static because
> of #1, i.e. tossing the API exports out.
> 
> I've already tossed out the explicitly dead code in #if 0
> blocks -- Dave just merged that today.   But the #4 from your
> list seems to make sense, and we can do that as a standalone
> item of course.
> 
> Thanks,
> Paul.
> 
> > 
> > Signed-off-by: Stephen Hemminger<shemminger@vyatta.com>
> > 

The kernel is does not have or support API's just for out
of tree code. Any code that needs the API should be submitted for
inclusion or risks getting broken at any time!
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Neil Horman - Oct. 14, 2010, 1:29 a.m.
On Wed, Oct 13, 2010 at 08:23:24PM -0400, Paul Gortmaker wrote:
> On 10-10-13 07:20 PM, Stephen Hemminger wrote:
> > Do some cleanups of TIPC based on make namespacecheck
> >    1. Don't export unused symbols
> >    2. Eliminate dead code
> >    3. Make functions and variables local
> >    4. Rename buf_acquire to tipc_buf_acquire since it is used in several files
> > 
> > Compile tested only.
> > This make break out of tree kernel modules that depend on TIPC routines.
> 
> Hi Stephen,
> 
> When I first started looking at TIPC code, I too came to the
> same conclusion as you did and was about to do #1,2,3 -- but
> then I was told that the exported symbols were part of an API
> and might be in use by folks here and there as per this thread:
> 
> http://www.mail-archive.com/netdev@vger.kernel.org/msg30208.html
> 
I think its telling the the argument in the above thread for keeping the API
were that users of it were out there and 'likely to contribute' in the future.
That thread was 3 years ago.  They might be using the API from outside the
kernel tree, but they're not planning on contributing.  As Christoph noted,
they're freeloaders.  The community really doesn't need or want to maintain an
API like that.  If these users are your customers, and removing the API is
unacceptable, perhaps its time to move the entire TIPC module out of tree.

Neil

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jon Paul Maloy - Oct. 14, 2010, 1:31 p.m.
> Do some cleanups of TIPC based on make namespacecheck
>   1. Don't export unused symbols
>   2. Eliminate dead code
>   3. Make functions and variables local
>   4. Rename buf_acquire to tipc_buf_acquire since it is used 
> in several files
> 
> Compile tested only.
> This make break out of tree kernel modules that depend on 
> TIPC routines.
> 
> Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Acked-by: Jon Maloy <jon.maloy@ericsson.com>--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Paul Gortmaker - Oct. 14, 2010, 5:53 p.m.
On 10-10-13 09:29 PM, Neil Horman wrote:
> On Wed, Oct 13, 2010 at 08:23:24PM -0400, Paul Gortmaker wrote:
>> On 10-10-13 07:20 PM, Stephen Hemminger wrote:
>>> Do some cleanups of TIPC based on make namespacecheck
>>>     1. Don't export unused symbols
>>>     2. Eliminate dead code
>>>     3. Make functions and variables local
>>>     4. Rename buf_acquire to tipc_buf_acquire since it is used in several files
>>>
>>> Compile tested only.
>>> This make break out of tree kernel modules that depend on TIPC routines.
>>
>> Hi Stephen,
>>
>> When I first started looking at TIPC code, I too came to the
>> same conclusion as you did and was about to do #1,2,3 -- but
>> then I was told that the exported symbols were part of an API
>> and might be in use by folks here and there as per this thread:
>>
>> http://www.mail-archive.com/netdev@vger.kernel.org/msg30208.html
>>
> I think its telling the the argument in the above thread for keeping the API
> were that users of it were out there and 'likely to contribute' in the future.
> That thread was 3 years ago.  They might be using the API from outside the
> kernel tree, but they're not planning on contributing.  As Christoph noted,
> they're freeloaders.  The community really doesn't need or want to maintain an
> API like that.  If these users are your customers, and removing the API is
> unacceptable, perhaps its time to move the entire TIPC module out of tree.

As I'd said -- I don't know what the use cases of these API users are,
and so as far as I know they aren't customers either.  For what it is
worth, know that I personally wouldn't try and use a business case to
justify a technically wrong decision here on netdev anyway.

I was just describing the history of the situation, and suggesting
one possible slower approach of phasing it out as a courtesy to those
users, in the same way that the kernel community has extended that
same courtesy with other things in feature-removal.txt

In the end, since Jon is OK with the removal, and is in the process of
communicating this to the API users he is aware of, I sure don't have
any reason to try and save the API.  If folks are good with having it
just go away overnight, then great -- I'll be just as happy to see it
disappear as you and Stephen.  So, a long winded way of saying...

Acked-by: Paul Gortmaker <paul.gortmaker@windriver.com>

Paul.

> 
> Neil
> 

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
stephen hemminger - Oct. 14, 2010, 6:33 p.m.
On Thu, 14 Oct 2010 13:53:21 -0400
Paul Gortmaker <paul.gortmaker@windriver.com> wrote:

> On 10-10-13 09:29 PM, Neil Horman wrote:
> > On Wed, Oct 13, 2010 at 08:23:24PM -0400, Paul Gortmaker wrote:
> >> On 10-10-13 07:20 PM, Stephen Hemminger wrote:
> >>> Do some cleanups of TIPC based on make namespacecheck
> >>>     1. Don't export unused symbols
> >>>     2. Eliminate dead code
> >>>     3. Make functions and variables local
> >>>     4. Rename buf_acquire to tipc_buf_acquire since it is used in several files
> >>>
> >>> Compile tested only.
> >>> This make break out of tree kernel modules that depend on TIPC routines.
> >>
> >> Hi Stephen,
> >>
> >> When I first started looking at TIPC code, I too came to the
> >> same conclusion as you did and was about to do #1,2,3 -- but
> >> then I was told that the exported symbols were part of an API
> >> and might be in use by folks here and there as per this thread:
> >>
> >> http://www.mail-archive.com/netdev@vger.kernel.org/msg30208.html
> >>
> > I think its telling the the argument in the above thread for keeping the API
> > were that users of it were out there and 'likely to contribute' in the future.
> > That thread was 3 years ago.  They might be using the API from outside the
> > kernel tree, but they're not planning on contributing.  As Christoph noted,
> > they're freeloaders.  The community really doesn't need or want to maintain an
> > API like that.  If these users are your customers, and removing the API is
> > unacceptable, perhaps its time to move the entire TIPC module out of tree.
> 
> As I'd said -- I don't know what the use cases of these API users are,
> and so as far as I know they aren't customers either.  For what it is
> worth, know that I personally wouldn't try and use a business case to
> justify a technically wrong decision here on netdev anyway.
> 
> I was just describing the history of the situation, and suggesting
> one possible slower approach of phasing it out as a courtesy to those
> users, in the same way that the kernel community has extended that
> same courtesy with other things in feature-removal.txt
> 
> In the end, since Jon is OK with the removal, and is in the process of
> communicating this to the API users he is aware of, I sure don't have
> any reason to try and save the API.  If folks are good with having it
> just go away overnight, then great -- I'll be just as happy to see it
> disappear as you and Stephen.  So, a long winded way of saying...
> 
> Acked-by: Paul Gortmaker <paul.gortmaker@windriver.com>

How about putting an entry in feature-removal.txt with a short (6 month)
window?
Jon Paul Maloy - Oct. 14, 2010, 7:49 p.m.
<...> 
> > justify a technically wrong decision here on netdev anyway.
> > 
> > I was just describing the history of the situation, and 
> suggesting one 
> > possible slower approach of phasing it out as a courtesy to those 
> > users, in the same way that the kernel community has extended that 
> > same courtesy with other things in feature-removal.txt
> > 
> > In the end, since Jon is OK with the removal, and is in the 
> process of 
> > communicating this to the API users he is aware of, I sure 
> don't have 
> > any reason to try and save the API.  If folks are good with 
> having it 
> > just go away overnight, then great -- I'll be just as happy 
> to see it 
> > disappear as you and Stephen.  So, a long winded way of saying...
> > 
> > Acked-by: Paul Gortmaker <paul.gortmaker@windriver.com>
> 
> How about putting an entry in feature-removal.txt with a 
> short (6 month) window?

I think that is a very good idea. That would give the users a reasonable time
to find other solutions.

> 
> 
> --
> --
> To unsubscribe from this list: send the line "unsubscribe 
> netdev" in the body of a message to majordomo@vger.kernel.org 
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> --
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller - Oct. 16, 2010, 6:56 p.m.
From: Stephen Hemminger <shemminger@vyatta.com>
Date: Wed, 13 Oct 2010 16:20:35 -0700

> Do some cleanups of TIPC based on make namespacecheck
>   1. Don't export unused symbols
>   2. Eliminate dead code
>   3. Make functions and variables local
>   4. Rename buf_acquire to tipc_buf_acquire since it is used in several files
> 
> Compile tested only.
> This make break out of tree kernel modules that depend on TIPC routines.
> 
> Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>

I really think we can and should do this now, so I've
applied this to net-next-2.6

Thanks everyone.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

--- a/include/net/tipc/tipc.h	2010-10-13 15:43:50.025580173 -0700
+++ b/include/net/tipc/tipc.h	2010-10-13 16:14:33.731207018 -0700
@@ -50,8 +50,6 @@ 
  * TIPC operating mode routines
  */
 
-u32 tipc_get_addr(void);
-
 #define TIPC_NOT_RUNNING  0
 #define TIPC_NODE_MODE    1
 #define TIPC_NET_MODE     2
@@ -62,8 +60,6 @@  int tipc_attach(unsigned int *userref, t
 
 void tipc_detach(unsigned int userref);
 
-int tipc_get_mode(void);
-
 /*
  * TIPC port manipulation routines
  */
@@ -153,12 +149,6 @@  int tipc_disconnect(u32 portref);
 
 int tipc_shutdown(u32 ref);
 
-int tipc_isconnected(u32 portref, int *isconnected);
-
-int tipc_peer(u32 portref, struct tipc_portid *peer);
-
-int tipc_ref_valid(u32 portref); 
-
 /*
  * TIPC messaging routines
  */
@@ -170,38 +160,12 @@  int tipc_send(u32 portref,
 	      unsigned int num_sect,
 	      struct iovec const *msg_sect);
 
-int tipc_send_buf(u32 portref,
-		  struct sk_buff *buf,
-		  unsigned int dsz);
-
 int tipc_send2name(u32 portref, 
 		   struct tipc_name const *name, 
 		   u32 domain,
 		   unsigned int num_sect,
 		   struct iovec const *msg_sect);
 
-int tipc_send_buf2name(u32 portref,
-		       struct tipc_name const *name,
-		       u32 domain,
-		       struct sk_buff *buf,
-		       unsigned int dsz);
-
-int tipc_forward2name(u32 portref, 
-		      struct tipc_name const *name, 
-		      u32 domain,
-		      unsigned int section_count,
-		      struct iovec const *msg_sect,
-		      struct tipc_portid const *origin,
-		      unsigned int importance);
-
-int tipc_forward_buf2name(u32 portref,
-			  struct tipc_name const *name,
-			  u32 domain,
-			  struct sk_buff *buf,
-			  unsigned int dsz,
-			  struct tipc_portid const *orig,
-			  unsigned int importance);
-
 int tipc_send2port(u32 portref,
 		   struct tipc_portid const *dest,
 		   unsigned int num_sect,
@@ -212,46 +176,11 @@  int tipc_send_buf2port(u32 portref,
 		       struct sk_buff *buf,
 		       unsigned int dsz);
 
-int tipc_forward2port(u32 portref,
-		      struct tipc_portid const *dest,
-		      unsigned int num_sect,
-		      struct iovec const *msg_sect,
-		      struct tipc_portid const *origin,
-		      unsigned int importance);
-
-int tipc_forward_buf2port(u32 portref,
-			  struct tipc_portid const *dest,
-			  struct sk_buff *buf,
-			  unsigned int dsz,
-			  struct tipc_portid const *orig,
-			  unsigned int importance);
-
 int tipc_multicast(u32 portref, 
 		   struct tipc_name_seq const *seq, 
 		   u32 domain,	/* currently unused */
 		   unsigned int section_count,
 		   struct iovec const *msg);
-
-#if 0
-int tipc_multicast_buf(u32 portref, 
-		       struct tipc_name_seq const *seq, 
-		       u32 domain,
-		       void *buf,
-		       unsigned int size);
-#endif
-
-/*
- * TIPC subscription routines
- */
-
-int tipc_ispublished(struct tipc_name const *name);
-
-/*
- * Get number of available nodes within specified domain (excluding own node)
- */
-
-unsigned int tipc_available_nodes(const u32 domain);
-
 #endif
 
 #endif
--- a/net/tipc/bcast.c	2010-10-13 15:34:09.359325773 -0700
+++ b/net/tipc/bcast.c	2010-10-13 15:58:43.362005611 -0700
@@ -121,6 +121,9 @@  static DEFINE_SPINLOCK(bc_lock);
 
 const char tipc_bclink_name[] = "broadcast-link";
 
+static void tipc_nmap_diff(struct tipc_node_map *nm_a,
+			   struct tipc_node_map *nm_b,
+			   struct tipc_node_map *nm_diff);
 
 static u32 buf_seqno(struct sk_buff *buf)
 {
@@ -287,7 +290,7 @@  static void bclink_send_nack(struct tipc
 	if (!less(n_ptr->bclink.gap_after, n_ptr->bclink.gap_to))
 		return;
 
-	buf = buf_acquire(INT_H_SIZE);
+	buf = tipc_buf_acquire(INT_H_SIZE);
 	if (buf) {
 		msg = buf_msg(buf);
 		tipc_msg_init(msg, BCAST_PROTOCOL, STATE_MSG,
@@ -871,8 +874,9 @@  void tipc_nmap_remove(struct tipc_node_m
  * @nm_diff: output node map A-B (i.e. nodes of A that are not in B)
  */
 
-void tipc_nmap_diff(struct tipc_node_map *nm_a, struct tipc_node_map *nm_b,
-				  struct tipc_node_map *nm_diff)
+static void tipc_nmap_diff(struct tipc_node_map *nm_a,
+			   struct tipc_node_map *nm_b,
+			   struct tipc_node_map *nm_diff)
 {
 	int stop = ARRAY_SIZE(nm_a->map);
 	int w;
--- a/net/tipc/bcast.h	2010-10-13 15:34:39.167747046 -0700
+++ b/net/tipc/bcast.h	2010-10-13 15:42:10.321560582 -0700
@@ -84,9 +84,6 @@  static inline int tipc_nmap_equal(struct
 	return !memcmp(nm_a, nm_b, sizeof(*nm_a));
 }
 
-void tipc_nmap_diff(struct tipc_node_map *nm_a, struct tipc_node_map *nm_b,
-				  struct tipc_node_map *nm_diff);
-
 void tipc_port_list_add(struct port_list *pl_ptr, u32 port);
 void tipc_port_list_free(struct port_list *pl_ptr);
 
--- a/net/tipc/cluster.c	2010-10-13 15:44:43.583143953 -0700
+++ b/net/tipc/cluster.c	2010-10-13 16:03:22.148331782 -0700
@@ -113,25 +113,6 @@  void tipc_cltr_delete(struct cluster *c_
 	kfree(c_ptr);
 }
 
-u32 tipc_cltr_next_node(struct cluster *c_ptr, u32 addr)
-{
-	struct tipc_node *n_ptr;
-	u32 n_num = tipc_node(addr) + 1;
-
-	if (!c_ptr)
-		return addr;
-	for (; n_num <= c_ptr->highest_node; n_num++) {
-		n_ptr = c_ptr->nodes[n_num];
-		if (n_ptr && tipc_node_has_active_links(n_ptr))
-			return n_ptr->addr;
-	}
-	for (n_num = 1; n_num < tipc_node(addr); n_num++) {
-		n_ptr = c_ptr->nodes[n_num];
-		if (n_ptr && tipc_node_has_active_links(n_ptr))
-			return n_ptr->addr;
-	}
-	return 0;
-}
 
 void tipc_cltr_attach_node(struct cluster *c_ptr, struct tipc_node *n_ptr)
 {
@@ -232,7 +213,7 @@  struct tipc_node *tipc_cltr_select_node(
 static struct sk_buff *tipc_cltr_prepare_routing_msg(u32 data_size, u32 dest)
 {
 	u32 size = INT_H_SIZE + data_size;
-	struct sk_buff *buf = buf_acquire(size);
+	struct sk_buff *buf = tipc_buf_acquire(size);
 	struct tipc_msg *msg;
 
 	if (buf) {
--- a/net/tipc/config.c	2010-10-13 15:35:16.359281659 -0700
+++ b/net/tipc/config.c	2010-10-13 16:07:20.471544155 -0700
@@ -95,7 +95,7 @@  int tipc_cfg_append_tlv(struct sk_buff *
 	return 1;
 }
 
-struct sk_buff *tipc_cfg_reply_unsigned_type(u16 tlv_type, u32 value)
+static struct sk_buff *tipc_cfg_reply_unsigned_type(u16 tlv_type, u32 value)
 {
 	struct sk_buff *buf;
 	__be32 value_net;
@@ -109,6 +109,11 @@  struct sk_buff *tipc_cfg_reply_unsigned_
 	return buf;
 }
 
+static struct sk_buff *tipc_cfg_reply_unsigned(u32 value)
+{
+	return tipc_cfg_reply_unsigned_type(TIPC_TLV_UNSIGNED, value);
+}
+
 struct sk_buff *tipc_cfg_reply_string_type(u16 tlv_type, char *string)
 {
 	struct sk_buff *buf;
--- a/net/tipc/config.h	2010-10-13 15:43:36.031261839 -0700
+++ b/net/tipc/config.h	2010-10-13 15:49:35.868009966 -0700
@@ -45,7 +45,6 @@ 
 struct sk_buff *tipc_cfg_reply_alloc(int payload_size);
 int tipc_cfg_append_tlv(struct sk_buff *buf, int tlv_type,
 			void *tlv_data, int tlv_data_size);
-struct sk_buff *tipc_cfg_reply_unsigned_type(u16 tlv_type, u32 value);
 struct sk_buff *tipc_cfg_reply_string_type(u16 tlv_type, char *string);
 
 static inline struct sk_buff *tipc_cfg_reply_none(void)
@@ -53,11 +52,6 @@  static inline struct sk_buff *tipc_cfg_r
 	return tipc_cfg_reply_alloc(0);
 }
 
-static inline struct sk_buff *tipc_cfg_reply_unsigned(u32 value)
-{
-	return tipc_cfg_reply_unsigned_type(TIPC_TLV_UNSIGNED, value);
-}
-
 static inline struct sk_buff *tipc_cfg_reply_error_string(char *string)
 {
 	return tipc_cfg_reply_string_type(TIPC_TLV_ERROR_STRING, string);
--- a/net/tipc/core.c	2010-10-13 15:32:35.750562985 -0700
+++ b/net/tipc/core.c	2010-10-13 16:00:58.197719377 -0700
@@ -96,13 +96,13 @@  int tipc_net_id;
 int tipc_remote_management;
 
 
-int tipc_get_mode(void)
+static int tipc_get_mode(void)
 {
 	return tipc_mode;
 }
 
 /**
- * buf_acquire - creates a TIPC message buffer
+ * tipc_buf_acquire - creates a TIPC message buffer
  * @size: message size (including TIPC header)
  *
  * Returns a new buffer with data pointers set to the specified size.
@@ -111,7 +111,7 @@  int tipc_get_mode(void)
  *       There may also be unrequested tailroom present at the buffer's end.
  */
 
-struct sk_buff *buf_acquire(u32 size)
+struct sk_buff *tipc_buf_acquire(u32 size)
 {
 	struct sk_buff *skb;
 	unsigned int buf_size = (BUF_HEADROOM + size + 3) & ~3u;
@@ -129,7 +129,7 @@  struct sk_buff *buf_acquire(u32 size)
  * tipc_core_stop_net - shut down TIPC networking sub-systems
  */
 
-void tipc_core_stop_net(void)
+static void tipc_core_stop_net(void)
 {
 	tipc_eth_media_stop();
 	tipc_net_stop();
@@ -154,7 +154,7 @@  int tipc_core_start_net(unsigned long ad
  * tipc_core_stop - switch TIPC from SINGLE NODE to NOT RUNNING mode
  */
 
-void tipc_core_stop(void)
+static void tipc_core_stop(void)
 {
 	if (tipc_mode != TIPC_NODE_MODE)
 		return;
@@ -176,7 +176,7 @@  void tipc_core_stop(void)
  * tipc_core_start - switch TIPC from NOT RUNNING to SINGLE NODE mode
  */
 
-int tipc_core_start(void)
+static int tipc_core_start(void)
 {
 	int res;
 
@@ -246,7 +246,6 @@  MODULE_VERSION(TIPC_MOD_VER);
 
 EXPORT_SYMBOL(tipc_attach);
 EXPORT_SYMBOL(tipc_detach);
-EXPORT_SYMBOL(tipc_get_addr);
 EXPORT_SYMBOL(tipc_get_mode);
 EXPORT_SYMBOL(tipc_createport);
 EXPORT_SYMBOL(tipc_deleteport);
@@ -262,23 +261,10 @@  EXPORT_SYMBOL(tipc_withdraw);
 EXPORT_SYMBOL(tipc_connect2port);
 EXPORT_SYMBOL(tipc_disconnect);
 EXPORT_SYMBOL(tipc_shutdown);
-EXPORT_SYMBOL(tipc_isconnected);
-EXPORT_SYMBOL(tipc_peer);
-EXPORT_SYMBOL(tipc_ref_valid);
 EXPORT_SYMBOL(tipc_send);
-EXPORT_SYMBOL(tipc_send_buf);
 EXPORT_SYMBOL(tipc_send2name);
-EXPORT_SYMBOL(tipc_forward2name);
-EXPORT_SYMBOL(tipc_send_buf2name);
-EXPORT_SYMBOL(tipc_forward_buf2name);
 EXPORT_SYMBOL(tipc_send2port);
-EXPORT_SYMBOL(tipc_forward2port);
-EXPORT_SYMBOL(tipc_send_buf2port);
-EXPORT_SYMBOL(tipc_forward_buf2port);
 EXPORT_SYMBOL(tipc_multicast);
-/* EXPORT_SYMBOL(tipc_multicast_buf); not available yet */
-EXPORT_SYMBOL(tipc_ispublished);
-EXPORT_SYMBOL(tipc_available_nodes);
 
 /* TIPC API for external bearers (see tipc_bearer.h) */
 
@@ -295,6 +281,4 @@  EXPORT_SYMBOL(tipc_createport_raw);
 EXPORT_SYMBOL(tipc_reject_msg);
 EXPORT_SYMBOL(tipc_send_buf_fast);
 EXPORT_SYMBOL(tipc_acknowledge);
-EXPORT_SYMBOL(tipc_get_port);
-EXPORT_SYMBOL(tipc_get_handle);
 
--- a/net/tipc/core.h	2010-10-13 15:36:36.237690119 -0700
+++ b/net/tipc/core.h	2010-10-13 16:07:56.727164658 -0700
@@ -83,9 +83,7 @@ 
  * Note: TIPC_LOG is configured to echo its output to the system console;
  *       user-defined buffers can be configured to do the same thing.
  */
-
 extern struct print_buf *const TIPC_NULL;
-extern struct print_buf *const TIPC_CONS;
 extern struct print_buf *const TIPC_LOG;
 
 void tipc_printf(struct print_buf *, const char *fmt, ...);
@@ -204,10 +202,7 @@  extern atomic_t tipc_user_count;
  * Routines available to privileged subsystems
  */
 
-extern int  tipc_core_start(void);
-extern void tipc_core_stop(void);
-extern int  tipc_core_start_net(unsigned long addr);
-extern void tipc_core_stop_net(void);
+extern int tipc_core_start_net(unsigned long);
 extern int  tipc_handler_start(void);
 extern void tipc_handler_stop(void);
 extern int  tipc_netlink_start(void);
@@ -328,7 +323,7 @@  static inline struct tipc_msg *buf_msg(s
 	return (struct tipc_msg *)skb->data;
 }
 
-extern struct sk_buff *buf_acquire(u32 size);
+extern struct sk_buff *tipc_buf_acquire(u32 size);
 
 /**
  * buf_discard - frees a TIPC message buffer
--- a/net/tipc/dbg.c	2010-10-13 15:35:34.049157629 -0700
+++ b/net/tipc/dbg.c	2010-10-13 15:58:43.362005611 -0700
@@ -52,7 +52,7 @@  static struct print_buf null_buf = { NUL
 struct print_buf *const TIPC_NULL = &null_buf;
 
 static struct print_buf cons_buf = { NULL, 0, NULL, 1 };
-struct print_buf *const TIPC_CONS = &cons_buf;
+static struct print_buf *const TIPC_CONS = &cons_buf;
 
 static struct print_buf log_buf = { NULL, 0, NULL, 1 };
 struct print_buf *const TIPC_LOG = &log_buf;
@@ -76,6 +76,10 @@  struct print_buf *const TIPC_LOG = &log_
 static char print_string[TIPC_PB_MAX_STR];
 static DEFINE_SPINLOCK(print_lock);
 
+static void tipc_printbuf_reset(struct print_buf *pb);
+static int  tipc_printbuf_empty(struct print_buf *pb);
+static void tipc_printbuf_move(struct print_buf *pb_to,
+			       struct print_buf *pb_from);
 
 #define FORMAT(PTR,LEN,FMT) \
 {\
@@ -116,7 +120,7 @@  void tipc_printbuf_init(struct print_buf
  * @pb: pointer to print buffer structure
  */
 
-void tipc_printbuf_reset(struct print_buf *pb)
+static void tipc_printbuf_reset(struct print_buf *pb)
 {
 	if (pb->buf) {
 		pb->crs = pb->buf;
@@ -132,7 +136,7 @@  void tipc_printbuf_reset(struct print_bu
  * Returns non-zero if print buffer is empty.
  */
 
-int tipc_printbuf_empty(struct print_buf *pb)
+static int tipc_printbuf_empty(struct print_buf *pb)
 {
 	return !pb->buf || (pb->crs == pb->buf);
 }
@@ -181,7 +185,8 @@  int tipc_printbuf_validate(struct print_
  * Source print buffer becomes empty if a successful move occurs.
  */
 
-void tipc_printbuf_move(struct print_buf *pb_to, struct print_buf *pb_from)
+static void tipc_printbuf_move(struct print_buf *pb_to,
+			       struct print_buf *pb_from)
 {
 	int len;
 
--- a/net/tipc/dbg.h	2010-10-13 15:37:37.134376966 -0700
+++ b/net/tipc/dbg.h	2010-10-13 15:42:09.489660536 -0700
@@ -56,10 +56,7 @@  struct print_buf {
 #define TIPC_PB_MAX_STR 512	/* max printable string (with trailing NUL) */
 
 void tipc_printbuf_init(struct print_buf *pb, char *buf, u32 size);
-void tipc_printbuf_reset(struct print_buf *pb);
-int  tipc_printbuf_empty(struct print_buf *pb);
 int  tipc_printbuf_validate(struct print_buf *pb);
-void tipc_printbuf_move(struct print_buf *pb_to, struct print_buf *pb_from);
 
 int tipc_log_resize(int log_size);
 
--- a/net/tipc/discover.c	2010-10-13 15:38:16.357666201 -0700
+++ b/net/tipc/discover.c	2010-10-13 15:52:14.740906596 -0700
@@ -68,20 +68,6 @@  struct link_req {
 	unsigned int timer_intv;
 };
 
-
-/*
- * disc_lost_link(): A link has lost contact
- */
-
-void tipc_disc_link_event(u32 addr, char *name, int up)
-{
-	if (in_own_cluster(addr))
-		return;
-	/*
-	 * Code for inter cluster link setup here
-	 */
-}
-
 /**
  * tipc_disc_init_msg - initialize a link setup message
  * @type: message type (request or response)
@@ -95,7 +81,7 @@  static struct sk_buff *tipc_disc_init_ms
 					  u32 dest_domain,
 					  struct bearer *b_ptr)
 {
-	struct sk_buff *buf = buf_acquire(DSC_H_SIZE);
+	struct sk_buff *buf = tipc_buf_acquire(DSC_H_SIZE);
 	struct tipc_msg *msg;
 
 	if (buf) {
--- a/net/tipc/discover.h	2010-10-13 15:47:41.609746110 -0700
+++ b/net/tipc/discover.h	2010-10-13 15:47:50.604664821 -0700
@@ -50,6 +50,4 @@  void tipc_disc_stop_link_req(struct link
 
 void tipc_disc_recv_msg(struct sk_buff *buf, struct bearer *b_ptr);
 
-void tipc_disc_link_event(u32 addr, char *name, int up);
-
 #endif
--- a/net/tipc/link.c	2010-10-13 15:38:30.243998362 -0700
+++ b/net/tipc/link.c	2010-10-13 15:53:47.961684397 -0700
@@ -112,6 +112,9 @@  static void link_state_event(struct link
 static void link_reset_statistics(struct link *l_ptr);
 static void link_print(struct link *l_ptr, struct print_buf *buf,
 		       const char *str);
+static void link_start(struct link *l_ptr);
+static int link_send_long_buf(struct link *l_ptr, struct sk_buff *buf);
+
 
 /*
  * Debugging code used by link routines only
@@ -442,7 +445,7 @@  struct link *tipc_link_create(struct bea
 
 	k_init_timer(&l_ptr->timer, (Handler)link_timeout, (unsigned long)l_ptr);
 	list_add_tail(&l_ptr->link_list, &b_ptr->links);
-	tipc_k_signal((Handler)tipc_link_start, (unsigned long)l_ptr);
+	tipc_k_signal((Handler)link_start, (unsigned long)l_ptr);
 
 	dbg("tipc_link_create(): tolerance = %u,cont intv = %u, abort_limit = %u\n",
 	    l_ptr->tolerance, l_ptr->continuity_interval, l_ptr->abort_limit);
@@ -482,9 +485,9 @@  void tipc_link_delete(struct link *l_ptr
 	kfree(l_ptr);
 }
 
-void tipc_link_start(struct link *l_ptr)
+static void link_start(struct link *l_ptr)
 {
-	dbg("tipc_link_start %x\n", l_ptr);
+	dbg("link_start %x\n", l_ptr);
 	link_state_event(l_ptr, STARTING_EVT);
 }
 
@@ -1000,7 +1003,7 @@  int tipc_link_send_buf(struct link *l_pt
 	/* Fragmentation needed ? */
 
 	if (size > max_packet)
-		return tipc_link_send_long_buf(l_ptr, buf);
+		return link_send_long_buf(l_ptr, buf);
 
 	/* Packet can be queued or sent: */
 
@@ -1036,7 +1039,7 @@  int tipc_link_send_buf(struct link *l_pt
 		/* Try creating a new bundle */
 
 		if (size <= max_packet * 2 / 3) {
-			struct sk_buff *bundler = buf_acquire(max_packet);
+			struct sk_buff *bundler = tipc_buf_acquire(max_packet);
 			struct tipc_msg bundler_hdr;
 
 			if (bundler) {
@@ -1312,7 +1315,7 @@  again:
 
 	/* Prepare header of first fragment: */
 
-	buf_chain = buf = buf_acquire(max_pkt);
+	buf_chain = buf = tipc_buf_acquire(max_pkt);
 	if (!buf)
 		return -ENOMEM;
 	buf->next = NULL;
@@ -1369,7 +1372,7 @@  error:
 			msg_set_size(&fragm_hdr, fragm_sz + INT_H_SIZE);
 			msg_set_fragm_no(&fragm_hdr, ++fragm_no);
 			prev = buf;
-			buf = buf_acquire(fragm_sz + INT_H_SIZE);
+			buf = tipc_buf_acquire(fragm_sz + INT_H_SIZE);
 			if (!buf)
 				goto error;
 
@@ -2145,7 +2148,7 @@  void tipc_link_send_proto_msg(struct lin
 	if (tipc_bearer_congested(l_ptr->b_ptr, l_ptr)) {
 		if (!l_ptr->proto_msg_queue) {
 			l_ptr->proto_msg_queue =
-				buf_acquire(sizeof(l_ptr->proto_msg));
+				tipc_buf_acquire(sizeof(l_ptr->proto_msg));
 		}
 		buf = l_ptr->proto_msg_queue;
 		if (!buf)
@@ -2159,7 +2162,7 @@  void tipc_link_send_proto_msg(struct lin
 
 	msg_dbg(msg, ">>");
 
-	buf = buf_acquire(msg_size);
+	buf = tipc_buf_acquire(msg_size);
 	if (!buf)
 		return;
 
@@ -2318,10 +2321,10 @@  exit:
  * tipc_link_tunnel(): Send one message via a link belonging to
  * another bearer. Owner node is locked.
  */
-void tipc_link_tunnel(struct link *l_ptr,
-		      struct tipc_msg *tunnel_hdr,
-		      struct tipc_msg  *msg,
-		      u32 selector)
+static void tipc_link_tunnel(struct link *l_ptr,
+			     struct tipc_msg *tunnel_hdr,
+			     struct tipc_msg  *msg,
+			     u32 selector)
 {
 	struct link *tunnel;
 	struct sk_buff *buf;
@@ -2334,7 +2337,7 @@  void tipc_link_tunnel(struct link *l_ptr
 		return;
 	}
 	msg_set_size(tunnel_hdr, length + INT_H_SIZE);
-	buf = buf_acquire(length + INT_H_SIZE);
+	buf = tipc_buf_acquire(length + INT_H_SIZE);
 	if (!buf) {
 		warn("Link changeover error, "
 		     "unable to send tunnel msg\n");
@@ -2380,7 +2383,7 @@  void tipc_link_changeover(struct link *l
 	if (!l_ptr->first_out) {
 		struct sk_buff *buf;
 
-		buf = buf_acquire(INT_H_SIZE);
+		buf = tipc_buf_acquire(INT_H_SIZE);
 		if (buf) {
 			skb_copy_to_linear_data(buf, &tunnel_hdr, INT_H_SIZE);
 			msg_set_size(&tunnel_hdr, INT_H_SIZE);
@@ -2441,7 +2444,7 @@  void tipc_link_send_duplicate(struct lin
 		msg_set_ack(msg, mod(l_ptr->next_in_no - 1));	/* Update */
 		msg_set_bcast_ack(msg, l_ptr->owner->bclink.last_in);
 		msg_set_size(&tunnel_hdr, length + INT_H_SIZE);
-		outbuf = buf_acquire(length + INT_H_SIZE);
+		outbuf = tipc_buf_acquire(length + INT_H_SIZE);
 		if (outbuf == NULL) {
 			warn("Link changeover error, "
 			     "unable to send duplicate msg\n");
@@ -2477,7 +2480,7 @@  static struct sk_buff *buf_extract(struc
 	u32 size = msg_size(msg);
 	struct sk_buff *eb;
 
-	eb = buf_acquire(size);
+	eb = tipc_buf_acquire(size);
 	if (eb)
 		skb_copy_to_linear_data(eb, msg, size);
 	return eb;
@@ -2605,11 +2608,11 @@  void tipc_link_recv_bundle(struct sk_buf
 
 
 /*
- * tipc_link_send_long_buf: Entry for buffers needing fragmentation.
+ * link_send_long_buf: Entry for buffers needing fragmentation.
  * The buffer is complete, inclusive total message length.
  * Returns user data length.
  */
-int tipc_link_send_long_buf(struct link *l_ptr, struct sk_buff *buf)
+static int link_send_long_buf(struct link *l_ptr, struct sk_buff *buf)
 {
 	struct tipc_msg *inmsg = buf_msg(buf);
 	struct tipc_msg fragm_hdr;
@@ -2648,7 +2651,7 @@  int tipc_link_send_long_buf(struct link 
 			fragm_sz = rest;
 			msg_set_type(&fragm_hdr, LAST_FRAGMENT);
 		}
-		fragm = buf_acquire(fragm_sz + INT_H_SIZE);
+		fragm = tipc_buf_acquire(fragm_sz + INT_H_SIZE);
 		if (fragm == NULL) {
 			warn("Link unable to fragment message\n");
 			dsz = -ENOMEM;
@@ -2753,7 +2756,7 @@  int tipc_link_recv_fragment(struct sk_bu
 			buf_discard(fbuf);
 			return 0;
 		}
-		pbuf = buf_acquire(msg_size(imsg));
+		pbuf = tipc_buf_acquire(msg_size(imsg));
 		if (pbuf != NULL) {
 			pbuf->next = *pending;
 			*pending = pbuf;
--- a/net/tipc/link.h	2010-10-13 15:51:49.403953468 -0700
+++ b/net/tipc/link.h	2010-10-13 15:52:06.877852172 -0700
@@ -225,7 +225,6 @@  void tipc_link_send_duplicate(struct lin
 void tipc_link_reset_fragments(struct link *l_ptr);
 int tipc_link_is_up(struct link *l_ptr);
 int tipc_link_is_active(struct link *l_ptr);
-void tipc_link_start(struct link *l_ptr);
 u32 tipc_link_push_packet(struct link *l_ptr);
 void tipc_link_stop(struct link *l_ptr);
 struct sk_buff *tipc_link_cmd_config(const void *req_tlv_area, int req_tlv_space, u16 cmd);
@@ -239,9 +238,6 @@  int tipc_link_send_sections_fast(struct 
 				 struct iovec const *msg_sect,
 				 const u32 num_sect,
 				 u32 destnode);
-int tipc_link_send_long_buf(struct link *l_ptr, struct sk_buff *buf);
-void tipc_link_tunnel(struct link *l_ptr, struct tipc_msg *tnl_hdr,
-		      struct tipc_msg *msg, u32 selector);
 void tipc_link_recv_bundle(struct sk_buff *buf);
 int  tipc_link_recv_fragment(struct sk_buff **pending,
 			     struct sk_buff **fb,
--- a/net/tipc/msg.c	2010-10-13 15:45:42.760031835 -0700
+++ b/net/tipc/msg.c	2010-10-13 15:45:52.410871897 -0700
@@ -112,7 +112,7 @@  int tipc_msg_build(struct tipc_msg *hdr,
 		return dsz;
 	}
 
-	*buf = buf_acquire(sz);
+	*buf = tipc_buf_acquire(sz);
 	if (!(*buf))
 		return -ENOMEM;
 	skb_copy_to_linear_data(*buf, hdr, hsz);
--- a/net/tipc/name_distr.c	2010-10-13 15:45:56.098428684 -0700
+++ b/net/tipc/name_distr.c	2010-10-13 15:46:05.505298048 -0700
@@ -98,7 +98,7 @@  static void publ_to_item(struct distr_it
 
 static struct sk_buff *named_prepare_buf(u32 type, u32 size, u32 dest)
 {
-	struct sk_buff *buf = buf_acquire(LONG_H_SIZE + size);
+	struct sk_buff *buf = tipc_buf_acquire(LONG_H_SIZE + size);
 	struct tipc_msg *msg;
 
 	if (buf != NULL) {
--- a/net/tipc/node.c	2010-10-13 15:39:25.165401568 -0700
+++ b/net/tipc/node.c	2010-10-13 16:03:21.564402314 -0700
@@ -50,7 +50,8 @@  void node_print(struct print_buf *buf, s
 static void node_lost_contact(struct tipc_node *n_ptr);
 static void node_established_contact(struct tipc_node *n_ptr);
 
-struct tipc_node *tipc_nodes = NULL;	/* sorted list of nodes within cluster */
+/* sorted list of nodes within cluster */
+static struct tipc_node *tipc_nodes = NULL;
 
 static DEFINE_SPINLOCK(node_create_lock);
 
@@ -587,22 +588,6 @@  void tipc_node_remove_router(struct tipc
 		node_lost_contact(n_ptr);
 }
 
-u32 tipc_available_nodes(const u32 domain)
-{
-	struct tipc_node *n_ptr;
-	u32 cnt = 0;
-
-	read_lock_bh(&tipc_net_lock);
-	for (n_ptr = tipc_nodes; n_ptr; n_ptr = n_ptr->next) {
-		if (!tipc_in_scope(domain, n_ptr->addr))
-			continue;
-		if (tipc_node_is_up(n_ptr))
-			cnt++;
-	}
-	read_unlock_bh(&tipc_net_lock);
-	return cnt;
-}
-
 struct sk_buff *tipc_node_get_nodes(const void *req_tlv_area, int req_tlv_space)
 {
 	u32 domain;
--- a/net/tipc/node.h	2010-10-13 15:54:01.616035253 -0700
+++ b/net/tipc/node.h	2010-10-13 15:54:11.830801530 -0700
@@ -96,7 +96,6 @@  struct tipc_node {
 	} bclink;
 };
 
-extern struct tipc_node *tipc_nodes;
 extern u32 tipc_own_tag;
 
 struct tipc_node *tipc_node_create(u32 addr);
--- a/net/tipc/port.c	2010-10-13 15:40:52.362926772 -0700
+++ b/net/tipc/port.c	2010-10-13 16:16:41.435779874 -0700
@@ -293,34 +293,6 @@  int tipc_deleteport(u32 ref)
 	return 0;
 }
 
-/**
- * tipc_get_port() - return port associated with 'ref'
- *
- * Note: Port is not locked.
- */
-
-struct tipc_port *tipc_get_port(const u32 ref)
-{
-	return (struct tipc_port *)tipc_ref_deref(ref);
-}
-
-/**
- * tipc_get_handle - return user handle associated to port 'ref'
- */
-
-void *tipc_get_handle(const u32 ref)
-{
-	struct port *p_ptr;
-	void * handle;
-
-	p_ptr = tipc_port_lock(ref);
-	if (!p_ptr)
-		return NULL;
-	handle = p_ptr->publ.usr_handle;
-	tipc_port_unlock(p_ptr);
-	return handle;
-}
-
 static int port_unreliable(struct port *p_ptr)
 {
 	return msg_src_droppable(&p_ptr->publ.phdr);
@@ -392,7 +364,7 @@  static struct sk_buff *port_build_proto_
 	struct sk_buff *buf;
 	struct tipc_msg *msg;
 
-	buf = buf_acquire(LONG_H_SIZE);
+	buf = tipc_buf_acquire(LONG_H_SIZE);
 	if (buf) {
 		msg = buf_msg(buf);
 		tipc_msg_init(msg, usr, type, LONG_H_SIZE, destnode);
@@ -433,7 +405,7 @@  int tipc_reject_msg(struct sk_buff *buf,
 		hdr_sz = MCAST_H_SIZE;
 	else
 		hdr_sz = LONG_H_SIZE;
-	rbuf = buf_acquire(data_sz + hdr_sz);
+	rbuf = tipc_buf_acquire(data_sz + hdr_sz);
 	if (rbuf == NULL) {
 		buf_discard(buf);
 		return data_sz;
@@ -1242,50 +1214,13 @@  int tipc_shutdown(u32 ref)
 	return tipc_disconnect(ref);
 }
 
-int tipc_isconnected(u32 ref, int *isconnected)
-{
-	struct port *p_ptr;
-
-	p_ptr = tipc_port_lock(ref);
-	if (!p_ptr)
-		return -EINVAL;
-	*isconnected = p_ptr->publ.connected;
-	tipc_port_unlock(p_ptr);
-	return 0;
-}
-
-int tipc_peer(u32 ref, struct tipc_portid *peer)
-{
-	struct port *p_ptr;
-	int res;
-
-	p_ptr = tipc_port_lock(ref);
-	if (!p_ptr)
-		return -EINVAL;
-	if (p_ptr->publ.connected) {
-		peer->ref = port_peerport(p_ptr);
-		peer->node = port_peernode(p_ptr);
-		res = 0;
-	} else
-		res = -ENOTCONN;
-	tipc_port_unlock(p_ptr);
-	return res;
-}
-
-int tipc_ref_valid(u32 ref)
-{
-	/* Works irrespective of type */
-	return !!tipc_ref_deref(ref);
-}
-
-
 /*
  *  tipc_port_recv_sections(): Concatenate and deliver sectioned
  *                        message for this node.
  */
 
-int tipc_port_recv_sections(struct port *sender, unsigned int num_sect,
-		       struct iovec const *msg_sect)
+static int tipc_port_recv_sections(struct port *sender, unsigned int num_sect,
+				   struct iovec const *msg_sect)
 {
 	struct sk_buff *buf;
 	int res;
@@ -1336,65 +1271,16 @@  int tipc_send(u32 ref, unsigned int num_
 }
 
 /**
- * tipc_send_buf - send message buffer on connection
- */
-
-int tipc_send_buf(u32 ref, struct sk_buff *buf, unsigned int dsz)
-{
-	struct port *p_ptr;
-	struct tipc_msg *msg;
-	u32 destnode;
-	u32 hsz;
-	u32 sz;
-	u32 res;
-
-	p_ptr = tipc_port_deref(ref);
-	if (!p_ptr || !p_ptr->publ.connected)
-		return -EINVAL;
-
-	msg = &p_ptr->publ.phdr;
-	hsz = msg_hdr_sz(msg);
-	sz = hsz + dsz;
-	msg_set_size(msg, sz);
-	if (skb_cow(buf, hsz))
-		return -ENOMEM;
-
-	skb_push(buf, hsz);
-	skb_copy_to_linear_data(buf, msg, hsz);
-	destnode = msg_destnode(msg);
-	p_ptr->publ.congested = 1;
-	if (!tipc_port_congested(p_ptr)) {
-		if (likely(destnode != tipc_own_addr))
-			res = tipc_send_buf_fast(buf, destnode);
-		else {
-			tipc_port_recv_msg(buf);
-			res = sz;
-		}
-		if (likely(res != -ELINKCONG)) {
-			port_incr_out_seqno(p_ptr);
-			p_ptr->sent++;
-			p_ptr->publ.congested = 0;
-			return res;
-		}
-	}
-	if (port_unreliable(p_ptr)) {
-		p_ptr->publ.congested = 0;
-		return dsz;
-	}
-	return -ELINKCONG;
-}
-
-/**
  * tipc_forward2name - forward message sections to port name
  */
 
-int tipc_forward2name(u32 ref,
-		      struct tipc_name const *name,
-		      u32 domain,
-		      u32 num_sect,
-		      struct iovec const *msg_sect,
-		      struct tipc_portid const *orig,
-		      unsigned int importance)
+static int tipc_forward2name(u32 ref,
+			     struct tipc_name const *name,
+			     u32 domain,
+			     u32 num_sect,
+			     struct iovec const *msg_sect,
+			     struct tipc_portid const *orig,
+			     unsigned int importance)
 {
 	struct port *p_ptr;
 	struct tipc_msg *msg;
@@ -1457,89 +1343,15 @@  int tipc_send2name(u32 ref,
 }
 
 /**
- * tipc_forward_buf2name - forward message buffer to port name
- */
-
-int tipc_forward_buf2name(u32 ref,
-			  struct tipc_name const *name,
-			  u32 domain,
-			  struct sk_buff *buf,
-			  unsigned int dsz,
-			  struct tipc_portid const *orig,
-			  unsigned int importance)
-{
-	struct port *p_ptr;
-	struct tipc_msg *msg;
-	u32 destnode = domain;
-	u32 destport;
-	int res;
-
-	p_ptr = (struct port *)tipc_ref_deref(ref);
-	if (!p_ptr || p_ptr->publ.connected)
-		return -EINVAL;
-
-	msg = &p_ptr->publ.phdr;
-	if (importance <= TIPC_CRITICAL_IMPORTANCE)
-		msg_set_importance(msg, importance);
-	msg_set_type(msg, TIPC_NAMED_MSG);
-	msg_set_orignode(msg, orig->node);
-	msg_set_origport(msg, orig->ref);
-	msg_set_nametype(msg, name->type);
-	msg_set_nameinst(msg, name->instance);
-	msg_set_lookup_scope(msg, tipc_addr_scope(domain));
-	msg_set_hdr_sz(msg, LONG_H_SIZE);
-	msg_set_size(msg, LONG_H_SIZE + dsz);
-	destport = tipc_nametbl_translate(name->type, name->instance, &destnode);
-	msg_set_destnode(msg, destnode);
-	msg_set_destport(msg, destport);
-	msg_dbg(msg, "forw2name ==> ");
-	if (skb_cow(buf, LONG_H_SIZE))
-		return -ENOMEM;
-	skb_push(buf, LONG_H_SIZE);
-	skb_copy_to_linear_data(buf, msg, LONG_H_SIZE);
-	msg_dbg(buf_msg(buf),"PREP:");
-	if (likely(destport)) {
-		p_ptr->sent++;
-		if (destnode == tipc_own_addr)
-			return tipc_port_recv_msg(buf);
-		res = tipc_send_buf_fast(buf, destnode);
-		if (likely(res != -ELINKCONG))
-			return res;
-		if (port_unreliable(p_ptr))
-			return dsz;
-		return -ELINKCONG;
-	}
-	return tipc_reject_msg(buf, TIPC_ERR_NO_NAME);
-}
-
-/**
- * tipc_send_buf2name - send message buffer to port name
- */
-
-int tipc_send_buf2name(u32 ref,
-		       struct tipc_name const *dest,
-		       u32 domain,
-		       struct sk_buff *buf,
-		       unsigned int dsz)
-{
-	struct tipc_portid orig;
-
-	orig.ref = ref;
-	orig.node = tipc_own_addr;
-	return tipc_forward_buf2name(ref, dest, domain, buf, dsz, &orig,
-				     TIPC_PORT_IMPORTANCE);
-}
-
-/**
  * tipc_forward2port - forward message sections to port identity
  */
 
-int tipc_forward2port(u32 ref,
-		      struct tipc_portid const *dest,
-		      unsigned int num_sect,
-		      struct iovec const *msg_sect,
-		      struct tipc_portid const *orig,
-		      unsigned int importance)
+static int tipc_forward2port(u32 ref,
+			     struct tipc_portid const *dest,
+			     unsigned int num_sect,
+			     struct iovec const *msg_sect,
+			     struct tipc_portid const *orig,
+			     unsigned int importance)
 {
 	struct port *p_ptr;
 	struct tipc_msg *msg;
@@ -1591,12 +1403,12 @@  int tipc_send2port(u32 ref,
 /**
  * tipc_forward_buf2port - forward message buffer to port identity
  */
-int tipc_forward_buf2port(u32 ref,
-			  struct tipc_portid const *dest,
-			  struct sk_buff *buf,
-			  unsigned int dsz,
-			  struct tipc_portid const *orig,
-			  unsigned int importance)
+static int tipc_forward_buf2port(u32 ref,
+				 struct tipc_portid const *dest,
+				 struct sk_buff *buf,
+				 unsigned int dsz,
+				 struct tipc_portid const *orig,
+				 unsigned int importance)
 {
 	struct port *p_ptr;
 	struct tipc_msg *msg;
--- a/net/tipc/port.h	2010-10-13 15:48:09.502393058 -0700
+++ b/net/tipc/port.h	2010-10-13 16:14:00.819182858 -0700
@@ -109,8 +109,6 @@  struct port {
 extern spinlock_t tipc_port_list_lock;
 struct port_list;
 
-int tipc_port_recv_sections(struct port *p_ptr, u32 num_sect,
-			    struct iovec const *msg_sect);
 int tipc_port_reject_sections(struct port *p_ptr, struct tipc_msg *hdr,
 			      struct iovec const *msg_sect, u32 num_sect,
 			      int err);
--- a/net/tipc/ref.c	2010-10-13 15:41:13.468391212 -0700
+++ b/net/tipc/ref.c	2010-10-13 16:03:20.908481542 -0700
@@ -282,23 +282,6 @@  void *tipc_ref_lock(u32 ref)
 	return NULL;
 }
 
-/**
- * tipc_ref_unlock - unlock referenced object
- */
-
-void tipc_ref_unlock(u32 ref)
-{
-	if (likely(tipc_ref_table.entries)) {
-		struct reference *entry;
-
-		entry = &tipc_ref_table.entries[ref &
-						tipc_ref_table.index_mask];
-		if (likely((entry->ref == ref) && (entry->object)))
-			spin_unlock_bh(&entry->lock);
-		else
-			err("Attempt to unlock non-existent reference\n");
-	}
-}
 
 /**
  * tipc_ref_deref - return pointer referenced object (without locking it)
--- a/net/tipc/ref.h	2010-10-13 15:47:56.028012866 -0700
+++ b/net/tipc/ref.h	2010-10-13 15:48:04.642977233 -0700
@@ -44,7 +44,6 @@  u32 tipc_ref_acquire(void *object, spinl
 void tipc_ref_discard(u32 ref);
 
 void *tipc_ref_lock(u32 ref);
-void tipc_ref_unlock(u32 ref);
 void *tipc_ref_deref(u32 ref);
 
 #endif
--- a/net/tipc/zone.c	2010-10-13 15:41:49.324083397 -0700
+++ b/net/tipc/zone.c	2010-10-13 15:54:26.329050453 -0700
@@ -160,14 +160,3 @@  u32 tipc_zone_select_router(struct _zone
 	}
 	return 0;
 }
-
-
-u32 tipc_zone_next_node(u32 addr)
-{
-	struct cluster *c_ptr = tipc_cltr_find(addr);
-
-	if (c_ptr)
-		return tipc_cltr_next_node(c_ptr, addr);
-	return 0;
-}
-
--- a/net/tipc/zone.h	2010-10-13 15:48:24.460594837 -0700
+++ b/net/tipc/zone.h	2010-10-13 15:48:33.715482229 -0700
@@ -61,7 +61,6 @@  void tipc_zone_send_external_routes(stru
 struct _zone *tipc_zone_create(u32 addr);
 void tipc_zone_delete(struct _zone *z_ptr);
 void tipc_zone_attach_cluster(struct _zone *z_ptr, struct cluster *c_ptr);
-u32 tipc_zone_next_node(u32 addr);
 
 static inline struct _zone *tipc_zone_find(u32 addr)
 {
--- a/net/tipc/addr.c	2010-10-13 15:33:41.742641197 -0700
+++ b/net/tipc/addr.c	2010-10-13 16:02:50.348172914 -0700
@@ -41,11 +41,6 @@ 
 #include "cluster.h"
 #include "net.h"
 
-u32 tipc_get_addr(void)
-{
-	return tipc_own_addr;
-}
-
 /**
  * tipc_addr_domain_valid - validates a network domain address
  *
--- a/net/tipc/cluster.h	2010-10-13 16:01:44.276153671 -0700
+++ b/net/tipc/cluster.h	2010-10-13 16:01:56.218711152 -0700
@@ -75,7 +75,7 @@  void tipc_cltr_attach_node(struct cluste
 void tipc_cltr_send_slave_routes(struct cluster *c_ptr, u32 dest);
 void tipc_cltr_broadcast(struct sk_buff *buf);
 int tipc_cltr_init(void);
-u32 tipc_cltr_next_node(struct cluster *c_ptr, u32 addr);
+
 void tipc_cltr_bcast_new_route(struct cluster *c_ptr, u32 dest, u32 lo, u32 hi);
 void tipc_cltr_send_local_routes(struct cluster *c_ptr, u32 dest);
 void tipc_cltr_bcast_lost_route(struct cluster *c_ptr, u32 dest, u32 lo, u32 hi);
--- a/net/tipc/subscr.c	2010-10-13 16:01:08.020532905 -0700
+++ b/net/tipc/subscr.c	2010-10-13 16:03:03.330604772 -0700
@@ -598,12 +598,3 @@  void tipc_subscr_stop(void)
 		topsrv.user_ref = 0;
 	}
 }
-
-
-int tipc_ispublished(struct tipc_name const *name)
-{
-	u32 domain = 0;
-
-	return tipc_nametbl_translate(name->type, name->instance, &domain) != 0;
-}
-
--- a/include/net/tipc/tipc_port.h	2010-10-13 16:05:35.080274751 -0700
+++ b/include/net/tipc/tipc_port.h	2010-10-13 16:06:14.247543618 -0700
@@ -88,8 +88,6 @@  void tipc_acknowledge(u32 port_ref,u32 a
 
 struct tipc_port *tipc_get_port(const u32 ref);
 
-void *tipc_get_handle(const u32 ref);
-
 /*
  * The following routines require that the port be locked on entry
  */