Commit c4307285 authored by YOSHIFUJI Hideaki's avatar YOSHIFUJI Hideaki Committed by David S. Miller

[NET] TIPC: Fix whitespace errors.

Signed-off-by: default avatarYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent cca5172a
/* /*
* net/tipc/addr.c: TIPC address utility routines * net/tipc/addr.c: TIPC address utility routines
* *
* Copyright (c) 2000-2006, Ericsson AB * Copyright (c) 2000-2006, Ericsson AB
* Copyright (c) 2004-2005, Wind River Systems * Copyright (c) 2004-2005, Wind River Systems
* All rights reserved. * All rights reserved.
...@@ -48,10 +48,10 @@ u32 tipc_get_addr(void) ...@@ -48,10 +48,10 @@ u32 tipc_get_addr(void)
/** /**
* tipc_addr_domain_valid - validates a network domain address * tipc_addr_domain_valid - validates a network domain address
* *
* Accepts <Z.C.N>, <Z.C.0>, <Z.0.0>, and <0.0.0>, * Accepts <Z.C.N>, <Z.C.0>, <Z.0.0>, and <0.0.0>,
* where Z, C, and N are non-zero and do not exceed the configured limits. * where Z, C, and N are non-zero and do not exceed the configured limits.
* *
* Returns 1 if domain address is valid, otherwise 0 * Returns 1 if domain address is valid, otherwise 0
*/ */
...@@ -80,10 +80,10 @@ int tipc_addr_domain_valid(u32 addr) ...@@ -80,10 +80,10 @@ int tipc_addr_domain_valid(u32 addr)
/** /**
* tipc_addr_node_valid - validates a proposed network address for this node * tipc_addr_node_valid - validates a proposed network address for this node
* *
* Accepts <Z.C.N>, where Z, C, and N are non-zero and do not exceed * Accepts <Z.C.N>, where Z, C, and N are non-zero and do not exceed
* the configured limits. * the configured limits.
* *
* Returns 1 if address can be used, otherwise 0 * Returns 1 if address can be used, otherwise 0
*/ */
......
/* /*
* net/tipc/addr.h: Include file for TIPC address utility routines * net/tipc/addr.h: Include file for TIPC address utility routines
* *
* Copyright (c) 2000-2006, Ericsson AB * Copyright (c) 2000-2006, Ericsson AB
* Copyright (c) 2004-2005, Wind River Systems * Copyright (c) 2004-2005, Wind River Systems
* All rights reserved. * All rights reserved.
...@@ -100,8 +100,8 @@ static inline int addr_scope(u32 domain) ...@@ -100,8 +100,8 @@ static inline int addr_scope(u32 domain)
/** /**
* addr_domain - convert 2-bit scope value to equivalent message lookup domain * addr_domain - convert 2-bit scope value to equivalent message lookup domain
* *
* Needed when address of a named message must be looked up a second time * Needed when address of a named message must be looked up a second time
* after a network hop. * after a network hop.
*/ */
......
/* /*
* net/tipc/bcast.c: TIPC broadcast code * net/tipc/bcast.c: TIPC broadcast code
* *
* Copyright (c) 2004-2006, Ericsson AB * Copyright (c) 2004-2006, Ericsson AB
* Copyright (c) 2004, Intel Corporation. * Copyright (c) 2004, Intel Corporation.
* Copyright (c) 2005, Wind River Systems * Copyright (c) 2005, Wind River Systems
...@@ -59,15 +59,15 @@ ...@@ -59,15 +59,15 @@
* Loss rate for incoming broadcast frames; used to test retransmission code. * Loss rate for incoming broadcast frames; used to test retransmission code.
* Set to N to cause every N'th frame to be discarded; 0 => don't discard any. * Set to N to cause every N'th frame to be discarded; 0 => don't discard any.
*/ */
#define TIPC_BCAST_LOSS_RATE 0 #define TIPC_BCAST_LOSS_RATE 0
/** /**
* struct bcbearer_pair - a pair of bearers used by broadcast link * struct bcbearer_pair - a pair of bearers used by broadcast link
* @primary: pointer to primary bearer * @primary: pointer to primary bearer
* @secondary: pointer to secondary bearer * @secondary: pointer to secondary bearer
* *
* Bearers must have same priority and same set of reachable destinations * Bearers must have same priority and same set of reachable destinations
* to be paired. * to be paired.
*/ */
...@@ -84,7 +84,7 @@ struct bcbearer_pair { ...@@ -84,7 +84,7 @@ struct bcbearer_pair {
* @bpairs_temp: temporary array of bearer pairs used by tipc_bcbearer_sort() * @bpairs_temp: temporary array of bearer pairs used by tipc_bcbearer_sort()
* @remains: temporary node map used by tipc_bcbearer_send() * @remains: temporary node map used by tipc_bcbearer_send()
* @remains_new: temporary node map used tipc_bcbearer_send() * @remains_new: temporary node map used tipc_bcbearer_send()
* *
* Note: The fields labelled "temporary" are incorporated into the bearer * Note: The fields labelled "temporary" are incorporated into the bearer
* to avoid consuming potentially limited stack space through the use of * to avoid consuming potentially limited stack space through the use of
* large local variables within multicast routines. Concurrent access is * large local variables within multicast routines. Concurrent access is
...@@ -104,7 +104,7 @@ struct bcbearer { ...@@ -104,7 +104,7 @@ struct bcbearer {
* struct bclink - link used for broadcast messages * struct bclink - link used for broadcast messages
* @link: (non-standard) broadcast link structure * @link: (non-standard) broadcast link structure
* @node: (non-standard) node structure representing b'cast link's peer node * @node: (non-standard) node structure representing b'cast link's peer node
* *
* Handles sequence numbering, fragmentation, bundling, etc. * Handles sequence numbering, fragmentation, bundling, etc.
*/ */
...@@ -125,7 +125,7 @@ char tipc_bclink_name[] = "multicast-link"; ...@@ -125,7 +125,7 @@ char tipc_bclink_name[] = "multicast-link";
static u32 buf_seqno(struct sk_buff *buf) static u32 buf_seqno(struct sk_buff *buf)
{ {
return msg_seqno(buf_msg(buf)); return msg_seqno(buf_msg(buf));
} }
static u32 bcbuf_acks(struct sk_buff *buf) static u32 bcbuf_acks(struct sk_buff *buf)
{ {
...@@ -143,9 +143,9 @@ static void bcbuf_decr_acks(struct sk_buff *buf) ...@@ -143,9 +143,9 @@ static void bcbuf_decr_acks(struct sk_buff *buf)
} }
/** /**
* bclink_set_gap - set gap according to contents of current deferred pkt queue * bclink_set_gap - set gap according to contents of current deferred pkt queue
* *
* Called with 'node' locked, bc_lock unlocked * Called with 'node' locked, bc_lock unlocked
*/ */
...@@ -159,14 +159,14 @@ static void bclink_set_gap(struct node *n_ptr) ...@@ -159,14 +159,14 @@ static void bclink_set_gap(struct node *n_ptr)
n_ptr->bclink.gap_to = mod(buf_seqno(buf) - 1); n_ptr->bclink.gap_to = mod(buf_seqno(buf) - 1);
} }
/** /**
* bclink_ack_allowed - test if ACK or NACK message can be sent at this moment * bclink_ack_allowed - test if ACK or NACK message can be sent at this moment
* *
* This mechanism endeavours to prevent all nodes in network from trying * This mechanism endeavours to prevent all nodes in network from trying
* to ACK or NACK at the same time. * to ACK or NACK at the same time.
* *
* Note: TIPC uses a different trigger to distribute ACKs than it does to * Note: TIPC uses a different trigger to distribute ACKs than it does to
* distribute NACKs, but tries to use the same spacing (divide by 16). * distribute NACKs, but tries to use the same spacing (divide by 16).
*/ */
static int bclink_ack_allowed(u32 n) static int bclink_ack_allowed(u32 n)
...@@ -175,11 +175,11 @@ static int bclink_ack_allowed(u32 n) ...@@ -175,11 +175,11 @@ static int bclink_ack_allowed(u32 n)
} }
/** /**
* bclink_retransmit_pkt - retransmit broadcast packets * bclink_retransmit_pkt - retransmit broadcast packets
* @after: sequence number of last packet to *not* retransmit * @after: sequence number of last packet to *not* retransmit
* @to: sequence number of last packet to retransmit * @to: sequence number of last packet to retransmit
* *
* Called with bc_lock locked * Called with bc_lock locked
*/ */
...@@ -189,16 +189,16 @@ static void bclink_retransmit_pkt(u32 after, u32 to) ...@@ -189,16 +189,16 @@ static void bclink_retransmit_pkt(u32 after, u32 to)
buf = bcl->first_out; buf = bcl->first_out;
while (buf && less_eq(buf_seqno(buf), after)) { while (buf && less_eq(buf_seqno(buf), after)) {
buf = buf->next; buf = buf->next;
} }
tipc_link_retransmit(bcl, buf, mod(to - after)); tipc_link_retransmit(bcl, buf, mod(to - after));
} }
/** /**
* tipc_bclink_acknowledge - handle acknowledgement of broadcast packets * tipc_bclink_acknowledge - handle acknowledgement of broadcast packets
* @n_ptr: node that sent acknowledgement info * @n_ptr: node that sent acknowledgement info
* @acked: broadcast sequence # that has been acknowledged * @acked: broadcast sequence # that has been acknowledged
* *
* Node is locked, bc_lock unlocked. * Node is locked, bc_lock unlocked.
*/ */
...@@ -244,9 +244,9 @@ void tipc_bclink_acknowledge(struct node *n_ptr, u32 acked) ...@@ -244,9 +244,9 @@ void tipc_bclink_acknowledge(struct node *n_ptr, u32 acked)
spin_unlock_bh(&bc_lock); spin_unlock_bh(&bc_lock);
} }
/** /**
* bclink_send_ack - unicast an ACK msg * bclink_send_ack - unicast an ACK msg
* *
* tipc_net_lock and node lock set * tipc_net_lock and node lock set
*/ */
...@@ -258,9 +258,9 @@ static void bclink_send_ack(struct node *n_ptr) ...@@ -258,9 +258,9 @@ static void bclink_send_ack(struct node *n_ptr)
tipc_link_send_proto_msg(l_ptr, STATE_MSG, 0, 0, 0, 0, 0); tipc_link_send_proto_msg(l_ptr, STATE_MSG, 0, 0, 0, 0, 0);
} }
/** /**
* bclink_send_nack- broadcast a NACK msg * bclink_send_nack- broadcast a NACK msg
* *
* tipc_net_lock and node lock set * tipc_net_lock and node lock set
*/ */
...@@ -278,7 +278,7 @@ static void bclink_send_nack(struct node *n_ptr) ...@@ -278,7 +278,7 @@ static void bclink_send_nack(struct node *n_ptr)
msg_init(msg, BCAST_PROTOCOL, STATE_MSG, msg_init(msg, BCAST_PROTOCOL, STATE_MSG,
TIPC_OK, INT_H_SIZE, n_ptr->addr); TIPC_OK, INT_H_SIZE, n_ptr->addr);
msg_set_mc_netid(msg, tipc_net_id); msg_set_mc_netid(msg, tipc_net_id);
msg_set_bcast_ack(msg, mod(n_ptr->bclink.last_in)); msg_set_bcast_ack(msg, mod(n_ptr->bclink.last_in));
msg_set_bcgap_after(msg, n_ptr->bclink.gap_after); msg_set_bcgap_after(msg, n_ptr->bclink.gap_after);
msg_set_bcgap_to(msg, n_ptr->bclink.gap_to); msg_set_bcgap_to(msg, n_ptr->bclink.gap_to);
msg_set_bcast_tag(msg, tipc_own_tag); msg_set_bcast_tag(msg, tipc_own_tag);
...@@ -292,17 +292,17 @@ static void bclink_send_nack(struct node *n_ptr) ...@@ -292,17 +292,17 @@ static void bclink_send_nack(struct node *n_ptr)
bcl->stats.bearer_congs++; bcl->stats.bearer_congs++;
} }
/* /*
* Ensure we doesn't send another NACK msg to the node * Ensure we doesn't send another NACK msg to the node
* until 16 more deferred messages arrive from it * until 16 more deferred messages arrive from it
* (i.e. helps prevent all nodes from NACK'ing at same time) * (i.e. helps prevent all nodes from NACK'ing at same time)
*/ */
n_ptr->bclink.nack_sync = tipc_own_tag; n_ptr->bclink.nack_sync = tipc_own_tag;
} }
} }
/** /**
* tipc_bclink_check_gap - send a NACK if a sequence gap exists * tipc_bclink_check_gap - send a NACK if a sequence gap exists
* *
* tipc_net_lock and node lock set * tipc_net_lock and node lock set
...@@ -320,9 +320,9 @@ void tipc_bclink_check_gap(struct node *n_ptr, u32 last_sent) ...@@ -320,9 +320,9 @@ void tipc_bclink_check_gap(struct node *n_ptr, u32 last_sent)
bclink_send_nack(n_ptr); bclink_send_nack(n_ptr);
} }
/** /**
* tipc_bclink_peek_nack - process a NACK msg meant for another node * tipc_bclink_peek_nack - process a NACK msg meant for another node
* *
* Only tipc_net_lock set. * Only tipc_net_lock set.
*/ */
...@@ -349,7 +349,7 @@ static void tipc_bclink_peek_nack(u32 dest, u32 sender_tag, u32 gap_after, u32 g ...@@ -349,7 +349,7 @@ static void tipc_bclink_peek_nack(u32 dest, u32 sender_tag, u32 gap_after, u32 g
if (less_eq(my_to, gap_to)) if (less_eq(my_to, gap_to))
n_ptr->bclink.gap_to = gap_after; n_ptr->bclink.gap_to = gap_after;
} else { } else {
/* /*
* Expand gap if missing bufs not in deferred queue: * Expand gap if missing bufs not in deferred queue:
*/ */
struct sk_buff *buf = n_ptr->bclink.deferred_head; struct sk_buff *buf = n_ptr->bclink.deferred_head;
...@@ -371,7 +371,7 @@ static void tipc_bclink_peek_nack(u32 dest, u32 sender_tag, u32 gap_after, u32 g ...@@ -371,7 +371,7 @@ static void tipc_bclink_peek_nack(u32 dest, u32 sender_tag, u32 gap_after, u32 g
} }
/* /*
* Some nodes may send a complementary NACK now: * Some nodes may send a complementary NACK now:
*/ */
if (bclink_ack_allowed(sender_tag + 1)) { if (bclink_ack_allowed(sender_tag + 1)) {
if (n_ptr->bclink.gap_to != n_ptr->bclink.gap_after) { if (n_ptr->bclink.gap_to != n_ptr->bclink.gap_after) {
bclink_send_nack(n_ptr); bclink_send_nack(n_ptr);
...@@ -408,7 +408,7 @@ int tipc_bclink_send_msg(struct sk_buff *buf) ...@@ -408,7 +408,7 @@ int tipc_bclink_send_msg(struct sk_buff *buf)
/** /**
* tipc_bclink_recv_pkt - receive a broadcast packet, and deliver upwards * tipc_bclink_recv_pkt - receive a broadcast packet, and deliver upwards
* *
* tipc_net_lock is read_locked, no other locks set * tipc_net_lock is read_locked, no other locks set
*/ */
...@@ -425,7 +425,7 @@ void tipc_bclink_recv_pkt(struct sk_buff *buf) ...@@ -425,7 +425,7 @@ void tipc_bclink_recv_pkt(struct sk_buff *buf)
msg_dbg(msg, "<BC<<<"); msg_dbg(msg, "<BC<<<");
if (unlikely(!node || !tipc_node_is_up(node) || !node->bclink.supported || if (unlikely(!node || !tipc_node_is_up(node) || !node->bclink.supported ||
(msg_mc_netid(msg) != tipc_net_id))) { (msg_mc_netid(msg) != tipc_net_id))) {
buf_discard(buf); buf_discard(buf);
return; return;
...@@ -443,7 +443,7 @@ void tipc_bclink_recv_pkt(struct sk_buff *buf) ...@@ -443,7 +443,7 @@ void tipc_bclink_recv_pkt(struct sk_buff *buf)
bclink_retransmit_pkt(msg_bcgap_after(msg), bclink_retransmit_pkt(msg_bcgap_after(msg),
msg_bcgap_to(msg)); msg_bcgap_to(msg));
bcl->owner->next = NULL; bcl->owner->next = NULL;
spin_unlock_bh(&bc_lock); spin_unlock_bh(&bc_lock);
} else { } else {
tipc_bclink_peek_nack(msg_destnode(msg), tipc_bclink_peek_nack(msg_destnode(msg),
msg_bcast_tag(msg), msg_bcast_tag(msg),
...@@ -547,10 +547,10 @@ u32 tipc_bclink_acks_missing(struct node *n_ptr) ...@@ -547,10 +547,10 @@ u32 tipc_bclink_acks_missing(struct node *n_ptr)
/** /**
* tipc_bcbearer_send - send a packet through the broadcast pseudo-bearer * tipc_bcbearer_send - send a packet through the broadcast pseudo-bearer
* *
* Send through as many bearers as necessary to reach all nodes * Send through as many bearers as necessary to reach all nodes
* that support TIPC multicasting. * that support TIPC multicasting.
* *
* Returns 0 if packet sent successfully, non-zero if not * Returns 0 if packet sent successfully, non-zero if not
*/ */
...@@ -581,7 +581,7 @@ static int tipc_bcbearer_send(struct sk_buff *buf, ...@@ -581,7 +581,7 @@ static int tipc_bcbearer_send(struct sk_buff *buf,
send_count = 0; send_count = 0;
/* Send buffer over bearers until all targets reached */ /* Send buffer over bearers until all targets reached */
bcbearer->remains = tipc_cltr_bcast_nodes; bcbearer->remains = tipc_cltr_bcast_nodes;
for (bp_index = 0; bp_index < MAX_BEARERS; bp_index++) { for (bp_index = 0; bp_index < MAX_BEARERS; bp_index++) {
...@@ -615,7 +615,7 @@ static int tipc_bcbearer_send(struct sk_buff *buf, ...@@ -615,7 +615,7 @@ static int tipc_bcbearer_send(struct sk_buff *buf,
bcbearer->remains = bcbearer->remains_new; bcbearer->remains = bcbearer->remains_new;
} }
/* Unable to reach all targets */ /* Unable to reach all targets */
bcbearer->bearer.publ.blocked = 1; bcbearer->bearer.publ.blocked = 1;
...@@ -682,7 +682,7 @@ void tipc_bcbearer_sort(void) ...@@ -682,7 +682,7 @@ void tipc_bcbearer_sort(void)
/** /**
* tipc_bcbearer_push - resolve bearer congestion * tipc_bcbearer_push - resolve bearer congestion
* *
* Forces bclink to push out any unsent packets, until all packets are gone * Forces bclink to push out any unsent packets, until all packets are gone
* or congestion reoccurs. * or congestion reoccurs.
* No locks set when function called * No locks set when function called
...@@ -714,27 +714,27 @@ int tipc_bclink_stats(char *buf, const u32 buf_size) ...@@ -714,27 +714,27 @@ int tipc_bclink_stats(char *buf, const u32 buf_size)
spin_lock_bh(&bc_lock); spin_lock_bh(&bc_lock);
tipc_printf(&pb, "Link <%s>\n" tipc_printf(&pb, "Link <%s>\n"
" Window:%u packets\n", " Window:%u packets\n",
bcl->name, bcl->queue_limit[0]); bcl->name, bcl->queue_limit[0]);
tipc_printf(&pb, " RX packets:%u fragments:%u/%u bundles:%u/%u\n", tipc_printf(&pb, " RX packets:%u fragments:%u/%u bundles:%u/%u\n",
bcl->stats.recv_info, bcl->stats.recv_info,
bcl->stats.recv_fragments, bcl->stats.recv_fragments,
bcl->stats.recv_fragmented, bcl->stats.recv_fragmented,
bcl->stats.recv_bundles, bcl->stats.recv_bundles,
bcl->stats.recv_bundled); bcl->stats.recv_bundled);
tipc_printf(&pb, " TX packets:%u fragments:%u/%u bundles:%u/%u\n", tipc_printf(&pb, " TX packets:%u fragments:%u/%u bundles:%u/%u\n",
bcl->stats.sent_info, bcl->stats.sent_info,
bcl->stats.sent_fragments, bcl->stats.sent_fragments,
bcl->stats.sent_fragmented, bcl->stats.sent_fragmented,
bcl->stats.sent_bundles, bcl->stats.sent_bundles,
bcl->stats.sent_bundled); bcl->stats.sent_bundled);
tipc_printf(&pb, " RX naks:%u defs:%u dups:%u\n", tipc_printf(&pb, " RX naks:%u defs:%u dups:%u\n",
bcl->stats.recv_nacks, bcl->stats.recv_nacks,
bcl->stats.deferred_recv, bcl->stats.deferred_recv,
bcl->stats.duplicates); bcl->stats.duplicates);
tipc_printf(&pb, " TX naks:%u acks:%u dups:%u\n", tipc_printf(&pb, " TX naks:%u acks:%u dups:%u\n",
bcl->stats.sent_nacks, bcl->stats.sent_nacks,
bcl->stats.sent_acks, bcl->stats.sent_acks,
bcl->stats.retransmitted); bcl->stats.retransmitted);
tipc_printf(&pb, " Congestion bearer:%u link:%u Send queue max:%u avg:%u\n", tipc_printf(&pb, " Congestion bearer:%u link:%u Send queue max:%u avg:%u\n",
bcl->stats.bearer_congs, bcl->stats.bearer_congs,
...@@ -778,7 +778,7 @@ int tipc_bclink_init(void) ...@@ -778,7 +778,7 @@ int tipc_bclink_init(void)
bclink = kzalloc(sizeof(*bclink), GFP_ATOMIC); bclink = kzalloc(sizeof(*bclink), GFP_ATOMIC);
if (!bcbearer || !bclink) { if (!bcbearer || !bclink) {
nomem: nomem:
warn("Multicast link creation failed, no memory\n"); warn("Multicast link creation failed, no memory\n");
kfree(bcbearer); kfree(bcbearer);
bcbearer = NULL; bcbearer = NULL;
kfree(bclink); kfree(bclink);
...@@ -796,7 +796,7 @@ int tipc_bclink_init(void) ...@@ -796,7 +796,7 @@ int tipc_bclink_init(void)
bcl->next_out_no = 1; bcl->next_out_no = 1;
spin_lock_init(&bclink->node.lock); spin_lock_init(&bclink->node.lock);
bcl->owner = &bclink->node; bcl->owner = &bclink->node;
bcl->max_pkt = MAX_PKT_DEFAULT_MCAST; bcl->max_pkt = MAX_PKT_DEFAULT_MCAST;
tipc_link_set_queue_limits(bcl, BCLINK_WIN_DEFAULT); tipc_link_set_queue_limits(bcl, BCLINK_WIN_DEFAULT);
bcl->b_ptr = &bcbearer->bearer; bcl->b_ptr = &bcbearer->bearer;
bcl->state = WORKING_WORKING; bcl->state = WORKING_WORKING;
......
/* /*
* net/tipc/bcast.h: Include file for TIPC broadcast code * net/tipc/bcast.h: Include file for TIPC broadcast code
* *
* Copyright (c) 2003-2006, Ericsson AB * Copyright (c) 2003-2006, Ericsson AB
* Copyright (c) 2005, Wind River Systems * Copyright (c) 2005, Wind River Systems
* All rights reserved. * All rights reserved.
...@@ -102,7 +102,7 @@ static inline void tipc_nmap_add(struct node_map *nm_ptr, u32 node) ...@@ -102,7 +102,7 @@ static inline void tipc_nmap_add(struct node_map *nm_ptr, u32 node)
} }
} }
/** /**
* nmap_remove - remove a node from a node map * nmap_remove - remove a node from a node map
*/ */
...@@ -190,7 +190,7 @@ static inline void tipc_port_list_add(struct port_list *pl_ptr, u32 port) ...@@ -190,7 +190,7 @@ static inline void tipc_port_list_add(struct port_list *pl_ptr, u32 port)
/** /**
* port_list_free - free dynamically created entries in port_list chain * port_list_free - free dynamically created entries in port_list chain
* *
* Note: First item is on stack, so it doesn't need to be released * Note: First item is on stack, so it doesn't need to be released
*/ */
......
/* /*
* net/tipc/bearer.c: TIPC bearer code * net/tipc/bearer.c: TIPC bearer code
* *
* Copyright (c) 1996-2006, Ericsson AB * Copyright (c) 1996-2006, Ericsson AB
* Copyright (c) 2004-2006, Wind River Systems * Copyright (c) 2004-2006, Wind River Systems
* All rights reserved. * All rights reserved.
...@@ -52,7 +52,7 @@ struct bearer *tipc_bearers = NULL; ...@@ -52,7 +52,7 @@ struct bearer *tipc_bearers = NULL;
/** /**
* media_name_valid - validate media name * media_name_valid - validate media name
* *
* Returns 1 if media name is valid, otherwise 0. * Returns 1 if media name is valid, otherwise 0.
*/ */
...@@ -84,17 +84,17 @@ static struct media *media_find(const char *name) ...@@ -84,17 +84,17 @@ static struct media *media_find(const char *name)
/** /**
* tipc_register_media - register a media type * tipc_register_media - register a media type
* *
* Bearers for this media type must be activated separately at a later stage. * Bearers for this media type must be activated separately at a later stage.
*/ */
int tipc_register_media(u32 media_type, int tipc_register_media(u32 media_type,
char *name, char *name,
int (*enable)(struct tipc_bearer *), int (*enable)(struct tipc_bearer *),
void (*disable)(struct tipc_bearer *), void (*disable)(struct tipc_bearer *),
int (*send_msg)(struct sk_buff *, int (*send_msg)(struct sk_buff *,
struct tipc_bearer *, struct tipc_bearer *,
struct tipc_media_addr *), struct tipc_media_addr *),
char *(*addr2str)(struct tipc_media_addr *a, char *(*addr2str)(struct tipc_media_addr *a,
char *str_buf, int str_size), char *str_buf, int str_size),
struct tipc_media_addr *bcast_addr, struct tipc_media_addr *bcast_addr,
...@@ -121,11 +121,11 @@ int tipc_register_media(u32 media_type, ...@@ -121,11 +121,11 @@ int tipc_register_media(u32 media_type,
} }
if ((bearer_priority < TIPC_MIN_LINK_PRI) && if ((bearer_priority < TIPC_MIN_LINK_PRI) &&
(bearer_priority > TIPC_MAX_LINK_PRI)) { (bearer_priority > TIPC_MAX_LINK_PRI)) {
warn("Media <%s> rejected, illegal priority (%u)\n", name, warn("Media <%s> rejected, illegal priority (%u)\n", name,
bearer_priority); bearer_priority);
goto exit; goto exit;
} }
if ((link_tolerance < TIPC_MIN_LINK_TOL) || if ((link_tolerance < TIPC_MIN_LINK_TOL) ||
(link_tolerance > TIPC_MAX_LINK_TOL)) { (link_tolerance > TIPC_MAX_LINK_TOL)) {
warn("Media <%s> rejected, illegal tolerance (%u)\n", name, warn("Media <%s> rejected, illegal tolerance (%u)\n", name,
link_tolerance); link_tolerance);
...@@ -219,7 +219,7 @@ struct sk_buff *tipc_media_get_names(void) ...@@ -219,7 +219,7 @@ struct sk_buff *tipc_media_get_names(void)
read_lock_bh(&tipc_net_lock); read_lock_bh(&tipc_net_lock);
for (i = 0, m_ptr = media_list; i < media_count; i++, m_ptr++) { for (i = 0, m_ptr = media_list; i < media_count; i++, m_ptr++) {
tipc_cfg_append_tlv(buf, TIPC_TLV_MEDIA_NAME, m_ptr->name, tipc_cfg_append_tlv(buf, TIPC_TLV_MEDIA_NAME, m_ptr->name,
strlen(m_ptr->name) + 1); strlen(m_ptr->name) + 1);
} }
read_unlock_bh(&tipc_net_lock); read_unlock_bh(&tipc_net_lock);
...@@ -230,11 +230,11 @@ struct sk_buff *tipc_media_get_names(void) ...@@ -230,11 +230,11 @@ struct sk_buff *tipc_media_get_names(void)
* bearer_name_validate - validate & (optionally) deconstruct bearer name * bearer_name_validate - validate & (optionally) deconstruct bearer name
* @name - ptr to bearer name string * @name - ptr to bearer name string
* @name_parts - ptr to area for bearer name components (or NULL if not needed) * @name_parts - ptr to area for bearer name components (or NULL if not needed)
* *
* Returns 1 if bearer name is valid, otherwise 0. * Returns 1 if bearer name is valid, otherwise 0.
*/ */
static int bearer_name_validate(const char *name, static int bearer_name_validate(const char *name,
struct bearer_name *name_parts) struct bearer_name *name_parts)
{ {
char name_copy[TIPC_MAX_BEARER_NAME]; char name_copy[TIPC_MAX_BEARER_NAME];
...@@ -262,8 +262,8 @@ static int bearer_name_validate(const char *name, ...@@ -262,8 +262,8 @@ static int bearer_name_validate(const char *name,
/* validate component parts of bearer name */ /* validate component parts of bearer name */
if ((media_len <= 1) || (media_len > TIPC_MAX_MEDIA_NAME) || if ((media_len <= 1) || (media_len > TIPC_MAX_MEDIA_NAME) ||
(if_len <= 1) || (if_len > TIPC_MAX_IF_NAME) || (if_len <= 1) || (if_len > TIPC_MAX_IF_NAME) ||
(strspn(media_name, tipc_alphabet) != (media_len - 1)) || (strspn(media_name, tipc_alphabet) != (media_len - 1)) ||
(strspn(if_name, tipc_alphabet) != (if_len - 1))) (strspn(if_name, tipc_alphabet) != (if_len - 1)))
return 0; return 0;
...@@ -336,8 +336,8 @@ struct sk_buff *tipc_bearer_get_names(void) ...@@ -336,8 +336,8 @@ struct sk_buff *tipc_bearer_get_names(void)
for (j = 0; j < MAX_BEARERS; j++) { for (j = 0; j < MAX_BEARERS; j++) {
b_ptr = &tipc_bearers[j]; b_ptr = &tipc_bearers[j];
if (b_ptr->active && (b_ptr->media == m_ptr)) { if (b_ptr->active && (b_ptr->media == m_ptr)) {
tipc_cfg_append_tlv(buf, TIPC_TLV_BEARER_NAME, tipc_cfg_append_tlv(buf, TIPC_TLV_BEARER_NAME,
b_ptr->publ.name, b_ptr->publ.name,
strlen(b_ptr->publ.name) + 1); strlen(b_ptr->publ.name) + 1);
} }
} }
...@@ -401,8 +401,8 @@ void tipc_bearer_lock_push(struct bearer *b_ptr) ...@@ -401,8 +401,8 @@ void tipc_bearer_lock_push(struct bearer *b_ptr)
/* /*
* Interrupt enabling new requests after bearer congestion or blocking: * Interrupt enabling new requests after bearer congestion or blocking:
* See bearer_send(). * See bearer_send().
*/ */
void tipc_continue(struct tipc_bearer *tb_ptr) void tipc_continue(struct tipc_bearer *tb_ptr)
{ {
...@@ -417,9 +417,9 @@ void tipc_continue(struct tipc_bearer *tb_ptr) ...@@ -417,9 +417,9 @@ void tipc_continue(struct tipc_bearer *tb_ptr)
} }
/* /*
* Schedule link for sending of messages after the bearer * Schedule link for sending of messages after the bearer
* has been deblocked by 'continue()'. This method is called * has been deblocked by 'continue()'. This method is called
* when somebody tries to send a message via this link while * when somebody tries to send a message via this link while
* the bearer is congested. 'tipc_net_lock' is in read_lock here * the bearer is congested. 'tipc_net_lock' is in read_lock here
* bearer.lock is busy * bearer.lock is busy
*/ */
...@@ -430,9 +430,9 @@ static void tipc_bearer_schedule_unlocked(struct bearer *b_ptr, struct link *l_p ...@@ -430,9 +430,9 @@ static void tipc_bearer_schedule_unlocked(struct bearer *b_ptr, struct link *l_p
} }
/* /*
* Schedule link for sending of messages after the bearer * Schedule link for sending of messages after the bearer
* has been deblocked by 'continue()'. This method is called * has been deblocked by 'continue()'. This method is called
* when somebody tries to send a message via this link while * when somebody tries to send a message via this link while
* the bearer is congested. 'tipc_net_lock' is in read_lock here, * the bearer is congested. 'tipc_net_lock' is in read_lock here,
* bearer.lock is free * bearer.lock is free
*/ */
...@@ -468,7 +468,7 @@ int tipc_bearer_resolve_congestion(struct bearer *b_ptr, struct link *l_ptr) ...@@ -468,7 +468,7 @@ int tipc_bearer_resolve_congestion(struct bearer *b_ptr, struct link *l_ptr)
/** /**
* tipc_enable_bearer - enable bearer with the given name * tipc_enable_bearer - enable bearer with the given name
*/ */
int tipc_enable_bearer(const char *name, u32 bcast_scope, u32 priority) int tipc_enable_bearer(const char *name, u32 bcast_scope, u32 priority)
{ {
...@@ -490,7 +490,7 @@ int tipc_enable_bearer(const char *name, u32 bcast_scope, u32 priority) ...@@ -490,7 +490,7 @@ int tipc_enable_bearer(const char *name, u32 bcast_scope, u32 priority)
warn("Bearer <%s> rejected, illegal name\n", name); warn("Bearer <%s> rejected, illegal name\n", name);
return -EINVAL; return -EINVAL;
} }
if (!tipc_addr_domain_valid(bcast_scope) || if (!tipc_addr_domain_valid(bcast_scope) ||
!in_scope(bcast_scope, tipc_own_addr)) { !in_scope(bcast_scope, tipc_own_addr)) {
warn("Bearer <%s> rejected, illegal broadcast scope\n", name); warn("Bearer <%s> rejected, illegal broadcast scope\n", name);
return -EINVAL; return -EINVAL;
...@@ -539,7 +539,7 @@ int tipc_enable_bearer(const char *name, u32 bcast_scope, u32 priority) ...@@ -539,7 +539,7 @@ int tipc_enable_bearer(const char *name, u32 bcast_scope, u32 priority)
} }
} }
if (bearer_id >= MAX_BEARERS) { if (bearer_id >= MAX_BEARERS) {
warn("Bearer <%s> rejected, bearer limit reached (%u)\n", warn("Bearer <%s> rejected, bearer limit reached (%u)\n",
name, MAX_BEARERS); name, MAX_BEARERS);
goto failed; goto failed;
} }
...@@ -612,7 +612,7 @@ int tipc_block_bearer(const char *name) ...@@ -612,7 +612,7 @@ int tipc_block_bearer(const char *name)
/** /**
* bearer_disable - * bearer_disable -
* *
* Note: This routine assumes caller holds tipc_net_lock. * Note: This routine assumes caller holds tipc_net_lock.
*/ */
......
/* /*
* net/tipc/bearer.h: Include file for TIPC bearer code * net/tipc/bearer.h: Include file for TIPC bearer code
* *
* Copyright (c) 1996-2006, Ericsson AB * Copyright (c) 1996-2006, Ericsson AB
* Copyright (c) 2005, Wind River Systems * Copyright (c) 2005, Wind River Systems
* All rights reserved. * All rights reserved.
...@@ -58,14 +58,14 @@ ...@@ -58,14 +58,14 @@
* @type_id: TIPC media identifier [defined in tipc_bearer.h] * @type_id: TIPC media identifier [defined in tipc_bearer.h]
* @name: media name * @name: media name
*/ */
struct media { struct media {
int (*send_msg)(struct sk_buff *buf, int (*send_msg)(struct sk_buff *buf,
struct tipc_bearer *b_ptr, struct tipc_bearer *b_ptr,
struct tipc_media_addr *dest); struct tipc_media_addr *dest);
int (*enable_bearer)(struct tipc_bearer *b_ptr); int (*enable_bearer)(struct tipc_bearer *b_ptr);
void (*disable_bearer)(struct tipc_bearer *b_ptr); void (*disable_bearer)(struct tipc_bearer *b_ptr);
char *(*addr2str)(struct tipc_media_addr *a, char *(*addr2str)(struct tipc_media_addr *a,
char *str_buf, int str_size); char *str_buf, int str_size);
struct tipc_media_addr bcast_addr; struct tipc_media_addr bcast_addr;
int bcast; int bcast;
...@@ -91,7 +91,7 @@ struct media { ...@@ -91,7 +91,7 @@ struct media {
* @net_plane: network plane ('A' through 'H') currently associated with bearer * @net_plane: network plane ('A' through 'H') currently associated with bearer
* @nodes: indicates which nodes in cluster can be reached through bearer * @nodes: indicates which nodes in cluster can be reached through bearer
*/ */
struct bearer { struct bearer {
struct tipc_bearer publ; struct tipc_bearer publ;
struct media *media; struct media *media;
...@@ -131,21 +131,21 @@ void tipc_bearer_lock_push(struct bearer *b_ptr); ...@@ -131,21 +131,21 @@ void tipc_bearer_lock_push(struct bearer *b_ptr);
/** /**
* tipc_bearer_send- sends buffer to destination over bearer * tipc_bearer_send- sends buffer to destination over bearer
* *
* Returns true (1) if successful, or false (0) if unable to send * Returns true (1) if successful, or false (0) if unable to send
* *
* IMPORTANT: * IMPORTANT:
* The media send routine must not alter the buffer being passed in * The media send routine must not alter the buffer being passed in
* as it may be needed for later retransmission! * as it may be needed for later retransmission!
* *
* If the media send routine returns a non-zero value (indicating that * If the media send routine returns a non-zero value (indicating that
* it was unable to send the buffer), it must: * it was unable to send the buffer), it must:
* 1) mark the bearer as blocked, * 1) mark the bearer as blocked,
* 2) call tipc_continue() once the bearer is able to send again. * 2) call tipc_continue() once the bearer is able to send again.
* Media types that are unable to meet these two critera must ensure their * Media types that are unable to meet these two critera must ensure their
* send routine always returns success -- even if the buffer was not sent -- * send routine always returns success -- even if the buffer was not sent --
* and let TIPC's link code deal with the undelivered message. * and let TIPC's link code deal with the undelivered message.
*/ */
static inline int tipc_bearer_send(struct bearer *b_ptr, struct sk_buff *buf, static inline int tipc_bearer_send(struct bearer *b_ptr, struct sk_buff *buf,
......
/* /*
* net/tipc/cluster.c: TIPC cluster management routines * net/tipc/cluster.c: TIPC cluster management routines
* *
* Copyright (c) 2000-2006, Ericsson AB * Copyright (c) 2000-2006, Ericsson AB
* Copyright (c) 2005, Wind River Systems * Copyright (c) 2005, Wind River Systems
* All rights reserved. * All rights reserved.
...@@ -56,7 +56,7 @@ struct cluster *tipc_cltr_create(u32 addr) ...@@ -56,7 +56,7 @@ struct cluster *tipc_cltr_create(u32 addr)
{ {
struct _zone *z_ptr; struct _zone *z_ptr;
struct cluster *c_ptr; struct cluster *c_ptr;
int max_nodes; int max_nodes;
c_ptr = kzalloc(sizeof(*c_ptr), GFP_ATOMIC); c_ptr = kzalloc(sizeof(*c_ptr), GFP_ATOMIC);
if (c_ptr == NULL) { if (c_ptr == NULL) {
...@@ -81,7 +81,7 @@ struct cluster *tipc_cltr_create(u32 addr) ...@@ -81,7 +81,7 @@ struct cluster *tipc_cltr_create(u32 addr)
tipc_local_nodes = c_ptr->nodes; tipc_local_nodes = c_ptr->nodes;
c_ptr->highest_slave = LOWEST_SLAVE - 1; c_ptr->highest_slave = LOWEST_SLAVE - 1;
c_ptr->highest_node = 0; c_ptr->highest_node = 0;
z_ptr = tipc_zone_find(tipc_zone(addr)); z_ptr = tipc_zone_find(tipc_zone(addr));
if (!z_ptr) { if (!z_ptr) {
z_ptr = tipc_zone_create(addr); z_ptr = tipc_zone_create(addr);
...@@ -150,7 +150,7 @@ void tipc_cltr_attach_node(struct cluster *c_ptr, struct node *n_ptr) ...@@ -150,7 +150,7 @@ void tipc_cltr_attach_node(struct cluster *c_ptr, struct node *n_ptr)
/** /**
* tipc_cltr_select_router - select router to a cluster * tipc_cltr_select_router - select router to a cluster
* *
* Uses deterministic and fair algorithm. * Uses deterministic and fair algorithm.
*/ */
...@@ -192,7 +192,7 @@ u32 tipc_cltr_select_router(struct cluster *c_ptr, u32 ref) ...@@ -192,7 +192,7 @@ u32 tipc_cltr_select_router(struct cluster *c_ptr, u32 ref)
/** /**
* tipc_cltr_select_node - select destination node within a remote cluster * tipc_cltr_select_node - select destination node within a remote cluster
* *
* Uses deterministic and fair algorithm. * Uses deterministic and fair algorithm.
*/ */
...@@ -295,7 +295,7 @@ void tipc_cltr_send_slave_routes(struct cluster *c_ptr, u32 dest) ...@@ -295,7 +295,7 @@ void tipc_cltr_send_slave_routes(struct cluster *c_ptr, u32 dest)
msg_set_remote_node(msg, c_ptr->addr); msg_set_remote_node(msg, c_ptr->addr);
msg_set_type(msg, SLAVE_ROUTING_TABLE); msg_set_type(msg, SLAVE_ROUTING_TABLE);
for (n_num = LOWEST_SLAVE; n_num <= highest; n_num++) { for (n_num = LOWEST_SLAVE; n_num <= highest; n_num++) {
if (c_ptr->nodes[n_num] && if (c_ptr->nodes[n_num] &&
tipc_node_has_active_links(c_ptr->nodes[n_num])) { tipc_node_has_active_links(c_ptr->nodes[n_num])) {
send = 1; send = 1;
msg_set_dataoctet(msg, n_num); msg_set_dataoctet(msg, n_num);
...@@ -329,7 +329,7 @@ void tipc_cltr_send_ext_routes(struct cluster *c_ptr, u32 dest) ...@@ -329,7 +329,7 @@ void tipc_cltr_send_ext_routes(struct cluster *c_ptr, u32 dest)
msg_set_remote_node(msg, c_ptr->addr); msg_set_remote_node(msg, c_ptr->addr);
msg_set_type(msg, EXT_ROUTING_TABLE); msg_set_type(msg, EXT_ROUTING_TABLE);
for (n_num = 1; n_num <= highest; n_num++) { for (n_num = 1; n_num <= highest; n_num++) {
if (c_ptr->nodes[n_num] && if (c_ptr->nodes[n_num] &&
tipc_node_has_active_links(c_ptr->nodes[n_num])) { tipc_node_has_active_links(c_ptr->nodes[n_num])) {
send = 1; send = 1;
msg_set_dataoctet(msg, n_num); msg_set_dataoctet(msg, n_num);
...@@ -360,7 +360,7 @@ void tipc_cltr_send_local_routes(struct cluster *c_ptr, u32 dest) ...@@ -360,7 +360,7 @@ void tipc_cltr_send_local_routes(struct cluster *c_ptr, u32 dest)
msg_set_remote_node(msg, c_ptr->addr); msg_set_remote_node(msg, c_ptr->addr);
msg_set_type(msg, LOCAL_ROUTING_TABLE); msg_set_type(msg, LOCAL_ROUTING_TABLE);
for (n_num = 1; n_num <= highest; n_num++) { for (n_num = 1; n_num <= highest; n_num++) {
if (c_ptr->nodes[n_num] && if (c_ptr->nodes[n_num] &&
tipc_node_has_active_links(c_ptr->nodes[n_num])) { tipc_node_has_active_links(c_ptr->nodes[n_num])) {
send = 1; send = 1;
msg_set_dataoctet(msg, n_num); msg_set_dataoctet(msg, n_num);
...@@ -492,7 +492,7 @@ void tipc_cltr_remove_as_router(struct cluster *c_ptr, u32 router) ...@@ -492,7 +492,7 @@ void tipc_cltr_remove_as_router(struct cluster *c_ptr, u32 router)
} }
/** /**
* tipc_cltr_multicast - multicast message to local nodes * tipc_cltr_multicast - multicast message to local nodes
*/ */
static void tipc_cltr_multicast(struct cluster *c_ptr, struct sk_buff *buf, static void tipc_cltr_multicast(struct cluster *c_ptr, struct sk_buff *buf,
...@@ -554,9 +554,9 @@ void tipc_cltr_broadcast(struct sk_buff *buf) ...@@ -554,9 +554,9 @@ void tipc_cltr_broadcast(struct sk_buff *buf)
buf_copy = skb_copy(buf, GFP_ATOMIC); buf_copy = skb_copy(buf, GFP_ATOMIC);
if (buf_copy == NULL) if (buf_copy == NULL)
goto exit; goto exit;
msg_set_destnode(buf_msg(buf_copy), msg_set_destnode(buf_msg(buf_copy),
n_ptr->addr); n_ptr->addr);
tipc_link_send(buf_copy, n_ptr->addr, tipc_link_send(buf_copy, n_ptr->addr,
n_ptr->addr); n_ptr->addr);
} }
} }
......
/* /*
* net/tipc/cluster.h: Include file for TIPC cluster management routines * net/tipc/cluster.h: Include file for TIPC cluster management routines
* *
* Copyright (c) 2000-2006, Ericsson AB * Copyright (c) 2000-2006, Ericsson AB
* Copyright (c) 2005, Wind River Systems * Copyright (c) 2005, Wind River Systems
* All rights reserved. * All rights reserved.
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
* @highest_node: id of highest numbered node within cluster * @highest_node: id of highest numbered node within cluster
* @highest_slave: (used for secondary node support) * @highest_slave: (used for secondary node support)
*/ */
struct cluster { struct cluster {
u32 addr; u32 addr;
struct _zone *owner; struct _zone *owner;
......
/* /*
* net/tipc/config.c: TIPC configuration management code * net/tipc/config.c: TIPC configuration management code
* *
* Copyright (c) 2002-2006, Ericsson AB * Copyright (c) 2002-2006, Ericsson AB
* Copyright (c) 2004-2006, Wind River Systems * Copyright (c) 2004-2006, Wind River Systems
* All rights reserved. * All rights reserved.
...@@ -86,7 +86,7 @@ struct sk_buff *tipc_cfg_reply_alloc(int payload_size) ...@@ -86,7 +86,7 @@ struct sk_buff *tipc_cfg_reply_alloc(int payload_size)
return buf; return buf;
} }
int tipc_cfg_append_tlv(struct sk_buff *buf, int tlv_type, int tipc_cfg_append_tlv(struct sk_buff *buf, int tlv_type,
void *tlv_data, int tlv_data_size) void *tlv_data, int tlv_data_size)
{ {
struct tlv_desc *tlv = (struct tlv_desc *)buf->tail; struct tlv_desc *tlv = (struct tlv_desc *)buf->tail;
...@@ -112,7 +112,7 @@ struct sk_buff *tipc_cfg_reply_unsigned_type(u16 tlv_type, u32 value) ...@@ -112,7 +112,7 @@ struct sk_buff *tipc_cfg_reply_unsigned_type(u16 tlv_type, u32 value)
buf = tipc_cfg_reply_alloc(TLV_SPACE(sizeof(value))); buf = tipc_cfg_reply_alloc(TLV_SPACE(sizeof(value)));
if (buf) { if (buf) {
value_net = htonl(value); value_net = htonl(value);
tipc_cfg_append_tlv(buf, tlv_type, &value_net, tipc_cfg_append_tlv(buf, tlv_type, &value_net,
sizeof(value_net)); sizeof(value_net));
} }
return buf; return buf;
...@@ -182,7 +182,7 @@ int tipc_cfg_cmd(const struct tipc_cmd_msg * msg, ...@@ -182,7 +182,7 @@ int tipc_cfg_cmd(const struct tipc_cmd_msg * msg,
static void cfg_cmd_event(struct tipc_cmd_msg *msg, static void cfg_cmd_event(struct tipc_cmd_msg *msg,
char *data, char *data,
u32 sz, u32 sz,
struct tipc_portid const *orig) struct tipc_portid const *orig)
{ {
int rv = -EINVAL; int rv = -EINVAL;
...@@ -192,7 +192,7 @@ static void cfg_cmd_event(struct tipc_cmd_msg *msg, ...@@ -192,7 +192,7 @@ static void cfg_cmd_event(struct tipc_cmd_msg *msg,
msg->cmd = ntohl(msg->cmd); msg->cmd = ntohl(msg->cmd);
cfg_prepare_res_msg(msg->cmd, msg->usr_handle, rv, &rmsg, msg_sect, cfg_prepare_res_msg(msg->cmd, msg->usr_handle, rv, &rmsg, msg_sect,
data, 0); data, 0);
if (ntohl(msg->magic) != TIPC_MAGIC) if (ntohl(msg->magic) != TIPC_MAGIC)
goto exit; goto exit;
...@@ -295,7 +295,7 @@ static struct sk_buff *cfg_set_own_addr(void) ...@@ -295,7 +295,7 @@ static struct sk_buff *cfg_set_own_addr(void)
" (cannot change node address once assigned)"); " (cannot change node address once assigned)");
tipc_own_addr = addr; tipc_own_addr = addr;
/* /*
* Must release all spinlocks before calling start_net() because * Must release all spinlocks before calling start_net() because
* Linux version of TIPC calls eth_media_start() which calls * Linux version of TIPC calls eth_media_start() which calls
* register_netdevice_notifier() which may block! * register_netdevice_notifier() which may block!
...@@ -619,7 +619,7 @@ static void cfg_named_msg_event(void *userdata, ...@@ -619,7 +619,7 @@ static void cfg_named_msg_event(void *userdata,
struct sk_buff **buf, struct sk_buff **buf,
const unchar *msg, const unchar *msg,
u32 size, u32 size,
u32 importance, u32 importance,
struct tipc_portid const *orig, struct tipc_portid const *orig,
struct tipc_name_seq const *dest) struct tipc_name_seq const *dest)
{ {
...@@ -640,7 +640,7 @@ static void cfg_named_msg_event(void *userdata, ...@@ -640,7 +640,7 @@ static void cfg_named_msg_event(void *userdata,
/* Generate reply for request (if can't, return request) */ /* Generate reply for request (if can't, return request) */
rep_buf = tipc_cfg_do_cmd(orig->node, rep_buf = tipc_cfg_do_cmd(orig->node,
ntohs(req_hdr->tcm_type), ntohs(req_hdr->tcm_type),
msg + sizeof(*req_hdr), msg + sizeof(*req_hdr),
size - sizeof(*req_hdr), size - sizeof(*req_hdr),
BUF_HEADROOM + MAX_H_SIZE + sizeof(*rep_hdr)); BUF_HEADROOM + MAX_H_SIZE + sizeof(*rep_hdr));
......
/* /*
* net/tipc/config.h: Include file for TIPC configuration service code * net/tipc/config.h: Include file for TIPC configuration service code
* *
* Copyright (c) 2003-2006, Ericsson AB * Copyright (c) 2003-2006, Ericsson AB
* Copyright (c) 2005, Wind River Systems * Copyright (c) 2005, Wind River Systems
* All rights reserved. * All rights reserved.
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
#include "link.h" #include "link.h"
struct sk_buff *tipc_cfg_reply_alloc(int payload_size); struct sk_buff *tipc_cfg_reply_alloc(int payload_size);
int tipc_cfg_append_tlv(struct sk_buff *buf, int tlv_type, int tipc_cfg_append_tlv(struct sk_buff *buf, int tlv_type,
void *tlv_data, int tlv_data_size); 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_unsigned_type(u16 tlv_type, u32 value);
struct sk_buff *tipc_cfg_reply_string_type(u16 tlv_type, char *string); struct sk_buff *tipc_cfg_reply_string_type(u16 tlv_type, char *string);
...@@ -68,8 +68,8 @@ static inline struct sk_buff *tipc_cfg_reply_ultra_string(char *string) ...@@ -68,8 +68,8 @@ static inline struct sk_buff *tipc_cfg_reply_ultra_string(char *string)
return tipc_cfg_reply_string_type(TIPC_TLV_ULTRA_STRING, string); return tipc_cfg_reply_string_type(TIPC_TLV_ULTRA_STRING, string);
} }
struct sk_buff *tipc_cfg_do_cmd(u32 orig_node, u16 cmd, struct sk_buff *tipc_cfg_do_cmd(u32 orig_node, u16 cmd,
const void *req_tlv_area, int req_tlv_space, const void *req_tlv_area, int req_tlv_space,
int headroom); int headroom);
void tipc_cfg_link_event(u32 addr, char *name, int up); void tipc_cfg_link_event(u32 addr, char *name, int up);
......
...@@ -89,7 +89,7 @@ int tipc_mode = TIPC_NOT_RUNNING; ...@@ -89,7 +89,7 @@ int tipc_mode = TIPC_NOT_RUNNING;
int tipc_random; int tipc_random;
atomic_t tipc_user_count = ATOMIC_INIT(0); atomic_t tipc_user_count = ATOMIC_INIT(0);
const char tipc_alphabet[] = const char tipc_alphabet[] =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_."; "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_.";
/* configurable TIPC parameters */ /* configurable TIPC parameters */
...@@ -171,13 +171,13 @@ int tipc_core_start(void) ...@@ -171,13 +171,13 @@ int tipc_core_start(void)
get_random_bytes(&tipc_random, sizeof(tipc_random)); get_random_bytes(&tipc_random, sizeof(tipc_random));
tipc_mode = TIPC_NODE_MODE; tipc_mode = TIPC_NODE_MODE;
if ((res = tipc_handler_start()) || if ((res = tipc_handler_start()) ||
(res = tipc_ref_table_init(tipc_max_ports + tipc_max_subscriptions, (res = tipc_ref_table_init(tipc_max_ports + tipc_max_subscriptions,
tipc_random)) || tipc_random)) ||
(res = tipc_reg_start()) || (res = tipc_reg_start()) ||
(res = tipc_nametbl_init()) || (res = tipc_nametbl_init()) ||
(res = tipc_k_signal((Handler)tipc_subscr_start, 0)) || (res = tipc_k_signal((Handler)tipc_subscr_start, 0)) ||
(res = tipc_k_signal((Handler)tipc_cfg_init, 0)) || (res = tipc_k_signal((Handler)tipc_cfg_init, 0)) ||
(res = tipc_netlink_start()) || (res = tipc_netlink_start()) ||
(res = tipc_socket_init())) { (res = tipc_socket_init())) {
tipc_core_stop(); tipc_core_stop();
...@@ -191,7 +191,7 @@ static int __init tipc_init(void) ...@@ -191,7 +191,7 @@ static int __init tipc_init(void)
int res; int res;
tipc_log_reinit(CONFIG_TIPC_LOG); tipc_log_reinit(CONFIG_TIPC_LOG);
info("Activated (version " TIPC_MOD_VER info("Activated (version " TIPC_MOD_VER
" compiled " __DATE__ " " __TIME__ ")\n"); " compiled " __DATE__ " " __TIME__ ")\n");
tipc_own_addr = 0; tipc_own_addr = 0;
...@@ -207,9 +207,9 @@ static int __init tipc_init(void) ...@@ -207,9 +207,9 @@ static int __init tipc_init(void)
if ((res = tipc_core_start())) if ((res = tipc_core_start()))
err("Unable to start in single node mode\n"); err("Unable to start in single node mode\n");
else else
info("Started in single node mode\n"); info("Started in single node mode\n");
return res; return res;
} }
static void __exit tipc_exit(void) static void __exit tipc_exit(void)
...@@ -268,11 +268,11 @@ EXPORT_SYMBOL(tipc_available_nodes); ...@@ -268,11 +268,11 @@ EXPORT_SYMBOL(tipc_available_nodes);
/* TIPC API for external bearers (see tipc_bearer.h) */ /* TIPC API for external bearers (see tipc_bearer.h) */
EXPORT_SYMBOL(tipc_block_bearer); EXPORT_SYMBOL(tipc_block_bearer);
EXPORT_SYMBOL(tipc_continue); EXPORT_SYMBOL(tipc_continue);
EXPORT_SYMBOL(tipc_disable_bearer); EXPORT_SYMBOL(tipc_disable_bearer);
EXPORT_SYMBOL(tipc_enable_bearer); EXPORT_SYMBOL(tipc_enable_bearer);
EXPORT_SYMBOL(tipc_recv_msg); EXPORT_SYMBOL(tipc_recv_msg);
EXPORT_SYMBOL(tipc_register_media); EXPORT_SYMBOL(tipc_register_media);
/* TIPC API for external APIs (see tipc_port.h) */ /* TIPC API for external APIs (see tipc_port.h) */
......
/* /*
* net/tipc/core.h: Include file for TIPC global declarations * net/tipc/core.h: Include file for TIPC global declarations
* *
* Copyright (c) 2005-2006, Ericsson AB * Copyright (c) 2005-2006, Ericsson AB
* Copyright (c) 2005-2006, Wind River Systems * Copyright (c) 2005-2006, Wind River Systems
* All rights reserved. * All rights reserved.
...@@ -54,7 +54,7 @@ ...@@ -54,7 +54,7 @@
#include <asm/atomic.h> #include <asm/atomic.h>
#include <asm/hardirq.h> #include <asm/hardirq.h>
#include <linux/netdevice.h> #include <linux/netdevice.h>
#include <linux/in.h> #include <linux/in.h>
#include <linux/list.h> #include <linux/list.h>
#include <linux/vmalloc.h> #include <linux/vmalloc.h>
...@@ -88,7 +88,7 @@ void tipc_dump(struct print_buf*,const char *fmt, ...); ...@@ -88,7 +88,7 @@ void tipc_dump(struct print_buf*,const char *fmt, ...);
#define dump(fmt, arg...) do {if (DBG_OUTPUT != TIPC_NULL) tipc_dump(DBG_OUTPUT, fmt, ##arg);} while(0) #define dump(fmt, arg...) do {if (DBG_OUTPUT != TIPC_NULL) tipc_dump(DBG_OUTPUT, fmt, ##arg);} while(0)
/* /*
* By default, TIPC_OUTPUT is defined to be system console and TIPC log buffer, * By default, TIPC_OUTPUT is defined to be system console and TIPC log buffer,
* while DBG_OUTPUT is the null print buffer. These defaults can be changed * while DBG_OUTPUT is the null print buffer. These defaults can be changed
* here, or on a per .c file basis, by redefining these symbols. The following * here, or on a per .c file basis, by redefining these symbols. The following
...@@ -126,9 +126,9 @@ void tipc_dump(struct print_buf*,const char *fmt, ...); ...@@ -126,9 +126,9 @@ void tipc_dump(struct print_buf*,const char *fmt, ...);
#define dump(fmt,arg...) do {} while (0) #define dump(fmt,arg...) do {} while (0)
/* /*
* TIPC_OUTPUT is defined to be the system console, while DBG_OUTPUT is * TIPC_OUTPUT is defined to be the system console, while DBG_OUTPUT is
* the null print buffer. Thes ensures that any system or debug messages * the null print buffer. Thes ensures that any system or debug messages
* that are generated without using the above macros are handled correctly. * that are generated without using the above macros are handled correctly.
*/ */
...@@ -138,10 +138,10 @@ void tipc_dump(struct print_buf*,const char *fmt, ...); ...@@ -138,10 +138,10 @@ void tipc_dump(struct print_buf*,const char *fmt, ...);
#undef DBG_OUTPUT #undef DBG_OUTPUT
#define DBG_OUTPUT TIPC_NULL #define DBG_OUTPUT TIPC_NULL
#endif #endif
/* /*
* TIPC-specific error codes * TIPC-specific error codes
*/ */
...@@ -204,11 +204,11 @@ u32 tipc_k_signal(Handler routine, unsigned long argument); ...@@ -204,11 +204,11 @@ u32 tipc_k_signal(Handler routine, unsigned long argument);
* @timer: pointer to timer structure * @timer: pointer to timer structure
* @routine: pointer to routine to invoke when timer expires * @routine: pointer to routine to invoke when timer expires
* @argument: value to pass to routine when timer expires * @argument: value to pass to routine when timer expires
* *
* Timer must be initialized before use (and terminated when no longer needed). * Timer must be initialized before use (and terminated when no longer needed).
*/ */
static inline void k_init_timer(struct timer_list *timer, Handler routine, static inline void k_init_timer(struct timer_list *timer, Handler routine,
unsigned long argument) unsigned long argument)
{ {
dbg("initializing timer %p\n", timer); dbg("initializing timer %p\n", timer);
...@@ -221,13 +221,13 @@ static inline void k_init_timer(struct timer_list *timer, Handler routine, ...@@ -221,13 +221,13 @@ static inline void k_init_timer(struct timer_list *timer, Handler routine,
* k_start_timer - start a timer * k_start_timer - start a timer
* @timer: pointer to timer structure * @timer: pointer to timer structure
* @msec: time to delay (in ms) * @msec: time to delay (in ms)
* *
* Schedules a previously initialized timer for later execution. * Schedules a previously initialized timer for later execution.
* If timer is already running, the new timeout overrides the previous request. * If timer is already running, the new timeout overrides the previous request.
* *
* To ensure the timer doesn't expire before the specified delay elapses, * To ensure the timer doesn't expire before the specified delay elapses,
* the amount of delay is rounded up when converting to the jiffies * the amount of delay is rounded up when converting to the jiffies
* then an additional jiffy is added to account for the fact that * then an additional jiffy is added to account for the fact that
* the starting time may be in the middle of the current jiffy. * the starting time may be in the middle of the current jiffy.
*/ */
...@@ -240,10 +240,10 @@ static inline void k_start_timer(struct timer_list *timer, unsigned long msec) ...@@ -240,10 +240,10 @@ static inline void k_start_timer(struct timer_list *timer, unsigned long msec)
/** /**
* k_cancel_timer - cancel a timer * k_cancel_timer - cancel a timer
* @timer: pointer to timer structure * @timer: pointer to timer structure
* *
* Cancels a previously initialized timer. * Cancels a previously initialized timer.
* Can be called safely even if the timer is already inactive. * Can be called safely even if the timer is already inactive.
* *
* WARNING: Must not be called when holding locks required by the timer's * WARNING: Must not be called when holding locks required by the timer's
* timeout routine, otherwise deadlock can occur on SMP systems! * timeout routine, otherwise deadlock can occur on SMP systems!
*/ */
...@@ -257,11 +257,11 @@ static inline void k_cancel_timer(struct timer_list *timer) ...@@ -257,11 +257,11 @@ static inline void k_cancel_timer(struct timer_list *timer)
/** /**
* k_term_timer - terminate a timer * k_term_timer - terminate a timer
* @timer: pointer to timer structure * @timer: pointer to timer structure
* *
* Prevents further use of a previously initialized timer. * Prevents further use of a previously initialized timer.
* *
* WARNING: Caller must ensure timer isn't currently running. * WARNING: Caller must ensure timer isn't currently running.
* *
* (Do not "enhance" this routine to automatically cancel an active timer, * (Do not "enhance" this routine to automatically cancel an active timer,
* otherwise deadlock can arise when a timeout routine calls k_term_timer.) * otherwise deadlock can arise when a timeout routine calls k_term_timer.)
*/ */
...@@ -302,7 +302,7 @@ static inline struct tipc_msg *buf_msg(struct sk_buff *skb) ...@@ -302,7 +302,7 @@ static inline struct tipc_msg *buf_msg(struct sk_buff *skb)
* @size: message size (including TIPC header) * @size: message size (including TIPC header)
* *
* Returns a new buffer with data pointers set to the specified size. * Returns a new buffer with data pointers set to the specified size.
* *
* NOTE: Headroom is reserved to allow prepending of a data link header. * NOTE: Headroom is reserved to allow prepending of a data link header.
* There may also be unrequested tailroom present at the buffer's end. * There may also be unrequested tailroom present at the buffer's end.
*/ */
...@@ -334,4 +334,4 @@ static inline void buf_discard(struct sk_buff *skb) ...@@ -334,4 +334,4 @@ static inline void buf_discard(struct sk_buff *skb)
kfree_skb(skb); kfree_skb(skb);
} }
#endif #endif
/* /*
* net/tipc/dbg.c: TIPC print buffer routines for debugging * net/tipc/dbg.c: TIPC print buffer routines for debugging
* *
* Copyright (c) 1996-2006, Ericsson AB * Copyright (c) 1996-2006, Ericsson AB
* Copyright (c) 2005-2006, Wind River Systems * Copyright (c) 2005-2006, Wind River Systems
* All rights reserved. * All rights reserved.
...@@ -123,34 +123,34 @@ int tipc_printbuf_empty(struct print_buf *pb) ...@@ -123,34 +123,34 @@ int tipc_printbuf_empty(struct print_buf *pb)
/** /**
* tipc_printbuf_validate - check for print buffer overflow * tipc_printbuf_validate - check for print buffer overflow
* @pb: pointer to print buffer structure * @pb: pointer to print buffer structure
* *
* Verifies that a print buffer has captured all data written to it. * Verifies that a print buffer has captured all data written to it.
* If data has been lost, linearize buffer and prepend an error message * If data has been lost, linearize buffer and prepend an error message
* *
* Returns length of print buffer data string (including trailing NUL) * Returns length of print buffer data string (including trailing NUL)
*/ */
int tipc_printbuf_validate(struct print_buf *pb) int tipc_printbuf_validate(struct print_buf *pb)
{ {
char *err = "\n\n*** PRINT BUFFER OVERFLOW ***\n\n"; char *err = "\n\n*** PRINT BUFFER OVERFLOW ***\n\n";
char *cp_buf; char *cp_buf;
struct print_buf cb; struct print_buf cb;
if (!pb->buf) if (!pb->buf)
return 0; return 0;
if (pb->buf[pb->size - 1] == 0) { if (pb->buf[pb->size - 1] == 0) {
cp_buf = kmalloc(pb->size, GFP_ATOMIC); cp_buf = kmalloc(pb->size, GFP_ATOMIC);
if (cp_buf != NULL){ if (cp_buf != NULL){
tipc_printbuf_init(&cb, cp_buf, pb->size); tipc_printbuf_init(&cb, cp_buf, pb->size);
tipc_printbuf_move(&cb, pb); tipc_printbuf_move(&cb, pb);
tipc_printbuf_move(pb, &cb); tipc_printbuf_move(pb, &cb);
kfree(cp_buf); kfree(cp_buf);
memcpy(pb->buf, err, strlen(err)); memcpy(pb->buf, err, strlen(err));
} else { } else {
tipc_printbuf_reset(pb); tipc_printbuf_reset(pb);
tipc_printf(pb, err); tipc_printf(pb, err);
} }
} }
return (pb->crs - pb->buf + 1); return (pb->crs - pb->buf + 1);
} }
...@@ -159,7 +159,7 @@ int tipc_printbuf_validate(struct print_buf *pb) ...@@ -159,7 +159,7 @@ int tipc_printbuf_validate(struct print_buf *pb)
* tipc_printbuf_move - move print buffer contents to another print buffer * tipc_printbuf_move - move print buffer contents to another print buffer
* @pb_to: pointer to destination print buffer structure * @pb_to: pointer to destination print buffer structure
* @pb_from: pointer to source print buffer structure * @pb_from: pointer to source print buffer structure
* *
* Current contents of destination print buffer (if any) are discarded. * Current contents of destination print buffer (if any) are discarded.
* Source print buffer becomes empty if a successful move occurs. * Source print buffer becomes empty if a successful move occurs.
*/ */
...@@ -234,13 +234,13 @@ void tipc_printf(struct print_buf *pb, const char *fmt, ...) ...@@ -234,13 +234,13 @@ void tipc_printf(struct print_buf *pb, const char *fmt, ...)
pb->crs = pb->buf + pb->size - 1; pb->crs = pb->buf + pb->size - 1;
} else { } else {
strcpy(pb->buf, print_string + chars_left); strcpy(pb->buf, print_string + chars_left);
save_char = print_string[chars_left]; save_char = print_string[chars_left];
print_string[chars_left] = 0; print_string[chars_left] = 0;
strcpy(pb->crs, print_string); strcpy(pb->crs, print_string);
print_string[chars_left] = save_char; print_string[chars_left] = save_char;
pb->crs = pb->buf + chars_to_add - chars_left; pb->crs = pb->buf + chars_to_add - chars_left;
} }
} }
pb_next = pb->next; pb_next = pb->next;
pb->next = NULL; pb->next = NULL;
pb = pb_next; pb = pb_next;
...@@ -249,7 +249,7 @@ void tipc_printf(struct print_buf *pb, const char *fmt, ...) ...@@ -249,7 +249,7 @@ void tipc_printf(struct print_buf *pb, const char *fmt, ...)
} }
/** /**
* TIPC_TEE - perform next output operation on both print buffers * TIPC_TEE - perform next output operation on both print buffers
* @b0: pointer to chain of print buffers (may be NULL) * @b0: pointer to chain of print buffers (may be NULL)
* @b1: pointer to print buffer to add to chain * @b1: pointer to print buffer to add to chain
* *
...@@ -350,7 +350,7 @@ void tipc_dump(struct print_buf *pb, const char *fmt, ...) ...@@ -350,7 +350,7 @@ void tipc_dump(struct print_buf *pb, const char *fmt, ...)
} }
/** /**
* tipc_log_stop - free up TIPC log print buffer * tipc_log_stop - free up TIPC log print buffer
*/ */
void tipc_log_stop(void) void tipc_log_stop(void)
......
/* /*
* net/tipc/dbg.h: Include file for TIPC print buffer routines * net/tipc/dbg.h: Include file for TIPC print buffer routines
* *
* Copyright (c) 1997-2006, Ericsson AB * Copyright (c) 1997-2006, Ericsson AB
* Copyright (c) 2005-2006, Wind River Systems * Copyright (c) 2005-2006, Wind River Systems
* All rights reserved. * All rights reserved.
......
/* /*
* net/tipc/discover.c * net/tipc/discover.c
* *
* Copyright (c) 2003-2006, Ericsson AB * Copyright (c) 2003-2006, Ericsson AB
* Copyright (c) 2005-2006, Wind River Systems * Copyright (c) 2005-2006, Wind River Systems
* All rights reserved. * All rights reserved.
...@@ -56,10 +56,10 @@ ...@@ -56,10 +56,10 @@
#define CHECK_LINK_COUNT 306 #define CHECK_LINK_COUNT 306
#endif #endif
/* /*
* TODO: Most of the inter-cluster setup stuff should be * TODO: Most of the inter-cluster setup stuff should be
* rewritten, and be made conformant with specification. * rewritten, and be made conformant with specification.
*/ */
/** /**
...@@ -80,10 +80,10 @@ struct link_req { ...@@ -80,10 +80,10 @@ struct link_req {
#if 0 #if 0
int disc_create_link(const struct tipc_link_create *argv) int disc_create_link(const struct tipc_link_create *argv)
{ {
/* /*
* Code for inter cluster link setup here * Code for inter cluster link setup here
*/ */
return TIPC_OK; return TIPC_OK;
} }
...@@ -93,16 +93,16 @@ int disc_create_link(const struct tipc_link_create *argv) ...@@ -93,16 +93,16 @@ int disc_create_link(const struct tipc_link_create *argv)
* disc_lost_link(): A link has lost contact * disc_lost_link(): A link has lost contact
*/ */
void tipc_disc_link_event(u32 addr, char *name, int up) void tipc_disc_link_event(u32 addr, char *name, int up)
{ {
if (in_own_cluster(addr)) if (in_own_cluster(addr))
return; return;
/* /*
* Code for inter cluster link setup here * Code for inter cluster link setup here
*/ */
} }
/** /**
* tipc_disc_init_msg - initialize a link setup message * tipc_disc_init_msg - initialize a link setup message
* @type: message type (request or response) * @type: message type (request or response)
* @req_links: number of links associated with message * @req_links: number of links associated with message
...@@ -210,7 +210,7 @@ void tipc_disc_recv_msg(struct sk_buff *buf) ...@@ -210,7 +210,7 @@ void tipc_disc_recv_msg(struct sk_buff *buf)
dbg("creating link\n"); dbg("creating link\n");
link = tipc_link_create(b_ptr, orig, &media_addr); link = tipc_link_create(b_ptr, orig, &media_addr);
if (!link) { if (!link) {
spin_unlock_bh(&n_ptr->lock); spin_unlock_bh(&n_ptr->lock);
return; return;
} }
} }
...@@ -224,10 +224,10 @@ void tipc_disc_recv_msg(struct sk_buff *buf) ...@@ -224,10 +224,10 @@ void tipc_disc_recv_msg(struct sk_buff *buf)
warn("Resetting link <%s>, peer interface address changed\n", warn("Resetting link <%s>, peer interface address changed\n",
link->name); link->name);
memcpy(addr, &media_addr, sizeof(*addr)); memcpy(addr, &media_addr, sizeof(*addr));
tipc_link_reset(link); tipc_link_reset(link);
} }
link_fully_up = (link->state == WORKING_WORKING); link_fully_up = (link->state == WORKING_WORKING);
spin_unlock_bh(&n_ptr->lock); spin_unlock_bh(&n_ptr->lock);
if ((type == DSC_RESP_MSG) || link_fully_up) if ((type == DSC_RESP_MSG) || link_fully_up)
return; return;
rbuf = tipc_disc_init_msg(DSC_RESP_MSG, 1, orig, b_ptr); rbuf = tipc_disc_init_msg(DSC_RESP_MSG, 1, orig, b_ptr);
...@@ -244,23 +244,23 @@ void tipc_disc_recv_msg(struct sk_buff *buf) ...@@ -244,23 +244,23 @@ void tipc_disc_recv_msg(struct sk_buff *buf)
* @req: ptr to link request structure * @req: ptr to link request structure
*/ */
void tipc_disc_stop_link_req(struct link_req *req) void tipc_disc_stop_link_req(struct link_req *req)
{ {
if (!req) if (!req)
return; return;
k_cancel_timer(&req->timer); k_cancel_timer(&req->timer);
k_term_timer(&req->timer); k_term_timer(&req->timer);
buf_discard(req->buf); buf_discard(req->buf);
kfree(req); kfree(req);
} }
/** /**
* tipc_disc_update_link_req - update frequency of periodic link setup requests * tipc_disc_update_link_req - update frequency of periodic link setup requests
* @req: ptr to link request structure * @req: ptr to link request structure
*/ */
void tipc_disc_update_link_req(struct link_req *req) void tipc_disc_update_link_req(struct link_req *req)
{ {
if (!req) if (!req)
return; return;
...@@ -278,16 +278,16 @@ void tipc_disc_update_link_req(struct link_req *req) ...@@ -278,16 +278,16 @@ void tipc_disc_update_link_req(struct link_req *req)
} else { } else {
/* leave timer "as is" if haven't yet reached a "normal" rate */ /* leave timer "as is" if haven't yet reached a "normal" rate */
} }
} }
/** /**
* disc_timeout - send a periodic link setup request * disc_timeout - send a periodic link setup request
* @req: ptr to link request structure * @req: ptr to link request structure
* *
* Called whenever a link setup request timer associated with a bearer expires. * Called whenever a link setup request timer associated with a bearer expires.
*/ */
static void disc_timeout(struct link_req *req) static void disc_timeout(struct link_req *req)
{ {
spin_lock_bh(&req->bearer->publ.lock); spin_lock_bh(&req->bearer->publ.lock);
...@@ -300,7 +300,7 @@ static void disc_timeout(struct link_req *req) ...@@ -300,7 +300,7 @@ static void disc_timeout(struct link_req *req)
req->timer_intv *= 2; req->timer_intv *= 2;
if (req->timer_intv > TIPC_LINK_REQ_FAST) if (req->timer_intv > TIPC_LINK_REQ_FAST)
req->timer_intv = TIPC_LINK_REQ_FAST; req->timer_intv = TIPC_LINK_REQ_FAST;
if ((req->timer_intv == TIPC_LINK_REQ_FAST) && if ((req->timer_intv == TIPC_LINK_REQ_FAST) &&
(req->bearer->nodes.count)) (req->bearer->nodes.count))
req->timer_intv = TIPC_LINK_REQ_SLOW; req->timer_intv = TIPC_LINK_REQ_SLOW;
} }
...@@ -315,14 +315,14 @@ static void disc_timeout(struct link_req *req) ...@@ -315,14 +315,14 @@ static void disc_timeout(struct link_req *req)
* @dest: destination address for request messages * @dest: destination address for request messages
* @dest_domain: network domain of node(s) which should respond to message * @dest_domain: network domain of node(s) which should respond to message
* @req_links: max number of desired links * @req_links: max number of desired links
* *
* Returns pointer to link request structure, or NULL if unable to create. * Returns pointer to link request structure, or NULL if unable to create.
*/ */
struct link_req *tipc_disc_init_link_req(struct bearer *b_ptr, struct link_req *tipc_disc_init_link_req(struct bearer *b_ptr,
const struct tipc_media_addr *dest, const struct tipc_media_addr *dest,
u32 dest_domain, u32 dest_domain,
u32 req_links) u32 req_links)
{ {
struct link_req *req; struct link_req *req;
...@@ -342,5 +342,5 @@ struct link_req *tipc_disc_init_link_req(struct bearer *b_ptr, ...@@ -342,5 +342,5 @@ struct link_req *tipc_disc_init_link_req(struct bearer *b_ptr,
k_init_timer(&req->timer, (Handler)disc_timeout, (unsigned long)req); k_init_timer(&req->timer, (Handler)disc_timeout, (unsigned long)req);
k_start_timer(&req->timer, req->timer_intv); k_start_timer(&req->timer, req->timer_intv);
return req; return req;
} }
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
struct link_req; struct link_req;
struct link_req *tipc_disc_init_link_req(struct bearer *b_ptr, struct link_req *tipc_disc_init_link_req(struct bearer *b_ptr,
const struct tipc_media_addr *dest, const struct tipc_media_addr *dest,
u32 dest_domain, u32 dest_domain,
u32 req_links); u32 req_links);
......
/* /*
* net/tipc/eth_media.c: Ethernet bearer support for TIPC * net/tipc/eth_media.c: Ethernet bearer support for TIPC
* *
* Copyright (c) 2001-2006, Ericsson AB * Copyright (c) 2001-2006, Ericsson AB
* Copyright (c) 2005-2006, Wind River Systems * Copyright (c) 2005-2006, Wind River Systems
* All rights reserved. * All rights reserved.
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
* @dev: ptr to associated Ethernet network device * @dev: ptr to associated Ethernet network device
* @tipc_packet_type: used in binding TIPC to Ethernet driver * @tipc_packet_type: used in binding TIPC to Ethernet driver
*/ */
struct eth_bearer { struct eth_bearer {
struct tipc_bearer *bearer; struct tipc_bearer *bearer;
struct net_device *dev; struct net_device *dev;
...@@ -62,10 +62,10 @@ static int eth_started = 0; ...@@ -62,10 +62,10 @@ static int eth_started = 0;
static struct notifier_block notifier; static struct notifier_block notifier;
/** /**
* send_msg - send a TIPC message out over an Ethernet interface * send_msg - send a TIPC message out over an Ethernet interface
*/ */
static int send_msg(struct sk_buff *buf, struct tipc_bearer *tb_ptr, static int send_msg(struct sk_buff *buf, struct tipc_bearer *tb_ptr,
struct tipc_media_addr *dest) struct tipc_media_addr *dest)
{ {
struct sk_buff *clone; struct sk_buff *clone;
...@@ -76,7 +76,7 @@ static int send_msg(struct sk_buff *buf, struct tipc_bearer *tb_ptr, ...@@ -76,7 +76,7 @@ static int send_msg(struct sk_buff *buf, struct tipc_bearer *tb_ptr,
clone->nh.raw = clone->data; clone->nh.raw = clone->data;
dev = ((struct eth_bearer *)(tb_ptr->usr_handle))->dev; dev = ((struct eth_bearer *)(tb_ptr->usr_handle))->dev;
clone->dev = dev; clone->dev = dev;
dev->hard_header(clone, dev, ETH_P_TIPC, dev->hard_header(clone, dev, ETH_P_TIPC,
&dest->dev_addr.eth_addr, &dest->dev_addr.eth_addr,
dev->dev_addr, clone->len); dev->dev_addr, clone->len);
dev_queue_xmit(clone); dev_queue_xmit(clone);
...@@ -86,12 +86,12 @@ static int send_msg(struct sk_buff *buf, struct tipc_bearer *tb_ptr, ...@@ -86,12 +86,12 @@ static int send_msg(struct sk_buff *buf, struct tipc_bearer *tb_ptr,
/** /**
* recv_msg - handle incoming TIPC message from an Ethernet interface * recv_msg - handle incoming TIPC message from an Ethernet interface
* *
* Routine truncates any Ethernet padding/CRC appended to the message, * Routine truncates any Ethernet padding/CRC appended to the message,
* and ensures message size matches actual length * and ensures message size matches actual length
*/ */
static int recv_msg(struct sk_buff *buf, struct net_device *dev, static int recv_msg(struct sk_buff *buf, struct net_device *dev,
struct packet_type *pt, struct net_device *orig_dev) struct packet_type *pt, struct net_device *orig_dev)
{ {
struct eth_bearer *eb_ptr = (struct eth_bearer *)pt->af_packet_priv; struct eth_bearer *eb_ptr = (struct eth_bearer *)pt->af_packet_priv;
...@@ -99,14 +99,14 @@ static int recv_msg(struct sk_buff *buf, struct net_device *dev, ...@@ -99,14 +99,14 @@ static int recv_msg(struct sk_buff *buf, struct net_device *dev,
if (likely(eb_ptr->bearer)) { if (likely(eb_ptr->bearer)) {
if (likely(!dev->promiscuity) || if (likely(!dev->promiscuity) ||
!memcmp(buf->mac.raw,dev->dev_addr,ETH_ALEN) || !memcmp(buf->mac.raw,dev->dev_addr,ETH_ALEN) ||
!memcmp(buf->mac.raw,dev->broadcast,ETH_ALEN)) { !memcmp(buf->mac.raw,dev->broadcast,ETH_ALEN)) {
size = msg_size((struct tipc_msg *)buf->data); size = msg_size((struct tipc_msg *)buf->data);
skb_trim(buf, size); skb_trim(buf, size);
if (likely(buf->len == size)) { if (likely(buf->len == size)) {
buf->next = NULL; buf->next = NULL;
tipc_recv_msg(buf, eb_ptr->bearer); tipc_recv_msg(buf, eb_ptr->bearer);
return TIPC_OK; return TIPC_OK;
} }
} }
} }
...@@ -115,7 +115,7 @@ static int recv_msg(struct sk_buff *buf, struct net_device *dev, ...@@ -115,7 +115,7 @@ static int recv_msg(struct sk_buff *buf, struct net_device *dev,
} }
/** /**
* enable_bearer - attach TIPC bearer to an Ethernet interface * enable_bearer - attach TIPC bearer to an Ethernet interface
*/ */
static int enable_bearer(struct tipc_bearer *tb_ptr) static int enable_bearer(struct tipc_bearer *tb_ptr)
...@@ -127,7 +127,7 @@ static int enable_bearer(struct tipc_bearer *tb_ptr) ...@@ -127,7 +127,7 @@ static int enable_bearer(struct tipc_bearer *tb_ptr)
/* Find device with specified name */ /* Find device with specified name */
while (dev && dev->name && strncmp(dev->name, driver_name, IFNAMSIZ)) { while (dev && dev->name && strncmp(dev->name, driver_name, IFNAMSIZ)) {
dev = dev->next; dev = dev->next;
} }
if (!dev) if (!dev)
...@@ -154,14 +154,14 @@ static int enable_bearer(struct tipc_bearer *tb_ptr) ...@@ -154,14 +154,14 @@ static int enable_bearer(struct tipc_bearer *tb_ptr)
eb_ptr->bearer = tb_ptr; eb_ptr->bearer = tb_ptr;
tb_ptr->usr_handle = (void *)eb_ptr; tb_ptr->usr_handle = (void *)eb_ptr;
tb_ptr->mtu = dev->mtu; tb_ptr->mtu = dev->mtu;
tb_ptr->blocked = 0; tb_ptr->blocked = 0;
tb_ptr->addr.type = htonl(TIPC_MEDIA_TYPE_ETH); tb_ptr->addr.type = htonl(TIPC_MEDIA_TYPE_ETH);
memcpy(&tb_ptr->addr.dev_addr, &dev->dev_addr, ETH_ALEN); memcpy(&tb_ptr->addr.dev_addr, &dev->dev_addr, ETH_ALEN);
return 0; return 0;
} }
/** /**
* disable_bearer - detach TIPC bearer from an Ethernet interface * disable_bearer - detach TIPC bearer from an Ethernet interface
* *
* We really should do dev_remove_pack() here, but this function can not be * We really should do dev_remove_pack() here, but this function can not be
* called at tasklet level. => Use eth_bearer->bearer as a flag to throw away * called at tasklet level. => Use eth_bearer->bearer as a flag to throw away
...@@ -176,11 +176,11 @@ static void disable_bearer(struct tipc_bearer *tb_ptr) ...@@ -176,11 +176,11 @@ static void disable_bearer(struct tipc_bearer *tb_ptr)
/** /**
* recv_notification - handle device updates from OS * recv_notification - handle device updates from OS
* *
* Change the state of the Ethernet bearer (if any) associated with the * Change the state of the Ethernet bearer (if any) associated with the
* specified device. * specified device.
*/ */
static int recv_notification(struct notifier_block *nb, unsigned long evt, static int recv_notification(struct notifier_block *nb, unsigned long evt,
void *dv) void *dv)
{ {
struct net_device *dev = (struct net_device *)dv; struct net_device *dev = (struct net_device *)dv;
...@@ -194,7 +194,7 @@ static int recv_notification(struct notifier_block *nb, unsigned long evt, ...@@ -194,7 +194,7 @@ static int recv_notification(struct notifier_block *nb, unsigned long evt,
if (!eb_ptr->bearer) if (!eb_ptr->bearer)
return NOTIFY_DONE; /* bearer had been disabled */ return NOTIFY_DONE; /* bearer had been disabled */
eb_ptr->bearer->mtu = dev->mtu; eb_ptr->bearer->mtu = dev->mtu;
switch (evt) { switch (evt) {
case NETDEV_CHANGE: case NETDEV_CHANGE:
...@@ -210,12 +210,12 @@ static int recv_notification(struct notifier_block *nb, unsigned long evt, ...@@ -210,12 +210,12 @@ static int recv_notification(struct notifier_block *nb, unsigned long evt,
tipc_block_bearer(eb_ptr->bearer->name); tipc_block_bearer(eb_ptr->bearer->name);
break; break;
case NETDEV_CHANGEMTU: case NETDEV_CHANGEMTU:
case NETDEV_CHANGEADDR: case NETDEV_CHANGEADDR:
tipc_block_bearer(eb_ptr->bearer->name); tipc_block_bearer(eb_ptr->bearer->name);
tipc_continue(eb_ptr->bearer); tipc_continue(eb_ptr->bearer);
break; break;
case NETDEV_UNREGISTER: case NETDEV_UNREGISTER:
case NETDEV_CHANGENAME: case NETDEV_CHANGENAME:
tipc_disable_bearer(eb_ptr->bearer->name); tipc_disable_bearer(eb_ptr->bearer->name);
break; break;
} }
...@@ -227,7 +227,7 @@ static int recv_notification(struct notifier_block *nb, unsigned long evt, ...@@ -227,7 +227,7 @@ static int recv_notification(struct notifier_block *nb, unsigned long evt,
*/ */
static char *eth_addr2str(struct tipc_media_addr *a, char *str_buf, int str_size) static char *eth_addr2str(struct tipc_media_addr *a, char *str_buf, int str_size)
{ {
unchar *addr = (unchar *)&a->dev_addr; unchar *addr = (unchar *)&a->dev_addr;
if (str_size < 18) if (str_size < 18)
...@@ -246,7 +246,7 @@ static char *eth_addr2str(struct tipc_media_addr *a, char *str_buf, int str_size ...@@ -246,7 +246,7 @@ static char *eth_addr2str(struct tipc_media_addr *a, char *str_buf, int str_size
*/ */
int tipc_eth_media_start(void) int tipc_eth_media_start(void)
{ {
struct tipc_media_addr bcast_addr; struct tipc_media_addr bcast_addr;
int res; int res;
...@@ -259,8 +259,8 @@ int tipc_eth_media_start(void) ...@@ -259,8 +259,8 @@ int tipc_eth_media_start(void)
memset(eth_bearers, 0, sizeof(eth_bearers)); memset(eth_bearers, 0, sizeof(eth_bearers));
res = tipc_register_media(TIPC_MEDIA_TYPE_ETH, "eth", res = tipc_register_media(TIPC_MEDIA_TYPE_ETH, "eth",
enable_bearer, disable_bearer, send_msg, enable_bearer, disable_bearer, send_msg,
eth_addr2str, &bcast_addr, ETH_LINK_PRIORITY, eth_addr2str, &bcast_addr, ETH_LINK_PRIORITY,
ETH_LINK_TOLERANCE, ETH_LINK_WINDOW); ETH_LINK_TOLERANCE, ETH_LINK_WINDOW);
if (res) if (res)
return res; return res;
......
/* /*
* net/tipc/handler.c: TIPC signal handling * net/tipc/handler.c: TIPC signal handling
* *
* Copyright (c) 2000-2006, Ericsson AB * Copyright (c) 2000-2006, Ericsson AB
* Copyright (c) 2005, Wind River Systems * Copyright (c) 2005, Wind River Systems
* All rights reserved. * All rights reserved.
...@@ -95,7 +95,7 @@ static void process_signal_queue(unsigned long dummy) ...@@ -95,7 +95,7 @@ static void process_signal_queue(unsigned long dummy)
int tipc_handler_start(void) int tipc_handler_start(void)
{ {
tipc_queue_item_cache = tipc_queue_item_cache =
kmem_cache_create("tipc_queue_items", sizeof(struct queue_item), kmem_cache_create("tipc_queue_items", sizeof(struct queue_item),
0, SLAB_HWCACHE_ALIGN, NULL, NULL); 0, SLAB_HWCACHE_ALIGN, NULL, NULL);
if (!tipc_queue_item_cache) if (!tipc_queue_item_cache)
...@@ -110,7 +110,7 @@ int tipc_handler_start(void) ...@@ -110,7 +110,7 @@ int tipc_handler_start(void)
void tipc_handler_stop(void) void tipc_handler_stop(void)
{ {
struct list_head *l, *n; struct list_head *l, *n;
struct queue_item *item; struct queue_item *item;
if (!handler_enabled) if (!handler_enabled)
return; return;
......
This diff is collapsed.
/* /*
* net/tipc/link.h: Include file for TIPC link code * net/tipc/link.h: Include file for TIPC link code
* *
* Copyright (c) 1995-2006, Ericsson AB * Copyright (c) 1995-2006, Ericsson AB
* Copyright (c) 2004-2005, Wind River Systems * Copyright (c) 2004-2005, Wind River Systems
* All rights reserved. * All rights reserved.
...@@ -45,8 +45,8 @@ ...@@ -45,8 +45,8 @@
#define PUSH_FAILED 1 #define PUSH_FAILED 1
#define PUSH_FINISHED 2 #define PUSH_FINISHED 2
/* /*
* Link states * Link states
*/ */
#define WORKING_WORKING 560810u #define WORKING_WORKING 560810u
...@@ -54,7 +54,7 @@ ...@@ -54,7 +54,7 @@
#define RESET_UNKNOWN 560812u #define RESET_UNKNOWN 560812u
#define RESET_RESET 560813u #define RESET_RESET 560813u
/* /*
* Starting value for maximum packet size negotiation on unicast links * Starting value for maximum packet size negotiation on unicast links
* (unless bearer MTU is less) * (unless bearer MTU is less)
*/ */
...@@ -74,7 +74,7 @@ ...@@ -74,7 +74,7 @@
* @peer_session: link session # being used by peer end of link * @peer_session: link session # being used by peer end of link
* @peer_bearer_id: bearer id used by link's peer endpoint * @peer_bearer_id: bearer id used by link's peer endpoint
* @b_ptr: pointer to bearer used by link * @b_ptr: pointer to bearer used by link
* @tolerance: minimum link continuity loss needed to reset link [in ms] * @tolerance: minimum link continuity loss needed to reset link [in ms]
* @continuity_interval: link continuity testing interval [in ms] * @continuity_interval: link continuity testing interval [in ms]
* @abort_limit: # of unacknowledged continuity probes needed to reset link * @abort_limit: # of unacknowledged continuity probes needed to reset link
* @state: current state of link FSM * @state: current state of link FSM
...@@ -110,7 +110,7 @@ ...@@ -110,7 +110,7 @@
* @stats: collects statistics regarding link activity * @stats: collects statistics regarding link activity
* @print_buf: print buffer used to log link activity * @print_buf: print buffer used to log link activity
*/ */
struct link { struct link {
u32 addr; u32 addr;
char name[TIPC_MAX_LINK_NAME]; char name[TIPC_MAX_LINK_NAME];
...@@ -143,18 +143,18 @@ struct link { ...@@ -143,18 +143,18 @@ struct link {
u32 exp_msg_count; u32 exp_msg_count;
u32 reset_checkpoint; u32 reset_checkpoint;
/* Max packet negotiation */ /* Max packet negotiation */
u32 max_pkt; u32 max_pkt;
u32 max_pkt_target; u32 max_pkt_target;
u32 max_pkt_probes; u32 max_pkt_probes;
/* Sending */ /* Sending */
u32 out_queue_size; u32 out_queue_size;
struct sk_buff *first_out; struct sk_buff *first_out;
struct sk_buff *last_out; struct sk_buff *last_out;
u32 next_out_no; u32 next_out_no;
u32 last_retransmitted; u32 last_retransmitted;
u32 stale_count; u32 stale_count;
/* Reception */ /* Reception */
u32 next_in_no; u32 next_in_no;
...@@ -174,7 +174,7 @@ struct link { ...@@ -174,7 +174,7 @@ struct link {
u32 long_msg_seq_no; u32 long_msg_seq_no;
struct sk_buff *defragm_buf; struct sk_buff *defragm_buf;
/* Statistics */ /* Statistics */
struct { struct {
u32 sent_info; /* used in counting # sent packets */ u32 sent_info; /* used in counting # sent packets */
u32 recv_info; /* used in counting # recv'd packets */ u32 recv_info; /* used in counting # recv'd packets */
...@@ -239,9 +239,9 @@ void tipc_link_reset(struct link *l_ptr); ...@@ -239,9 +239,9 @@ void tipc_link_reset(struct link *l_ptr);
int tipc_link_send(struct sk_buff *buf, u32 dest, u32 selector); int tipc_link_send(struct sk_buff *buf, u32 dest, u32 selector);
int tipc_link_send_buf(struct link *l_ptr, struct sk_buff *buf); int tipc_link_send_buf(struct link *l_ptr, struct sk_buff *buf);
u32 tipc_link_get_max_pkt(u32 dest,u32 selector); u32 tipc_link_get_max_pkt(u32 dest,u32 selector);
int tipc_link_send_sections_fast(struct port* sender, int tipc_link_send_sections_fast(struct port* sender,
struct iovec const *msg_sect, struct iovec const *msg_sect,
const u32 num_sect, const u32 num_sect,
u32 destnode); u32 destnode);
int tipc_link_send_long_buf(struct link *l_ptr, struct sk_buff *buf); 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, void tipc_link_tunnel(struct link *l_ptr, struct tipc_msg *tnl_hdr,
...@@ -250,7 +250,7 @@ void tipc_link_recv_bundle(struct sk_buff *buf); ...@@ -250,7 +250,7 @@ void tipc_link_recv_bundle(struct sk_buff *buf);
int tipc_link_recv_fragment(struct sk_buff **pending, int tipc_link_recv_fragment(struct sk_buff **pending,
struct sk_buff **fb, struct sk_buff **fb,
struct tipc_msg **msg); struct tipc_msg **msg);
void tipc_link_send_proto_msg(struct link *l_ptr, u32 msg_typ, int prob, u32 gap, void tipc_link_send_proto_msg(struct link *l_ptr, u32 msg_typ, int prob, u32 gap,
u32 tolerance, u32 priority, u32 acked_mtu); u32 tolerance, u32 priority, u32 acked_mtu);
void tipc_link_push_queue(struct link *l_ptr); void tipc_link_push_queue(struct link *l_ptr);
u32 tipc_link_defer_pkt(struct sk_buff **head, struct sk_buff **tail, u32 tipc_link_defer_pkt(struct sk_buff **head, struct sk_buff **tail,
......
/* /*
* net/tipc/msg.c: TIPC message header routines * net/tipc/msg.c: TIPC message header routines
* *
* Copyright (c) 2000-2006, Ericsson AB * Copyright (c) 2000-2006, Ericsson AB
* Copyright (c) 2005, Wind River Systems * Copyright (c) 2005, Wind River Systems
* All rights reserved. * All rights reserved.
......
This diff is collapsed.
/* /*
* net/tipc/name_distr.c: TIPC name distribution code * net/tipc/name_distr.c: TIPC name distribution code
* *
* Copyright (c) 2000-2006, Ericsson AB * Copyright (c) 2000-2006, Ericsson AB
* Copyright (c) 2005, Wind River Systems * Copyright (c) 2005, Wind River Systems
* All rights reserved. * All rights reserved.
...@@ -53,15 +53,15 @@ ...@@ -53,15 +53,15 @@
* @upper: name sequence upper bound * @upper: name sequence upper bound
* @ref: publishing port reference * @ref: publishing port reference
* @key: publication key * @key: publication key
* *
* ===> All fields are stored in network byte order. <=== * ===> All fields are stored in network byte order. <===
* *
* First 3 fields identify (name or) name sequence being published. * First 3 fields identify (name or) name sequence being published.
* Reference field uniquely identifies port that published name sequence. * Reference field uniquely identifies port that published name sequence.
* Key field uniquely identifies publication, in the event a port has * Key field uniquely identifies publication, in the event a port has
* multiple publications of the same name sequence. * multiple publications of the same name sequence.
* *
* Note: There is no field that identifies the publishing node because it is * Note: There is no field that identifies the publishing node because it is
* the same for all items contained within a publication message. * the same for all items contained within a publication message.
*/ */
...@@ -74,12 +74,12 @@ struct distr_item { ...@@ -74,12 +74,12 @@ struct distr_item {
}; };
/** /**
* List of externally visible publications by this node -- * List of externally visible publications by this node --
* that is, all publications having scope > TIPC_NODE_SCOPE. * that is, all publications having scope > TIPC_NODE_SCOPE.
*/ */
static LIST_HEAD(publ_root); static LIST_HEAD(publ_root);
static u32 publ_cnt = 0; static u32 publ_cnt = 0;
/** /**
* publ_to_item - add publication info to a publication message * publ_to_item - add publication info to a publication message
...@@ -101,12 +101,12 @@ static void publ_to_item(struct distr_item *i, struct publication *p) ...@@ -101,12 +101,12 @@ static void publ_to_item(struct distr_item *i, struct publication *p)
static struct sk_buff *named_prepare_buf(u32 type, u32 size, u32 dest) 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 = buf_acquire(LONG_H_SIZE + size);
struct tipc_msg *msg; struct tipc_msg *msg;
if (buf != NULL) { if (buf != NULL) {
msg = buf_msg(buf); msg = buf_msg(buf);
msg_init(msg, NAME_DISTRIBUTOR, type, TIPC_OK, msg_init(msg, NAME_DISTRIBUTOR, type, TIPC_OK,
LONG_H_SIZE, dest); LONG_H_SIZE, dest);
msg_set_size(msg, LONG_H_SIZE + size); msg_set_size(msg, LONG_H_SIZE + size);
} }
...@@ -174,7 +174,7 @@ void tipc_named_node_up(unsigned long node) ...@@ -174,7 +174,7 @@ void tipc_named_node_up(unsigned long node)
u32 rest; u32 rest;
u32 max_item_buf; u32 max_item_buf;
read_lock_bh(&tipc_nametbl_lock); read_lock_bh(&tipc_nametbl_lock);
max_item_buf = TIPC_MAX_USER_MSG_SIZE / ITEM_SIZE; max_item_buf = TIPC_MAX_USER_MSG_SIZE / ITEM_SIZE;
max_item_buf *= ITEM_SIZE; max_item_buf *= ITEM_SIZE;
rest = publ_cnt * ITEM_SIZE; rest = publ_cnt * ITEM_SIZE;
...@@ -183,7 +183,7 @@ void tipc_named_node_up(unsigned long node) ...@@ -183,7 +183,7 @@ void tipc_named_node_up(unsigned long node)
if (!buf) { if (!buf) {
left = (rest <= max_item_buf) ? rest : max_item_buf; left = (rest <= max_item_buf) ? rest : max_item_buf;
rest -= left; rest -= left;
buf = named_prepare_buf(PUBLICATION, left, node); buf = named_prepare_buf(PUBLICATION, left, node);
if (!buf) { if (!buf) {
warn("Bulk publication distribution failure\n"); warn("Bulk publication distribution failure\n");
goto exit; goto exit;
...@@ -196,20 +196,20 @@ void tipc_named_node_up(unsigned long node) ...@@ -196,20 +196,20 @@ void tipc_named_node_up(unsigned long node)
if (!left) { if (!left) {
msg_set_link_selector(buf_msg(buf), node); msg_set_link_selector(buf_msg(buf), node);
dbg("tipc_named_node_up: sending publish msg to " dbg("tipc_named_node_up: sending publish msg to "
"<%u.%u.%u>\n", tipc_zone(node), "<%u.%u.%u>\n", tipc_zone(node),
tipc_cluster(node), tipc_node(node)); tipc_cluster(node), tipc_node(node));
tipc_link_send(buf, node, node); tipc_link_send(buf, node, node);
buf = NULL; buf = NULL;
} }
} }
exit: exit:
read_unlock_bh(&tipc_nametbl_lock); read_unlock_bh(&tipc_nametbl_lock);
} }
/** /**
* node_is_down - remove publication associated with a failed node * node_is_down - remove publication associated with a failed node
* *
* Invoked for each publication issued by a newly failed node. * Invoked for each publication issued by a newly failed node.
* Removes publication structure from name table & deletes it. * Removes publication structure from name table & deletes it.
* In rare cases the link may have come back up again when this * In rare cases the link may have come back up again when this
* function is called, and we have two items representing the same * function is called, and we have two items representing the same
...@@ -221,15 +221,15 @@ static void node_is_down(struct publication *publ) ...@@ -221,15 +221,15 @@ static void node_is_down(struct publication *publ)
{ {
struct publication *p; struct publication *p;
write_lock_bh(&tipc_nametbl_lock); write_lock_bh(&tipc_nametbl_lock);
dbg("node_is_down: withdrawing %u, %u, %u\n", dbg("node_is_down: withdrawing %u, %u, %u\n",
publ->type, publ->lower, publ->upper); publ->type, publ->lower, publ->upper);
publ->key += 1222345; publ->key += 1222345;
p = tipc_nametbl_remove_publ(publ->type, publ->lower, p = tipc_nametbl_remove_publ(publ->type, publ->lower,
publ->node, publ->ref, publ->key); publ->node, publ->ref, publ->key);
write_unlock_bh(&tipc_nametbl_lock); write_unlock_bh(&tipc_nametbl_lock);
if (p != publ) { if (p != publ) {
err("Unable to remove publication from failed node\n" err("Unable to remove publication from failed node\n"
"(type=%u, lower=%u, node=0x%x, ref=%u, key=%u)\n", "(type=%u, lower=%u, node=0x%x, ref=%u, key=%u)\n",
publ->type, publ->lower, publ->node, publ->ref, publ->key); publ->type, publ->lower, publ->node, publ->ref, publ->key);
...@@ -251,27 +251,27 @@ void tipc_named_recv(struct sk_buff *buf) ...@@ -251,27 +251,27 @@ void tipc_named_recv(struct sk_buff *buf)
struct distr_item *item = (struct distr_item *)msg_data(msg); struct distr_item *item = (struct distr_item *)msg_data(msg);
u32 count = msg_data_sz(msg) / ITEM_SIZE; u32 count = msg_data_sz(msg) / ITEM_SIZE;
write_lock_bh(&tipc_nametbl_lock); write_lock_bh(&tipc_nametbl_lock);
while (count--) { while (count--) {
if (msg_type(msg) == PUBLICATION) { if (msg_type(msg) == PUBLICATION) {
dbg("tipc_named_recv: got publication for %u, %u, %u\n", dbg("tipc_named_recv: got publication for %u, %u, %u\n",
ntohl(item->type), ntohl(item->lower), ntohl(item->type), ntohl(item->lower),
ntohl(item->upper)); ntohl(item->upper));
publ = tipc_nametbl_insert_publ(ntohl(item->type), publ = tipc_nametbl_insert_publ(ntohl(item->type),
ntohl(item->lower), ntohl(item->lower),
ntohl(item->upper), ntohl(item->upper),
TIPC_CLUSTER_SCOPE, TIPC_CLUSTER_SCOPE,
msg_orignode(msg), msg_orignode(msg),
ntohl(item->ref), ntohl(item->ref),
ntohl(item->key)); ntohl(item->key));
if (publ) { if (publ) {
tipc_nodesub_subscribe(&publ->subscr, tipc_nodesub_subscribe(&publ->subscr,
msg_orignode(msg), msg_orignode(msg),
publ, publ,
(net_ev_handler)node_is_down); (net_ev_handler)node_is_down);
} }
} else if (msg_type(msg) == WITHDRAWAL) { } else if (msg_type(msg) == WITHDRAWAL) {
dbg("tipc_named_recv: got withdrawl for %u, %u, %u\n", dbg("tipc_named_recv: got withdrawl for %u, %u, %u\n",
ntohl(item->type), ntohl(item->lower), ntohl(item->type), ntohl(item->lower),
ntohl(item->upper)); ntohl(item->upper));
publ = tipc_nametbl_remove_publ(ntohl(item->type), publ = tipc_nametbl_remove_publ(ntohl(item->type),
...@@ -282,7 +282,7 @@ void tipc_named_recv(struct sk_buff *buf) ...@@ -282,7 +282,7 @@ void tipc_named_recv(struct sk_buff *buf)
if (publ) { if (publ) {
tipc_nodesub_unsubscribe(&publ->subscr); tipc_nodesub_unsubscribe(&publ->subscr);
kfree(publ); kfree(publ);
} else { } else {
err("Unable to remove publication by node 0x%x\n" err("Unable to remove publication by node 0x%x\n"
"(type=%u, lower=%u, ref=%u, key=%u)\n", "(type=%u, lower=%u, ref=%u, key=%u)\n",
...@@ -295,13 +295,13 @@ void tipc_named_recv(struct sk_buff *buf) ...@@ -295,13 +295,13 @@ void tipc_named_recv(struct sk_buff *buf)
} }
item++; item++;
} }
write_unlock_bh(&tipc_nametbl_lock); write_unlock_bh(&tipc_nametbl_lock);
buf_discard(buf); buf_discard(buf);
} }
/** /**
* tipc_named_reinit - re-initialize local publication list * tipc_named_reinit - re-initialize local publication list
* *
* This routine is called whenever TIPC networking is (re)enabled. * This routine is called whenever TIPC networking is (re)enabled.
* All existing publications by this node that have "cluster" or "zone" scope * All existing publications by this node that have "cluster" or "zone" scope
* are updated to reflect the node's current network address. * are updated to reflect the node's current network address.
...@@ -312,11 +312,11 @@ void tipc_named_reinit(void) ...@@ -312,11 +312,11 @@ void tipc_named_reinit(void)
{ {
struct publication *publ; struct publication *publ;
write_lock_bh(&tipc_nametbl_lock); write_lock_bh(&tipc_nametbl_lock);
list_for_each_entry(publ, &publ_root, local_list) { list_for_each_entry(publ, &publ_root, local_list) {
if (publ->node == tipc_own_addr) if (publ->node == tipc_own_addr)
break; break;
publ->node = tipc_own_addr; publ->node = tipc_own_addr;
} }
write_unlock_bh(&tipc_nametbl_lock); write_unlock_bh(&tipc_nametbl_lock);
} }
/* /*
* net/tipc/name_distr.h: Include file for TIPC name distribution code * net/tipc/name_distr.h: Include file for TIPC name distribution code
* *
* Copyright (c) 2000-2006, Ericsson AB * Copyright (c) 2000-2006, Ericsson AB
* Copyright (c) 2005, Wind River Systems * Copyright (c) 2005, Wind River Systems
* All rights reserved. * All rights reserved.
......
This diff is collapsed.
/* /*
* net/tipc/name_table.h: Include file for TIPC name table code * net/tipc/name_table.h: Include file for TIPC name table code
* *
* Copyright (c) 2000-2006, Ericsson AB * Copyright (c) 2000-2006, Ericsson AB
* Copyright (c) 2004-2005, Wind River Systems * Copyright (c) 2004-2005, Wind River Systems
* All rights reserved. * All rights reserved.
...@@ -64,7 +64,7 @@ struct port_list; ...@@ -64,7 +64,7 @@ struct port_list;
* @node_list: next matching name seq publication with >= node scope * @node_list: next matching name seq publication with >= node scope
* @cluster_list: next matching name seq publication with >= cluster scope * @cluster_list: next matching name seq publication with >= cluster scope
* @zone_list: next matching name seq publication with >= zone scope * @zone_list: next matching name seq publication with >= zone scope
* *
* Note that the node list, cluster list, and zone list are circular lists. * Note that the node list, cluster list, and zone list are circular lists.
*/ */
...@@ -89,16 +89,16 @@ extern rwlock_t tipc_nametbl_lock; ...@@ -89,16 +89,16 @@ extern rwlock_t tipc_nametbl_lock;
struct sk_buff *tipc_nametbl_get(const void *req_tlv_area, int req_tlv_space); struct sk_buff *tipc_nametbl_get(const void *req_tlv_area, int req_tlv_space);
u32 tipc_nametbl_translate(u32 type, u32 instance, u32 *node); u32 tipc_nametbl_translate(u32 type, u32 instance, u32 *node);
int tipc_nametbl_mc_translate(u32 type, u32 lower, u32 upper, u32 limit, int tipc_nametbl_mc_translate(u32 type, u32 lower, u32 upper, u32 limit,
struct port_list *dports); struct port_list *dports);
int tipc_nametbl_publish_rsv(u32 ref, unsigned int scope, int tipc_nametbl_publish_rsv(u32 ref, unsigned int scope,
struct tipc_name_seq const *seq); struct tipc_name_seq const *seq);
struct publication *tipc_nametbl_publish(u32 type, u32 lower, u32 upper, struct publication *tipc_nametbl_publish(u32 type, u32 lower, u32 upper,
u32 scope, u32 port_ref, u32 key); u32 scope, u32 port_ref, u32 key);
int tipc_nametbl_withdraw(u32 type, u32 lower, u32 ref, u32 key); int tipc_nametbl_withdraw(u32 type, u32 lower, u32 ref, u32 key);
struct publication *tipc_nametbl_insert_publ(u32 type, u32 lower, u32 upper, struct publication *tipc_nametbl_insert_publ(u32 type, u32 lower, u32 upper,
u32 scope, u32 node, u32 ref, u32 key); u32 scope, u32 node, u32 ref, u32 key);
struct publication *tipc_nametbl_remove_publ(u32 type, u32 lower, struct publication *tipc_nametbl_remove_publ(u32 type, u32 lower,
u32 node, u32 ref, u32 key); u32 node, u32 ref, u32 key);
void tipc_nametbl_subscribe(struct subscription *s); void tipc_nametbl_subscribe(struct subscription *s);
void tipc_nametbl_unsubscribe(struct subscription *s); void tipc_nametbl_unsubscribe(struct subscription *s);
......
/* /*
* net/tipc/net.c: TIPC network routing code * net/tipc/net.c: TIPC network routing code
* *
* Copyright (c) 1995-2006, Ericsson AB * Copyright (c) 1995-2006, Ericsson AB
* Copyright (c) 2005, Wind River Systems * Copyright (c) 2005, Wind River Systems
* All rights reserved. * All rights reserved.
...@@ -49,63 +49,63 @@ ...@@ -49,63 +49,63 @@
#include "discover.h" #include "discover.h"
#include "config.h" #include "config.h"
/* /*
* The TIPC locking policy is designed to ensure a very fine locking * The TIPC locking policy is designed to ensure a very fine locking
* granularity, permitting complete parallel access to individual * granularity, permitting complete parallel access to individual
* port and node/link instances. The code consists of three major * port and node/link instances. The code consists of three major
* locking domains, each protected with their own disjunct set of locks. * locking domains, each protected with their own disjunct set of locks.
* *
* 1: The routing hierarchy. * 1: The routing hierarchy.
* Comprises the structures 'zone', 'cluster', 'node', 'link' * Comprises the structures 'zone', 'cluster', 'node', 'link'
* and 'bearer'. The whole hierarchy is protected by a big * and 'bearer'. The whole hierarchy is protected by a big
* read/write lock, tipc_net_lock, to enssure that nothing is added * read/write lock, tipc_net_lock, to enssure that nothing is added
* or removed while code is accessing any of these structures. * or removed while code is accessing any of these structures.
* This layer must not be called from the two others while they * This layer must not be called from the two others while they
* hold any of their own locks. * hold any of their own locks.
* Neither must it itself do any upcalls to the other two before * Neither must it itself do any upcalls to the other two before
* it has released tipc_net_lock and other protective locks. * it has released tipc_net_lock and other protective locks.
* *
* Within the tipc_net_lock domain there are two sub-domains;'node' and * Within the tipc_net_lock domain there are two sub-domains;'node' and
* 'bearer', where local write operations are permitted, * 'bearer', where local write operations are permitted,
* provided that those are protected by individual spin_locks * provided that those are protected by individual spin_locks
* per instance. Code holding tipc_net_lock(read) and a node spin_lock * per instance. Code holding tipc_net_lock(read) and a node spin_lock
* is permitted to poke around in both the node itself and its * is permitted to poke around in both the node itself and its
* subordinate links. I.e, it can update link counters and queues, * subordinate links. I.e, it can update link counters and queues,
* change link state, send protocol messages, and alter the * change link state, send protocol messages, and alter the
* "active_links" array in the node; but it can _not_ remove a link * "active_links" array in the node; but it can _not_ remove a link
* or a node from the overall structure. * or a node from the overall structure.
* Correspondingly, individual bearers may change status within a * Correspondingly, individual bearers may change status within a
* tipc_net_lock(read), protected by an individual spin_lock ber bearer * tipc_net_lock(read), protected by an individual spin_lock ber bearer
* instance, but it needs tipc_net_lock(write) to remove/add any bearers. * instance, but it needs tipc_net_lock(write) to remove/add any bearers.
*
* *
* 2: The transport level of the protocol. *
* This consists of the structures port, (and its user level * 2: The transport level of the protocol.
* representations, such as user_port and tipc_sock), reference and * This consists of the structures port, (and its user level
* tipc_user (port.c, reg.c, socket.c). * representations, such as user_port and tipc_sock), reference and
* tipc_user (port.c, reg.c, socket.c).
* *
* This layer has four different locks: * This layer has four different locks:
* - The tipc_port spin_lock. This is protecting each port instance * - The tipc_port spin_lock. This is protecting each port instance
* from parallel data access and removal. Since we can not place * from parallel data access and removal. Since we can not place
* this lock in the port itself, it has been placed in the * this lock in the port itself, it has been placed in the
* corresponding reference table entry, which has the same life * corresponding reference table entry, which has the same life
* cycle as the module. This entry is difficult to access from * cycle as the module. This entry is difficult to access from
* outside the TIPC core, however, so a pointer to the lock has * outside the TIPC core, however, so a pointer to the lock has
* been added in the port instance, -to be used for unlocking * been added in the port instance, -to be used for unlocking
* only. * only.
* - A read/write lock to protect the reference table itself (teg.c). * - A read/write lock to protect the reference table itself (teg.c).
* (Nobody is using read-only access to this, so it can just as * (Nobody is using read-only access to this, so it can just as
* well be changed to a spin_lock) * well be changed to a spin_lock)
* - A spin lock to protect the registry of kernel/driver users (reg.c) * - A spin lock to protect the registry of kernel/driver users (reg.c)
* - A global spin_lock (tipc_port_lock), which only task is to ensure * - A global spin_lock (tipc_port_lock), which only task is to ensure
* consistency where more than one port is involved in an operation, * consistency where more than one port is involved in an operation,
* i.e., whe a port is part of a linked list of ports. * i.e., whe a port is part of a linked list of ports.
* There are two such lists; 'port_list', which is used for management, * There are two such lists; 'port_list', which is used for management,
* and 'wait_list', which is used to queue ports during congestion. * and 'wait_list', which is used to queue ports during congestion.
* *
* 3: The name table (name_table.c, name_distr.c, subscription.c) * 3: The name table (name_table.c, name_distr.c, subscription.c)
* - There is one big read/write-lock (tipc_nametbl_lock) protecting the * - There is one big read/write-lock (tipc_nametbl_lock) protecting the
* overall name table structure. Nothing must be added/removed to * overall name table structure. Nothing must be added/removed to
* this structure without holding write access to it. * this structure without holding write access to it.
* - There is one local spin_lock per sub_sequence, which can be seen * - There is one local spin_lock per sub_sequence, which can be seen
* as a sub-domain to the tipc_nametbl_lock domain. It is used only * as a sub-domain to the tipc_nametbl_lock domain. It is used only
...@@ -118,7 +118,7 @@ ...@@ -118,7 +118,7 @@
DEFINE_RWLOCK(tipc_net_lock); DEFINE_RWLOCK(tipc_net_lock);
struct network tipc_net = { NULL }; struct network tipc_net = { NULL };
struct node *tipc_net_select_remote_node(u32 addr, u32 ref) struct node *tipc_net_select_remote_node(u32 addr, u32 ref)
{ {
return tipc_zone_select_remote_node(tipc_net.zones[tipc_zone(addr)], addr, ref); return tipc_zone_select_remote_node(tipc_net.zones[tipc_zone(addr)], addr, ref);
} }
...@@ -224,7 +224,7 @@ void tipc_net_route_msg(struct sk_buff *buf) ...@@ -224,7 +224,7 @@ void tipc_net_route_msg(struct sk_buff *buf)
buf_discard(buf); buf_discard(buf);
} else { } else {
msg_dbg(msg, "NET>REJ>:"); msg_dbg(msg, "NET>REJ>:");
tipc_reject_msg(buf, msg_destport(msg) ? tipc_reject_msg(buf, msg_destport(msg) ?
TIPC_ERR_NO_PORT : TIPC_ERR_NO_NAME); TIPC_ERR_NO_PORT : TIPC_ERR_NO_NAME);
} }
return; return;
...@@ -236,7 +236,7 @@ void tipc_net_route_msg(struct sk_buff *buf) ...@@ -236,7 +236,7 @@ void tipc_net_route_msg(struct sk_buff *buf)
dnode = msg_short(msg) ? tipc_own_addr : msg_destnode(msg); dnode = msg_short(msg) ? tipc_own_addr : msg_destnode(msg);
if (in_scope(dnode, tipc_own_addr)) { if (in_scope(dnode, tipc_own_addr)) {
if (msg_isdata(msg)) { if (msg_isdata(msg)) {
if (msg_mcast(msg)) if (msg_mcast(msg))
tipc_port_recv_mcast(buf, NULL); tipc_port_recv_mcast(buf, NULL);
else if (msg_destport(msg)) else if (msg_destport(msg))
tipc_port_recv_msg(buf); tipc_port_recv_msg(buf);
...@@ -284,7 +284,7 @@ int tipc_net_start(void) ...@@ -284,7 +284,7 @@ int tipc_net_start(void)
(res = tipc_bclink_init())) { (res = tipc_bclink_init())) {
return res; return res;
} }
tipc_subscr_stop(); tipc_subscr_stop();
tipc_cfg_stop(); tipc_cfg_stop();
tipc_k_signal((Handler)tipc_subscr_start, 0); tipc_k_signal((Handler)tipc_subscr_start, 0);
tipc_k_signal((Handler)tipc_cfg_init, 0); tipc_k_signal((Handler)tipc_cfg_init, 0);
...@@ -298,12 +298,12 @@ void tipc_net_stop(void) ...@@ -298,12 +298,12 @@ void tipc_net_stop(void)
{ {
if (tipc_mode != TIPC_NET_MODE) if (tipc_mode != TIPC_NET_MODE)
return; return;
write_lock_bh(&tipc_net_lock); write_lock_bh(&tipc_net_lock);
tipc_bearer_stop(); tipc_bearer_stop();
tipc_mode = TIPC_NODE_MODE; tipc_mode = TIPC_NODE_MODE;
tipc_bclink_stop(); tipc_bclink_stop();
net_stop(); net_stop();
write_unlock_bh(&tipc_net_lock); write_unlock_bh(&tipc_net_lock);
info("Left network mode \n"); info("Left network mode \n");
} }
/* /*
* net/tipc/net.h: Include file for TIPC network routing code * net/tipc/net.h: Include file for TIPC network routing code
* *
* Copyright (c) 1995-2006, Ericsson AB * Copyright (c) 1995-2006, Ericsson AB
* Copyright (c) 2005, Wind River Systems * Copyright (c) 2005, Wind River Systems
* All rights reserved. * All rights reserved.
...@@ -43,7 +43,7 @@ struct _zone; ...@@ -43,7 +43,7 @@ struct _zone;
* struct network - TIPC network structure * struct network - TIPC network structure
* @zones: array of pointers to all zones within network * @zones: array of pointers to all zones within network
*/ */
struct network { struct network {
struct _zone **zones; struct _zone **zones;
}; };
......
/* /*
* net/tipc/netlink.c: TIPC configuration handling * net/tipc/netlink.c: TIPC configuration handling
* *
* Copyright (c) 2005-2006, Ericsson AB * Copyright (c) 2005-2006, Ericsson AB
* Copyright (c) 2005, Wind River Systems * Copyright (c) 2005, Wind River Systems
* All rights reserved. * All rights reserved.
...@@ -63,15 +63,15 @@ static int handle_cmd(struct sk_buff *skb, struct genl_info *info) ...@@ -63,15 +63,15 @@ static int handle_cmd(struct sk_buff *skb, struct genl_info *info)
genlmsg_unicast(rep_buf, req_nlh->nlmsg_pid); genlmsg_unicast(rep_buf, req_nlh->nlmsg_pid);
} }
return 0; return 0;
} }
static struct genl_family family = { static struct genl_family family = {
.id = GENL_ID_GENERATE, .id = GENL_ID_GENERATE,
.name = TIPC_GENL_NAME, .name = TIPC_GENL_NAME,
.version = TIPC_GENL_VERSION, .version = TIPC_GENL_VERSION,
.hdrsize = TIPC_GENL_HDRLEN, .hdrsize = TIPC_GENL_HDRLEN,
.maxattr = 0, .maxattr = 0,
}; };
static struct genl_ops ops = { static struct genl_ops ops = {
...@@ -93,7 +93,7 @@ int tipc_netlink_start(void) ...@@ -93,7 +93,7 @@ int tipc_netlink_start(void)
if (genl_register_ops(&family, &ops)) if (genl_register_ops(&family, &ops))
goto err_unregister; goto err_unregister;
return 0; return 0;
err_unregister: err_unregister:
genl_unregister_family(&family); genl_unregister_family(&family);
......
This diff is collapsed.
/* /*
* net/tipc/node.h: Include file for TIPC node management routines * net/tipc/node.h: Include file for TIPC node management routines
* *
* Copyright (c) 2000-2006, Ericsson AB * Copyright (c) 2000-2006, Ericsson AB
* Copyright (c) 2005, Wind River Systems * Copyright (c) 2005, Wind River Systems
* All rights reserved. * All rights reserved.
...@@ -67,7 +67,7 @@ ...@@ -67,7 +67,7 @@
* @deferred_tail: newest OOS b'cast message received from node * @deferred_tail: newest OOS b'cast message received from node
* @defragm: list of partially reassembled b'cast message fragments from node * @defragm: list of partially reassembled b'cast message fragments from node
*/ */
struct node { struct node {
u32 addr; u32 addr;
spinlock_t lock; spinlock_t lock;
...@@ -85,8 +85,8 @@ struct node { ...@@ -85,8 +85,8 @@ struct node {
int supported; int supported;
u32 acked; u32 acked;
u32 last_in; u32 last_in;
u32 gap_after; u32 gap_after;
u32 gap_to; u32 gap_to;
u32 nack_sync; u32 nack_sync;
struct sk_buff *deferred_head; struct sk_buff *deferred_head;
struct sk_buff *deferred_tail; struct sk_buff *deferred_tail;
......
/* /*
* net/tipc/node_subscr.c: TIPC "node down" subscription handling * net/tipc/node_subscr.c: TIPC "node down" subscription handling
* *
* Copyright (c) 1995-2006, Ericsson AB * Copyright (c) 1995-2006, Ericsson AB
* Copyright (c) 2005, Wind River Systems * Copyright (c) 2005, Wind River Systems
* All rights reserved. * All rights reserved.
...@@ -44,14 +44,14 @@ ...@@ -44,14 +44,14 @@
* tipc_nodesub_subscribe - create "node down" subscription for specified node * tipc_nodesub_subscribe - create "node down" subscription for specified node
*/ */
void tipc_nodesub_subscribe(struct node_subscr *node_sub, u32 addr, void tipc_nodesub_subscribe(struct node_subscr *node_sub, u32 addr,
void *usr_handle, net_ev_handler handle_down) void *usr_handle, net_ev_handler handle_down)
{ {
if (addr == tipc_own_addr) { if (addr == tipc_own_addr) {
node_sub->node = NULL; node_sub->node = NULL;
return; return;
} }
node_sub->node = tipc_node_find(addr); node_sub->node = tipc_node_find(addr);
if (!node_sub->node) { if (!node_sub->node) {
warn("Node subscription rejected, unknown node 0x%x\n", addr); warn("Node subscription rejected, unknown node 0x%x\n", addr);
......
/* /*
* net/tipc/node_subscr.h: Include file for TIPC "node down" subscription handling * net/tipc/node_subscr.h: Include file for TIPC "node down" subscription handling
* *
* Copyright (c) 1995-2006, Ericsson AB * Copyright (c) 1995-2006, Ericsson AB
* Copyright (c) 2005, Wind River Systems * Copyright (c) 2005, Wind River Systems
* All rights reserved. * All rights reserved.
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
/* /*
* net/tipc/ref.h: Include file for TIPC object registry code * net/tipc/ref.h: Include file for TIPC object registry code
* *
* Copyright (c) 1991-2006, Ericsson AB * Copyright (c) 1991-2006, Ericsson AB
* Copyright (c) 2005, Wind River Systems * Copyright (c) 2005, Wind River Systems
* All rights reserved. * All rights reserved.
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
* @lock: spinlock controlling access to object * @lock: spinlock controlling access to object
* @data: reference value associated with object (or link to next unused entry) * @data: reference value associated with object (or link to next unused entry)
*/ */
struct reference { struct reference {
void *object; void *object;
spinlock_t lock; spinlock_t lock;
...@@ -96,7 +96,7 @@ static inline void *tipc_ref_lock(u32 ref) ...@@ -96,7 +96,7 @@ static inline void *tipc_ref_lock(u32 ref)
} }
/** /**
* tipc_ref_unlock - unlock referenced object * tipc_ref_unlock - unlock referenced object
*/ */
static inline void tipc_ref_unlock(u32 ref) static inline void tipc_ref_unlock(u32 ref)
...@@ -119,7 +119,7 @@ static inline void tipc_ref_unlock(u32 ref) ...@@ -119,7 +119,7 @@ static inline void tipc_ref_unlock(u32 ref)
static inline void *tipc_ref_deref(u32 ref) static inline void *tipc_ref_deref(u32 ref)
{ {
if (likely(tipc_ref_table.entries)) { if (likely(tipc_ref_table.entries)) {
struct reference *r = struct reference *r =
&tipc_ref_table.entries[ref & tipc_ref_table.index_mask]; &tipc_ref_table.entries[ref & tipc_ref_table.index_mask];
if (likely(r->data.reference == ref)) if (likely(r->data.reference == ref))
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
/* /*
* net/tipc/user_reg.h: Include file for TIPC user registry code * net/tipc/user_reg.h: Include file for TIPC user registry code
* *
* Copyright (c) 2000-2006, Ericsson AB * Copyright (c) 2000-2006, Ericsson AB
* Copyright (c) 2005, Wind River Systems * Copyright (c) 2005, Wind River Systems
* All rights reserved. * All rights reserved.
......
/* /*
* net/tipc/zone.c: TIPC zone management routines * net/tipc/zone.c: TIPC zone management routines
* *
* Copyright (c) 2000-2006, Ericsson AB * Copyright (c) 2000-2006, Ericsson AB
* Copyright (c) 2005, Wind River Systems * Copyright (c) 2005, Wind River Systems
* All rights reserved. * All rights reserved.
...@@ -92,7 +92,7 @@ void tipc_zone_remove_as_router(struct _zone *z_ptr, u32 router) ...@@ -92,7 +92,7 @@ void tipc_zone_remove_as_router(struct _zone *z_ptr, u32 router)
for (c_num = 1; c_num <= tipc_max_clusters; c_num++) { for (c_num = 1; c_num <= tipc_max_clusters; c_num++) {
if (z_ptr->clusters[c_num]) { if (z_ptr->clusters[c_num]) {
tipc_cltr_remove_as_router(z_ptr->clusters[c_num], tipc_cltr_remove_as_router(z_ptr->clusters[c_num],
router); router);
} }
} }
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment