Skip to content

Commit

Permalink
tipc: Eliminate use of user registry by topology service
Browse files Browse the repository at this point in the history
Simplifies TIPC's network topology service so that it no longer registers
its ports with the user registry, since the service doesn't take advantage
of any of the registry's capabilities.

Signed-off-by: Allan Stephens <Allan.Stephens@windriver.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Allan Stephens authored and David S. Miller committed Jan 1, 2011
1 parent 7a488fd commit aa70200
Showing 1 changed file with 10 additions and 16 deletions.
26 changes: 10 additions & 16 deletions net/tipc/subscr.c
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@

#include "core.h"
#include "name_table.h"
#include "user_reg.h"
#include "port.h"
#include "subscr.h"

/**
Expand Down Expand Up @@ -64,7 +64,6 @@ struct subscriber {
*/

struct top_srv {
u32 user_ref;
u32 setup_port;
atomic_t subscription_count;
struct list_head subscriber_list;
Expand Down Expand Up @@ -494,7 +493,7 @@ static void subscr_named_msg_event(void *usr_handle,

/* Create server port & establish connection to subscriber */

tipc_createport(topsrv.user_ref,
tipc_createport(0,
subscriber,
importance,
NULL,
Expand Down Expand Up @@ -549,13 +548,7 @@ int tipc_subscr_start(void)
INIT_LIST_HEAD(&topsrv.subscriber_list);

spin_lock_bh(&topsrv.lock);
res = tipc_attach(&topsrv.user_ref);
if (res) {
spin_unlock_bh(&topsrv.lock);
return res;
}

res = tipc_createport(topsrv.user_ref,
res = tipc_createport(0,
NULL,
TIPC_CRITICAL_IMPORTANCE,
NULL,
Expand All @@ -570,16 +563,17 @@ int tipc_subscr_start(void)
goto failed;

res = tipc_nametbl_publish_rsv(topsrv.setup_port, TIPC_NODE_SCOPE, &seq);
if (res)
if (res) {
tipc_deleteport(topsrv.setup_port);
topsrv.setup_port = 0;
goto failed;
}

spin_unlock_bh(&topsrv.lock);
return 0;

failed:
err("Failed to create subscription service\n");
tipc_detach(topsrv.user_ref);
topsrv.user_ref = 0;
spin_unlock_bh(&topsrv.lock);
return res;
}
Expand All @@ -590,8 +584,10 @@ void tipc_subscr_stop(void)
struct subscriber *subscriber_temp;
spinlock_t *subscriber_lock;

if (topsrv.user_ref) {
if (topsrv.setup_port) {
tipc_deleteport(topsrv.setup_port);
topsrv.setup_port = 0;

list_for_each_entry_safe(subscriber, subscriber_temp,
&topsrv.subscriber_list,
subscriber_list) {
Expand All @@ -600,7 +596,5 @@ void tipc_subscr_stop(void)
subscr_terminate(subscriber);
spin_unlock_bh(subscriber_lock);
}
tipc_detach(topsrv.user_ref);
topsrv.user_ref = 0;
}
}

0 comments on commit aa70200

Please sign in to comment.