diff options
Diffstat (limited to 'net/tipc/subscr.c')
| -rw-r--r-- | net/tipc/subscr.c | 43 | 
1 files changed, 0 insertions, 43 deletions
diff --git a/net/tipc/subscr.c b/net/tipc/subscr.c index af93ea924f6..f976e9cd6a7 100644 --- a/net/tipc/subscr.c +++ b/net/tipc/subscr.c @@ -46,7 +46,6 @@   * @subscriber_list: adjacent subscribers in top. server's list of subscribers   * @subscription_list: list of subscription objects for this subscriber   */ -  struct tipc_subscriber {  	u32 port_ref;  	spinlock_t *lock; @@ -61,7 +60,6 @@ struct tipc_subscriber {   * @subscriber_list: list of ports subscribing to service   * @lock: spinlock govering access to subscriber list   */ -  struct top_srv {  	u32 setup_port;  	atomic_t subscription_count; @@ -78,7 +76,6 @@ static struct top_srv topsrv;   *   * Returns converted value   */ -  static u32 htohl(u32 in, int swap)  {  	return swap ? swab32(in) : in; @@ -90,7 +87,6 @@ static u32 htohl(u32 in, int swap)   * Note: Must not hold subscriber's server port lock, since tipc_send() will   *       try to take the lock if the message is rejected and returned!   */ -  static void subscr_send_event(struct tipc_subscription *sub,  			      u32 found_lower,  			      u32 found_upper, @@ -116,7 +112,6 @@ static void subscr_send_event(struct tipc_subscription *sub,   *   * Returns 1 if there is overlap, otherwise 0.   */ -  int tipc_subscr_overlap(struct tipc_subscription *sub,  			u32 found_lower,  			u32 found_upper) @@ -136,7 +131,6 @@ int tipc_subscr_overlap(struct tipc_subscription *sub,   *   * Protected by nameseq.lock in name_table.c   */ -  void tipc_subscr_report_overlap(struct tipc_subscription *sub,  				u32 found_lower,  				u32 found_upper, @@ -156,43 +150,35 @@ void tipc_subscr_report_overlap(struct tipc_subscription *sub,  /**   * subscr_timeout - subscription timeout has occurred   */ -  static void subscr_timeout(struct tipc_subscription *sub)  {  	struct tipc_port *server_port;  	/* Validate server port reference (in case subscriber is terminating) */ -  	server_port = tipc_port_lock(sub->server_ref);  	if (server_port == NULL)  		return;  	/* Validate timeout (in case subscription is being cancelled) */ -  	if (sub->timeout == TIPC_WAIT_FOREVER) {  		tipc_port_unlock(server_port);  		return;  	}  	/* Unlink subscription from name table */ -  	tipc_nametbl_unsubscribe(sub);  	/* Unlink subscription from subscriber */ -  	list_del(&sub->subscription_list);  	/* Release subscriber's server port */ -  	tipc_port_unlock(server_port);  	/* Notify subscriber of timeout */ -  	subscr_send_event(sub, sub->evt.s.seq.lower, sub->evt.s.seq.upper,  			  TIPC_SUBSCR_TIMEOUT, 0, 0);  	/* Now destroy subscription */ -  	k_term_timer(&sub->timer);  	kfree(sub);  	atomic_dec(&topsrv.subscription_count); @@ -203,7 +189,6 @@ static void subscr_timeout(struct tipc_subscription *sub)   *   * Called with subscriber port locked.   */ -  static void subscr_del(struct tipc_subscription *sub)  {  	tipc_nametbl_unsubscribe(sub); @@ -222,7 +207,6 @@ static void subscr_del(struct tipc_subscription *sub)   * a new object reference in the interim that uses this lock; this routine will   * simply wait for it to be released, then claim it.)   */ -  static void subscr_terminate(struct tipc_subscriber *subscriber)  {  	u32 port_ref; @@ -230,18 +214,15 @@ static void subscr_terminate(struct tipc_subscriber *subscriber)  	struct tipc_subscription *sub_temp;  	/* Invalidate subscriber reference */ -  	port_ref = subscriber->port_ref;  	subscriber->port_ref = 0;  	spin_unlock_bh(subscriber->lock);  	/* Sever connection to subscriber */ -  	tipc_shutdown(port_ref);  	tipc_deleteport(port_ref);  	/* Destroy any existing subscriptions for subscriber */ -  	list_for_each_entry_safe(sub, sub_temp, &subscriber->subscription_list,  				 subscription_list) {  		if (sub->timeout != TIPC_WAIT_FOREVER) { @@ -252,17 +233,14 @@ static void subscr_terminate(struct tipc_subscriber *subscriber)  	}  	/* Remove subscriber from topology server's subscriber list */ -  	spin_lock_bh(&topsrv.lock);  	list_del(&subscriber->subscriber_list);  	spin_unlock_bh(&topsrv.lock);  	/* Reclaim subscriber lock */ -  	spin_lock_bh(subscriber->lock);  	/* Now destroy subscriber */ -  	kfree(subscriber);  } @@ -275,7 +253,6 @@ static void subscr_terminate(struct tipc_subscriber *subscriber)   *   * Note that fields of 's' use subscriber's endianness!   */ -  static void subscr_cancel(struct tipc_subscr *s,  			  struct tipc_subscriber *subscriber)  { @@ -284,7 +261,6 @@ static void subscr_cancel(struct tipc_subscr *s,  	int found = 0;  	/* Find first matching subscription, exit if not found */ -  	list_for_each_entry_safe(sub, sub_temp, &subscriber->subscription_list,  				 subscription_list) {  		if (!memcmp(s, &sub->evt.s, sizeof(struct tipc_subscr))) { @@ -296,7 +272,6 @@ static void subscr_cancel(struct tipc_subscr *s,  		return;  	/* Cancel subscription timer (if used), then delete subscription */ -  	if (sub->timeout != TIPC_WAIT_FOREVER) {  		sub->timeout = TIPC_WAIT_FOREVER;  		spin_unlock_bh(subscriber->lock); @@ -312,7 +287,6 @@ static void subscr_cancel(struct tipc_subscr *s,   *   * Called with subscriber port locked.   */ -  static struct tipc_subscription *subscr_subscribe(struct tipc_subscr *s,  					     struct tipc_subscriber *subscriber)  { @@ -320,11 +294,9 @@ static struct tipc_subscription *subscr_subscribe(struct tipc_subscr *s,  	int swap;  	/* Determine subscriber's endianness */ -  	swap = !(s->filter & (TIPC_SUB_PORTS | TIPC_SUB_SERVICE));  	/* Detect & process a subscription cancellation request */ -  	if (s->filter & htohl(TIPC_SUB_CANCEL, swap)) {  		s->filter &= ~htohl(TIPC_SUB_CANCEL, swap);  		subscr_cancel(s, subscriber); @@ -332,7 +304,6 @@ static struct tipc_subscription *subscr_subscribe(struct tipc_subscr *s,  	}  	/* Refuse subscription if global limit exceeded */ -  	if (atomic_read(&topsrv.subscription_count) >= tipc_max_subscriptions) {  		warn("Subscription rejected, subscription limit reached (%u)\n",  		     tipc_max_subscriptions); @@ -341,7 +312,6 @@ static struct tipc_subscription *subscr_subscribe(struct tipc_subscr *s,  	}  	/* Allocate subscription object */ -  	sub = kmalloc(sizeof(*sub), GFP_ATOMIC);  	if (!sub) {  		warn("Subscription rejected, no memory\n"); @@ -350,7 +320,6 @@ static struct tipc_subscription *subscr_subscribe(struct tipc_subscr *s,  	}  	/* Initialize subscription object */ -  	sub->seq.type = htohl(s->seq.type, swap);  	sub->seq.lower = htohl(s->seq.lower, swap);  	sub->seq.upper = htohl(s->seq.upper, swap); @@ -384,7 +353,6 @@ static struct tipc_subscription *subscr_subscribe(struct tipc_subscr *s,   *   * Called with subscriber's server port unlocked.   */ -  static void subscr_conn_shutdown_event(void *usr_handle,  				       u32 port_ref,  				       struct sk_buff **buf, @@ -408,7 +376,6 @@ static void subscr_conn_shutdown_event(void *usr_handle,   *   * Called with subscriber's server port unlocked.   */ -  static void subscr_conn_msg_event(void *usr_handle,  				  u32 port_ref,  				  struct sk_buff **buf, @@ -423,7 +390,6 @@ static void subscr_conn_msg_event(void *usr_handle,  	 * Lock subscriber's server port (& make a local copy of lock pointer,  	 * in case subscriber is deleted while processing subscription request)  	 */ -  	if (tipc_port_lock(port_ref) == NULL)  		return; @@ -451,7 +417,6 @@ static void subscr_conn_msg_event(void *usr_handle,  			 *    timeout code cannot delete the subscription,  			 * so the subscription object is still protected.  			 */ -  			tipc_nametbl_subscribe(sub);  		}  	} @@ -460,7 +425,6 @@ static void subscr_conn_msg_event(void *usr_handle,  /**   * subscr_named_msg_event - handle request to establish a new subscriber   */ -  static void subscr_named_msg_event(void *usr_handle,  				   u32 port_ref,  				   struct sk_buff **buf, @@ -474,7 +438,6 @@ static void subscr_named_msg_event(void *usr_handle,  	u32 server_port_ref;  	/* Create subscriber object */ -  	subscriber = kzalloc(sizeof(struct tipc_subscriber), GFP_ATOMIC);  	if (subscriber == NULL) {  		warn("Subscriber rejected, no memory\n"); @@ -484,7 +447,6 @@ static void subscr_named_msg_event(void *usr_handle,  	INIT_LIST_HEAD(&subscriber->subscriber_list);  	/* Create server port & establish connection to subscriber */ -  	tipc_createport(subscriber,  			importance,  			NULL, @@ -503,26 +465,21 @@ static void subscr_named_msg_event(void *usr_handle,  	tipc_connect2port(subscriber->port_ref, orig);  	/* Lock server port (& save lock address for future use) */ -  	subscriber->lock = tipc_port_lock(subscriber->port_ref)->lock;  	/* Add subscriber to topology server's subscriber list */ -  	spin_lock_bh(&topsrv.lock);  	list_add(&subscriber->subscriber_list, &topsrv.subscriber_list);  	spin_unlock_bh(&topsrv.lock);  	/* Unlock server port */ -  	server_port_ref = subscriber->port_ref;  	spin_unlock_bh(subscriber->lock);  	/* Send an ACK- to complete connection handshaking */ -  	tipc_send(server_port_ref, 0, NULL, 0);  	/* Handle optional subscription request */ -  	if (size != 0) {  		subscr_conn_msg_event(subscriber, server_port_ref,  				      buf, data, size);  |