Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
b6d151bb
Commit
b6d151bb
authored
Apr 30, 2012
by
David S. Miller
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'tipc_net-next' of
git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux
parents
1191cb83
617d3c7a
Changes
34
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
34 changed files
with
58 additions
and
567 deletions
+58
-567
net/tipc/Makefile
net/tipc/Makefile
+0
-2
net/tipc/addr.c
net/tipc/addr.c
+0
-3
net/tipc/addr.h
net/tipc/addr.h
+0
-3
net/tipc/bcast.c
net/tipc/bcast.c
+0
-22
net/tipc/bcast.h
net/tipc/bcast.h
+0
-3
net/tipc/bearer.c
net/tipc/bearer.c
+1
-21
net/tipc/bearer.h
net/tipc/bearer.h
+0
-4
net/tipc/config.c
net/tipc/config.c
+17
-11
net/tipc/config.h
net/tipc/config.h
+1
-0
net/tipc/core.c
net/tipc/core.c
+2
-9
net/tipc/core.h
net/tipc/core.h
+0
-14
net/tipc/discover.c
net/tipc/discover.c
+0
-14
net/tipc/eth_media.c
net/tipc/eth_media.c
+0
-19
net/tipc/handler.c
net/tipc/handler.c
+0
-1
net/tipc/link.c
net/tipc/link.c
+5
-115
net/tipc/link.h
net/tipc/link.h
+0
-6
net/tipc/log.c
net/tipc/log.c
+0
-14
net/tipc/log.h
net/tipc/log.h
+0
-1
net/tipc/msg.c
net/tipc/msg.c
+0
-3
net/tipc/msg.h
net/tipc/msg.h
+0
-21
net/tipc/name_distr.c
net/tipc/name_distr.c
+0
-11
net/tipc/name_table.c
net/tipc/name_table.c
+25
-59
net/tipc/name_table.h
net/tipc/name_table.h
+0
-3
net/tipc/net.c
net/tipc/net.c
+1
-5
net/tipc/node.c
net/tipc/node.c
+0
-13
net/tipc/node.h
net/tipc/node.h
+0
-2
net/tipc/node_subscr.c
net/tipc/node_subscr.c
+0
-3
net/tipc/node_subscr.h
net/tipc/node_subscr.h
+0
-1
net/tipc/port.c
net/tipc/port.c
+2
-35
net/tipc/port.h
net/tipc/port.h
+0
-3
net/tipc/ref.c
net/tipc/ref.c
+0
-13
net/tipc/socket.c
net/tipc/socket.c
+4
-86
net/tipc/subscr.c
net/tipc/subscr.c
+0
-45
net/tipc/subscr.h
net/tipc/subscr.h
+0
-2
No files found.
net/tipc/Makefile
View file @
b6d151bb
...
@@ -9,5 +9,3 @@ tipc-y += addr.o bcast.o bearer.o config.o \
...
@@ -9,5 +9,3 @@ tipc-y += addr.o bcast.o bearer.o config.o \
name_distr.o subscr.o name_table.o net.o
\
name_distr.o subscr.o name_table.o net.o
\
netlink.o node.o node_subscr.o port.o ref.o
\
netlink.o node.o node_subscr.o port.o ref.o
\
socket.o log.o eth_media.o
socket.o log.o eth_media.o
# End of file
net/tipc/addr.c
View file @
b6d151bb
...
@@ -45,7 +45,6 @@
...
@@ -45,7 +45,6 @@
*
*
* Returns 1 if domain address is valid, otherwise 0
* Returns 1 if domain address is valid, otherwise 0
*/
*/
int
tipc_addr_domain_valid
(
u32
addr
)
int
tipc_addr_domain_valid
(
u32
addr
)
{
{
u32
n
=
tipc_node
(
addr
);
u32
n
=
tipc_node
(
addr
);
...
@@ -66,7 +65,6 @@ int tipc_addr_domain_valid(u32 addr)
...
@@ -66,7 +65,6 @@ int tipc_addr_domain_valid(u32 addr)
*
*
* Returns 1 if address can be used, otherwise 0
* Returns 1 if address can be used, otherwise 0
*/
*/
int
tipc_addr_node_valid
(
u32
addr
)
int
tipc_addr_node_valid
(
u32
addr
)
{
{
return
tipc_addr_domain_valid
(
addr
)
&&
tipc_node
(
addr
);
return
tipc_addr_domain_valid
(
addr
)
&&
tipc_node
(
addr
);
...
@@ -86,7 +84,6 @@ int tipc_in_scope(u32 domain, u32 addr)
...
@@ -86,7 +84,6 @@ int tipc_in_scope(u32 domain, u32 addr)
/**
/**
* tipc_addr_scope - convert message lookup domain to a 2-bit scope value
* tipc_addr_scope - convert message lookup domain to a 2-bit scope value
*/
*/
int
tipc_addr_scope
(
u32
domain
)
int
tipc_addr_scope
(
u32
domain
)
{
{
if
(
likely
(
!
domain
))
if
(
likely
(
!
domain
))
...
...
net/tipc/addr.h
View file @
b6d151bb
...
@@ -58,7 +58,6 @@ static inline int in_own_cluster_exact(u32 addr)
...
@@ -58,7 +58,6 @@ static inline int in_own_cluster_exact(u32 addr)
/**
/**
* in_own_node - test for node inclusion; <0.0.0> always matches
* in_own_node - test for node inclusion; <0.0.0> always matches
*/
*/
static
inline
int
in_own_node
(
u32
addr
)
static
inline
int
in_own_node
(
u32
addr
)
{
{
return
(
addr
==
tipc_own_addr
)
||
!
addr
;
return
(
addr
==
tipc_own_addr
)
||
!
addr
;
...
@@ -67,7 +66,6 @@ static inline int in_own_node(u32 addr)
...
@@ -67,7 +66,6 @@ static inline int in_own_node(u32 addr)
/**
/**
* in_own_cluster - test for cluster inclusion; <0.0.0> always matches
* in_own_cluster - test for cluster inclusion; <0.0.0> always matches
*/
*/
static
inline
int
in_own_cluster
(
u32
addr
)
static
inline
int
in_own_cluster
(
u32
addr
)
{
{
return
in_own_cluster_exact
(
addr
)
||
!
addr
;
return
in_own_cluster_exact
(
addr
)
||
!
addr
;
...
@@ -79,7 +77,6 @@ static inline int in_own_cluster(u32 addr)
...
@@ -79,7 +77,6 @@ static inline int in_own_cluster(u32 addr)
* 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.
*/
*/
static
inline
u32
addr_domain
(
u32
sc
)
static
inline
u32
addr_domain
(
u32
sc
)
{
{
if
(
likely
(
sc
==
TIPC_NODE_SCOPE
))
if
(
likely
(
sc
==
TIPC_NODE_SCOPE
))
...
...
net/tipc/bcast.c
View file @
b6d151bb
...
@@ -73,7 +73,6 @@ struct tipc_bcbearer_pair {
...
@@ -73,7 +73,6 @@ struct tipc_bcbearer_pair {
* large local variables within multicast routines. Concurrent access is
* large local variables within multicast routines. Concurrent access is
* prevented through use of the spinlock "bc_lock".
* prevented through use of the spinlock "bc_lock".
*/
*/
struct
tipc_bcbearer
{
struct
tipc_bcbearer
{
struct
tipc_bearer
bearer
;
struct
tipc_bearer
bearer
;
struct
tipc_media
media
;
struct
tipc_media
media
;
...
@@ -92,7 +91,6 @@ struct tipc_bcbearer {
...
@@ -92,7 +91,6 @@ struct tipc_bcbearer {
*
*
* Handles sequence numbering, fragmentation, bundling, etc.
* Handles sequence numbering, fragmentation, bundling, etc.
*/
*/
struct
tipc_bclink
{
struct
tipc_bclink
{
struct
tipc_link
link
;
struct
tipc_link
link
;
struct
tipc_node
node
;
struct
tipc_node
node
;
...
@@ -169,7 +167,6 @@ static void bclink_update_last_sent(struct tipc_node *node, u32 seqno)
...
@@ -169,7 +167,6 @@ static void bclink_update_last_sent(struct tipc_node *node, u32 seqno)
*
*
* Called with bc_lock locked
* Called with bc_lock locked
*/
*/
struct
tipc_node
*
tipc_bclink_retransmit_to
(
void
)
struct
tipc_node
*
tipc_bclink_retransmit_to
(
void
)
{
{
return
bclink
->
retransmit_to
;
return
bclink
->
retransmit_to
;
...
@@ -182,7 +179,6 @@ struct tipc_node *tipc_bclink_retransmit_to(void)
...
@@ -182,7 +179,6 @@ struct tipc_node *tipc_bclink_retransmit_to(void)
*
*
* Called with bc_lock locked
* Called with bc_lock locked
*/
*/
static
void
bclink_retransmit_pkt
(
u32
after
,
u32
to
)
static
void
bclink_retransmit_pkt
(
u32
after
,
u32
to
)
{
{
struct
sk_buff
*
buf
;
struct
sk_buff
*
buf
;
...
@@ -200,7 +196,6 @@ static void bclink_retransmit_pkt(u32 after, u32 to)
...
@@ -200,7 +196,6 @@ static void bclink_retransmit_pkt(u32 after, u32 to)
*
*
* Node is locked, bc_lock unlocked.
* Node is locked, bc_lock unlocked.
*/
*/
void
tipc_bclink_acknowledge
(
struct
tipc_node
*
n_ptr
,
u32
acked
)
void
tipc_bclink_acknowledge
(
struct
tipc_node
*
n_ptr
,
u32
acked
)
{
{
struct
sk_buff
*
crs
;
struct
sk_buff
*
crs
;
...
@@ -280,7 +275,6 @@ void tipc_bclink_acknowledge(struct tipc_node *n_ptr, u32 acked)
...
@@ -280,7 +275,6 @@ void tipc_bclink_acknowledge(struct tipc_node *n_ptr, u32 acked)
*
*
* tipc_net_lock and node lock set
* tipc_net_lock and node lock set
*/
*/
void
tipc_bclink_update_link_state
(
struct
tipc_node
*
n_ptr
,
u32
last_sent
)
void
tipc_bclink_update_link_state
(
struct
tipc_node
*
n_ptr
,
u32
last_sent
)
{
{
struct
sk_buff
*
buf
;
struct
sk_buff
*
buf
;
...
@@ -344,7 +338,6 @@ void tipc_bclink_update_link_state(struct tipc_node *n_ptr, u32 last_sent)
...
@@ -344,7 +338,6 @@ void tipc_bclink_update_link_state(struct tipc_node *n_ptr, u32 last_sent)
*
*
* Only tipc_net_lock set.
* Only tipc_net_lock set.
*/
*/
static
void
bclink_peek_nack
(
struct
tipc_msg
*
msg
)
static
void
bclink_peek_nack
(
struct
tipc_msg
*
msg
)
{
{
struct
tipc_node
*
n_ptr
=
tipc_node_find
(
msg_destnode
(
msg
));
struct
tipc_node
*
n_ptr
=
tipc_node_find
(
msg_destnode
(
msg
));
...
@@ -365,7 +358,6 @@ static void bclink_peek_nack(struct tipc_msg *msg)
...
@@ -365,7 +358,6 @@ static void bclink_peek_nack(struct tipc_msg *msg)
/*
/*
* tipc_bclink_send_msg - broadcast a packet to all nodes in cluster
* tipc_bclink_send_msg - broadcast a packet to all nodes in cluster
*/
*/
int
tipc_bclink_send_msg
(
struct
sk_buff
*
buf
)
int
tipc_bclink_send_msg
(
struct
sk_buff
*
buf
)
{
{
int
res
;
int
res
;
...
@@ -394,7 +386,6 @@ int tipc_bclink_send_msg(struct sk_buff *buf)
...
@@ -394,7 +386,6 @@ int tipc_bclink_send_msg(struct sk_buff *buf)
*
*
* Called with both sending node's lock and bc_lock taken.
* Called with both sending node's lock and bc_lock taken.
*/
*/
static
void
bclink_accept_pkt
(
struct
tipc_node
*
node
,
u32
seqno
)
static
void
bclink_accept_pkt
(
struct
tipc_node
*
node
,
u32
seqno
)
{
{
bclink_update_last_sent
(
node
,
seqno
);
bclink_update_last_sent
(
node
,
seqno
);
...
@@ -420,7 +411,6 @@ static void bclink_accept_pkt(struct tipc_node *node, u32 seqno)
...
@@ -420,7 +411,6 @@ static void bclink_accept_pkt(struct tipc_node *node, u32 seqno)
*
*
* tipc_net_lock is read_locked, no other locks set
* tipc_net_lock is read_locked, no other locks set
*/
*/
void
tipc_bclink_recv_pkt
(
struct
sk_buff
*
buf
)
void
tipc_bclink_recv_pkt
(
struct
sk_buff
*
buf
)
{
{
struct
tipc_msg
*
msg
=
buf_msg
(
buf
);
struct
tipc_msg
*
msg
=
buf_msg
(
buf
);
...
@@ -588,7 +578,6 @@ u32 tipc_bclink_acks_missing(struct tipc_node *n_ptr)
...
@@ -588,7 +578,6 @@ u32 tipc_bclink_acks_missing(struct tipc_node *n_ptr)
* Returns 0 (packet sent successfully) under all circumstances,
* Returns 0 (packet sent successfully) under all circumstances,
* since the broadcast link's pseudo-bearer never blocks
* since the broadcast link's pseudo-bearer never blocks
*/
*/
static
int
tipc_bcbearer_send
(
struct
sk_buff
*
buf
,
static
int
tipc_bcbearer_send
(
struct
sk_buff
*
buf
,
struct
tipc_bearer
*
unused1
,
struct
tipc_bearer
*
unused1
,
struct
tipc_media_addr
*
unused2
)
struct
tipc_media_addr
*
unused2
)
...
@@ -601,7 +590,6 @@ static int tipc_bcbearer_send(struct sk_buff *buf,
...
@@ -601,7 +590,6 @@ static int tipc_bcbearer_send(struct sk_buff *buf,
* preparation is skipped for broadcast link protocol messages
* preparation is skipped for broadcast link protocol messages
* since they are sent in an unreliable manner and don't need it
* since they are sent in an unreliable manner and don't need it
*/
*/
if
(
likely
(
!
msg_non_seq
(
buf_msg
(
buf
))))
{
if
(
likely
(
!
msg_non_seq
(
buf_msg
(
buf
))))
{
struct
tipc_msg
*
msg
;
struct
tipc_msg
*
msg
;
...
@@ -618,7 +606,6 @@ static int tipc_bcbearer_send(struct sk_buff *buf,
...
@@ -618,7 +606,6 @@ static int tipc_bcbearer_send(struct sk_buff *buf,
}
}
/* Send buffer over bearers until all targets reached */
/* Send buffer over bearers until all targets reached */
bcbearer
->
remains
=
bclink
->
bcast_nodes
;
bcbearer
->
remains
=
bclink
->
bcast_nodes
;
for
(
bp_index
=
0
;
bp_index
<
MAX_BEARERS
;
bp_index
++
)
{
for
(
bp_index
=
0
;
bp_index
<
MAX_BEARERS
;
bp_index
++
)
{
...
@@ -660,7 +647,6 @@ static int tipc_bcbearer_send(struct sk_buff *buf,
...
@@ -660,7 +647,6 @@ static int tipc_bcbearer_send(struct sk_buff *buf,
/**
/**
* tipc_bcbearer_sort - create sets of bearer pairs used by broadcast bearer
* tipc_bcbearer_sort - create sets of bearer pairs used by broadcast bearer
*/
*/
void
tipc_bcbearer_sort
(
void
)
void
tipc_bcbearer_sort
(
void
)
{
{
struct
tipc_bcbearer_pair
*
bp_temp
=
bcbearer
->
bpairs_temp
;
struct
tipc_bcbearer_pair
*
bp_temp
=
bcbearer
->
bpairs_temp
;
...
@@ -671,7 +657,6 @@ void tipc_bcbearer_sort(void)
...
@@ -671,7 +657,6 @@ void tipc_bcbearer_sort(void)
spin_lock_bh
(
&
bc_lock
);
spin_lock_bh
(
&
bc_lock
);
/* Group bearers by priority (can assume max of two per priority) */
/* Group bearers by priority (can assume max of two per priority) */
memset
(
bp_temp
,
0
,
sizeof
(
bcbearer
->
bpairs_temp
));
memset
(
bp_temp
,
0
,
sizeof
(
bcbearer
->
bpairs_temp
));
for
(
b_index
=
0
;
b_index
<
MAX_BEARERS
;
b_index
++
)
{
for
(
b_index
=
0
;
b_index
<
MAX_BEARERS
;
b_index
++
)
{
...
@@ -687,7 +672,6 @@ void tipc_bcbearer_sort(void)
...
@@ -687,7 +672,6 @@ void tipc_bcbearer_sort(void)
}
}
/* Create array of bearer pairs for broadcasting */
/* Create array of bearer pairs for broadcasting */
bp_curr
=
bcbearer
->
bpairs
;
bp_curr
=
bcbearer
->
bpairs
;
memset
(
bcbearer
->
bpairs
,
0
,
sizeof
(
bcbearer
->
bpairs
));
memset
(
bcbearer
->
bpairs
,
0
,
sizeof
(
bcbearer
->
bpairs
));
...
@@ -817,7 +801,6 @@ void tipc_bclink_stop(void)
...
@@ -817,7 +801,6 @@ void tipc_bclink_stop(void)
/**
/**
* tipc_nmap_add - add a node to a node map
* tipc_nmap_add - add a node to a node map
*/
*/
void
tipc_nmap_add
(
struct
tipc_node_map
*
nm_ptr
,
u32
node
)
void
tipc_nmap_add
(
struct
tipc_node_map
*
nm_ptr
,
u32
node
)
{
{
int
n
=
tipc_node
(
node
);
int
n
=
tipc_node
(
node
);
...
@@ -833,7 +816,6 @@ void tipc_nmap_add(struct tipc_node_map *nm_ptr, u32 node)
...
@@ -833,7 +816,6 @@ void tipc_nmap_add(struct tipc_node_map *nm_ptr, u32 node)
/**
/**
* tipc_nmap_remove - remove a node from a node map
* tipc_nmap_remove - remove a node from a node map
*/
*/
void
tipc_nmap_remove
(
struct
tipc_node_map
*
nm_ptr
,
u32
node
)
void
tipc_nmap_remove
(
struct
tipc_node_map
*
nm_ptr
,
u32
node
)
{
{
int
n
=
tipc_node
(
node
);
int
n
=
tipc_node
(
node
);
...
@@ -852,7 +834,6 @@ void tipc_nmap_remove(struct tipc_node_map *nm_ptr, u32 node)
...
@@ -852,7 +834,6 @@ void tipc_nmap_remove(struct tipc_node_map *nm_ptr, u32 node)
* @nm_b: input node map B
* @nm_b: input node map B
* @nm_diff: output node map A-B (i.e. nodes of A that are not in B)
* @nm_diff: output node map A-B (i.e. nodes of A that are not in B)
*/
*/
static
void
tipc_nmap_diff
(
struct
tipc_node_map
*
nm_a
,
static
void
tipc_nmap_diff
(
struct
tipc_node_map
*
nm_a
,
struct
tipc_node_map
*
nm_b
,
struct
tipc_node_map
*
nm_b
,
struct
tipc_node_map
*
nm_diff
)
struct
tipc_node_map
*
nm_diff
)
...
@@ -878,7 +859,6 @@ static void tipc_nmap_diff(struct tipc_node_map *nm_a,
...
@@ -878,7 +859,6 @@ static void tipc_nmap_diff(struct tipc_node_map *nm_a,
/**
/**
* tipc_port_list_add - add a port to a port list, ensuring no duplicates
* tipc_port_list_add - add a port to a port list, ensuring no duplicates
*/
*/
void
tipc_port_list_add
(
struct
tipc_port_list
*
pl_ptr
,
u32
port
)
void
tipc_port_list_add
(
struct
tipc_port_list
*
pl_ptr
,
u32
port
)
{
{
struct
tipc_port_list
*
item
=
pl_ptr
;
struct
tipc_port_list
*
item
=
pl_ptr
;
...
@@ -912,7 +892,6 @@ void tipc_port_list_add(struct tipc_port_list *pl_ptr, u32 port)
...
@@ -912,7 +892,6 @@ void tipc_port_list_add(struct tipc_port_list *pl_ptr, u32 port)
* tipc_port_list_free - free dynamically created entries in port_list chain
* tipc_port_list_free - free dynamically created entries in port_list chain
*
*
*/
*/
void
tipc_port_list_free
(
struct
tipc_port_list
*
pl_ptr
)
void
tipc_port_list_free
(
struct
tipc_port_list
*
pl_ptr
)
{
{
struct
tipc_port_list
*
item
;
struct
tipc_port_list
*
item
;
...
@@ -923,4 +902,3 @@ void tipc_port_list_free(struct tipc_port_list *pl_ptr)
...
@@ -923,4 +902,3 @@ void tipc_port_list_free(struct tipc_port_list *pl_ptr)
kfree
(
item
);
kfree
(
item
);
}
}
}
}
net/tipc/bcast.h
View file @
b6d151bb
...
@@ -45,7 +45,6 @@
...
@@ -45,7 +45,6 @@
* @count: # of nodes in set
* @count: # of nodes in set
* @map: bitmap of node identifiers that are in the set
* @map: bitmap of node identifiers that are in the set
*/
*/
struct
tipc_node_map
{
struct
tipc_node_map
{
u32
count
;
u32
count
;
u32
map
[
MAX_NODES
/
WSIZE
];
u32
map
[
MAX_NODES
/
WSIZE
];
...
@@ -59,7 +58,6 @@ struct tipc_node_map {
...
@@ -59,7 +58,6 @@ struct tipc_node_map {
* @next: pointer to next entry in list
* @next: pointer to next entry in list
* @ports: array of port references
* @ports: array of port references
*/
*/
struct
tipc_port_list
{
struct
tipc_port_list
{
int
count
;
int
count
;
struct
tipc_port_list
*
next
;
struct
tipc_port_list
*
next
;
...
@@ -77,7 +75,6 @@ void tipc_nmap_remove(struct tipc_node_map *nm_ptr, u32 node);
...
@@ -77,7 +75,6 @@ void tipc_nmap_remove(struct tipc_node_map *nm_ptr, u32 node);
/**
/**
* tipc_nmap_equal - test for equality of node maps
* tipc_nmap_equal - test for equality of node maps
*/
*/
static
inline
int
tipc_nmap_equal
(
struct
tipc_node_map
*
nm_a
,
struct
tipc_node_map
*
nm_b
)
static
inline
int
tipc_nmap_equal
(
struct
tipc_node_map
*
nm_a
,
struct
tipc_node_map
*
nm_b
)
{
{
return
!
memcmp
(
nm_a
,
nm_b
,
sizeof
(
*
nm_a
));
return
!
memcmp
(
nm_a
,
nm_b
,
sizeof
(
*
nm_a
));
...
...
net/tipc/bearer.c
View file @
b6d151bb
...
@@ -53,7 +53,6 @@ static void bearer_disable(struct tipc_bearer *b_ptr);
...
@@ -53,7 +53,6 @@ static void bearer_disable(struct tipc_bearer *b_ptr);
*
*
* Returns 1 if media name is valid, otherwise 0.
* Returns 1 if media name is valid, otherwise 0.
*/
*/
static
int
media_name_valid
(
const
char
*
name
)
static
int
media_name_valid
(
const
char
*
name
)
{
{
u32
len
;
u32
len
;
...
@@ -67,7 +66,6 @@ static int media_name_valid(const char *name)
...
@@ -67,7 +66,6 @@ static int media_name_valid(const char *name)
/**
/**
* tipc_media_find - locates specified media object by name
* tipc_media_find - locates specified media object by name
*/
*/
struct
tipc_media
*
tipc_media_find
(
const
char
*
name
)
struct
tipc_media
*
tipc_media_find
(
const
char
*
name
)
{
{
u32
i
;
u32
i
;
...
@@ -82,7 +80,6 @@ struct tipc_media *tipc_media_find(const char *name)
...
@@ -82,7 +80,6 @@ struct tipc_media *tipc_media_find(const char *name)
/**
/**
* media_find_id - locates specified media object by type identifier
* media_find_id - locates specified media object by type identifier
*/
*/
static
struct
tipc_media
*
media_find_id
(
u8
type
)
static
struct
tipc_media
*
media_find_id
(
u8
type
)
{
{
u32
i
;
u32
i
;
...
@@ -99,7 +96,6 @@ static struct tipc_media *media_find_id(u8 type)
...
@@ -99,7 +96,6 @@ static struct tipc_media *media_find_id(u8 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
(
struct
tipc_media
*
m_ptr
)
int
tipc_register_media
(
struct
tipc_media
*
m_ptr
)
{
{
int
res
=
-
EINVAL
;
int
res
=
-
EINVAL
;
...
@@ -134,7 +130,6 @@ int tipc_register_media(struct tipc_media *m_ptr)
...
@@ -134,7 +130,6 @@ int tipc_register_media(struct tipc_media *m_ptr)
/**
/**
* tipc_media_addr_printf - record media address in print buffer
* tipc_media_addr_printf - record media address in print buffer
*/
*/
void
tipc_media_addr_printf
(
struct
print_buf
*
pb
,
struct
tipc_media_addr
*
a
)
void
tipc_media_addr_printf
(
struct
print_buf
*
pb
,
struct
tipc_media_addr
*
a
)
{
{
char
addr_str
[
MAX_ADDR_STR
];
char
addr_str
[
MAX_ADDR_STR
];
...
@@ -156,7 +151,6 @@ void tipc_media_addr_printf(struct print_buf *pb, struct tipc_media_addr *a)
...
@@ -156,7 +151,6 @@ void tipc_media_addr_printf(struct print_buf *pb, struct tipc_media_addr *a)
/**
/**
* tipc_media_get_names - record names of registered media in buffer
* tipc_media_get_names - record names of registered media in buffer
*/
*/
struct
sk_buff
*
tipc_media_get_names
(
void
)
struct
sk_buff
*
tipc_media_get_names
(
void
)
{
{
struct
sk_buff
*
buf
;
struct
sk_buff
*
buf
;
...
@@ -183,7 +177,6 @@ struct sk_buff *tipc_media_get_names(void)
...
@@ -183,7 +177,6 @@ struct sk_buff *tipc_media_get_names(void)
*
*
* 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
tipc_bearer_names
*
name_parts
)
struct
tipc_bearer_names
*
name_parts
)
{
{
...
@@ -194,7 +187,6 @@ static int bearer_name_validate(const char *name,
...
@@ -194,7 +187,6 @@ static int bearer_name_validate(const char *name,
u32
if_len
;
u32
if_len
;
/* copy bearer name & ensure length is OK */
/* copy bearer name & ensure length is OK */
name_copy
[
TIPC_MAX_BEARER_NAME
-
1
]
=
0
;
name_copy
[
TIPC_MAX_BEARER_NAME
-
1
]
=
0
;
/* need above in case non-Posix strncpy() doesn't pad with nulls */
/* need above in case non-Posix strncpy() doesn't pad with nulls */
strncpy
(
name_copy
,
name
,
TIPC_MAX_BEARER_NAME
);
strncpy
(
name_copy
,
name
,
TIPC_MAX_BEARER_NAME
);
...
@@ -202,7 +194,6 @@ static int bearer_name_validate(const char *name,
...
@@ -202,7 +194,6 @@ static int bearer_name_validate(const char *name,
return
0
;
return
0
;
/* ensure all component parts of bearer name are present */
/* ensure all component parts of bearer name are present */
media_name
=
name_copy
;
media_name
=
name_copy
;
if_name
=
strchr
(
media_name
,
':'
);
if_name
=
strchr
(
media_name
,
':'
);
if
(
if_name
==
NULL
)
if
(
if_name
==
NULL
)
...
@@ -212,7 +203,6 @@ static int bearer_name_validate(const char *name,
...
@@ -212,7 +203,6 @@ static int bearer_name_validate(const char *name,
if_len
=
strlen
(
if_name
)
+
1
;
if_len
=
strlen
(
if_name
)
+
1
;
/* 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
))
||
...
@@ -220,7 +210,6 @@ static int bearer_name_validate(const char *name,
...
@@ -220,7 +210,6 @@ static int bearer_name_validate(const char *name,
return
0
;
return
0
;
/* return bearer name components, if necessary */
/* return bearer name components, if necessary */
if
(
name_parts
)
{
if
(
name_parts
)
{
strcpy
(
name_parts
->
media_name
,
media_name
);
strcpy
(
name_parts
->
media_name
,
media_name
);
strcpy
(
name_parts
->
if_name
,
if_name
);
strcpy
(
name_parts
->
if_name
,
if_name
);
...
@@ -231,7 +220,6 @@ static int bearer_name_validate(const char *name,
...
@@ -231,7 +220,6 @@ static int bearer_name_validate(const char *name,
/**
/**
* tipc_bearer_find - locates bearer object with matching bearer name
* tipc_bearer_find - locates bearer object with matching bearer name
*/
*/
struct
tipc_bearer
*
tipc_bearer_find
(
const
char
*
name
)
struct
tipc_bearer
*
tipc_bearer_find
(
const
char
*
name
)
{
{
struct
tipc_bearer
*
b_ptr
;
struct
tipc_bearer
*
b_ptr
;
...
@@ -247,7 +235,6 @@ struct tipc_bearer *tipc_bearer_find(const char *name)
...
@@ -247,7 +235,6 @@ struct tipc_bearer *tipc_bearer_find(const char *name)
/**
/**
* tipc_bearer_find_interface - locates bearer object with matching interface name
* tipc_bearer_find_interface - locates bearer object with matching interface name
*/
*/
struct
tipc_bearer
*
tipc_bearer_find_interface
(
const
char
*
if_name
)
struct
tipc_bearer
*
tipc_bearer_find_interface
(
const
char
*
if_name
)
{
{
struct
tipc_bearer
*
b_ptr
;
struct
tipc_bearer
*
b_ptr
;
...
@@ -267,7 +254,6 @@ struct tipc_bearer *tipc_bearer_find_interface(const char *if_name)
...
@@ -267,7 +254,6 @@ struct tipc_bearer *tipc_bearer_find_interface(const char *if_name)
/**
/**
* tipc_bearer_get_names - record names of bearers in buffer
* tipc_bearer_get_names - record names of bearers in buffer
*/
*/
struct
sk_buff
*
tipc_bearer_get_names
(
void
)
struct
sk_buff
*
tipc_bearer_get_names
(
void
)
{
{
struct
sk_buff
*
buf
;
struct
sk_buff
*
buf
;
...
@@ -363,7 +349,6 @@ void tipc_continue(struct tipc_bearer *b_ptr)
...
@@ -363,7 +349,6 @@ void tipc_continue(struct tipc_bearer *b_ptr)
* 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
*/
*/
static
void
tipc_bearer_schedule_unlocked
(
struct
tipc_bearer
*
b_ptr
,
static
void
tipc_bearer_schedule_unlocked
(
struct
tipc_bearer
*
b_ptr
,
struct
tipc_link
*
l_ptr
)
struct
tipc_link
*
l_ptr
)
{
{
...
@@ -377,7 +362,6 @@ static void tipc_bearer_schedule_unlocked(struct tipc_bearer *b_ptr,
...
@@ -377,7 +362,6 @@ static void tipc_bearer_schedule_unlocked(struct tipc_bearer *b_ptr,
* 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
*/
*/
void
tipc_bearer_schedule
(
struct
tipc_bearer
*
b_ptr
,
struct
tipc_link
*
l_ptr
)
void
tipc_bearer_schedule
(
struct
tipc_bearer
*
b_ptr
,
struct
tipc_link
*
l_ptr
)
{
{
spin_lock_bh
(
&
b_ptr
->
lock
);
spin_lock_bh
(
&
b_ptr
->
lock
);
...
@@ -410,7 +394,6 @@ int tipc_bearer_resolve_congestion(struct tipc_bearer *b_ptr,
...
@@ -410,7 +394,6 @@ int tipc_bearer_resolve_congestion(struct tipc_bearer *b_ptr,
/**
/**
* tipc_bearer_congested - determines if bearer is currently congested
* tipc_bearer_congested - determines if bearer is currently congested
*/
*/
int
tipc_bearer_congested
(
struct
tipc_bearer
*
b_ptr
,
struct
tipc_link
*
l_ptr
)
int
tipc_bearer_congested
(
struct
tipc_bearer
*
b_ptr
,
struct
tipc_link
*
l_ptr
)
{
{
if
(
unlikely
(
b_ptr
->
blocked
))
if
(
unlikely
(
b_ptr
->
blocked
))
...
@@ -423,7 +406,6 @@ int tipc_bearer_congested(struct tipc_bearer *b_ptr, struct tipc_link *l_ptr)
...
@@ -423,7 +406,6 @@ int tipc_bearer_congested(struct tipc_bearer *b_ptr, struct tipc_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
disc_domain
,
u32
priority
)
int
tipc_enable_bearer
(
const
char
*
name
,
u32
disc_domain
,
u32
priority
)
{
{
struct
tipc_bearer
*
b_ptr
;
struct
tipc_bearer
*
b_ptr
;
...
@@ -541,7 +523,6 @@ int tipc_enable_bearer(const char *name, u32 disc_domain, u32 priority)
...
@@ -541,7 +523,6 @@ int tipc_enable_bearer(const char *name, u32 disc_domain, u32 priority)
* tipc_block_bearer(): Block the bearer with the given name,
* tipc_block_bearer(): Block the bearer with the given name,
* and reset all its links
* and reset all its links
*/
*/
int
tipc_block_bearer
(
const
char
*
name
)
int
tipc_block_bearer
(
const
char
*
name
)
{
{
struct
tipc_bearer
*
b_ptr
=
NULL
;
struct
tipc_bearer
*
b_ptr
=
NULL
;
...
@@ -573,11 +554,10 @@ int tipc_block_bearer(const char *name)
...
@@ -573,11 +554,10 @@ 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.
*/
*/
static
void
bearer_disable
(
struct
tipc_bearer
*
b_ptr
)
static
void
bearer_disable
(
struct
tipc_bearer
*
b_ptr
)
{
{
struct
tipc_link
*
l_ptr
;
struct
tipc_link
*
l_ptr
;
...
...
net/tipc/bearer.h
View file @
b6d151bb
...
@@ -49,7 +49,6 @@
...
@@ -49,7 +49,6 @@
* - media type identifier located at offset 3
* - media type identifier located at offset 3
* - remaining bytes vary according to media type
* - remaining bytes vary according to media type
*/
*/
#define TIPC_MEDIA_ADDR_SIZE 20
#define TIPC_MEDIA_ADDR_SIZE 20
#define TIPC_MEDIA_TYPE_OFFSET 3
#define TIPC_MEDIA_TYPE_OFFSET 3
...
@@ -64,7 +63,6 @@
...
@@ -64,7 +63,6 @@
* @media_id: TIPC media type identifier
* @media_id: TIPC media type identifier
* @broadcast: non-zero if address is a broadcast address
* @broadcast: non-zero if address is a broadcast address
*/
*/
struct
tipc_media_addr
{
struct
tipc_media_addr
{
u8
value
[
TIPC_MEDIA_ADDR_SIZE
];
u8
value
[
TIPC_MEDIA_ADDR_SIZE
];
u8
media_id
;
u8
media_id
;
...
@@ -89,7 +87,6 @@ struct tipc_bearer;
...
@@ -89,7 +87,6 @@ struct tipc_bearer;
* @type_id: TIPC media identifier
* @type_id: TIPC media identifier
* @name: media name
* @name: media name
*/
*/
struct
tipc_media
{
struct
tipc_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
,
...
@@ -216,7 +213,6 @@ void tipc_bearer_lock_push(struct tipc_bearer *b_ptr);
...
@@ -216,7 +213,6 @@ void tipc_bearer_lock_push(struct tipc_bearer *b_ptr);
* 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
tipc_bearer
*
b_ptr
,
static
inline
int
tipc_bearer_send
(
struct
tipc_bearer
*
b_ptr
,
struct
sk_buff
*
buf
,
struct
sk_buff
*
buf
,
struct
tipc_media_addr
*
dest
)
struct
tipc_media_addr
*
dest
)
...
...
net/tipc/config.c
View file @
b6d151bb
...
@@ -131,7 +131,6 @@ static struct sk_buff *tipc_show_stats(void)
...
@@ -131,7 +131,6 @@ static struct sk_buff *tipc_show_stats(void)
tipc_printf
(
&
pb
,
"TIPC version "
TIPC_MOD_VER
"
\n
"
);
tipc_printf
(
&
pb
,
"TIPC version "
TIPC_MOD_VER
"
\n
"
);
/* Use additional tipc_printf()'s to return more info ... */
/* Use additional tipc_printf()'s to return more info ... */
str_len
=
tipc_printbuf_validate
(
&
pb
);
str_len
=
tipc_printbuf_validate
(
&
pb
);
skb_put
(
buf
,
TLV_SPACE
(
str_len
));
skb_put
(
buf
,
TLV_SPACE
(
str_len
));
TLV_SET
(
rep_tlv
,
TIPC_TLV_ULTRA_STRING
,
NULL
,
str_len
);
TLV_SET
(
rep_tlv
,
TIPC_TLV_ULTRA_STRING
,
NULL
,
str_len
);
...
@@ -191,7 +190,6 @@ static struct sk_buff *cfg_set_own_addr(void)
...
@@ -191,7 +190,6 @@ static struct sk_buff *cfg_set_own_addr(void)
* configuration commands can't be received until a local configuration
* configuration commands can't be received until a local configuration
* command to enable the first bearer is received and processed.
* command to enable the first bearer is received and processed.
*/
*/
spin_unlock_bh
(
&
config_lock
);
spin_unlock_bh
(
&
config_lock
);
tipc_core_start_net
(
addr
);
tipc_core_start_net
(
addr
);
spin_lock_bh
(
&
config_lock
);
spin_lock_bh
(
&
config_lock
);
...
@@ -283,13 +281,11 @@ struct sk_buff *tipc_cfg_do_cmd(u32 orig_node, u16 cmd, const void *request_area
...
@@ -283,13 +281,11 @@ struct sk_buff *tipc_cfg_do_cmd(u32 orig_node, u16 cmd, const void *request_area
spin_lock_bh
(
&
config_lock
);
spin_lock_bh
(
&
config_lock
);
/* Save request and reply details in a well-known location */
/* Save request and reply details in a well-known location */
req_tlv_area
=
request_area
;
req_tlv_area
=
request_area
;
req_tlv_space
=
request_space
;
req_tlv_space
=
request_space
;
rep_headroom
=
reply_headroom
;
rep_headroom
=
reply_headroom
;
/* Check command authorization */
/* Check command authorization */
if
(
likely
(
in_own_node
(
orig_node
)))
{
if
(
likely
(
in_own_node
(
orig_node
)))
{
/* command is permitted */
/* command is permitted */
}
else
if
(
cmd
>=
0x8000
)
{
}
else
if
(
cmd
>=
0x8000
)
{
...
@@ -310,7 +306,6 @@ struct sk_buff *tipc_cfg_do_cmd(u32 orig_node, u16 cmd, const void *request_area
...
@@ -310,7 +306,6 @@ struct sk_buff *tipc_cfg_do_cmd(u32 orig_node, u16 cmd, const void *request_area
}
}
/* Call appropriate processing routine */
/* Call appropriate processing routine */
switch
(
cmd
)
{
switch
(
cmd
)
{
case
TIPC_CMD_NOOP
:
case
TIPC_CMD_NOOP
:
rep_tlv_buf
=
tipc_cfg_reply_none
();
rep_tlv_buf
=
tipc_cfg_reply_none
();
...
@@ -433,7 +428,6 @@ static void cfg_named_msg_event(void *userdata,
...
@@ -433,7 +428,6 @@ static void cfg_named_msg_event(void *userdata,
struct
sk_buff
*
rep_buf
;
struct
sk_buff
*
rep_buf
;
/* Validate configuration message header (ignore invalid message) */
/* Validate configuration message header (ignore invalid message) */
req_hdr
=
(
struct
tipc_cfg_msg_hdr
*
)
msg
;
req_hdr
=
(
struct
tipc_cfg_msg_hdr
*
)
msg
;
if
((
size
<
sizeof
(
*
req_hdr
))
||
if
((
size
<
sizeof
(
*
req_hdr
))
||
(
size
!=
TCM_ALIGN
(
ntohl
(
req_hdr
->
tcm_len
)))
||
(
size
!=
TCM_ALIGN
(
ntohl
(
req_hdr
->
tcm_len
)))
||
...
@@ -443,7 +437,6 @@ static void cfg_named_msg_event(void *userdata,
...
@@ -443,7 +437,6 @@ 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
),
...
@@ -489,10 +482,23 @@ int tipc_cfg_init(void)
...
@@ -489,10 +482,23 @@ int tipc_cfg_init(void)
return
res
;
return
res
;
}
}
void
tipc_cfg_reinit
(
void
)
{
struct
tipc_name_seq
seq
;
int
res
;
seq
.
type
=
TIPC_CFG_SRV
;
seq
.
lower
=
seq
.
upper
=
0
;
tipc_withdraw
(
config_port_ref
,
TIPC_ZONE_SCOPE
,
&
seq
);
seq
.
lower
=
seq
.
upper
=
tipc_own_addr
;
res
=
tipc_publish
(
config_port_ref
,
TIPC_ZONE_SCOPE
,
&
seq
);
if
(
res
)
err
(
"Unable to reinitialize configuration service
\n
"
);
}
void
tipc_cfg_stop
(
void
)
void
tipc_cfg_stop
(
void
)
{
{
if
(
config_port_ref
)
{
tipc_deleteport
(
config_port_ref
);
tipc_deleteport
(
config_port_ref
);
config_port_ref
=
0
;
config_port_ref
=
0
;
}
}
}
net/tipc/config.h
View file @
b6d151bb
...
@@ -66,6 +66,7 @@ struct sk_buff *tipc_cfg_do_cmd(u32 orig_node, u16 cmd,
...
@@ -66,6 +66,7 @@ struct sk_buff *tipc_cfg_do_cmd(u32 orig_node, u16 cmd,
int
headroom
);
int
headroom
);
int
tipc_cfg_init
(
void
);
int
tipc_cfg_init
(
void
);
void
tipc_cfg_reinit
(
void
);
void
tipc_cfg_stop
(
void
);
void
tipc_cfg_stop
(
void
);
#endif
#endif
net/tipc/core.c
View file @
b6d151bb
...
@@ -52,14 +52,12 @@
...
@@ -52,14 +52,12 @@
#endif
#endif
/* global variables used by multiple sub-systems within TIPC */
/* global variables used by multiple sub-systems within TIPC */
int
tipc_random
;
int
tipc_random
;
const
char
tipc_alphabet
[]
=
const
char
tipc_alphabet
[]
=
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_."
;
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_."
;
/* configurable TIPC parameters */
/* configurable TIPC parameters */
u32
tipc_own_addr
;
u32
tipc_own_addr
;
int
tipc_max_ports
;
int
tipc_max_ports
;
int
tipc_max_subscriptions
;
int
tipc_max_subscriptions
;
...
@@ -77,7 +75,6 @@ int tipc_remote_management;
...
@@ -77,7 +75,6 @@ int tipc_remote_management;
* 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.
*/
*/
struct
sk_buff
*
tipc_buf_acquire
(
u32
size
)
struct
sk_buff
*
tipc_buf_acquire
(
u32
size
)
{
{
struct
sk_buff
*
skb
;
struct
sk_buff
*
skb
;
...
@@ -95,7 +92,6 @@ struct sk_buff *tipc_buf_acquire(u32 size)
...
@@ -95,7 +92,6 @@ struct sk_buff *tipc_buf_acquire(u32 size)
/**
/**
* tipc_core_stop_net - shut down TIPC networking sub-systems
* tipc_core_stop_net - shut down TIPC networking sub-systems
*/
*/
static
void
tipc_core_stop_net
(
void
)
static
void
tipc_core_stop_net
(
void
)
{
{
tipc_net_stop
();
tipc_net_stop
();
...
@@ -105,7 +101,6 @@ static void tipc_core_stop_net(void)
...
@@ -105,7 +101,6 @@ static void tipc_core_stop_net(void)
/**
/**
* start_net - start TIPC networking sub-systems
* start_net - start TIPC networking sub-systems
*/
*/
int
tipc_core_start_net
(
unsigned
long
addr
)
int
tipc_core_start_net
(
unsigned
long
addr
)
{
{
int
res
;
int
res
;
...
@@ -121,7 +116,6 @@ int tipc_core_start_net(unsigned long addr)
...
@@ -121,7 +116,6 @@ int tipc_core_start_net(unsigned long addr)
/**
/**
* tipc_core_stop - switch TIPC from SINGLE NODE to NOT RUNNING mode
* tipc_core_stop - switch TIPC from SINGLE NODE to NOT RUNNING mode
*/
*/
static
void
tipc_core_stop
(
void
)
static
void
tipc_core_stop
(
void
)
{
{
tipc_netlink_stop
();
tipc_netlink_stop
();
...
@@ -137,7 +131,6 @@ static void tipc_core_stop(void)
...
@@ -137,7 +131,6 @@ static void tipc_core_stop(void)
/**
/**
* tipc_core_start - switch TIPC from NOT RUNNING to SINGLE NODE mode
* tipc_core_start - switch TIPC from NOT RUNNING to SINGLE NODE mode
*/
*/
static
int
tipc_core_start
(
void
)
static
int
tipc_core_start
(
void
)
{
{
int
res
;
int
res
;
...
@@ -150,9 +143,9 @@ static int tipc_core_start(void)
...
@@ -150,9 +143,9 @@ static int tipc_core_start(void)
if
(
!
res
)
if
(
!
res
)
res
=
tipc_nametbl_init
();
res
=
tipc_nametbl_init
();
if
(
!
res
)
if
(
!
res
)
res
=
tipc_
k_signal
((
Handler
)
tipc_subscr_start
,
0
);
res
=
tipc_
subscr_start
(
);
if
(
!
res
)
if
(
!
res
)
res
=
tipc_
k_signal
((
Handler
)
tipc_cfg_init
,
0
);
res
=
tipc_
cfg_init
(
);
if
(
!
res
)
if
(
!
res
)
res
=
tipc_netlink_start
();
res
=
tipc_netlink_start
();
if
(
!
res
)
if
(
!
res
)
...
...
net/tipc/core.h
View file @
b6d151bb
...
@@ -85,7 +85,6 @@ void tipc_printf(struct print_buf *, const char *fmt, ...);
...
@@ -85,7 +85,6 @@ void tipc_printf(struct print_buf *, const char *fmt, ...);
/*
/*
* TIPC_OUTPUT is the destination print buffer for system messages.
* TIPC_OUTPUT is the destination print buffer for system messages.
*/
*/
#ifndef TIPC_OUTPUT
#ifndef TIPC_OUTPUT
#define TIPC_OUTPUT TIPC_LOG
#define TIPC_OUTPUT TIPC_LOG
#endif
#endif
...
@@ -102,7 +101,6 @@ void tipc_printf(struct print_buf *, const char *fmt, ...);
...
@@ -102,7 +101,6 @@ void tipc_printf(struct print_buf *, const char *fmt, ...);
/*
/*
* DBG_OUTPUT is the destination print buffer for debug messages.
* DBG_OUTPUT is the destination print buffer for debug messages.
*/
*/
#ifndef DBG_OUTPUT
#ifndef DBG_OUTPUT
#define DBG_OUTPUT TIPC_LOG
#define DBG_OUTPUT TIPC_LOG
#endif
#endif
...
@@ -126,13 +124,11 @@ void tipc_msg_dbg(struct print_buf *, struct tipc_msg *, const char *);
...
@@ -126,13 +124,11 @@ void tipc_msg_dbg(struct print_buf *, struct tipc_msg *, const char *);
/*
/*
* TIPC-specific error codes
* TIPC-specific error codes
*/
*/
#define ELINKCONG EAGAIN
/* link congestion <=> resource unavailable */
#define ELINKCONG EAGAIN
/* link congestion <=> resource unavailable */
/*
/*
* Global configuration variables
* Global configuration variables
*/
*/
extern
u32
tipc_own_addr
;
extern
u32
tipc_own_addr
;
extern
int
tipc_max_ports
;
extern
int
tipc_max_ports
;
extern
int
tipc_max_subscriptions
;
extern
int
tipc_max_subscriptions
;
...
@@ -143,7 +139,6 @@ extern int tipc_remote_management;
...
@@ -143,7 +139,6 @@ extern int tipc_remote_management;
/*
/*
* Other global variables
* Other global variables
*/
*/
extern
int
tipc_random
;
extern
int
tipc_random
;
extern
const
char
tipc_alphabet
[];
extern
const
char
tipc_alphabet
[];
...
@@ -151,7 +146,6 @@ extern const char tipc_alphabet[];
...
@@ -151,7 +146,6 @@ extern const char tipc_alphabet[];
/*
/*
* Routines available to privileged subsystems
* Routines available to privileged subsystems
*/
*/
extern
int
tipc_core_start_net
(
unsigned
long
);
extern
int
tipc_core_start_net
(
unsigned
long
);
extern
int
tipc_handler_start
(
void
);
extern
int
tipc_handler_start
(
void
);
extern
void
tipc_handler_stop
(
void
);
extern
void
tipc_handler_stop
(
void
);
...
@@ -163,7 +157,6 @@ extern void tipc_socket_stop(void);
...
@@ -163,7 +157,6 @@ extern void tipc_socket_stop(void);
/*
/*
* TIPC timer and signal code
* TIPC timer and signal code
*/
*/
typedef
void
(
*
Handler
)
(
unsigned
long
);
typedef
void
(
*
Handler
)
(
unsigned
long
);
u32
tipc_k_signal
(
Handler
routine
,
unsigned
long
argument
);
u32
tipc_k_signal
(
Handler
routine
,
unsigned
long
argument
);
...
@@ -176,7 +169,6 @@ u32 tipc_k_signal(Handler routine, unsigned long argument);
...
@@ -176,7 +169,6 @@ u32 tipc_k_signal(Handler routine, unsigned long argument);
*
*
* 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
)
{
{
...
@@ -196,7 +188,6 @@ static inline void k_init_timer(struct timer_list *timer, Handler routine,
...
@@ -196,7 +188,6 @@ static inline void k_init_timer(struct timer_list *timer, Handler routine,
* 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.
*/
*/
static
inline
void
k_start_timer
(
struct
timer_list
*
timer
,
unsigned
long
msec
)
static
inline
void
k_start_timer
(
struct
timer_list
*
timer
,
unsigned
long
msec
)
{
{
mod_timer
(
timer
,
jiffies
+
msecs_to_jiffies
(
msec
)
+
1
);
mod_timer
(
timer
,
jiffies
+
msecs_to_jiffies
(
msec
)
+
1
);
...
@@ -212,7 +203,6 @@ static inline void k_start_timer(struct timer_list *timer, unsigned long msec)
...
@@ -212,7 +203,6 @@ static inline void k_start_timer(struct timer_list *timer, unsigned long msec)
* 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!
*/
*/
static
inline
void
k_cancel_timer
(
struct
timer_list
*
timer
)
static
inline
void
k_cancel_timer
(
struct
timer_list
*
timer
)
{
{
del_timer_sync
(
timer
);
del_timer_sync
(
timer
);
...
@@ -229,12 +219,10 @@ static inline void k_cancel_timer(struct timer_list *timer)
...
@@ -229,12 +219,10 @@ static inline void k_cancel_timer(struct timer_list *timer)
* (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.)
*/
*/
static
inline
void
k_term_timer
(
struct
timer_list
*
timer
)
static
inline
void
k_term_timer
(
struct
timer_list
*
timer
)
{
{
}
}
/*
/*
* TIPC message buffer code
* TIPC message buffer code
*
*
...
@@ -244,7 +232,6 @@ static inline void k_term_timer(struct timer_list *timer)
...
@@ -244,7 +232,6 @@ static inline void k_term_timer(struct timer_list *timer)
* Note: Headroom should be a multiple of 4 to ensure the TIPC header fields
* Note: Headroom should be a multiple of 4 to ensure the TIPC header fields
* are word aligned for quicker access
* are word aligned for quicker access
*/
*/
#define BUF_HEADROOM LL_MAX_HEADER
#define BUF_HEADROOM LL_MAX_HEADER
struct
tipc_skb_cb
{
struct
tipc_skb_cb
{
...
@@ -253,7 +240,6 @@ struct tipc_skb_cb {
...
@@ -253,7 +240,6 @@ struct tipc_skb_cb {
#define TIPC_SKB_CB(__skb) ((struct tipc_skb_cb *)&((__skb)->cb[0]))
#define TIPC_SKB_CB(__skb) ((struct tipc_skb_cb *)&((__skb)->cb[0]))
static
inline
struct
tipc_msg
*
buf_msg
(
struct
sk_buff
*
skb
)
static
inline
struct
tipc_msg
*
buf_msg
(
struct
sk_buff
*
skb
)
{
{
return
(
struct
tipc_msg
*
)
skb
->
data
;
return
(
struct
tipc_msg
*
)
skb
->
data
;
...
...
net/tipc/discover.c
View file @
b6d151bb
...
@@ -70,7 +70,6 @@ struct tipc_link_req {
...
@@ -70,7 +70,6 @@ struct tipc_link_req {
* @dest_domain: network domain of node(s) which should respond to message
* @dest_domain: network domain of node(s) which should respond to message
* @b_ptr: ptr to bearer issuing message
* @b_ptr: ptr to bearer issuing message
*/
*/
static
struct
sk_buff
*
tipc_disc_init_msg
(
u32
type
,
static
struct
sk_buff
*
tipc_disc_init_msg
(
u32
type
,
u32
dest_domain
,
u32
dest_domain
,
struct
tipc_bearer
*
b_ptr
)
struct
tipc_bearer
*
b_ptr
)
...
@@ -96,7 +95,6 @@ static struct sk_buff *tipc_disc_init_msg(u32 type,
...
@@ -96,7 +95,6 @@ static struct sk_buff *tipc_disc_init_msg(u32 type,
* @node_addr: duplicated node address
* @node_addr: duplicated node address
* @media_addr: media address advertised by duplicated node
* @media_addr: media address advertised by duplicated node
*/
*/
static
void
disc_dupl_alert
(
struct
tipc_bearer
*
b_ptr
,
u32
node_addr
,
static
void
disc_dupl_alert
(
struct
tipc_bearer
*
b_ptr
,
u32
node_addr
,
struct
tipc_media_addr
*
media_addr
)
struct
tipc_media_addr
*
media_addr
)
{
{
...
@@ -117,7 +115,6 @@ static void disc_dupl_alert(struct tipc_bearer *b_ptr, u32 node_addr,
...
@@ -117,7 +115,6 @@ static void disc_dupl_alert(struct tipc_bearer *b_ptr, u32 node_addr,
* @buf: buffer containing message
* @buf: buffer containing message
* @b_ptr: bearer that message arrived on
* @b_ptr: bearer that message arrived on
*/
*/
void
tipc_disc_recv_msg
(
struct
sk_buff
*
buf
,
struct
tipc_bearer
*
b_ptr
)
void
tipc_disc_recv_msg
(
struct
sk_buff
*
buf
,
struct
tipc_bearer
*
b_ptr
)
{
{
struct
tipc_node
*
n_ptr
;
struct
tipc_node
*
n_ptr
;
...
@@ -221,7 +218,6 @@ void tipc_disc_recv_msg(struct sk_buff *buf, struct tipc_bearer *b_ptr)
...
@@ -221,7 +218,6 @@ void tipc_disc_recv_msg(struct sk_buff *buf, struct tipc_bearer *b_ptr)
* the new media address and reset the link to ensure it starts up
* the new media address and reset the link to ensure it starts up
* cleanly.
* cleanly.
*/
*/
if
(
addr_mismatch
)
{
if
(
addr_mismatch
)
{
if
(
tipc_link_is_up
(
link
))
{
if
(
tipc_link_is_up
(
link
))
{
disc_dupl_alert
(
b_ptr
,
orig
,
&
media_addr
);
disc_dupl_alert
(
b_ptr
,
orig
,
&
media_addr
);
...
@@ -264,7 +260,6 @@ void tipc_disc_recv_msg(struct sk_buff *buf, struct tipc_bearer *b_ptr)
...
@@ -264,7 +260,6 @@ void tipc_disc_recv_msg(struct sk_buff *buf, struct tipc_bearer *b_ptr)
* Reinitiates discovery process if discovery object has no associated nodes
* Reinitiates discovery process if discovery object has no associated nodes
* and is either not currently searching or is searching at a slow rate
* and is either not currently searching or is searching at a slow rate
*/
*/
static
void
disc_update
(
struct
tipc_link_req
*
req
)
static
void
disc_update
(
struct
tipc_link_req
*
req
)
{
{
if
(
!
req
->
num_nodes
)
{
if
(
!
req
->
num_nodes
)
{
...
@@ -280,7 +275,6 @@ static void disc_update(struct tipc_link_req *req)
...
@@ -280,7 +275,6 @@ static void disc_update(struct tipc_link_req *req)
* tipc_disc_add_dest - increment set of discovered nodes
* tipc_disc_add_dest - increment set of discovered nodes
* @req: ptr to link request structure
* @req: ptr to link request structure
*/
*/
void
tipc_disc_add_dest
(
struct
tipc_link_req
*
req
)
void
tipc_disc_add_dest
(
struct
tipc_link_req
*
req
)
{
{
req
->
num_nodes
++
;
req
->
num_nodes
++
;
...
@@ -290,7 +284,6 @@ void tipc_disc_add_dest(struct tipc_link_req *req)
...
@@ -290,7 +284,6 @@ void tipc_disc_add_dest(struct tipc_link_req *req)
* tipc_disc_remove_dest - decrement set of discovered nodes
* tipc_disc_remove_dest - decrement set of discovered nodes
* @req: ptr to link request structure
* @req: ptr to link request structure
*/
*/
void
tipc_disc_remove_dest
(
struct
tipc_link_req
*
req
)
void
tipc_disc_remove_dest
(
struct
tipc_link_req
*
req
)
{
{
req
->
num_nodes
--
;
req
->
num_nodes
--
;
...
@@ -301,7 +294,6 @@ void tipc_disc_remove_dest(struct tipc_link_req *req)
...
@@ -301,7 +294,6 @@ void tipc_disc_remove_dest(struct tipc_link_req *req)
* disc_send_msg - send link setup request message
* disc_send_msg - send link setup request message
* @req: ptr to link request structure
* @req: ptr to link request structure
*/
*/
static
void
disc_send_msg
(
struct
tipc_link_req
*
req
)
static
void
disc_send_msg
(
struct
tipc_link_req
*
req
)
{
{
if
(
!
req
->
bearer
->
blocked
)
if
(
!
req
->
bearer
->
blocked
)
...
@@ -314,7 +306,6 @@ static void disc_send_msg(struct tipc_link_req *req)
...
@@ -314,7 +306,6 @@ static void disc_send_msg(struct tipc_link_req *req)
*
*
* 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
tipc_link_req
*
req
)
static
void
disc_timeout
(
struct
tipc_link_req
*
req
)
{
{
int
max_delay
;
int
max_delay
;
...
@@ -322,7 +313,6 @@ static void disc_timeout(struct tipc_link_req *req)
...
@@ -322,7 +313,6 @@ static void disc_timeout(struct tipc_link_req *req)
spin_lock_bh
(
&
req
->
bearer
->
lock
);
spin_lock_bh
(
&
req
->
bearer
->
lock
);
/* Stop searching if only desired node has been found */
/* Stop searching if only desired node has been found */
if
(
tipc_node
(
req
->
domain
)
&&
req
->
num_nodes
)
{
if
(
tipc_node
(
req
->
domain
)
&&
req
->
num_nodes
)
{
req
->
timer_intv
=
TIPC_LINK_REQ_INACTIVE
;
req
->
timer_intv
=
TIPC_LINK_REQ_INACTIVE
;
goto
exit
;
goto
exit
;
...
@@ -335,7 +325,6 @@ static void disc_timeout(struct tipc_link_req *req)
...
@@ -335,7 +325,6 @@ static void disc_timeout(struct tipc_link_req *req)
* hold at fast polling rate if don't have any associated nodes,
* hold at fast polling rate if don't have any associated nodes,
* otherwise hold at slow polling rate
* otherwise hold at slow polling rate
*/
*/
disc_send_msg
(
req
);
disc_send_msg
(
req
);
req
->
timer_intv
*=
2
;
req
->
timer_intv
*=
2
;
...
@@ -359,7 +348,6 @@ static void disc_timeout(struct tipc_link_req *req)
...
@@ -359,7 +348,6 @@ static void disc_timeout(struct tipc_link_req *req)
*
*
* Returns 0 if successful, otherwise -errno.
* Returns 0 if successful, otherwise -errno.
*/
*/
int
tipc_disc_create
(
struct
tipc_bearer
*
b_ptr
,
int
tipc_disc_create
(
struct
tipc_bearer
*
b_ptr
,
struct
tipc_media_addr
*
dest
,
u32
dest_domain
)
struct
tipc_media_addr
*
dest
,
u32
dest_domain
)
{
{
...
@@ -391,7 +379,6 @@ int tipc_disc_create(struct tipc_bearer *b_ptr,
...
@@ -391,7 +379,6 @@ int tipc_disc_create(struct tipc_bearer *b_ptr,
* tipc_disc_delete - destroy object sending periodic link setup requests
* tipc_disc_delete - destroy object sending periodic link setup requests
* @req: ptr to link request structure
* @req: ptr to link request structure
*/
*/
void
tipc_disc_delete
(
struct
tipc_link_req
*
req
)
void
tipc_disc_delete
(
struct
tipc_link_req
*
req
)
{
{
k_cancel_timer
(
&
req
->
timer
);
k_cancel_timer
(
&
req
->
timer
);
...
@@ -399,4 +386,3 @@ void tipc_disc_delete(struct tipc_link_req *req)
...
@@ -399,4 +386,3 @@ void tipc_disc_delete(struct tipc_link_req *req)
kfree_skb
(
req
->
buf
);
kfree_skb
(
req
->
buf
);
kfree
(
req
);
kfree
(
req
);
}
}
net/tipc/eth_media.c
View file @
b6d151bb
...
@@ -48,7 +48,6 @@
...
@@ -48,7 +48,6 @@
* @tipc_packet_type: used in binding TIPC to Ethernet driver
* @tipc_packet_type: used in binding TIPC to Ethernet driver
* @cleanup: work item used when disabling bearer
* @cleanup: work item used when disabling bearer
*/
*/
struct
eth_bearer
{
struct
eth_bearer
{
struct
tipc_bearer
*
bearer
;
struct
tipc_bearer
*
bearer
;
struct
net_device
*
dev
;
struct
net_device
*
dev
;
...
@@ -67,7 +66,6 @@ static struct notifier_block notifier;
...
@@ -67,7 +66,6 @@ static struct notifier_block notifier;
* Media-dependent "value" field stores MAC address in first 6 bytes
* Media-dependent "value" field stores MAC address in first 6 bytes
* and zeroes out the remaining bytes.
* and zeroes out the remaining bytes.
*/
*/
static
void
eth_media_addr_set
(
struct
tipc_media_addr
*
a
,
char
*
mac
)
static
void
eth_media_addr_set
(
struct
tipc_media_addr
*
a
,
char
*
mac
)
{
{
memcpy
(
a
->
value
,
mac
,
ETH_ALEN
);
memcpy
(
a
->
value
,
mac
,
ETH_ALEN
);
...
@@ -79,7 +77,6 @@ static void eth_media_addr_set(struct tipc_media_addr *a, char *mac)
...
@@ -79,7 +77,6 @@ static void eth_media_addr_set(struct tipc_media_addr *a, char *mac)
/**
/**
* 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
)
{
{
...
@@ -115,7 +112,6 @@ static int send_msg(struct sk_buff *buf, struct tipc_bearer *tb_ptr,
...
@@ -115,7 +112,6 @@ static int send_msg(struct sk_buff *buf, struct tipc_bearer *tb_ptr,
* ignores packets sent using Ethernet multicast, and traffic sent to other
* ignores packets sent using Ethernet multicast, and traffic sent to other
* nodes (which can happen if interface is running in promiscuous mode).
* nodes (which can happen if interface is running in promiscuous mode).
*/
*/
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
)
{
{
...
@@ -140,7 +136,6 @@ static int recv_msg(struct sk_buff *buf, struct net_device *dev,
...
@@ -140,7 +136,6 @@ 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
)
{
{
struct
net_device
*
dev
=
NULL
;
struct
net_device
*
dev
=
NULL
;
...
@@ -151,7 +146,6 @@ static int enable_bearer(struct tipc_bearer *tb_ptr)
...
@@ -151,7 +146,6 @@ static int enable_bearer(struct tipc_bearer *tb_ptr)
int
pending_dev
=
0
;
int
pending_dev
=
0
;
/* Find unused Ethernet bearer structure */
/* Find unused Ethernet bearer structure */
while
(
eb_ptr
->
dev
)
{
while
(
eb_ptr
->
dev
)
{
if
(
!
eb_ptr
->
bearer
)
if
(
!
eb_ptr
->
bearer
)
pending_dev
++
;
pending_dev
++
;
...
@@ -160,7 +154,6 @@ static int enable_bearer(struct tipc_bearer *tb_ptr)
...
@@ -160,7 +154,6 @@ static int enable_bearer(struct tipc_bearer *tb_ptr)
}
}
/* Find device with specified name */
/* Find device with specified name */
read_lock
(
&
dev_base_lock
);
read_lock
(
&
dev_base_lock
);
for_each_netdev
(
&
init_net
,
pdev
)
{
for_each_netdev
(
&
init_net
,
pdev
)
{
if
(
!
strncmp
(
pdev
->
name
,
driver_name
,
IFNAMSIZ
))
{
if
(
!
strncmp
(
pdev
->
name
,
driver_name
,
IFNAMSIZ
))
{
...
@@ -174,7 +167,6 @@ static int enable_bearer(struct tipc_bearer *tb_ptr)
...
@@ -174,7 +167,6 @@ static int enable_bearer(struct tipc_bearer *tb_ptr)
return
-
ENODEV
;
return
-
ENODEV
;
/* Create Ethernet bearer for device */
/* Create Ethernet bearer for device */
eb_ptr
->
dev
=
dev
;
eb_ptr
->
dev
=
dev
;
eb_ptr
->
tipc_packet_type
.
type
=
htons
(
ETH_P_TIPC
);
eb_ptr
->
tipc_packet_type
.
type
=
htons
(
ETH_P_TIPC
);
eb_ptr
->
tipc_packet_type
.
dev
=
dev
;
eb_ptr
->
tipc_packet_type
.
dev
=
dev
;
...
@@ -184,7 +176,6 @@ static int enable_bearer(struct tipc_bearer *tb_ptr)
...
@@ -184,7 +176,6 @@ static int enable_bearer(struct tipc_bearer *tb_ptr)
dev_add_pack
(
&
eb_ptr
->
tipc_packet_type
);
dev_add_pack
(
&
eb_ptr
->
tipc_packet_type
);
/* Associate TIPC bearer with Ethernet bearer */
/* Associate TIPC bearer with Ethernet bearer */
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
;
...
@@ -198,7 +189,6 @@ static int enable_bearer(struct tipc_bearer *tb_ptr)
...
@@ -198,7 +189,6 @@ static int enable_bearer(struct tipc_bearer *tb_ptr)
*
*
* This routine must be invoked from a work queue because it can sleep.
* This routine must be invoked from a work queue because it can sleep.
*/
*/
static
void
cleanup_bearer
(
struct
work_struct
*
work
)
static
void
cleanup_bearer
(
struct
work_struct
*
work
)
{
{
struct
eth_bearer
*
eb_ptr
=
struct
eth_bearer
*
eb_ptr
=
...
@@ -216,7 +206,6 @@ static void cleanup_bearer(struct work_struct *work)
...
@@ -216,7 +206,6 @@ static void cleanup_bearer(struct work_struct *work)
* then get worker thread to complete bearer cleanup. (Can't do cleanup
* then get worker thread to complete bearer cleanup. (Can't do cleanup
* here because cleanup code needs to sleep and caller holds spinlocks.)
* here because cleanup code needs to sleep and caller holds spinlocks.)
*/
*/
static
void
disable_bearer
(
struct
tipc_bearer
*
tb_ptr
)
static
void
disable_bearer
(
struct
tipc_bearer
*
tb_ptr
)
{
{
struct
eth_bearer
*
eb_ptr
=
(
struct
eth_bearer
*
)
tb_ptr
->
usr_handle
;
struct
eth_bearer
*
eb_ptr
=
(
struct
eth_bearer
*
)
tb_ptr
->
usr_handle
;
...
@@ -232,7 +221,6 @@ static void disable_bearer(struct tipc_bearer *tb_ptr)
...
@@ -232,7 +221,6 @@ static void disable_bearer(struct tipc_bearer *tb_ptr)
* 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
)
{
{
...
@@ -281,7 +269,6 @@ static int recv_notification(struct notifier_block *nb, unsigned long evt,
...
@@ -281,7 +269,6 @@ static int recv_notification(struct notifier_block *nb, unsigned long evt,
/**
/**
* eth_addr2str - convert Ethernet address to string
* eth_addr2str - convert Ethernet address to string
*/
*/
static
int
eth_addr2str
(
struct
tipc_media_addr
*
a
,
char
*
str_buf
,
int
str_size
)
static
int
eth_addr2str
(
struct
tipc_media_addr
*
a
,
char
*
str_buf
,
int
str_size
)
{
{
if
(
str_size
<
18
)
/* 18 = strlen("aa:bb:cc:dd:ee:ff\0") */
if
(
str_size
<
18
)
/* 18 = strlen("aa:bb:cc:dd:ee:ff\0") */
...
@@ -294,7 +281,6 @@ static int eth_addr2str(struct tipc_media_addr *a, char *str_buf, int str_size)
...
@@ -294,7 +281,6 @@ static int eth_addr2str(struct tipc_media_addr *a, char *str_buf, int str_size)
/**
/**
* eth_str2addr - convert string to Ethernet address
* eth_str2addr - convert string to Ethernet address
*/
*/
static
int
eth_str2addr
(
struct
tipc_media_addr
*
a
,
char
*
str_buf
)
static
int
eth_str2addr
(
struct
tipc_media_addr
*
a
,
char
*
str_buf
)
{
{
char
mac
[
ETH_ALEN
];
char
mac
[
ETH_ALEN
];
...
@@ -314,7 +300,6 @@ static int eth_str2addr(struct tipc_media_addr *a, char *str_buf)
...
@@ -314,7 +300,6 @@ static int eth_str2addr(struct tipc_media_addr *a, char *str_buf)
/**
/**
* eth_str2addr - convert Ethernet address format to message header format
* eth_str2addr - convert Ethernet address format to message header format
*/
*/
static
int
eth_addr2msg
(
struct
tipc_media_addr
*
a
,
char
*
msg_area
)
static
int
eth_addr2msg
(
struct
tipc_media_addr
*
a
,
char
*
msg_area
)
{
{
memset
(
msg_area
,
0
,
TIPC_MEDIA_ADDR_SIZE
);
memset
(
msg_area
,
0
,
TIPC_MEDIA_ADDR_SIZE
);
...
@@ -326,7 +311,6 @@ static int eth_addr2msg(struct tipc_media_addr *a, char *msg_area)
...
@@ -326,7 +311,6 @@ static int eth_addr2msg(struct tipc_media_addr *a, char *msg_area)
/**
/**
* eth_str2addr - convert message header address format to Ethernet format
* eth_str2addr - convert message header address format to Ethernet format
*/
*/
static
int
eth_msg2addr
(
struct
tipc_media_addr
*
a
,
char
*
msg_area
)
static
int
eth_msg2addr
(
struct
tipc_media_addr
*
a
,
char
*
msg_area
)
{
{
if
(
msg_area
[
TIPC_MEDIA_TYPE_OFFSET
]
!=
TIPC_MEDIA_TYPE_ETH
)
if
(
msg_area
[
TIPC_MEDIA_TYPE_OFFSET
]
!=
TIPC_MEDIA_TYPE_ETH
)
...
@@ -339,7 +323,6 @@ static int eth_msg2addr(struct tipc_media_addr *a, char *msg_area)
...
@@ -339,7 +323,6 @@ static int eth_msg2addr(struct tipc_media_addr *a, char *msg_area)
/*
/*
* Ethernet media registration info
* Ethernet media registration info
*/
*/
static
struct
tipc_media
eth_media_info
=
{
static
struct
tipc_media
eth_media_info
=
{
.
send_msg
=
send_msg
,
.
send_msg
=
send_msg
,
.
enable_bearer
=
enable_bearer
,
.
enable_bearer
=
enable_bearer
,
...
@@ -363,7 +346,6 @@ static struct tipc_media eth_media_info = {
...
@@ -363,7 +346,6 @@ static struct tipc_media eth_media_info = {
* Register Ethernet media type with TIPC bearer code. Also register
* Register Ethernet media type with TIPC bearer code. Also register
* with OS for notifications about device state changes.
* with OS for notifications about device state changes.
*/
*/
int
tipc_eth_media_start
(
void
)
int
tipc_eth_media_start
(
void
)
{
{
int
res
;
int
res
;
...
@@ -386,7 +368,6 @@ int tipc_eth_media_start(void)
...
@@ -386,7 +368,6 @@ int tipc_eth_media_start(void)
/**
/**
* tipc_eth_media_stop - deactivate Ethernet bearer support
* tipc_eth_media_stop - deactivate Ethernet bearer support
*/
*/
void
tipc_eth_media_stop
(
void
)
void
tipc_eth_media_stop
(
void
)
{
{
if
(
!
eth_started
)
if
(
!
eth_started
)
...
...
net/tipc/handler.c
View file @
b6d151bb
...
@@ -129,4 +129,3 @@ void tipc_handler_stop(void)
...
@@ -129,4 +129,3 @@ void tipc_handler_stop(void)
kmem_cache_destroy
(
tipc_queue_item_cache
);
kmem_cache_destroy
(
tipc_queue_item_cache
);
}
}
net/tipc/link.c
View file @
b6d151bb
This diff is collapsed.
Click to expand it.
net/tipc/link.h
View file @
b6d151bb
...
@@ -47,13 +47,11 @@
...
@@ -47,13 +47,11 @@
/*
/*
* Out-of-range value for link sequence numbers
* Out-of-range value for link sequence numbers
*/
*/
#define INVALID_LINK_SEQ 0x10000
#define INVALID_LINK_SEQ 0x10000
/*
/*
* Link states
* Link states
*/
*/
#define WORKING_WORKING 560810u
#define WORKING_WORKING 560810u
#define WORKING_UNKNOWN 560811u
#define WORKING_UNKNOWN 560811u
#define RESET_UNKNOWN 560812u
#define RESET_UNKNOWN 560812u
...
@@ -63,7 +61,6 @@
...
@@ -63,7 +61,6 @@
* 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)
*/
*/
#define MAX_PKT_DEFAULT 1500
#define MAX_PKT_DEFAULT 1500
/**
/**
...
@@ -114,7 +111,6 @@
...
@@ -114,7 +111,6 @@
* @defragm_buf: list of partially reassembled inbound message fragments
* @defragm_buf: list of partially reassembled inbound message fragments
* @stats: collects statistics regarding link activity
* @stats: collects statistics regarding link activity
*/
*/
struct
tipc_link
{
struct
tipc_link
{
u32
addr
;
u32
addr
;
char
name
[
TIPC_MAX_LINK_NAME
];
char
name
[
TIPC_MAX_LINK_NAME
];
...
@@ -255,7 +251,6 @@ void tipc_link_retransmit(struct tipc_link *l_ptr,
...
@@ -255,7 +251,6 @@ void tipc_link_retransmit(struct tipc_link *l_ptr,
/*
/*
* Link sequence number manipulation routines (uses modulo 2**16 arithmetic)
* Link sequence number manipulation routines (uses modulo 2**16 arithmetic)
*/
*/
static
inline
u32
buf_seqno
(
struct
sk_buff
*
buf
)
static
inline
u32
buf_seqno
(
struct
sk_buff
*
buf
)
{
{
return
msg_seqno
(
buf_msg
(
buf
));
return
msg_seqno
(
buf_msg
(
buf
));
...
@@ -294,7 +289,6 @@ static inline u32 lesser(u32 left, u32 right)
...
@@ -294,7 +289,6 @@ static inline u32 lesser(u32 left, u32 right)
/*
/*
* Link status checking routines
* Link status checking routines
*/
*/
static
inline
int
link_working_working
(
struct
tipc_link
*
l_ptr
)
static
inline
int
link_working_working
(
struct
tipc_link
*
l_ptr
)
{
{
return
l_ptr
->
state
==
WORKING_WORKING
;
return
l_ptr
->
state
==
WORKING_WORKING
;
...
...
net/tipc/log.c
View file @
b6d151bb
...
@@ -47,7 +47,6 @@
...
@@ -47,7 +47,6 @@
*
*
* Additional user-defined print buffers are also permitted.
* Additional user-defined print buffers are also permitted.
*/
*/
static
struct
print_buf
null_buf
=
{
NULL
,
0
,
NULL
,
0
};
static
struct
print_buf
null_buf
=
{
NULL
,
0
,
NULL
,
0
};
struct
print_buf
*
const
TIPC_NULL
=
&
null_buf
;
struct
print_buf
*
const
TIPC_NULL
=
&
null_buf
;
...
@@ -72,7 +71,6 @@ struct print_buf *const TIPC_LOG = &log_buf;
...
@@ -72,7 +71,6 @@ struct print_buf *const TIPC_LOG = &log_buf;
* on the caller to prevent simultaneous use of the print buffer(s) being
* on the caller to prevent simultaneous use of the print buffer(s) being
* manipulated.
* manipulated.
*/
*/
static
char
print_string
[
TIPC_PB_MAX_STR
];
static
char
print_string
[
TIPC_PB_MAX_STR
];
static
DEFINE_SPINLOCK
(
print_lock
);
static
DEFINE_SPINLOCK
(
print_lock
);
...
@@ -97,7 +95,6 @@ static void tipc_printbuf_move(struct print_buf *pb_to,
...
@@ -97,7 +95,6 @@ static void tipc_printbuf_move(struct print_buf *pb_to,
* Note: If the character array is too small (or absent), the print buffer
* Note: If the character array is too small (or absent), the print buffer
* becomes a null device that discards anything written to it.
* becomes a null device that discards anything written to it.
*/
*/
void
tipc_printbuf_init
(
struct
print_buf
*
pb
,
char
*
raw
,
u32
size
)
void
tipc_printbuf_init
(
struct
print_buf
*
pb
,
char
*
raw
,
u32
size
)
{
{
pb
->
buf
=
raw
;
pb
->
buf
=
raw
;
...
@@ -117,7 +114,6 @@ void tipc_printbuf_init(struct print_buf *pb, char *raw, u32 size)
...
@@ -117,7 +114,6 @@ void tipc_printbuf_init(struct print_buf *pb, char *raw, u32 size)
* tipc_printbuf_reset - reinitialize print buffer to empty state
* tipc_printbuf_reset - reinitialize print buffer to empty state
* @pb: pointer to print buffer structure
* @pb: pointer to print buffer structure
*/
*/
static
void
tipc_printbuf_reset
(
struct
print_buf
*
pb
)
static
void
tipc_printbuf_reset
(
struct
print_buf
*
pb
)
{
{
if
(
pb
->
buf
)
{
if
(
pb
->
buf
)
{
...
@@ -133,7 +129,6 @@ static void tipc_printbuf_reset(struct print_buf *pb)
...
@@ -133,7 +129,6 @@ static void tipc_printbuf_reset(struct print_buf *pb)
*
*
* Returns non-zero if print buffer is empty.
* Returns non-zero if print buffer is empty.
*/
*/
static
int
tipc_printbuf_empty
(
struct
print_buf
*
pb
)
static
int
tipc_printbuf_empty
(
struct
print_buf
*
pb
)
{
{
return
!
pb
->
buf
||
(
pb
->
crs
==
pb
->
buf
);
return
!
pb
->
buf
||
(
pb
->
crs
==
pb
->
buf
);
...
@@ -148,7 +143,6 @@ static int tipc_printbuf_empty(struct print_buf *pb)
...
@@ -148,7 +143,6 @@ static int tipc_printbuf_empty(struct print_buf *pb)
*
*
* 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
"
;
...
@@ -182,14 +176,12 @@ int tipc_printbuf_validate(struct print_buf *pb)
...
@@ -182,14 +176,12 @@ int tipc_printbuf_validate(struct print_buf *pb)
* 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.
*/
*/
static
void
tipc_printbuf_move
(
struct
print_buf
*
pb_to
,
static
void
tipc_printbuf_move
(
struct
print_buf
*
pb_to
,
struct
print_buf
*
pb_from
)
struct
print_buf
*
pb_from
)
{
{
int
len
;
int
len
;
/* Handle the cases where contents can't be moved */
/* Handle the cases where contents can't be moved */
if
(
!
pb_to
->
buf
)
if
(
!
pb_to
->
buf
)
return
;
return
;
...
@@ -206,7 +198,6 @@ static void tipc_printbuf_move(struct print_buf *pb_to,
...
@@ -206,7 +198,6 @@ static void tipc_printbuf_move(struct print_buf *pb_to,
}
}
/* Copy data from char after cursor to end (if used) */
/* Copy data from char after cursor to end (if used) */
len
=
pb_from
->
buf
+
pb_from
->
size
-
pb_from
->
crs
-
2
;
len
=
pb_from
->
buf
+
pb_from
->
size
-
pb_from
->
crs
-
2
;
if
((
pb_from
->
buf
[
pb_from
->
size
-
1
]
==
0
)
&&
(
len
>
0
))
{
if
((
pb_from
->
buf
[
pb_from
->
size
-
1
]
==
0
)
&&
(
len
>
0
))
{
strcpy
(
pb_to
->
buf
,
pb_from
->
crs
+
1
);
strcpy
(
pb_to
->
buf
,
pb_from
->
crs
+
1
);
...
@@ -215,7 +206,6 @@ static void tipc_printbuf_move(struct print_buf *pb_to,
...
@@ -215,7 +206,6 @@ static void tipc_printbuf_move(struct print_buf *pb_to,
pb_to
->
crs
=
pb_to
->
buf
;
pb_to
->
crs
=
pb_to
->
buf
;
/* Copy data from start to cursor (always) */
/* Copy data from start to cursor (always) */
len
=
pb_from
->
crs
-
pb_from
->
buf
;
len
=
pb_from
->
crs
-
pb_from
->
buf
;
strcpy
(
pb_to
->
crs
,
pb_from
->
buf
);
strcpy
(
pb_to
->
crs
,
pb_from
->
buf
);
pb_to
->
crs
+=
len
;
pb_to
->
crs
+=
len
;
...
@@ -228,7 +218,6 @@ static void tipc_printbuf_move(struct print_buf *pb_to,
...
@@ -228,7 +218,6 @@ static void tipc_printbuf_move(struct print_buf *pb_to,
* @pb: pointer to print buffer
* @pb: pointer to print buffer
* @fmt: formatted info to be printed
* @fmt: formatted info to be printed
*/
*/
void
tipc_printf
(
struct
print_buf
*
pb
,
const
char
*
fmt
,
...)
void
tipc_printf
(
struct
print_buf
*
pb
,
const
char
*
fmt
,
...)
{
{
int
chars_to_add
;
int
chars_to_add
;
...
@@ -270,7 +259,6 @@ void tipc_printf(struct print_buf *pb, const char *fmt, ...)
...
@@ -270,7 +259,6 @@ void tipc_printf(struct print_buf *pb, const char *fmt, ...)
* tipc_log_resize - change the size of the TIPC log buffer
* tipc_log_resize - change the size of the TIPC log buffer
* @log_size: print buffer size to use
* @log_size: print buffer size to use
*/
*/
int
tipc_log_resize
(
int
log_size
)
int
tipc_log_resize
(
int
log_size
)
{
{
int
res
=
0
;
int
res
=
0
;
...
@@ -295,7 +283,6 @@ int tipc_log_resize(int log_size)
...
@@ -295,7 +283,6 @@ int tipc_log_resize(int log_size)
/**
/**
* tipc_log_resize_cmd - reconfigure size of TIPC log buffer
* tipc_log_resize_cmd - reconfigure size of TIPC log buffer
*/
*/
struct
sk_buff
*
tipc_log_resize_cmd
(
const
void
*
req_tlv_area
,
int
req_tlv_space
)
struct
sk_buff
*
tipc_log_resize_cmd
(
const
void
*
req_tlv_area
,
int
req_tlv_space
)
{
{
u32
value
;
u32
value
;
...
@@ -316,7 +303,6 @@ struct sk_buff *tipc_log_resize_cmd(const void *req_tlv_area, int req_tlv_space)
...
@@ -316,7 +303,6 @@ struct sk_buff *tipc_log_resize_cmd(const void *req_tlv_area, int req_tlv_space)
/**
/**
* tipc_log_dump - capture TIPC log buffer contents in configuration message
* tipc_log_dump - capture TIPC log buffer contents in configuration message
*/
*/
struct
sk_buff
*
tipc_log_dump
(
void
)
struct
sk_buff
*
tipc_log_dump
(
void
)
{
{
struct
sk_buff
*
reply
;
struct
sk_buff
*
reply
;
...
...
net/tipc/log.h
View file @
b6d151bb
...
@@ -44,7 +44,6 @@
...
@@ -44,7 +44,6 @@
* @crs: pointer to first unused space in character array (i.e. final NUL)
* @crs: pointer to first unused space in character array (i.e. final NUL)
* @echo: echo output to system console if non-zero
* @echo: echo output to system console if non-zero
*/
*/
struct
print_buf
{
struct
print_buf
{
char
*
buf
;
char
*
buf
;
u32
size
;
u32
size
;
...
...
net/tipc/msg.c
View file @
b6d151bb
...
@@ -72,7 +72,6 @@ void tipc_msg_init(struct tipc_msg *m, u32 user, u32 type,
...
@@ -72,7 +72,6 @@ void tipc_msg_init(struct tipc_msg *m, u32 user, u32 type,
*
*
* Returns message data size or errno
* Returns message data size or errno
*/
*/
int
tipc_msg_build
(
struct
tipc_msg
*
hdr
,
struct
iovec
const
*
msg_sect
,
int
tipc_msg_build
(
struct
tipc_msg
*
hdr
,
struct
iovec
const
*
msg_sect
,
u32
num_sect
,
unsigned
int
total_len
,
u32
num_sect
,
unsigned
int
total_len
,
int
max_size
,
int
usrmem
,
struct
sk_buff
**
buf
)
int
max_size
,
int
usrmem
,
struct
sk_buff
**
buf
)
...
@@ -112,7 +111,6 @@ int tipc_msg_build(struct tipc_msg *hdr, struct iovec const *msg_sect,
...
@@ -112,7 +111,6 @@ int tipc_msg_build(struct tipc_msg *hdr, struct iovec const *msg_sect,
}
}
#ifdef CONFIG_TIPC_DEBUG
#ifdef CONFIG_TIPC_DEBUG
void
tipc_msg_dbg
(
struct
print_buf
*
buf
,
struct
tipc_msg
*
msg
,
const
char
*
str
)
void
tipc_msg_dbg
(
struct
print_buf
*
buf
,
struct
tipc_msg
*
msg
,
const
char
*
str
)
{
{
u32
usr
=
msg_user
(
msg
);
u32
usr
=
msg_user
(
msg
);
...
@@ -352,5 +350,4 @@ void tipc_msg_dbg(struct print_buf *buf, struct tipc_msg *msg, const char *str)
...
@@ -352,5 +350,4 @@ void tipc_msg_dbg(struct print_buf *buf, struct tipc_msg *msg, const char *str)
if
((
usr
==
MSG_FRAGMENTER
)
&&
(
msg_type
(
msg
)
==
FIRST_FRAGMENT
))
if
((
usr
==
MSG_FRAGMENTER
)
&&
(
msg_type
(
msg
)
==
FIRST_FRAGMENT
))
tipc_msg_dbg
(
buf
,
msg_get_wrapped
(
msg
),
" /"
);
tipc_msg_dbg
(
buf
,
msg_get_wrapped
(
msg
),
" /"
);
}
}
#endif
#endif
net/tipc/msg.h
View file @
b6d151bb
...
@@ -44,7 +44,6 @@
...
@@ -44,7 +44,6 @@
*
*
* Note: Some items are also used with TIPC internal message headers
* Note: Some items are also used with TIPC internal message headers
*/
*/
#define TIPC_VERSION 2
#define TIPC_VERSION 2
/*
/*
...
@@ -58,7 +57,6 @@
...
@@ -58,7 +57,6 @@
/*
/*
* Payload message types
* Payload message types
*/
*/
#define TIPC_CONN_MSG 0
#define TIPC_CONN_MSG 0
#define TIPC_MCAST_MSG 1
#define TIPC_MCAST_MSG 1
#define TIPC_NAMED_MSG 2
#define TIPC_NAMED_MSG 2
...
@@ -67,7 +65,6 @@
...
@@ -67,7 +65,6 @@
/*
/*
* Message header sizes
* Message header sizes
*/
*/
#define SHORT_H_SIZE 24
/* In-cluster basic payload message */
#define SHORT_H_SIZE 24
/* In-cluster basic payload message */
#define BASIC_H_SIZE 32
/* Basic payload message */
#define BASIC_H_SIZE 32
/* Basic payload message */
#define NAMED_H_SIZE 40
/* Named payload message */
#define NAMED_H_SIZE 40
/* Named payload message */
...
@@ -121,7 +118,6 @@ static inline void msg_swap_words(struct tipc_msg *msg, u32 a, u32 b)
...
@@ -121,7 +118,6 @@ static inline void msg_swap_words(struct tipc_msg *msg, u32 a, u32 b)
/*
/*
* Word 0
* Word 0
*/
*/
static
inline
u32
msg_version
(
struct
tipc_msg
*
m
)
static
inline
u32
msg_version
(
struct
tipc_msg
*
m
)
{
{
return
msg_bits
(
m
,
0
,
29
,
7
);
return
msg_bits
(
m
,
0
,
29
,
7
);
...
@@ -216,7 +212,6 @@ static inline void msg_set_size(struct tipc_msg *m, u32 sz)
...
@@ -216,7 +212,6 @@ static inline void msg_set_size(struct tipc_msg *m, u32 sz)
/*
/*
* Word 1
* Word 1
*/
*/
static
inline
u32
msg_type
(
struct
tipc_msg
*
m
)
static
inline
u32
msg_type
(
struct
tipc_msg
*
m
)
{
{
return
msg_bits
(
m
,
1
,
29
,
0x7
);
return
msg_bits
(
m
,
1
,
29
,
0x7
);
...
@@ -291,7 +286,6 @@ static inline void msg_set_bcast_ack(struct tipc_msg *m, u32 n)
...
@@ -291,7 +286,6 @@ static inline void msg_set_bcast_ack(struct tipc_msg *m, u32 n)
/*
/*
* Word 2
* Word 2
*/
*/
static
inline
u32
msg_ack
(
struct
tipc_msg
*
m
)
static
inline
u32
msg_ack
(
struct
tipc_msg
*
m
)
{
{
return
msg_bits
(
m
,
2
,
16
,
0xffff
);
return
msg_bits
(
m
,
2
,
16
,
0xffff
);
...
@@ -315,8 +309,6 @@ static inline void msg_set_seqno(struct tipc_msg *m, u32 n)
...
@@ -315,8 +309,6 @@ static inline void msg_set_seqno(struct tipc_msg *m, u32 n)
/*
/*
* Words 3-10
* Words 3-10
*/
*/
static
inline
u32
msg_prevnode
(
struct
tipc_msg
*
m
)
static
inline
u32
msg_prevnode
(
struct
tipc_msg
*
m
)
{
{
return
msg_word
(
m
,
3
);
return
msg_word
(
m
,
3
);
...
@@ -434,7 +426,6 @@ static inline struct tipc_msg *msg_get_wrapped(struct tipc_msg *m)
...
@@ -434,7 +426,6 @@ static inline struct tipc_msg *msg_get_wrapped(struct tipc_msg *m)
return
(
struct
tipc_msg
*
)
msg_data
(
m
);
return
(
struct
tipc_msg
*
)
msg_data
(
m
);
}
}
/*
/*
* Constants and routines used to read and write TIPC internal message headers
* Constants and routines used to read and write TIPC internal message headers
*/
*/
...
@@ -442,7 +433,6 @@ static inline struct tipc_msg *msg_get_wrapped(struct tipc_msg *m)
...
@@ -442,7 +433,6 @@ static inline struct tipc_msg *msg_get_wrapped(struct tipc_msg *m)
/*
/*
* Internal message users
* Internal message users
*/
*/
#define BCAST_PROTOCOL 5
#define BCAST_PROTOCOL 5
#define MSG_BUNDLER 6
#define MSG_BUNDLER 6
#define LINK_PROTOCOL 7
#define LINK_PROTOCOL 7
...
@@ -456,7 +446,6 @@ static inline struct tipc_msg *msg_get_wrapped(struct tipc_msg *m)
...
@@ -456,7 +446,6 @@ static inline struct tipc_msg *msg_get_wrapped(struct tipc_msg *m)
/*
/*
* Connection management protocol message types
* Connection management protocol message types
*/
*/
#define CONN_PROBE 0
#define CONN_PROBE 0
#define CONN_PROBE_REPLY 1
#define CONN_PROBE_REPLY 1
#define CONN_ACK 2
#define CONN_ACK 2
...
@@ -464,14 +453,12 @@ static inline struct tipc_msg *msg_get_wrapped(struct tipc_msg *m)
...
@@ -464,14 +453,12 @@ static inline struct tipc_msg *msg_get_wrapped(struct tipc_msg *m)
/*
/*
* Name distributor message types
* Name distributor message types
*/
*/
#define PUBLICATION 0
#define PUBLICATION 0
#define WITHDRAWAL 1
#define WITHDRAWAL 1
/*
/*
* Segmentation message types
* Segmentation message types
*/
*/
#define FIRST_FRAGMENT 0
#define FIRST_FRAGMENT 0
#define FRAGMENT 1
#define FRAGMENT 1
#define LAST_FRAGMENT 2
#define LAST_FRAGMENT 2
...
@@ -479,7 +466,6 @@ static inline struct tipc_msg *msg_get_wrapped(struct tipc_msg *m)
...
@@ -479,7 +466,6 @@ static inline struct tipc_msg *msg_get_wrapped(struct tipc_msg *m)
/*
/*
* Link management protocol message types
* Link management protocol message types
*/
*/
#define STATE_MSG 0
#define STATE_MSG 0
#define RESET_MSG 1
#define RESET_MSG 1
#define ACTIVATE_MSG 2
#define ACTIVATE_MSG 2
...
@@ -493,7 +479,6 @@ static inline struct tipc_msg *msg_get_wrapped(struct tipc_msg *m)
...
@@ -493,7 +479,6 @@ static inline struct tipc_msg *msg_get_wrapped(struct tipc_msg *m)
/*
/*
* Config protocol message types
* Config protocol message types
*/
*/
#define DSC_REQ_MSG 0
#define DSC_REQ_MSG 0
#define DSC_RESP_MSG 1
#define DSC_RESP_MSG 1
...
@@ -501,7 +486,6 @@ static inline struct tipc_msg *msg_get_wrapped(struct tipc_msg *m)
...
@@ -501,7 +486,6 @@ static inline struct tipc_msg *msg_get_wrapped(struct tipc_msg *m)
/*
/*
* Word 1
* Word 1
*/
*/
static
inline
u32
msg_seq_gap
(
struct
tipc_msg
*
m
)
static
inline
u32
msg_seq_gap
(
struct
tipc_msg
*
m
)
{
{
return
msg_bits
(
m
,
1
,
16
,
0x1fff
);
return
msg_bits
(
m
,
1
,
16
,
0x1fff
);
...
@@ -526,7 +510,6 @@ static inline void msg_set_node_sig(struct tipc_msg *m, u32 n)
...
@@ -526,7 +510,6 @@ static inline void msg_set_node_sig(struct tipc_msg *m, u32 n)
/*
/*
* Word 2
* Word 2
*/
*/
static
inline
u32
msg_dest_domain
(
struct
tipc_msg
*
m
)
static
inline
u32
msg_dest_domain
(
struct
tipc_msg
*
m
)
{
{
return
msg_word
(
m
,
2
);
return
msg_word
(
m
,
2
);
...
@@ -561,7 +544,6 @@ static inline void msg_set_bcgap_to(struct tipc_msg *m, u32 n)
...
@@ -561,7 +544,6 @@ static inline void msg_set_bcgap_to(struct tipc_msg *m, u32 n)
/*
/*
* Word 4
* Word 4
*/
*/
static
inline
u32
msg_last_bcast
(
struct
tipc_msg
*
m
)
static
inline
u32
msg_last_bcast
(
struct
tipc_msg
*
m
)
{
{
return
msg_bits
(
m
,
4
,
16
,
0xffff
);
return
msg_bits
(
m
,
4
,
16
,
0xffff
);
...
@@ -628,7 +610,6 @@ static inline void msg_set_link_selector(struct tipc_msg *m, u32 n)
...
@@ -628,7 +610,6 @@ static inline void msg_set_link_selector(struct tipc_msg *m, u32 n)
/*
/*
* Word 5
* Word 5
*/
*/
static
inline
u32
msg_session
(
struct
tipc_msg
*
m
)
static
inline
u32
msg_session
(
struct
tipc_msg
*
m
)
{
{
return
msg_bits
(
m
,
5
,
16
,
0xffff
);
return
msg_bits
(
m
,
5
,
16
,
0xffff
);
...
@@ -697,7 +678,6 @@ static inline char *msg_media_addr(struct tipc_msg *m)
...
@@ -697,7 +678,6 @@ static inline char *msg_media_addr(struct tipc_msg *m)
/*
/*
* Word 9
* Word 9
*/
*/
static
inline
u32
msg_msgcnt
(
struct
tipc_msg
*
m
)
static
inline
u32
msg_msgcnt
(
struct
tipc_msg
*
m
)
{
{
return
msg_bits
(
m
,
9
,
16
,
0xffff
);
return
msg_bits
(
m
,
9
,
16
,
0xffff
);
...
@@ -744,5 +724,4 @@ void tipc_msg_init(struct tipc_msg *m, u32 user, u32 type,
...
@@ -744,5 +724,4 @@ void tipc_msg_init(struct tipc_msg *m, u32 user, u32 type,
int
tipc_msg_build
(
struct
tipc_msg
*
hdr
,
struct
iovec
const
*
msg_sect
,
int
tipc_msg_build
(
struct
tipc_msg
*
hdr
,
struct
iovec
const
*
msg_sect
,
u32
num_sect
,
unsigned
int
total_len
,
u32
num_sect
,
unsigned
int
total_len
,
int
max_size
,
int
usrmem
,
struct
sk_buff
**
buf
);
int
max_size
,
int
usrmem
,
struct
sk_buff
**
buf
);
#endif
#endif
net/tipc/name_distr.c
View file @
b6d151bb
...
@@ -58,7 +58,6 @@
...
@@ -58,7 +58,6 @@
* 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.
*/
*/
struct
distr_item
{
struct
distr_item
{
__be32
type
;
__be32
type
;
__be32
lower
;
__be32
lower
;
...
@@ -103,7 +102,6 @@ static struct publ_list *publ_lists[] = {
...
@@ -103,7 +102,6 @@ static struct publ_list *publ_lists[] = {
/**
/**
* publ_to_item - add publication info to a publication message
* publ_to_item - add publication info to a publication message
*/
*/
static
void
publ_to_item
(
struct
distr_item
*
i
,
struct
publication
*
p
)
static
void
publ_to_item
(
struct
distr_item
*
i
,
struct
publication
*
p
)
{
{
i
->
type
=
htonl
(
p
->
type
);
i
->
type
=
htonl
(
p
->
type
);
...
@@ -116,7 +114,6 @@ static void publ_to_item(struct distr_item *i, struct publication *p)
...
@@ -116,7 +114,6 @@ static void publ_to_item(struct distr_item *i, struct publication *p)
/**
/**
* named_prepare_buf - allocate & initialize a publication message
* named_prepare_buf - allocate & initialize a publication message
*/
*/
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
=
tipc_buf_acquire
(
INT_H_SIZE
+
size
);
struct
sk_buff
*
buf
=
tipc_buf_acquire
(
INT_H_SIZE
+
size
);
...
@@ -151,7 +148,6 @@ static void named_cluster_distribute(struct sk_buff *buf)
...
@@ -151,7 +148,6 @@ static void named_cluster_distribute(struct sk_buff *buf)
/**
/**
* tipc_named_publish - tell other nodes about a new publication by this node
* tipc_named_publish - tell other nodes about a new publication by this node
*/
*/
void
tipc_named_publish
(
struct
publication
*
publ
)
void
tipc_named_publish
(
struct
publication
*
publ
)
{
{
struct
sk_buff
*
buf
;
struct
sk_buff
*
buf
;
...
@@ -177,7 +173,6 @@ void tipc_named_publish(struct publication *publ)
...
@@ -177,7 +173,6 @@ void tipc_named_publish(struct publication *publ)
/**
/**
* tipc_named_withdraw - tell other nodes about a withdrawn publication by this node
* tipc_named_withdraw - tell other nodes about a withdrawn publication by this node
*/
*/
void
tipc_named_withdraw
(
struct
publication
*
publ
)
void
tipc_named_withdraw
(
struct
publication
*
publ
)
{
{
struct
sk_buff
*
buf
;
struct
sk_buff
*
buf
;
...
@@ -236,7 +231,6 @@ static void named_distribute(struct list_head *message_list, u32 node,
...
@@ -236,7 +231,6 @@ static void named_distribute(struct list_head *message_list, u32 node,
/**
/**
* tipc_named_node_up - tell specified node about all publications by this node
* tipc_named_node_up - tell specified node about all publications by this node
*/
*/
void
tipc_named_node_up
(
unsigned
long
nodearg
)
void
tipc_named_node_up
(
unsigned
long
nodearg
)
{
{
struct
tipc_node
*
n_ptr
;
struct
tipc_node
*
n_ptr
;
...
@@ -246,7 +240,6 @@ void tipc_named_node_up(unsigned long nodearg)
...
@@ -246,7 +240,6 @@ void tipc_named_node_up(unsigned long nodearg)
u32
max_item_buf
=
0
;
u32
max_item_buf
=
0
;
/* compute maximum amount of publication data to send per message */
/* compute maximum amount of publication data to send per message */
read_lock_bh
(
&
tipc_net_lock
);
read_lock_bh
(
&
tipc_net_lock
);
n_ptr
=
tipc_node_find
(
node
);
n_ptr
=
tipc_node_find
(
node
);
if
(
n_ptr
)
{
if
(
n_ptr
)
{
...
@@ -262,7 +255,6 @@ void tipc_named_node_up(unsigned long nodearg)
...
@@ -262,7 +255,6 @@ void tipc_named_node_up(unsigned long nodearg)
return
;
return
;
/* create list of publication messages, then send them as a unit */
/* create list of publication messages, then send them as a unit */
INIT_LIST_HEAD
(
&
message_list
);
INIT_LIST_HEAD
(
&
message_list
);
read_lock_bh
(
&
tipc_nametbl_lock
);
read_lock_bh
(
&
tipc_nametbl_lock
);
...
@@ -279,7 +271,6 @@ void tipc_named_node_up(unsigned long nodearg)
...
@@ -279,7 +271,6 @@ void tipc_named_node_up(unsigned long nodearg)
* 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.
*/
*/
static
void
named_purge_publ
(
struct
publication
*
publ
)
static
void
named_purge_publ
(
struct
publication
*
publ
)
{
{
struct
publication
*
p
;
struct
publication
*
p
;
...
@@ -303,7 +294,6 @@ static void named_purge_publ(struct publication *publ)
...
@@ -303,7 +294,6 @@ static void named_purge_publ(struct publication *publ)
/**
/**
* tipc_named_recv - process name table update message sent by another node
* tipc_named_recv - process name table update message sent by another node
*/
*/
void
tipc_named_recv
(
struct
sk_buff
*
buf
)
void
tipc_named_recv
(
struct
sk_buff
*
buf
)
{
{
struct
publication
*
publ
;
struct
publication
*
publ
;
...
@@ -361,7 +351,6 @@ void tipc_named_recv(struct sk_buff *buf)
...
@@ -361,7 +351,6 @@ void tipc_named_recv(struct sk_buff *buf)
* All name table entries published by this node are updated to reflect
* All name table entries published by this node are updated to reflect
* the node's new network address.
* the node's new network address.
*/
*/
void
tipc_named_reinit
(
void
)
void
tipc_named_reinit
(
void
)
{
{
struct
publication
*
publ
;
struct
publication
*
publ
;
...
...
net/tipc/name_table.c
View file @
b6d151bb
This diff is collapsed.
Click to expand it.
net/tipc/name_table.h
View file @
b6d151bb
...
@@ -45,10 +45,8 @@ struct tipc_port_list;
...
@@ -45,10 +45,8 @@ struct tipc_port_list;
/*
/*
* TIPC name types reserved for internal TIPC use (both current and planned)
* TIPC name types reserved for internal TIPC use (both current and planned)
*/
*/
#define TIPC_ZM_SRV 3
/* zone master service name type */
#define TIPC_ZM_SRV 3
/* zone master service name type */
/**
/**
* struct publication - info about a published (name or) name sequence
* struct publication - info about a published (name or) name sequence
* @type: name sequence type
* @type: name sequence type
...
@@ -67,7 +65,6 @@ struct tipc_port_list;
...
@@ -67,7 +65,6 @@ struct tipc_port_list;
*
*
* 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.
*/
*/
struct
publication
{
struct
publication
{
u32
type
;
u32
type
;
u32
lower
;
u32
lower
;
...
...
net/tipc/net.c
View file @
b6d151bb
...
@@ -175,9 +175,6 @@ int tipc_net_start(u32 addr)
...
@@ -175,9 +175,6 @@ int tipc_net_start(u32 addr)
{
{
char
addr_string
[
16
];
char
addr_string
[
16
];
tipc_subscr_stop
();
tipc_cfg_stop
();
write_lock_bh
(
&
tipc_net_lock
);
write_lock_bh
(
&
tipc_net_lock
);
tipc_own_addr
=
addr
;
tipc_own_addr
=
addr
;
tipc_named_reinit
();
tipc_named_reinit
();
...
@@ -185,8 +182,7 @@ int tipc_net_start(u32 addr)
...
@@ -185,8 +182,7 @@ int tipc_net_start(u32 addr)
tipc_bclink_init
();
tipc_bclink_init
();
write_unlock_bh
(
&
tipc_net_lock
);
write_unlock_bh
(
&
tipc_net_lock
);
tipc_k_signal
((
Handler
)
tipc_subscr_start
,
0
);
tipc_cfg_reinit
();
tipc_k_signal
((
Handler
)
tipc_cfg_init
,
0
);
info
(
"Started in network mode
\n
"
);
info
(
"Started in network mode
\n
"
);
info
(
"Own node address %s, network identity %u
\n
"
,
info
(
"Own node address %s, network identity %u
\n
"
,
...
...
net/tipc/node.c
View file @
b6d151bb
...
@@ -66,7 +66,6 @@ static unsigned int tipc_hashfn(u32 addr)
...
@@ -66,7 +66,6 @@ static unsigned int tipc_hashfn(u32 addr)
/*
/*
* tipc_node_find - locate specified node object, if it exists
* tipc_node_find - locate specified node object, if it exists
*/
*/
struct
tipc_node
*
tipc_node_find
(
u32
addr
)
struct
tipc_node
*
tipc_node_find
(
u32
addr
)
{
{
struct
tipc_node
*
node
;
struct
tipc_node
*
node
;
...
@@ -91,7 +90,6 @@ struct tipc_node *tipc_node_find(u32 addr)
...
@@ -91,7 +90,6 @@ struct tipc_node *tipc_node_find(u32 addr)
* time. (It would be preferable to switch to holding net_lock in write mode,
* time. (It would be preferable to switch to holding net_lock in write mode,
* but this is a non-trivial change.)
* but this is a non-trivial change.)
*/
*/
struct
tipc_node
*
tipc_node_create
(
u32
addr
)
struct
tipc_node
*
tipc_node_create
(
u32
addr
)
{
{
struct
tipc_node
*
n_ptr
,
*
temp_node
;
struct
tipc_node
*
n_ptr
,
*
temp_node
;
...
@@ -142,13 +140,11 @@ void tipc_node_delete(struct tipc_node *n_ptr)
...
@@ -142,13 +140,11 @@ void tipc_node_delete(struct tipc_node *n_ptr)
tipc_num_nodes
--
;
tipc_num_nodes
--
;
}
}
/**
/**
* tipc_node_link_up - handle addition of link
* tipc_node_link_up - handle addition of link
*
*
* Link becomes active (alone or shared) or standby, depending on its priority.
* Link becomes active (alone or shared) or standby, depending on its priority.
*/
*/
void
tipc_node_link_up
(
struct
tipc_node
*
n_ptr
,
struct
tipc_link
*
l_ptr
)
void
tipc_node_link_up
(
struct
tipc_node
*
n_ptr
,
struct
tipc_link
*
l_ptr
)
{
{
struct
tipc_link
**
active
=
&
n_ptr
->
active_links
[
0
];
struct
tipc_link
**
active
=
&
n_ptr
->
active_links
[
0
];
...
@@ -181,7 +177,6 @@ void tipc_node_link_up(struct tipc_node *n_ptr, struct tipc_link *l_ptr)
...
@@ -181,7 +177,6 @@ void tipc_node_link_up(struct tipc_node *n_ptr, struct tipc_link *l_ptr)
/**
/**
* node_select_active_links - select active link
* node_select_active_links - select active link
*/
*/
static
void
node_select_active_links
(
struct
tipc_node
*
n_ptr
)
static
void
node_select_active_links
(
struct
tipc_node
*
n_ptr
)
{
{
struct
tipc_link
**
active
=
&
n_ptr
->
active_links
[
0
];
struct
tipc_link
**
active
=
&
n_ptr
->
active_links
[
0
];
...
@@ -209,7 +204,6 @@ static void node_select_active_links(struct tipc_node *n_ptr)
...
@@ -209,7 +204,6 @@ static void node_select_active_links(struct tipc_node *n_ptr)
/**
/**
* tipc_node_link_down - handle loss of link
* tipc_node_link_down - handle loss of link
*/
*/
void
tipc_node_link_down
(
struct
tipc_node
*
n_ptr
,
struct
tipc_link
*
l_ptr
)
void
tipc_node_link_down
(
struct
tipc_node
*
n_ptr
,
struct
tipc_link
*
l_ptr
)
{
{
struct
tipc_link
**
active
;
struct
tipc_link
**
active
;
...
@@ -300,7 +294,6 @@ static void node_lost_contact(struct tipc_node *n_ptr)
...
@@ -300,7 +294,6 @@ static void node_lost_contact(struct tipc_node *n_ptr)
tipc_addr_string_fill
(
addr_string
,
n_ptr
->
addr
));
tipc_addr_string_fill
(
addr_string
,
n_ptr
->
addr
));
/* Flush broadcast link info associated with lost node */
/* Flush broadcast link info associated with lost node */
if
(
n_ptr
->
bclink
.
supported
)
{
if
(
n_ptr
->
bclink
.
supported
)
{
while
(
n_ptr
->
bclink
.
deferred_head
)
{
while
(
n_ptr
->
bclink
.
deferred_head
)
{
struct
sk_buff
*
buf
=
n_ptr
->
bclink
.
deferred_head
;
struct
sk_buff
*
buf
=
n_ptr
->
bclink
.
deferred_head
;
...
@@ -334,7 +327,6 @@ static void node_lost_contact(struct tipc_node *n_ptr)
...
@@ -334,7 +327,6 @@ static void node_lost_contact(struct tipc_node *n_ptr)
tipc_nodesub_notify
(
n_ptr
);
tipc_nodesub_notify
(
n_ptr
);
/* Prevent re-contact with node until cleanup is done */
/* Prevent re-contact with node until cleanup is done */
n_ptr
->
block_setup
=
WAIT_PEER_DOWN
|
WAIT_NAMES_GONE
;
n_ptr
->
block_setup
=
WAIT_PEER_DOWN
|
WAIT_NAMES_GONE
;
tipc_k_signal
((
Handler
)
node_name_purge_complete
,
n_ptr
->
addr
);
tipc_k_signal
((
Handler
)
node_name_purge_complete
,
n_ptr
->
addr
);
}
}
...
@@ -362,7 +354,6 @@ struct sk_buff *tipc_node_get_nodes(const void *req_tlv_area, int req_tlv_space)
...
@@ -362,7 +354,6 @@ struct sk_buff *tipc_node_get_nodes(const void *req_tlv_area, int req_tlv_space)
}
}
/* For now, get space for all other nodes */
/* For now, get space for all other nodes */
payload_size
=
TLV_SPACE
(
sizeof
(
node_info
))
*
tipc_num_nodes
;
payload_size
=
TLV_SPACE
(
sizeof
(
node_info
))
*
tipc_num_nodes
;
if
(
payload_size
>
32768u
)
{
if
(
payload_size
>
32768u
)
{
read_unlock_bh
(
&
tipc_net_lock
);
read_unlock_bh
(
&
tipc_net_lock
);
...
@@ -376,7 +367,6 @@ struct sk_buff *tipc_node_get_nodes(const void *req_tlv_area, int req_tlv_space)
...
@@ -376,7 +367,6 @@ struct sk_buff *tipc_node_get_nodes(const void *req_tlv_area, int req_tlv_space)
}
}
/* Add TLVs for all nodes in scope */
/* Add TLVs for all nodes in scope */
list_for_each_entry
(
n_ptr
,
&
tipc_node_list
,
list
)
{
list_for_each_entry
(
n_ptr
,
&
tipc_node_list
,
list
)
{
if
(
!
tipc_in_scope
(
domain
,
n_ptr
->
addr
))
if
(
!
tipc_in_scope
(
domain
,
n_ptr
->
addr
))
continue
;
continue
;
...
@@ -412,7 +402,6 @@ struct sk_buff *tipc_node_get_links(const void *req_tlv_area, int req_tlv_space)
...
@@ -412,7 +402,6 @@ struct sk_buff *tipc_node_get_links(const void *req_tlv_area, int req_tlv_space)
read_lock_bh
(
&
tipc_net_lock
);
read_lock_bh
(
&
tipc_net_lock
);
/* Get space for all unicast links + broadcast link */
/* Get space for all unicast links + broadcast link */
payload_size
=
TLV_SPACE
(
sizeof
(
link_info
))
*
payload_size
=
TLV_SPACE
(
sizeof
(
link_info
))
*
(
atomic_read
(
&
tipc_num_links
)
+
1
);
(
atomic_read
(
&
tipc_num_links
)
+
1
);
if
(
payload_size
>
32768u
)
{
if
(
payload_size
>
32768u
)
{
...
@@ -427,14 +416,12 @@ struct sk_buff *tipc_node_get_links(const void *req_tlv_area, int req_tlv_space)
...
@@ -427,14 +416,12 @@ struct sk_buff *tipc_node_get_links(const void *req_tlv_area, int req_tlv_space)
}
}
/* Add TLV for broadcast link */
/* Add TLV for broadcast link */
link_info
.
dest
=
htonl
(
tipc_cluster_mask
(
tipc_own_addr
));
link_info
.
dest
=
htonl
(
tipc_cluster_mask
(
tipc_own_addr
));
link_info
.
up
=
htonl
(
1
);
link_info
.
up
=
htonl
(
1
);
strlcpy
(
link_info
.
str
,
tipc_bclink_name
,
TIPC_MAX_LINK_NAME
);
strlcpy
(
link_info
.
str
,
tipc_bclink_name
,
TIPC_MAX_LINK_NAME
);
tipc_cfg_append_tlv
(
buf
,
TIPC_TLV_LINK_INFO
,
&
link_info
,
sizeof
(
link_info
));
tipc_cfg_append_tlv
(
buf
,
TIPC_TLV_LINK_INFO
,
&
link_info
,
sizeof
(
link_info
));
/* Add TLVs for any other links in scope */
/* Add TLVs for any other links in scope */
list_for_each_entry
(
n_ptr
,
&
tipc_node_list
,
list
)
{
list_for_each_entry
(
n_ptr
,
&
tipc_node_list
,
list
)
{
u32
i
;
u32
i
;
...
...
net/tipc/node.h
View file @
b6d151bb
...
@@ -48,7 +48,6 @@
...
@@ -48,7 +48,6 @@
#define INVALID_NODE_SIG 0x10000
#define INVALID_NODE_SIG 0x10000
/* Flags used to block (re)establishment of contact with a neighboring node */
/* Flags used to block (re)establishment of contact with a neighboring node */
#define WAIT_PEER_DOWN 0x0001
/* wait to see that peer's links are down */
#define WAIT_PEER_DOWN 0x0001
/* wait to see that peer's links are down */
#define WAIT_NAMES_GONE 0x0002
/* wait for peer's publications to be purged */
#define WAIT_NAMES_GONE 0x0002
/* wait for peer's publications to be purged */
#define WAIT_NODE_DOWN 0x0004
/* wait until peer node is declared down */
#define WAIT_NODE_DOWN 0x0004
/* wait until peer node is declared down */
...
@@ -79,7 +78,6 @@
...
@@ -79,7 +78,6 @@
* @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
tipc_node
{
struct
tipc_node
{
u32
addr
;
u32
addr
;
spinlock_t
lock
;
spinlock_t
lock
;
...
...
net/tipc/node_subscr.c
View file @
b6d151bb
...
@@ -41,7 +41,6 @@
...
@@ -41,7 +41,6 @@
/**
/**
* 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
tipc_node_subscr
*
node_sub
,
u32
addr
,
void
tipc_nodesub_subscribe
(
struct
tipc_node_subscr
*
node_sub
,
u32
addr
,
void
*
usr_handle
,
net_ev_handler
handle_down
)
void
*
usr_handle
,
net_ev_handler
handle_down
)
{
{
...
@@ -66,7 +65,6 @@ void tipc_nodesub_subscribe(struct tipc_node_subscr *node_sub, u32 addr,
...
@@ -66,7 +65,6 @@ void tipc_nodesub_subscribe(struct tipc_node_subscr *node_sub, u32 addr,
/**
/**
* tipc_nodesub_unsubscribe - cancel "node down" subscription (if any)
* tipc_nodesub_unsubscribe - cancel "node down" subscription (if any)
*/
*/
void
tipc_nodesub_unsubscribe
(
struct
tipc_node_subscr
*
node_sub
)
void
tipc_nodesub_unsubscribe
(
struct
tipc_node_subscr
*
node_sub
)
{
{
if
(
!
node_sub
->
node
)
if
(
!
node_sub
->
node
)
...
@@ -82,7 +80,6 @@ void tipc_nodesub_unsubscribe(struct tipc_node_subscr *node_sub)
...
@@ -82,7 +80,6 @@ void tipc_nodesub_unsubscribe(struct tipc_node_subscr *node_sub)
*
*
* Note: node is locked by caller
* Note: node is locked by caller
*/
*/
void
tipc_nodesub_notify
(
struct
tipc_node
*
node
)
void
tipc_nodesub_notify
(
struct
tipc_node
*
node
)
{
{
struct
tipc_node_subscr
*
ns
;
struct
tipc_node_subscr
*
ns
;
...
...
net/tipc/node_subscr.h
View file @
b6d151bb
...
@@ -48,7 +48,6 @@ typedef void (*net_ev_handler) (void *usr_handle);
...
@@ -48,7 +48,6 @@ typedef void (*net_ev_handler) (void *usr_handle);
* @usr_handle: argument to pass to routine when node fails
* @usr_handle: argument to pass to routine when node fails
* @nodesub_list: adjacent entries in list of subscriptions for the node
* @nodesub_list: adjacent entries in list of subscriptions for the node
*/
*/
struct
tipc_node_subscr
{
struct
tipc_node_subscr
{
struct
tipc_node
*
node
;
struct
tipc_node
*
node
;
net_ev_handler
handle_node_down
;
net_ev_handler
handle_node_down
;
...
...
net/tipc/port.c
View file @
b6d151bb
...
@@ -75,7 +75,6 @@ static u32 port_peerport(struct tipc_port *p_ptr)
...
@@ -75,7 +75,6 @@ static u32 port_peerport(struct tipc_port *p_ptr)
* Handles cases where the node's network address has changed from
* Handles cases where the node's network address has changed from
* the default of <0.0.0> to its configured setting.
* the default of <0.0.0> to its configured setting.
*/
*/
int
tipc_port_peer_msg
(
struct
tipc_port
*
p_ptr
,
struct
tipc_msg
*
msg
)
int
tipc_port_peer_msg
(
struct
tipc_port
*
p_ptr
,
struct
tipc_msg
*
msg
)
{
{
u32
peernode
;
u32
peernode
;
...
@@ -94,7 +93,6 @@ int tipc_port_peer_msg(struct tipc_port *p_ptr, struct tipc_msg *msg)
...
@@ -94,7 +93,6 @@ int tipc_port_peer_msg(struct tipc_port *p_ptr, struct tipc_msg *msg)
/**
/**
* tipc_multicast - send a multicast message to local and remote destinations
* tipc_multicast - send a multicast message to local and remote destinations
*/
*/
int
tipc_multicast
(
u32
ref
,
struct
tipc_name_seq
const
*
seq
,
int
tipc_multicast
(
u32
ref
,
struct
tipc_name_seq
const
*
seq
,
u32
num_sect
,
struct
iovec
const
*
msg_sect
,
u32
num_sect
,
struct
iovec
const
*
msg_sect
,
unsigned
int
total_len
)
unsigned
int
total_len
)
...
@@ -111,7 +109,6 @@ int tipc_multicast(u32 ref, struct tipc_name_seq const *seq,
...
@@ -111,7 +109,6 @@ int tipc_multicast(u32 ref, struct tipc_name_seq const *seq,
return
-
EINVAL
;
return
-
EINVAL
;
/* Create multicast message */
/* Create multicast message */
hdr
=
&
oport
->
phdr
;
hdr
=
&
oport
->
phdr
;
msg_set_type
(
hdr
,
TIPC_MCAST_MSG
);
msg_set_type
(
hdr
,
TIPC_MCAST_MSG
);
msg_set_lookup_scope
(
hdr
,
TIPC_CLUSTER_SCOPE
);
msg_set_lookup_scope
(
hdr
,
TIPC_CLUSTER_SCOPE
);
...
@@ -127,12 +124,10 @@ int tipc_multicast(u32 ref, struct tipc_name_seq const *seq,
...
@@ -127,12 +124,10 @@ int tipc_multicast(u32 ref, struct tipc_name_seq const *seq,
return
res
;
return
res
;
/* Figure out where to send multicast message */
/* Figure out where to send multicast message */
ext_targets
=
tipc_nametbl_mc_translate
(
seq
->
type
,
seq
->
lower
,
seq
->
upper
,
ext_targets
=
tipc_nametbl_mc_translate
(
seq
->
type
,
seq
->
lower
,
seq
->
upper
,
TIPC_NODE_SCOPE
,
&
dports
);
TIPC_NODE_SCOPE
,
&
dports
);
/* Send message to destinations (duplicate it only if necessary) */
/* Send message to destinations (duplicate it only if necessary) */
if
(
ext_targets
)
{
if
(
ext_targets
)
{
if
(
dports
.
count
!=
0
)
{
if
(
dports
.
count
!=
0
)
{
ibuf
=
skb_copy
(
buf
,
GFP_ATOMIC
);
ibuf
=
skb_copy
(
buf
,
GFP_ATOMIC
);
...
@@ -163,7 +158,6 @@ int tipc_multicast(u32 ref, struct tipc_name_seq const *seq,
...
@@ -163,7 +158,6 @@ int tipc_multicast(u32 ref, struct tipc_name_seq const *seq,
*
*
* If there is no port list, perform a lookup to create one
* If there is no port list, perform a lookup to create one
*/
*/
void
tipc_port_recv_mcast
(
struct
sk_buff
*
buf
,
struct
tipc_port_list
*
dp
)
void
tipc_port_recv_mcast
(
struct
sk_buff
*
buf
,
struct
tipc_port_list
*
dp
)
{
{
struct
tipc_msg
*
msg
;
struct
tipc_msg
*
msg
;
...
@@ -174,7 +168,6 @@ void tipc_port_recv_mcast(struct sk_buff *buf, struct tipc_port_list *dp)
...
@@ -174,7 +168,6 @@ void tipc_port_recv_mcast(struct sk_buff *buf, struct tipc_port_list *dp)
msg
=
buf_msg
(
buf
);
msg
=
buf_msg
(
buf
);
/* Create destination port list, if one wasn't supplied */
/* Create destination port list, if one wasn't supplied */
if
(
dp
==
NULL
)
{
if
(
dp
==
NULL
)
{
tipc_nametbl_mc_translate
(
msg_nametype
(
msg
),
tipc_nametbl_mc_translate
(
msg_nametype
(
msg
),
msg_namelower
(
msg
),
msg_namelower
(
msg
),
...
@@ -185,7 +178,6 @@ void tipc_port_recv_mcast(struct sk_buff *buf, struct tipc_port_list *dp)
...
@@ -185,7 +178,6 @@ void tipc_port_recv_mcast(struct sk_buff *buf, struct tipc_port_list *dp)
}
}
/* Deliver a copy of message to each destination port */
/* Deliver a copy of message to each destination port */
if
(
dp
->
count
!=
0
)
{
if
(
dp
->
count
!=
0
)
{
msg_set_destnode
(
msg
,
tipc_own_addr
);
msg_set_destnode
(
msg
,
tipc_own_addr
);
if
(
dp
->
count
==
1
)
{
if
(
dp
->
count
==
1
)
{
...
@@ -218,7 +210,6 @@ void tipc_port_recv_mcast(struct sk_buff *buf, struct tipc_port_list *dp)
...
@@ -218,7 +210,6 @@ void tipc_port_recv_mcast(struct sk_buff *buf, struct tipc_port_list *dp)
*
*
* Returns pointer to (locked) TIPC port, or NULL if unable to create it
* Returns pointer to (locked) TIPC port, or NULL if unable to create it
*/
*/
struct
tipc_port
*
tipc_createport_raw
(
void
*
usr_handle
,
struct
tipc_port
*
tipc_createport_raw
(
void
*
usr_handle
,
u32
(
*
dispatcher
)(
struct
tipc_port
*
,
struct
sk_buff
*
),
u32
(
*
dispatcher
)(
struct
tipc_port
*
,
struct
sk_buff
*
),
void
(
*
wakeup
)(
struct
tipc_port
*
),
void
(
*
wakeup
)(
struct
tipc_port
*
),
...
@@ -257,7 +248,6 @@ struct tipc_port *tipc_createport_raw(void *usr_handle,
...
@@ -257,7 +248,6 @@ struct tipc_port *tipc_createport_raw(void *usr_handle,
* to ensure a change to node's own network address doesn't result
* to ensure a change to node's own network address doesn't result
* in template containing out-dated network address information
* in template containing out-dated network address information
*/
*/
spin_lock_bh
(
&
tipc_port_list_lock
);
spin_lock_bh
(
&
tipc_port_list_lock
);
msg
=
&
p_ptr
->
phdr
;
msg
=
&
p_ptr
->
phdr
;
tipc_msg_init
(
msg
,
importance
,
TIPC_NAMED_MSG
,
NAMED_H_SIZE
,
0
);
tipc_msg_init
(
msg
,
importance
,
TIPC_NAMED_MSG
,
NAMED_H_SIZE
,
0
);
...
@@ -390,7 +380,6 @@ int tipc_reject_msg(struct sk_buff *buf, u32 err)
...
@@ -390,7 +380,6 @@ int tipc_reject_msg(struct sk_buff *buf, u32 err)
u32
rmsg_sz
;
u32
rmsg_sz
;
/* discard rejected message if it shouldn't be returned to sender */
/* discard rejected message if it shouldn't be returned to sender */
if
(
WARN
(
!
msg_isdata
(
msg
),
if
(
WARN
(
!
msg_isdata
(
msg
),
"attempt to reject message with user=%u"
,
msg_user
(
msg
)))
{
"attempt to reject message with user=%u"
,
msg_user
(
msg
)))
{
dump_stack
();
dump_stack
();
...
@@ -403,7 +392,6 @@ int tipc_reject_msg(struct sk_buff *buf, u32 err)
...
@@ -403,7 +392,6 @@ int tipc_reject_msg(struct sk_buff *buf, u32 err)
* construct returned message by copying rejected message header and
* construct returned message by copying rejected message header and
* data (or subset), then updating header fields that need adjusting
* data (or subset), then updating header fields that need adjusting
*/
*/
hdr_sz
=
msg_hdr_sz
(
msg
);
hdr_sz
=
msg_hdr_sz
(
msg
);
rmsg_sz
=
hdr_sz
+
min_t
(
u32
,
data_sz
,
MAX_REJECT_SIZE
);
rmsg_sz
=
hdr_sz
+
min_t
(
u32
,
data_sz
,
MAX_REJECT_SIZE
);
...
@@ -442,7 +430,6 @@ int tipc_reject_msg(struct sk_buff *buf, u32 err)
...
@@ -442,7 +430,6 @@ int tipc_reject_msg(struct sk_buff *buf, u32 err)
}
}
/* send returned message & dispose of rejected message */
/* send returned message & dispose of rejected message */
src_node
=
msg_prevnode
(
msg
);
src_node
=
msg_prevnode
(
msg
);
if
(
in_own_node
(
src_node
))
if
(
in_own_node
(
src_node
))
tipc_port_recv_msg
(
rbuf
);
tipc_port_recv_msg
(
rbuf
);
...
@@ -552,7 +539,6 @@ void tipc_port_recv_proto_msg(struct sk_buff *buf)
...
@@ -552,7 +539,6 @@ void tipc_port_recv_proto_msg(struct sk_buff *buf)
int
wakeable
;
int
wakeable
;
/* Validate connection */
/* Validate connection */
p_ptr
=
tipc_port_lock
(
destport
);
p_ptr
=
tipc_port_lock
(
destport
);
if
(
!
p_ptr
||
!
p_ptr
->
connected
||
!
tipc_port_peer_msg
(
p_ptr
,
msg
))
{
if
(
!
p_ptr
||
!
p_ptr
->
connected
||
!
tipc_port_peer_msg
(
p_ptr
,
msg
))
{
r_buf
=
tipc_buf_acquire
(
BASIC_H_SIZE
);
r_buf
=
tipc_buf_acquire
(
BASIC_H_SIZE
);
...
@@ -570,7 +556,6 @@ void tipc_port_recv_proto_msg(struct sk_buff *buf)
...
@@ -570,7 +556,6 @@ void tipc_port_recv_proto_msg(struct sk_buff *buf)
}
}
/* Process protocol message sent by peer */
/* Process protocol message sent by peer */
switch
(
msg_type
(
msg
))
{
switch
(
msg_type
(
msg
))
{
case
CONN_ACK
:
case
CONN_ACK
:
wakeable
=
tipc_port_congested
(
p_ptr
)
&&
p_ptr
->
congested
&&
wakeable
=
tipc_port_congested
(
p_ptr
)
&&
p_ptr
->
congested
&&
...
@@ -682,7 +667,6 @@ void tipc_port_reinit(void)
...
@@ -682,7 +667,6 @@ void tipc_port_reinit(void)
* port_dispatcher_sigh(): Signal handler for messages destinated
* port_dispatcher_sigh(): Signal handler for messages destinated
* to the tipc_port interface.
* to the tipc_port interface.
*/
*/
static
void
port_dispatcher_sigh
(
void
*
dummy
)
static
void
port_dispatcher_sigh
(
void
*
dummy
)
{
{
struct
sk_buff
*
buf
;
struct
sk_buff
*
buf
;
...
@@ -843,7 +827,6 @@ static void port_dispatcher_sigh(void *dummy)
...
@@ -843,7 +827,6 @@ static void port_dispatcher_sigh(void *dummy)
* port_dispatcher(): Dispatcher for messages destinated
* port_dispatcher(): Dispatcher for messages destinated
* to the tipc_port interface. Called with port locked.
* to the tipc_port interface. Called with port locked.
*/
*/
static
u32
port_dispatcher
(
struct
tipc_port
*
dummy
,
struct
sk_buff
*
buf
)
static
u32
port_dispatcher
(
struct
tipc_port
*
dummy
,
struct
sk_buff
*
buf
)
{
{
buf
->
next
=
NULL
;
buf
->
next
=
NULL
;
...
@@ -860,10 +843,8 @@ static u32 port_dispatcher(struct tipc_port *dummy, struct sk_buff *buf)
...
@@ -860,10 +843,8 @@ static u32 port_dispatcher(struct tipc_port *dummy, struct sk_buff *buf)
}
}
/*
/*
* Wake up port after congestion: Called with port locked,
* Wake up port after congestion: Called with port locked
*
*/
*/
static
void
port_wakeup_sh
(
unsigned
long
ref
)
static
void
port_wakeup_sh
(
unsigned
long
ref
)
{
{
struct
tipc_port
*
p_ptr
;
struct
tipc_port
*
p_ptr
;
...
@@ -909,7 +890,6 @@ void tipc_acknowledge(u32 ref, u32 ack)
...
@@ -909,7 +890,6 @@ void tipc_acknowledge(u32 ref, u32 ack)
/*
/*
* tipc_createport(): user level call.
* tipc_createport(): user level call.
*/
*/
int
tipc_createport
(
void
*
usr_handle
,
int
tipc_createport
(
void
*
usr_handle
,
unsigned
int
importance
,
unsigned
int
importance
,
tipc_msg_err_event
error_cb
,
tipc_msg_err_event
error_cb
,
...
@@ -918,7 +898,7 @@ int tipc_createport(void *usr_handle,
...
@@ -918,7 +898,7 @@ int tipc_createport(void *usr_handle,
tipc_msg_event
msg_cb
,
tipc_msg_event
msg_cb
,
tipc_named_msg_event
named_msg_cb
,
tipc_named_msg_event
named_msg_cb
,
tipc_conn_msg_event
conn_msg_cb
,
tipc_conn_msg_event
conn_msg_cb
,
tipc_continue_event
continue_event_cb
,
/* May be zero */
tipc_continue_event
continue_event_cb
,
/* May be zero */
u32
*
portref
)
u32
*
portref
)
{
{
struct
user_port
*
up_ptr
;
struct
user_port
*
up_ptr
;
...
@@ -992,10 +972,6 @@ int tipc_publish(u32 ref, unsigned int scope, struct tipc_name_seq const *seq)
...
@@ -992,10 +972,6 @@ int tipc_publish(u32 ref, unsigned int scope, struct tipc_name_seq const *seq)
if
(
p_ptr
->
connected
)
if
(
p_ptr
->
connected
)
goto
exit
;
goto
exit
;
if
(
seq
->
lower
>
seq
->
upper
)
goto
exit
;
if
((
scope
<
TIPC_ZONE_SCOPE
)
||
(
scope
>
TIPC_NODE_SCOPE
))
goto
exit
;
key
=
ref
+
p_ptr
->
pub_count
+
1
;
key
=
ref
+
p_ptr
->
pub_count
+
1
;
if
(
key
==
ref
)
{
if
(
key
==
ref
)
{
res
=
-
EADDRINUSE
;
res
=
-
EADDRINUSE
;
...
@@ -1095,7 +1071,6 @@ int tipc_connect2port(u32 ref, struct tipc_portid const *peer)
...
@@ -1095,7 +1071,6 @@ int tipc_connect2port(u32 ref, struct tipc_portid const *peer)
*
*
* Port must be locked.
* Port must be locked.
*/
*/
int
tipc_disconnect_port
(
struct
tipc_port
*
tp_ptr
)
int
tipc_disconnect_port
(
struct
tipc_port
*
tp_ptr
)
{
{
int
res
;
int
res
;
...
@@ -1116,7 +1091,6 @@ int tipc_disconnect_port(struct tipc_port *tp_ptr)
...
@@ -1116,7 +1091,6 @@ int tipc_disconnect_port(struct tipc_port *tp_ptr)
* tipc_disconnect(): Disconnect port form peer.
* tipc_disconnect(): Disconnect port form peer.
* This is a node local operation.
* This is a node local operation.
*/
*/
int
tipc_disconnect
(
u32
ref
)
int
tipc_disconnect
(
u32
ref
)
{
{
struct
tipc_port
*
p_ptr
;
struct
tipc_port
*
p_ptr
;
...
@@ -1151,7 +1125,6 @@ int tipc_shutdown(u32 ref)
...
@@ -1151,7 +1125,6 @@ int tipc_shutdown(u32 ref)
/**
/**
* tipc_port_recv_msg - receive message from lower layer and deliver to port user
* tipc_port_recv_msg - receive message from lower layer and deliver to port user
*/
*/
int
tipc_port_recv_msg
(
struct
sk_buff
*
buf
)
int
tipc_port_recv_msg
(
struct
sk_buff
*
buf
)
{
{
struct
tipc_port
*
p_ptr
;
struct
tipc_port
*
p_ptr
;
...
@@ -1184,7 +1157,6 @@ int tipc_port_recv_msg(struct sk_buff *buf)
...
@@ -1184,7 +1157,6 @@ int tipc_port_recv_msg(struct sk_buff *buf)
* tipc_port_recv_sections(): Concatenate and deliver sectioned
* tipc_port_recv_sections(): Concatenate and deliver sectioned
* message for this node.
* message for this node.
*/
*/
static
int
tipc_port_recv_sections
(
struct
tipc_port
*
sender
,
unsigned
int
num_sect
,
static
int
tipc_port_recv_sections
(
struct
tipc_port
*
sender
,
unsigned
int
num_sect
,
struct
iovec
const
*
msg_sect
,
struct
iovec
const
*
msg_sect
,
unsigned
int
total_len
)
unsigned
int
total_len
)
...
@@ -1202,7 +1174,6 @@ static int tipc_port_recv_sections(struct tipc_port *sender, unsigned int num_se
...
@@ -1202,7 +1174,6 @@ static int tipc_port_recv_sections(struct tipc_port *sender, unsigned int num_se
/**
/**
* tipc_send - send message sections on connection
* tipc_send - send message sections on connection
*/
*/
int
tipc_send
(
u32
ref
,
unsigned
int
num_sect
,
struct
iovec
const
*
msg_sect
,
int
tipc_send
(
u32
ref
,
unsigned
int
num_sect
,
struct
iovec
const
*
msg_sect
,
unsigned
int
total_len
)
unsigned
int
total_len
)
{
{
...
@@ -1241,7 +1212,6 @@ int tipc_send(u32 ref, unsigned int num_sect, struct iovec const *msg_sect,
...
@@ -1241,7 +1212,6 @@ int tipc_send(u32 ref, unsigned int num_sect, struct iovec const *msg_sect,
/**
/**
* tipc_send2name - send message sections to port name
* tipc_send2name - send message sections to port name
*/
*/
int
tipc_send2name
(
u32
ref
,
struct
tipc_name
const
*
name
,
unsigned
int
domain
,
int
tipc_send2name
(
u32
ref
,
struct
tipc_name
const
*
name
,
unsigned
int
domain
,
unsigned
int
num_sect
,
struct
iovec
const
*
msg_sect
,
unsigned
int
num_sect
,
struct
iovec
const
*
msg_sect
,
unsigned
int
total_len
)
unsigned
int
total_len
)
...
@@ -1295,7 +1265,6 @@ int tipc_send2name(u32 ref, struct tipc_name const *name, unsigned int domain,
...
@@ -1295,7 +1265,6 @@ int tipc_send2name(u32 ref, struct tipc_name const *name, unsigned int domain,
/**
/**
* tipc_send2port - send message sections to port identity
* tipc_send2port - send message sections to port identity
*/
*/
int
tipc_send2port
(
u32
ref
,
struct
tipc_portid
const
*
dest
,
int
tipc_send2port
(
u32
ref
,
struct
tipc_portid
const
*
dest
,
unsigned
int
num_sect
,
struct
iovec
const
*
msg_sect
,
unsigned
int
num_sect
,
struct
iovec
const
*
msg_sect
,
unsigned
int
total_len
)
unsigned
int
total_len
)
...
@@ -1338,7 +1307,6 @@ int tipc_send2port(u32 ref, struct tipc_portid const *dest,
...
@@ -1338,7 +1307,6 @@ int tipc_send2port(u32 ref, struct tipc_portid const *dest,
/**
/**
* tipc_send_buf2port - send message buffer to port identity
* tipc_send_buf2port - send message buffer to port identity
*/
*/
int
tipc_send_buf2port
(
u32
ref
,
struct
tipc_portid
const
*
dest
,
int
tipc_send_buf2port
(
u32
ref
,
struct
tipc_portid
const
*
dest
,
struct
sk_buff
*
buf
,
unsigned
int
dsz
)
struct
sk_buff
*
buf
,
unsigned
int
dsz
)
{
{
...
@@ -1375,4 +1343,3 @@ int tipc_send_buf2port(u32 ref, struct tipc_portid const *dest,
...
@@ -1375,4 +1343,3 @@ int tipc_send_buf2port(u32 ref, struct tipc_portid const *dest,
return
dsz
;
return
dsz
;
return
-
ELINKCONG
;
return
-
ELINKCONG
;
}
}
net/tipc/port.h
View file @
b6d151bb
...
@@ -81,7 +81,6 @@ typedef void (*tipc_continue_event) (void *usr_handle, u32 portref);
...
@@ -81,7 +81,6 @@ typedef void (*tipc_continue_event) (void *usr_handle, u32 portref);
* @ref: object reference to associated TIPC port
* @ref: object reference to associated TIPC port
* <various callback routines>
* <various callback routines>
*/
*/
struct
user_port
{
struct
user_port
{
void
*
usr_handle
;
void
*
usr_handle
;
u32
ref
;
u32
ref
;
...
@@ -236,7 +235,6 @@ void tipc_port_reinit(void);
...
@@ -236,7 +235,6 @@ void tipc_port_reinit(void);
/**
/**
* tipc_port_lock - lock port instance referred to and return its pointer
* tipc_port_lock - lock port instance referred to and return its pointer
*/
*/
static
inline
struct
tipc_port
*
tipc_port_lock
(
u32
ref
)
static
inline
struct
tipc_port
*
tipc_port_lock
(
u32
ref
)
{
{
return
(
struct
tipc_port
*
)
tipc_ref_lock
(
ref
);
return
(
struct
tipc_port
*
)
tipc_ref_lock
(
ref
);
...
@@ -247,7 +245,6 @@ static inline struct tipc_port *tipc_port_lock(u32 ref)
...
@@ -247,7 +245,6 @@ static inline struct tipc_port *tipc_port_lock(u32 ref)
*
*
* Can use pointer instead of tipc_ref_unlock() since port is already locked.
* Can use pointer instead of tipc_ref_unlock() since port is already locked.
*/
*/
static
inline
void
tipc_port_unlock
(
struct
tipc_port
*
p_ptr
)
static
inline
void
tipc_port_unlock
(
struct
tipc_port
*
p_ptr
)
{
{
spin_unlock_bh
(
p_ptr
->
lock
);
spin_unlock_bh
(
p_ptr
->
lock
);
...
...
net/tipc/ref.c
View file @
b6d151bb
...
@@ -43,7 +43,6 @@
...
@@ -43,7 +43,6 @@
* @lock: spinlock controlling access to object
* @lock: spinlock controlling access to object
* @ref: reference value for object (combines instance & array index info)
* @ref: reference value for object (combines instance & array index info)
*/
*/
struct
reference
{
struct
reference
{
void
*
object
;
void
*
object
;
spinlock_t
lock
;
spinlock_t
lock
;
...
@@ -60,7 +59,6 @@ struct reference {
...
@@ -60,7 +59,6 @@ struct reference {
* @index_mask: bitmask for array index portion of reference values
* @index_mask: bitmask for array index portion of reference values
* @start_mask: initial value for instance value portion of reference values
* @start_mask: initial value for instance value portion of reference values
*/
*/
struct
ref_table
{
struct
ref_table
{
struct
reference
*
entries
;
struct
reference
*
entries
;
u32
capacity
;
u32
capacity
;
...
@@ -96,7 +94,6 @@ static DEFINE_RWLOCK(ref_table_lock);
...
@@ -96,7 +94,6 @@ static DEFINE_RWLOCK(ref_table_lock);
/**
/**
* tipc_ref_table_init - create reference table for objects
* tipc_ref_table_init - create reference table for objects
*/
*/
int
tipc_ref_table_init
(
u32
requested_size
,
u32
start
)
int
tipc_ref_table_init
(
u32
requested_size
,
u32
start
)
{
{
struct
reference
*
table
;
struct
reference
*
table
;
...
@@ -109,7 +106,6 @@ int tipc_ref_table_init(u32 requested_size, u32 start)
...
@@ -109,7 +106,6 @@ int tipc_ref_table_init(u32 requested_size, u32 start)
/* do nothing */
;
/* do nothing */
;
/* allocate table & mark all entries as uninitialized */
/* allocate table & mark all entries as uninitialized */
table
=
vzalloc
(
actual_size
*
sizeof
(
struct
reference
));
table
=
vzalloc
(
actual_size
*
sizeof
(
struct
reference
));
if
(
table
==
NULL
)
if
(
table
==
NULL
)
return
-
ENOMEM
;
return
-
ENOMEM
;
...
@@ -128,7 +124,6 @@ int tipc_ref_table_init(u32 requested_size, u32 start)
...
@@ -128,7 +124,6 @@ int tipc_ref_table_init(u32 requested_size, u32 start)
/**
/**
* tipc_ref_table_stop - destroy reference table for objects
* tipc_ref_table_stop - destroy reference table for objects
*/
*/
void
tipc_ref_table_stop
(
void
)
void
tipc_ref_table_stop
(
void
)
{
{
if
(
!
tipc_ref_table
.
entries
)
if
(
!
tipc_ref_table
.
entries
)
...
@@ -149,7 +144,6 @@ void tipc_ref_table_stop(void)
...
@@ -149,7 +144,6 @@ void tipc_ref_table_stop(void)
* register a partially initialized object, without running the risk that
* register a partially initialized object, without running the risk that
* the object will be accessed before initialization is complete.
* the object will be accessed before initialization is complete.
*/
*/
u32
tipc_ref_acquire
(
void
*
object
,
spinlock_t
**
lock
)
u32
tipc_ref_acquire
(
void
*
object
,
spinlock_t
**
lock
)
{
{
u32
index
;
u32
index
;
...
@@ -168,7 +162,6 @@ u32 tipc_ref_acquire(void *object, spinlock_t **lock)
...
@@ -168,7 +162,6 @@ u32 tipc_ref_acquire(void *object, spinlock_t **lock)
}
}
/* take a free entry, if available; otherwise initialize a new entry */
/* take a free entry, if available; otherwise initialize a new entry */
write_lock_bh
(
&
ref_table_lock
);
write_lock_bh
(
&
ref_table_lock
);
if
(
tipc_ref_table
.
first_free
)
{
if
(
tipc_ref_table
.
first_free
)
{
index
=
tipc_ref_table
.
first_free
;
index
=
tipc_ref_table
.
first_free
;
...
@@ -211,7 +204,6 @@ u32 tipc_ref_acquire(void *object, spinlock_t **lock)
...
@@ -211,7 +204,6 @@ u32 tipc_ref_acquire(void *object, spinlock_t **lock)
* Disallow future references to an object and free up the entry for re-use.
* Disallow future references to an object and free up the entry for re-use.
* Note: The entry's spin_lock may still be busy after discard
* Note: The entry's spin_lock may still be busy after discard
*/
*/
void
tipc_ref_discard
(
u32
ref
)
void
tipc_ref_discard
(
u32
ref
)
{
{
struct
reference
*
entry
;
struct
reference
*
entry
;
...
@@ -242,12 +234,10 @@ void tipc_ref_discard(u32 ref)
...
@@ -242,12 +234,10 @@ void tipc_ref_discard(u32 ref)
* mark entry as unused; increment instance part of entry's reference
* mark entry as unused; increment instance part of entry's reference
* to invalidate any subsequent references
* to invalidate any subsequent references
*/
*/
entry
->
object
=
NULL
;
entry
->
object
=
NULL
;
entry
->
ref
=
(
ref
&
~
index_mask
)
+
(
index_mask
+
1
);
entry
->
ref
=
(
ref
&
~
index_mask
)
+
(
index_mask
+
1
);
/* append entry to free entry list */
/* append entry to free entry list */
if
(
tipc_ref_table
.
first_free
==
0
)
if
(
tipc_ref_table
.
first_free
==
0
)
tipc_ref_table
.
first_free
=
index
;
tipc_ref_table
.
first_free
=
index
;
else
else
...
@@ -261,7 +251,6 @@ void tipc_ref_discard(u32 ref)
...
@@ -261,7 +251,6 @@ void tipc_ref_discard(u32 ref)
/**
/**
* tipc_ref_lock - lock referenced object and return pointer to it
* tipc_ref_lock - lock referenced object and return pointer to it
*/
*/
void
*
tipc_ref_lock
(
u32
ref
)
void
*
tipc_ref_lock
(
u32
ref
)
{
{
if
(
likely
(
tipc_ref_table
.
entries
))
{
if
(
likely
(
tipc_ref_table
.
entries
))
{
...
@@ -283,7 +272,6 @@ void *tipc_ref_lock(u32 ref)
...
@@ -283,7 +272,6 @@ void *tipc_ref_lock(u32 ref)
/**
/**
* tipc_ref_deref - return pointer referenced object (without locking it)
* tipc_ref_deref - return pointer referenced object (without locking it)
*/
*/
void
*
tipc_ref_deref
(
u32
ref
)
void
*
tipc_ref_deref
(
u32
ref
)
{
{
if
(
likely
(
tipc_ref_table
.
entries
))
{
if
(
likely
(
tipc_ref_table
.
entries
))
{
...
@@ -296,4 +284,3 @@ void *tipc_ref_deref(u32 ref)
...
@@ -296,4 +284,3 @@ void *tipc_ref_deref(u32 ref)
}
}
return
NULL
;
return
NULL
;
}
}
net/tipc/socket.c
View file @
b6d151bb
This diff is collapsed.
Click to expand it.
net/tipc/subscr.c
View file @
b6d151bb
...
@@ -46,7 +46,6 @@
...
@@ -46,7 +46,6 @@
* @subscriber_list: adjacent subscribers in top. server's list of subscribers
* @subscriber_list: adjacent subscribers in top. server's list of subscribers
* @subscription_list: list of subscription objects for this subscriber
* @subscription_list: list of subscription objects for this subscriber
*/
*/
struct
tipc_subscriber
{
struct
tipc_subscriber
{
u32
port_ref
;
u32
port_ref
;
spinlock_t
*
lock
;
spinlock_t
*
lock
;
...
@@ -56,13 +55,11 @@ struct tipc_subscriber {
...
@@ -56,13 +55,11 @@ struct tipc_subscriber {
/**
/**
* struct top_srv - TIPC network topology subscription service
* struct top_srv - TIPC network topology subscription service
* @user_ref: TIPC userid of subscription service
* @setup_port: reference to TIPC port that handles subscription requests
* @setup_port: reference to TIPC port that handles subscription requests
* @subscription_count: number of active subscriptions (not subscribers!)
* @subscription_count: number of active subscriptions (not subscribers!)
* @subscriber_list: list of ports subscribing to service
* @subscriber_list: list of ports subscribing to service
* @lock: spinlock govering access to subscriber list
* @lock: spinlock govering access to subscriber list
*/
*/
struct
top_srv
{
struct
top_srv
{
u32
setup_port
;
u32
setup_port
;
atomic_t
subscription_count
;
atomic_t
subscription_count
;
...
@@ -79,7 +76,6 @@ static struct top_srv topsrv;
...
@@ -79,7 +76,6 @@ static struct top_srv topsrv;
*
*
* Returns converted value
* Returns converted value
*/
*/
static
u32
htohl
(
u32
in
,
int
swap
)
static
u32
htohl
(
u32
in
,
int
swap
)
{
{
return
swap
?
swab32
(
in
)
:
in
;
return
swap
?
swab32
(
in
)
:
in
;
...
@@ -91,7 +87,6 @@ static u32 htohl(u32 in, int swap)
...
@@ -91,7 +87,6 @@ static u32 htohl(u32 in, int swap)
* Note: Must not hold subscriber's server port lock, since tipc_send() will
* Note: Must not hold subscriber's server port lock, since tipc_send() will
* try to take the lock if the message is rejected and returned!
* try to take the lock if the message is rejected and returned!
*/
*/
static
void
subscr_send_event
(
struct
tipc_subscription
*
sub
,
static
void
subscr_send_event
(
struct
tipc_subscription
*
sub
,
u32
found_lower
,
u32
found_lower
,
u32
found_upper
,
u32
found_upper
,
...
@@ -117,7 +112,6 @@ static void subscr_send_event(struct tipc_subscription *sub,
...
@@ -117,7 +112,6 @@ static void subscr_send_event(struct tipc_subscription *sub,
*
*
* Returns 1 if there is overlap, otherwise 0.
* Returns 1 if there is overlap, otherwise 0.
*/
*/
int
tipc_subscr_overlap
(
struct
tipc_subscription
*
sub
,
int
tipc_subscr_overlap
(
struct
tipc_subscription
*
sub
,
u32
found_lower
,
u32
found_lower
,
u32
found_upper
)
u32
found_upper
)
...
@@ -137,7 +131,6 @@ int tipc_subscr_overlap(struct tipc_subscription *sub,
...
@@ -137,7 +131,6 @@ int tipc_subscr_overlap(struct tipc_subscription *sub,
*
*
* Protected by nameseq.lock in name_table.c
* Protected by nameseq.lock in name_table.c
*/
*/
void
tipc_subscr_report_overlap
(
struct
tipc_subscription
*
sub
,
void
tipc_subscr_report_overlap
(
struct
tipc_subscription
*
sub
,
u32
found_lower
,
u32
found_lower
,
u32
found_upper
,
u32
found_upper
,
...
@@ -157,43 +150,35 @@ void tipc_subscr_report_overlap(struct tipc_subscription *sub,
...
@@ -157,43 +150,35 @@ void tipc_subscr_report_overlap(struct tipc_subscription *sub,
/**
/**
* subscr_timeout - subscription timeout has occurred
* subscr_timeout - subscription timeout has occurred
*/
*/
static
void
subscr_timeout
(
struct
tipc_subscription
*
sub
)
static
void
subscr_timeout
(
struct
tipc_subscription
*
sub
)
{
{
struct
tipc_port
*
server_port
;
struct
tipc_port
*
server_port
;
/* Validate server port reference (in case subscriber is terminating) */
/* Validate server port reference (in case subscriber is terminating) */
server_port
=
tipc_port_lock
(
sub
->
server_ref
);
server_port
=
tipc_port_lock
(
sub
->
server_ref
);
if
(
server_port
==
NULL
)
if
(
server_port
==
NULL
)
return
;
return
;
/* Validate timeout (in case subscription is being cancelled) */
/* Validate timeout (in case subscription is being cancelled) */
if
(
sub
->
timeout
==
TIPC_WAIT_FOREVER
)
{
if
(
sub
->
timeout
==
TIPC_WAIT_FOREVER
)
{
tipc_port_unlock
(
server_port
);
tipc_port_unlock
(
server_port
);
return
;
return
;
}
}
/* Unlink subscription from name table */
/* Unlink subscription from name table */
tipc_nametbl_unsubscribe
(
sub
);
tipc_nametbl_unsubscribe
(
sub
);
/* Unlink subscription from subscriber */
/* Unlink subscription from subscriber */
list_del
(
&
sub
->
subscription_list
);
list_del
(
&
sub
->
subscription_list
);
/* Release subscriber's server port */
/* Release subscriber's server port */
tipc_port_unlock
(
server_port
);
tipc_port_unlock
(
server_port
);
/* Notify subscriber of timeout */
/* Notify subscriber of timeout */
subscr_send_event
(
sub
,
sub
->
evt
.
s
.
seq
.
lower
,
sub
->
evt
.
s
.
seq
.
upper
,
subscr_send_event
(
sub
,
sub
->
evt
.
s
.
seq
.
lower
,
sub
->
evt
.
s
.
seq
.
upper
,
TIPC_SUBSCR_TIMEOUT
,
0
,
0
);
TIPC_SUBSCR_TIMEOUT
,
0
,
0
);
/* Now destroy subscription */
/* Now destroy subscription */
k_term_timer
(
&
sub
->
timer
);
k_term_timer
(
&
sub
->
timer
);
kfree
(
sub
);
kfree
(
sub
);
atomic_dec
(
&
topsrv
.
subscription_count
);
atomic_dec
(
&
topsrv
.
subscription_count
);
...
@@ -204,7 +189,6 @@ static void subscr_timeout(struct tipc_subscription *sub)
...
@@ -204,7 +189,6 @@ static void subscr_timeout(struct tipc_subscription *sub)
*
*
* Called with subscriber port locked.
* Called with subscriber port locked.
*/
*/
static
void
subscr_del
(
struct
tipc_subscription
*
sub
)
static
void
subscr_del
(
struct
tipc_subscription
*
sub
)
{
{
tipc_nametbl_unsubscribe
(
sub
);
tipc_nametbl_unsubscribe
(
sub
);
...
@@ -223,7 +207,6 @@ static void subscr_del(struct tipc_subscription *sub)
...
@@ -223,7 +207,6 @@ static void subscr_del(struct tipc_subscription *sub)
* a new object reference in the interim that uses this lock; this routine will
* a new object reference in the interim that uses this lock; this routine will
* simply wait for it to be released, then claim it.)
* simply wait for it to be released, then claim it.)
*/
*/
static
void
subscr_terminate
(
struct
tipc_subscriber
*
subscriber
)
static
void
subscr_terminate
(
struct
tipc_subscriber
*
subscriber
)
{
{
u32
port_ref
;
u32
port_ref
;
...
@@ -231,18 +214,15 @@ static void subscr_terminate(struct tipc_subscriber *subscriber)
...
@@ -231,18 +214,15 @@ static void subscr_terminate(struct tipc_subscriber *subscriber)
struct
tipc_subscription
*
sub_temp
;
struct
tipc_subscription
*
sub_temp
;
/* Invalidate subscriber reference */
/* Invalidate subscriber reference */
port_ref
=
subscriber
->
port_ref
;
port_ref
=
subscriber
->
port_ref
;
subscriber
->
port_ref
=
0
;
subscriber
->
port_ref
=
0
;
spin_unlock_bh
(
subscriber
->
lock
);
spin_unlock_bh
(
subscriber
->
lock
);
/* Sever connection to subscriber */
/* Sever connection to subscriber */
tipc_shutdown
(
port_ref
);
tipc_shutdown
(
port_ref
);
tipc_deleteport
(
port_ref
);
tipc_deleteport
(
port_ref
);
/* Destroy any existing subscriptions for subscriber */
/* Destroy any existing subscriptions for subscriber */
list_for_each_entry_safe
(
sub
,
sub_temp
,
&
subscriber
->
subscription_list
,
list_for_each_entry_safe
(
sub
,
sub_temp
,
&
subscriber
->
subscription_list
,
subscription_list
)
{
subscription_list
)
{
if
(
sub
->
timeout
!=
TIPC_WAIT_FOREVER
)
{
if
(
sub
->
timeout
!=
TIPC_WAIT_FOREVER
)
{
...
@@ -253,17 +233,14 @@ static void subscr_terminate(struct tipc_subscriber *subscriber)
...
@@ -253,17 +233,14 @@ static void subscr_terminate(struct tipc_subscriber *subscriber)
}
}
/* Remove subscriber from topology server's subscriber list */
/* Remove subscriber from topology server's subscriber list */
spin_lock_bh
(
&
topsrv
.
lock
);
spin_lock_bh
(
&
topsrv
.
lock
);
list_del
(
&
subscriber
->
subscriber_list
);
list_del
(
&
subscriber
->
subscriber_list
);
spin_unlock_bh
(
&
topsrv
.
lock
);
spin_unlock_bh
(
&
topsrv
.
lock
);
/* Reclaim subscriber lock */
/* Reclaim subscriber lock */
spin_lock_bh
(
subscriber
->
lock
);
spin_lock_bh
(
subscriber
->
lock
);
/* Now destroy subscriber */
/* Now destroy subscriber */
kfree
(
subscriber
);
kfree
(
subscriber
);
}
}
...
@@ -276,7 +253,6 @@ static void subscr_terminate(struct tipc_subscriber *subscriber)
...
@@ -276,7 +253,6 @@ static void subscr_terminate(struct tipc_subscriber *subscriber)
*
*
* Note that fields of 's' use subscriber's endianness!
* Note that fields of 's' use subscriber's endianness!
*/
*/
static
void
subscr_cancel
(
struct
tipc_subscr
*
s
,
static
void
subscr_cancel
(
struct
tipc_subscr
*
s
,
struct
tipc_subscriber
*
subscriber
)
struct
tipc_subscriber
*
subscriber
)
{
{
...
@@ -285,7 +261,6 @@ static void subscr_cancel(struct tipc_subscr *s,
...
@@ -285,7 +261,6 @@ static void subscr_cancel(struct tipc_subscr *s,
int
found
=
0
;
int
found
=
0
;
/* Find first matching subscription, exit if not found */
/* Find first matching subscription, exit if not found */
list_for_each_entry_safe
(
sub
,
sub_temp
,
&
subscriber
->
subscription_list
,
list_for_each_entry_safe
(
sub
,
sub_temp
,
&
subscriber
->
subscription_list
,
subscription_list
)
{
subscription_list
)
{
if
(
!
memcmp
(
s
,
&
sub
->
evt
.
s
,
sizeof
(
struct
tipc_subscr
)))
{
if
(
!
memcmp
(
s
,
&
sub
->
evt
.
s
,
sizeof
(
struct
tipc_subscr
)))
{
...
@@ -297,7 +272,6 @@ static void subscr_cancel(struct tipc_subscr *s,
...
@@ -297,7 +272,6 @@ static void subscr_cancel(struct tipc_subscr *s,
return
;
return
;
/* Cancel subscription timer (if used), then delete subscription */
/* Cancel subscription timer (if used), then delete subscription */
if
(
sub
->
timeout
!=
TIPC_WAIT_FOREVER
)
{
if
(
sub
->
timeout
!=
TIPC_WAIT_FOREVER
)
{
sub
->
timeout
=
TIPC_WAIT_FOREVER
;
sub
->
timeout
=
TIPC_WAIT_FOREVER
;
spin_unlock_bh
(
subscriber
->
lock
);
spin_unlock_bh
(
subscriber
->
lock
);
...
@@ -313,7 +287,6 @@ static void subscr_cancel(struct tipc_subscr *s,
...
@@ -313,7 +287,6 @@ static void subscr_cancel(struct tipc_subscr *s,
*
*
* Called with subscriber port locked.
* Called with subscriber port locked.
*/
*/
static
struct
tipc_subscription
*
subscr_subscribe
(
struct
tipc_subscr
*
s
,
static
struct
tipc_subscription
*
subscr_subscribe
(
struct
tipc_subscr
*
s
,
struct
tipc_subscriber
*
subscriber
)
struct
tipc_subscriber
*
subscriber
)
{
{
...
@@ -321,11 +294,9 @@ static struct tipc_subscription *subscr_subscribe(struct tipc_subscr *s,
...
@@ -321,11 +294,9 @@ static struct tipc_subscription *subscr_subscribe(struct tipc_subscr *s,
int
swap
;
int
swap
;
/* Determine subscriber's endianness */
/* Determine subscriber's endianness */
swap
=
!
(
s
->
filter
&
(
TIPC_SUB_PORTS
|
TIPC_SUB_SERVICE
));
swap
=
!
(
s
->
filter
&
(
TIPC_SUB_PORTS
|
TIPC_SUB_SERVICE
));
/* Detect & process a subscription cancellation request */
/* Detect & process a subscription cancellation request */
if
(
s
->
filter
&
htohl
(
TIPC_SUB_CANCEL
,
swap
))
{
if
(
s
->
filter
&
htohl
(
TIPC_SUB_CANCEL
,
swap
))
{
s
->
filter
&=
~
htohl
(
TIPC_SUB_CANCEL
,
swap
);
s
->
filter
&=
~
htohl
(
TIPC_SUB_CANCEL
,
swap
);
subscr_cancel
(
s
,
subscriber
);
subscr_cancel
(
s
,
subscriber
);
...
@@ -333,7 +304,6 @@ static struct tipc_subscription *subscr_subscribe(struct tipc_subscr *s,
...
@@ -333,7 +304,6 @@ static struct tipc_subscription *subscr_subscribe(struct tipc_subscr *s,
}
}
/* Refuse subscription if global limit exceeded */
/* Refuse subscription if global limit exceeded */
if
(
atomic_read
(
&
topsrv
.
subscription_count
)
>=
tipc_max_subscriptions
)
{
if
(
atomic_read
(
&
topsrv
.
subscription_count
)
>=
tipc_max_subscriptions
)
{
warn
(
"Subscription rejected, subscription limit reached (%u)
\n
"
,
warn
(
"Subscription rejected, subscription limit reached (%u)
\n
"
,
tipc_max_subscriptions
);
tipc_max_subscriptions
);
...
@@ -342,7 +312,6 @@ static struct tipc_subscription *subscr_subscribe(struct tipc_subscr *s,
...
@@ -342,7 +312,6 @@ static struct tipc_subscription *subscr_subscribe(struct tipc_subscr *s,
}
}
/* Allocate subscription object */
/* Allocate subscription object */
sub
=
kmalloc
(
sizeof
(
*
sub
),
GFP_ATOMIC
);
sub
=
kmalloc
(
sizeof
(
*
sub
),
GFP_ATOMIC
);
if
(
!
sub
)
{
if
(
!
sub
)
{
warn
(
"Subscription rejected, no memory
\n
"
);
warn
(
"Subscription rejected, no memory
\n
"
);
...
@@ -351,7 +320,6 @@ static struct tipc_subscription *subscr_subscribe(struct tipc_subscr *s,
...
@@ -351,7 +320,6 @@ static struct tipc_subscription *subscr_subscribe(struct tipc_subscr *s,
}
}
/* Initialize subscription object */
/* Initialize subscription object */
sub
->
seq
.
type
=
htohl
(
s
->
seq
.
type
,
swap
);
sub
->
seq
.
type
=
htohl
(
s
->
seq
.
type
,
swap
);
sub
->
seq
.
lower
=
htohl
(
s
->
seq
.
lower
,
swap
);
sub
->
seq
.
lower
=
htohl
(
s
->
seq
.
lower
,
swap
);
sub
->
seq
.
upper
=
htohl
(
s
->
seq
.
upper
,
swap
);
sub
->
seq
.
upper
=
htohl
(
s
->
seq
.
upper
,
swap
);
...
@@ -385,7 +353,6 @@ static struct tipc_subscription *subscr_subscribe(struct tipc_subscr *s,
...
@@ -385,7 +353,6 @@ static struct tipc_subscription *subscr_subscribe(struct tipc_subscr *s,
*
*
* Called with subscriber's server port unlocked.
* Called with subscriber's server port unlocked.
*/
*/
static
void
subscr_conn_shutdown_event
(
void
*
usr_handle
,
static
void
subscr_conn_shutdown_event
(
void
*
usr_handle
,
u32
port_ref
,
u32
port_ref
,
struct
sk_buff
**
buf
,
struct
sk_buff
**
buf
,
...
@@ -409,7 +376,6 @@ static void subscr_conn_shutdown_event(void *usr_handle,
...
@@ -409,7 +376,6 @@ static void subscr_conn_shutdown_event(void *usr_handle,
*
*
* Called with subscriber's server port unlocked.
* Called with subscriber's server port unlocked.
*/
*/
static
void
subscr_conn_msg_event
(
void
*
usr_handle
,
static
void
subscr_conn_msg_event
(
void
*
usr_handle
,
u32
port_ref
,
u32
port_ref
,
struct
sk_buff
**
buf
,
struct
sk_buff
**
buf
,
...
@@ -424,7 +390,6 @@ static void subscr_conn_msg_event(void *usr_handle,
...
@@ -424,7 +390,6 @@ static void subscr_conn_msg_event(void *usr_handle,
* Lock subscriber's server port (& make a local copy of lock pointer,
* Lock subscriber's server port (& make a local copy of lock pointer,
* in case subscriber is deleted while processing subscription request)
* in case subscriber is deleted while processing subscription request)
*/
*/
if
(
tipc_port_lock
(
port_ref
)
==
NULL
)
if
(
tipc_port_lock
(
port_ref
)
==
NULL
)
return
;
return
;
...
@@ -452,7 +417,6 @@ static void subscr_conn_msg_event(void *usr_handle,
...
@@ -452,7 +417,6 @@ static void subscr_conn_msg_event(void *usr_handle,
* timeout code cannot delete the subscription,
* timeout code cannot delete the subscription,
* so the subscription object is still protected.
* so the subscription object is still protected.
*/
*/
tipc_nametbl_subscribe
(
sub
);
tipc_nametbl_subscribe
(
sub
);
}
}
}
}
...
@@ -461,7 +425,6 @@ static void subscr_conn_msg_event(void *usr_handle,
...
@@ -461,7 +425,6 @@ static void subscr_conn_msg_event(void *usr_handle,
/**
/**
* subscr_named_msg_event - handle request to establish a new subscriber
* subscr_named_msg_event - handle request to establish a new subscriber
*/
*/
static
void
subscr_named_msg_event
(
void
*
usr_handle
,
static
void
subscr_named_msg_event
(
void
*
usr_handle
,
u32
port_ref
,
u32
port_ref
,
struct
sk_buff
**
buf
,
struct
sk_buff
**
buf
,
...
@@ -475,7 +438,6 @@ static void subscr_named_msg_event(void *usr_handle,
...
@@ -475,7 +438,6 @@ static void subscr_named_msg_event(void *usr_handle,
u32
server_port_ref
;
u32
server_port_ref
;
/* Create subscriber object */
/* Create subscriber object */
subscriber
=
kzalloc
(
sizeof
(
struct
tipc_subscriber
),
GFP_ATOMIC
);
subscriber
=
kzalloc
(
sizeof
(
struct
tipc_subscriber
),
GFP_ATOMIC
);
if
(
subscriber
==
NULL
)
{
if
(
subscriber
==
NULL
)
{
warn
(
"Subscriber rejected, no memory
\n
"
);
warn
(
"Subscriber rejected, no memory
\n
"
);
...
@@ -485,7 +447,6 @@ static void subscr_named_msg_event(void *usr_handle,
...
@@ -485,7 +447,6 @@ static void subscr_named_msg_event(void *usr_handle,
INIT_LIST_HEAD
(
&
subscriber
->
subscriber_list
);
INIT_LIST_HEAD
(
&
subscriber
->
subscriber_list
);
/* Create server port & establish connection to subscriber */
/* Create server port & establish connection to subscriber */
tipc_createport
(
subscriber
,
tipc_createport
(
subscriber
,
importance
,
importance
,
NULL
,
NULL
,
...
@@ -504,26 +465,21 @@ static void subscr_named_msg_event(void *usr_handle,
...
@@ -504,26 +465,21 @@ static void subscr_named_msg_event(void *usr_handle,
tipc_connect2port
(
subscriber
->
port_ref
,
orig
);
tipc_connect2port
(
subscriber
->
port_ref
,
orig
);
/* Lock server port (& save lock address for future use) */
/* Lock server port (& save lock address for future use) */
subscriber
->
lock
=
tipc_port_lock
(
subscriber
->
port_ref
)
->
lock
;
subscriber
->
lock
=
tipc_port_lock
(
subscriber
->
port_ref
)
->
lock
;
/* Add subscriber to topology server's subscriber list */
/* Add subscriber to topology server's subscriber list */
spin_lock_bh
(
&
topsrv
.
lock
);
spin_lock_bh
(
&
topsrv
.
lock
);
list_add
(
&
subscriber
->
subscriber_list
,
&
topsrv
.
subscriber_list
);
list_add
(
&
subscriber
->
subscriber_list
,
&
topsrv
.
subscriber_list
);
spin_unlock_bh
(
&
topsrv
.
lock
);
spin_unlock_bh
(
&
topsrv
.
lock
);
/* Unlock server port */
/* Unlock server port */
server_port_ref
=
subscriber
->
port_ref
;
server_port_ref
=
subscriber
->
port_ref
;
spin_unlock_bh
(
subscriber
->
lock
);
spin_unlock_bh
(
subscriber
->
lock
);
/* Send an ACK- to complete connection handshaking */
/* Send an ACK- to complete connection handshaking */
tipc_send
(
server_port_ref
,
0
,
NULL
,
0
);
tipc_send
(
server_port_ref
,
0
,
NULL
,
0
);
/* Handle optional subscription request */
/* Handle optional subscription request */
if
(
size
!=
0
)
{
if
(
size
!=
0
)
{
subscr_conn_msg_event
(
subscriber
,
server_port_ref
,
subscr_conn_msg_event
(
subscriber
,
server_port_ref
,
buf
,
data
,
size
);
buf
,
data
,
size
);
...
@@ -535,7 +491,6 @@ int tipc_subscr_start(void)
...
@@ -535,7 +491,6 @@ int tipc_subscr_start(void)
struct
tipc_name_seq
seq
=
{
TIPC_TOP_SRV
,
TIPC_TOP_SRV
,
TIPC_TOP_SRV
};
struct
tipc_name_seq
seq
=
{
TIPC_TOP_SRV
,
TIPC_TOP_SRV
,
TIPC_TOP_SRV
};
int
res
;
int
res
;
memset
(
&
topsrv
,
0
,
sizeof
(
topsrv
));
spin_lock_init
(
&
topsrv
.
lock
);
spin_lock_init
(
&
topsrv
.
lock
);
INIT_LIST_HEAD
(
&
topsrv
.
subscriber_list
);
INIT_LIST_HEAD
(
&
topsrv
.
subscriber_list
);
...
...
net/tipc/subscr.h
View file @
b6d151bb
...
@@ -51,7 +51,6 @@ struct tipc_subscription;
...
@@ -51,7 +51,6 @@ struct tipc_subscription;
* @swap: indicates if subscriber uses opposite endianness in its messages
* @swap: indicates if subscriber uses opposite endianness in its messages
* @evt: template for events generated by subscription
* @evt: template for events generated by subscription
*/
*/
struct
tipc_subscription
{
struct
tipc_subscription
{
struct
tipc_name_seq
seq
;
struct
tipc_name_seq
seq
;
u32
timeout
;
u32
timeout
;
...
@@ -80,5 +79,4 @@ int tipc_subscr_start(void);
...
@@ -80,5 +79,4 @@ int tipc_subscr_start(void);
void
tipc_subscr_stop
(
void
);
void
tipc_subscr_stop
(
void
);
#endif
#endif
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment