Merge branch 'sii-m15w' into upstream
[pandora-kernel.git] / net / tipc / subscr.c
index 80e219b..c51600b 100644 (file)
@@ -86,7 +86,7 @@ static struct top_srv topsrv = { 0 };
  * Returns converted value
  */
 
-static inline u32 htohl(u32 in, int swap)
+static u32 htohl(u32 in, int swap)
 {
        char *c = (char *)∈
 
@@ -118,14 +118,14 @@ static void subscr_send_event(struct subscription *sub,
 }
 
 /**
- * subscr_overlap - test for subscription overlap with the given values
+ * tipc_subscr_overlap - test for subscription overlap with the given values
  *
  * Returns 1 if there is overlap, otherwise 0.
  */
 
-int subscr_overlap(struct subscription *sub, 
-                  u32 found_lower, 
-                  u32 found_upper)
+int tipc_subscr_overlap(struct subscription *sub, 
+                       u32 found_lower, 
+                       u32 found_upper)
 
 {
        if (found_lower < sub->seq.lower)
@@ -138,22 +138,22 @@ int subscr_overlap(struct subscription *sub,
 }
 
 /**
- * subscr_report_overlap - issue event if there is subscription overlap
+ * tipc_subscr_report_overlap - issue event if there is subscription overlap
  * 
  * Protected by nameseq.lock in name_table.c
  */
 
-void subscr_report_overlap(struct subscription *sub, 
-                          u32 found_lower, 
-                          u32 found_upper,
-                          u32 event, 
-                          u32 port_ref, 
-                          u32 node,
-                          int must)
+void tipc_subscr_report_overlap(struct subscription *sub, 
+                               u32 found_lower, 
+                               u32 found_upper,
+                               u32 event, 
+                               u32 port_ref, 
+                               u32 node,
+                               int must)
 {
        dbg("Rep overlap %u:%u,%u<->%u,%u\n", sub->seq.type, sub->seq.lower,
            sub->seq.upper, found_lower, found_upper);
-       if (!subscr_overlap(sub, found_lower, found_upper))
+       if (!tipc_subscr_overlap(sub, found_lower, found_upper))
                return;
        if (!must && (sub->filter != TIPC_SUB_PORTS))
                return;
@@ -172,13 +172,13 @@ static void subscr_timeout(struct subscription *sub)
        /* Validate subscriber reference (in case subscriber is terminating) */
 
        subscriber_ref = sub->owner->ref;
-       subscriber = (struct subscriber *)ref_lock(subscriber_ref);
+       subscriber = (struct subscriber *)tipc_ref_lock(subscriber_ref);
        if (subscriber == NULL)
                return;
 
        /* Unlink subscription from name table */
 
-       nametbl_unsubscribe(sub);
+       tipc_nametbl_unsubscribe(sub);
 
        /* Notify subscriber of timeout, then unlink subscription */
 
@@ -192,7 +192,7 @@ static void subscr_timeout(struct subscription *sub)
 
        /* Now destroy subscription */
 
-       ref_unlock(subscriber_ref);
+       tipc_ref_unlock(subscriber_ref);
        k_term_timer(&sub->timer);
        kfree(sub);
        atomic_dec(&topsrv.subscription_count);
@@ -216,7 +216,7 @@ static void subscr_terminate(struct subscriber *subscriber)
 
        /* Invalidate subscriber reference */
 
-       ref_discard(subscriber->ref);
+       tipc_ref_discard(subscriber->ref);
        spin_unlock_bh(subscriber->lock);
 
        /* Destroy any existing subscriptions for subscriber */
@@ -227,7 +227,7 @@ static void subscr_terminate(struct subscriber *subscriber)
                        k_cancel_timer(&sub->timer);
                        k_term_timer(&sub->timer);
                }
-               nametbl_unsubscribe(sub);
+               tipc_nametbl_unsubscribe(sub);
                list_del(&sub->subscription_list);
                dbg("Term: Removed sub %u,%u,%u from subscriber %x list\n",
                    sub->seq.type, sub->seq.lower, sub->seq.upper, subscriber);
@@ -266,7 +266,8 @@ static void subscr_subscribe(struct tipc_subscr *s,
        /* Refuse subscription if global limit exceeded */
 
        if (atomic_read(&topsrv.subscription_count) >= tipc_max_subscriptions) {
-               warn("Failed: max %u subscriptions\n", tipc_max_subscriptions);
+               warn("Subscription rejected, subscription limit reached (%u)\n",
+                    tipc_max_subscriptions);
                subscr_terminate(subscriber);
                return;
        }
@@ -274,8 +275,8 @@ static void subscr_subscribe(struct tipc_subscr *s,
        /* Allocate subscription object */
 
        sub = kmalloc(sizeof(*sub), GFP_ATOMIC);
-       if (sub == NULL) {
-               warn("Memory squeeze; ignoring subscription\n");
+       if (!sub) {
+               warn("Subscription rejected, no memory\n");
                subscr_terminate(subscriber);
                return;
        }
@@ -298,8 +299,7 @@ static void subscr_subscribe(struct tipc_subscr *s,
        if ((((sub->filter != TIPC_SUB_PORTS) 
              && (sub->filter != TIPC_SUB_SERVICE)))
            || (sub->seq.lower > sub->seq.upper)) {
-               warn("Rejecting illegal subscription %u,%u,%u\n",
-                    sub->seq.type, sub->seq.lower, sub->seq.upper);
+               warn("Subscription rejected, illegal request\n");
                kfree(sub);
                subscr_terminate(subscriber);
                return;
@@ -315,7 +315,7 @@ static void subscr_subscribe(struct tipc_subscr *s,
                k_start_timer(&sub->timer, sub->timeout);
        }
        sub->owner = subscriber;
-       nametbl_subscribe(sub);
+       tipc_nametbl_subscribe(sub);
 }
 
 /**
@@ -332,7 +332,7 @@ static void subscr_conn_shutdown_event(void *usr_handle,
        struct subscriber *subscriber;
        spinlock_t *subscriber_lock;
 
-       subscriber = ref_lock((u32)(unsigned long)usr_handle);
+       subscriber = tipc_ref_lock((u32)(unsigned long)usr_handle);
        if (subscriber == NULL)
                return;
 
@@ -354,7 +354,7 @@ static void subscr_conn_msg_event(void *usr_handle,
        struct subscriber *subscriber;
        spinlock_t *subscriber_lock;
 
-       subscriber = ref_lock((u32)(unsigned long)usr_handle);
+       subscriber = tipc_ref_lock((u32)(unsigned long)usr_handle);
        if (subscriber == NULL)
                return;
 
@@ -381,29 +381,28 @@ static void subscr_named_msg_event(void *usr_handle,
                                   struct tipc_name_seq const *dest)
 {
        struct subscriber *subscriber;
-       struct iovec msg_sect = {0, 0};
+       struct iovec msg_sect = {NULL, 0};
        spinlock_t *subscriber_lock;
 
        dbg("subscr_named_msg_event: orig = %x own = %x,\n",
            orig->node, tipc_own_addr);
        if (size && (size != sizeof(struct tipc_subscr))) {
-               warn("Received tipc_subscr of invalid size\n");
+               warn("Subscriber rejected, invalid subscription size\n");
                return;
        }
 
        /* Create subscriber object */
 
-       subscriber = kmalloc(sizeof(struct subscriber), GFP_ATOMIC);
+       subscriber = kzalloc(sizeof(struct subscriber), GFP_ATOMIC);
        if (subscriber == NULL) {
-               warn("Memory squeeze; ignoring subscriber setup\n");
+               warn("Subscriber rejected, no memory\n");
                return;
        }
-       memset(subscriber, 0, sizeof(struct subscriber));
        INIT_LIST_HEAD(&subscriber->subscription_list);
        INIT_LIST_HEAD(&subscriber->subscriber_list);
-       subscriber->ref = ref_acquire(subscriber, &subscriber->lock);
+       subscriber->ref = tipc_ref_acquire(subscriber, &subscriber->lock);
        if (subscriber->ref == 0) {
-               warn("Failed to acquire subscriber reference\n");
+               warn("Subscriber rejected, reference table exhausted\n");
                kfree(subscriber);
                return;
        }
@@ -413,17 +412,17 @@ static void subscr_named_msg_event(void *usr_handle,
        tipc_createport(topsrv.user_ref,
                        (void *)(unsigned long)subscriber->ref,
                        importance,
-                       0,
-                       0,
+                       NULL,
+                       NULL,
                        subscr_conn_shutdown_event,
-                       0,
-                       0,
+                       NULL,
+                       NULL,
                        subscr_conn_msg_event,
-                       0,
+                       NULL,
                        &subscriber->port_ref);
        if (subscriber->port_ref == 0) {
-               warn("Memory squeeze; failed to create subscription port\n");
-               ref_discard(subscriber->ref);
+               warn("Subscriber rejected, unable to create port\n");
+               tipc_ref_discard(subscriber->ref);
                kfree(subscriber);
                return;
        }
@@ -432,7 +431,7 @@ static void subscr_named_msg_event(void *usr_handle,
 
        /* Add subscriber to topology server's subscriber list */
 
-       ref_lock(subscriber->ref);
+       tipc_ref_lock(subscriber->ref);
        spin_lock_bh(&topsrv.lock);
        list_add(&subscriber->subscriber_list, &topsrv.subscriber_list);
        spin_unlock_bh(&topsrv.lock);
@@ -451,37 +450,37 @@ static void subscr_named_msg_event(void *usr_handle,
        spin_unlock_bh(subscriber_lock);
 }
 
-int subscr_start(void)
+int tipc_subscr_start(void)
 {
        struct tipc_name_seq seq = {TIPC_TOP_SRV, TIPC_TOP_SRV, TIPC_TOP_SRV};
        int res = -1;
 
        memset(&topsrv, 0, sizeof (topsrv));
-       topsrv.lock = SPIN_LOCK_UNLOCKED;
+       spin_lock_init(&topsrv.lock);
        INIT_LIST_HEAD(&topsrv.subscriber_list);
 
        spin_lock_bh(&topsrv.lock);
-       res = tipc_attach(&topsrv.user_ref, 0, 0);
+       res = tipc_attach(&topsrv.user_ref, NULL, NULL);
        if (res) {
                spin_unlock_bh(&topsrv.lock);
                return res;
        }
 
        res = tipc_createport(topsrv.user_ref,
-                             0,
+                             NULL,
                              TIPC_CRITICAL_IMPORTANCE,
-                             0,
-                             0,
-                             0,
-                             0,
+                             NULL,
+                             NULL,
+                             NULL,
+                             NULL,
                              subscr_named_msg_event,
-                             0,
-                             0,
+                             NULL,
+                             NULL,
                              &topsrv.setup_port);
        if (res)
                goto failed;
 
-       res = nametbl_publish_rsv(topsrv.setup_port, TIPC_NODE_SCOPE, &seq);
+       res = tipc_nametbl_publish_rsv(topsrv.setup_port, TIPC_NODE_SCOPE, &seq);
        if (res)
                goto failed;
 
@@ -496,7 +495,7 @@ failed:
        return res;
 }
 
-void subscr_stop(void)
+void tipc_subscr_stop(void)
 {
        struct subscriber *subscriber;
        struct subscriber *subscriber_temp;
@@ -507,7 +506,7 @@ void subscr_stop(void)
                list_for_each_entry_safe(subscriber, subscriber_temp, 
                                         &topsrv.subscriber_list,
                                         subscriber_list) {
-                       ref_lock(subscriber->ref);
+                       tipc_ref_lock(subscriber->ref);
                        subscriber_lock = subscriber->lock;
                        subscr_terminate(subscriber);
                        spin_unlock_bh(subscriber_lock);
@@ -522,6 +521,6 @@ int tipc_ispublished(struct tipc_name const *name)
 {
        u32 domain = 0;
 
-       return(nametbl_translate(name->type, name->instance,&domain) != 0);
+       return(tipc_nametbl_translate(name->type, name->instance,&domain) != 0);
 }