aboutsummaryrefslogtreecommitdiffstats
path: root/net/tipc
diff options
context:
space:
mode:
Diffstat (limited to 'net/tipc')
-rw-r--r--net/tipc/bearer.c35
1 files changed, 15 insertions, 20 deletions
diff --git a/net/tipc/bearer.c b/net/tipc/bearer.c
index 9ff89207846a..9012a3695b8a 100644
--- a/net/tipc/bearer.c
+++ b/net/tipc/bearer.c
@@ -41,7 +41,7 @@
41 41
42#define MAX_ADDR_STR 32 42#define MAX_ADDR_STR 32
43 43
44static struct media media_list[MAX_MEDIA]; 44static struct media *media_list[MAX_MEDIA];
45static u32 media_count; 45static u32 media_count;
46 46
47struct tipc_bearer tipc_bearers[MAX_BEARERS]; 47struct tipc_bearer tipc_bearers[MAX_BEARERS];
@@ -70,12 +70,11 @@ static int media_name_valid(const char *name)
70 70
71static struct media *media_find(const char *name) 71static struct media *media_find(const char *name)
72{ 72{
73 struct media *m_ptr;
74 u32 i; 73 u32 i;
75 74
76 for (i = 0, m_ptr = media_list; i < media_count; i++, m_ptr++) { 75 for (i = 0; i < media_count; i++) {
77 if (!strcmp(m_ptr->name, name)) 76 if (!strcmp(media_list[i]->name, name))
78 return m_ptr; 77 return media_list[i];
79 } 78 }
80 return NULL; 79 return NULL;
81} 80}
@@ -89,8 +88,8 @@ static struct media *media_find_id(u8 type)
89 u32 i; 88 u32 i;
90 89
91 for (i = 0; i < media_count; i++) { 90 for (i = 0; i < media_count; i++) {
92 if (media_list[i].type_id == type) 91 if (media_list[i]->type_id == type)
93 return &media_list[i]; 92 return media_list[i];
94 } 93 }
95 return NULL; 94 return NULL;
96} 95}
@@ -144,7 +143,7 @@ int tipc_register_media(struct media *m_ptr)
144 goto exit; 143 goto exit;
145 } 144 }
146 145
147 media_list[media_count] = *m_ptr; 146 media_list[media_count] = m_ptr;
148 media_count++; 147 media_count++;
149 res = 0; 148 res = 0;
150exit: 149exit:
@@ -163,12 +162,9 @@ void tipc_media_addr_printf(struct print_buf *pb, struct tipc_media_addr *a)
163 u32 i; 162 u32 i;
164 163
165 media_type = ntohl(a->type); 164 media_type = ntohl(a->type);
166 for (i = 0, m_ptr = media_list; i < media_count; i++, m_ptr++) { 165 m_ptr = media_find_id(media_type);
167 if (m_ptr->type_id == media_type)
168 break;
169 }
170 166
171 if ((i < media_count) && (m_ptr->addr2str != NULL)) { 167 if (m_ptr && (m_ptr->addr2str != NULL)) {
172 char addr_str[MAX_ADDR_STR]; 168 char addr_str[MAX_ADDR_STR];
173 169
174 tipc_printf(pb, "%s(%s)", m_ptr->name, 170 tipc_printf(pb, "%s(%s)", m_ptr->name,
@@ -189,7 +185,6 @@ void tipc_media_addr_printf(struct print_buf *pb, struct tipc_media_addr *a)
189struct sk_buff *tipc_media_get_names(void) 185struct sk_buff *tipc_media_get_names(void)
190{ 186{
191 struct sk_buff *buf; 187 struct sk_buff *buf;
192 struct media *m_ptr;
193 int i; 188 int i;
194 189
195 buf = tipc_cfg_reply_alloc(MAX_MEDIA * TLV_SPACE(TIPC_MAX_MEDIA_NAME)); 190 buf = tipc_cfg_reply_alloc(MAX_MEDIA * TLV_SPACE(TIPC_MAX_MEDIA_NAME));
@@ -197,9 +192,10 @@ struct sk_buff *tipc_media_get_names(void)
197 return NULL; 192 return NULL;
198 193
199 read_lock_bh(&tipc_net_lock); 194 read_lock_bh(&tipc_net_lock);
200 for (i = 0, m_ptr = media_list; i < media_count; i++, m_ptr++) { 195 for (i = 0; i < media_count; i++) {
201 tipc_cfg_append_tlv(buf, TIPC_TLV_MEDIA_NAME, m_ptr->name, 196 tipc_cfg_append_tlv(buf, TIPC_TLV_MEDIA_NAME,
202 strlen(m_ptr->name) + 1); 197 media_list[i]->name,
198 strlen(media_list[i]->name) + 1);
203 } 199 }
204 read_unlock_bh(&tipc_net_lock); 200 read_unlock_bh(&tipc_net_lock);
205 return buf; 201 return buf;
@@ -300,7 +296,6 @@ struct tipc_bearer *tipc_bearer_find_interface(const char *if_name)
300struct sk_buff *tipc_bearer_get_names(void) 296struct sk_buff *tipc_bearer_get_names(void)
301{ 297{
302 struct sk_buff *buf; 298 struct sk_buff *buf;
303 struct media *m_ptr;
304 struct tipc_bearer *b_ptr; 299 struct tipc_bearer *b_ptr;
305 int i, j; 300 int i, j;
306 301
@@ -309,10 +304,10 @@ struct sk_buff *tipc_bearer_get_names(void)
309 return NULL; 304 return NULL;
310 305
311 read_lock_bh(&tipc_net_lock); 306 read_lock_bh(&tipc_net_lock);
312 for (i = 0, m_ptr = media_list; i < media_count; i++, m_ptr++) { 307 for (i = 0; i < media_count; i++) {
313 for (j = 0; j < MAX_BEARERS; j++) { 308 for (j = 0; j < MAX_BEARERS; j++) {
314 b_ptr = &tipc_bearers[j]; 309 b_ptr = &tipc_bearers[j];
315 if (b_ptr->active && (b_ptr->media == m_ptr)) { 310 if (b_ptr->active && (b_ptr->media == media_list[i])) {
316 tipc_cfg_append_tlv(buf, TIPC_TLV_BEARER_NAME, 311 tipc_cfg_append_tlv(buf, TIPC_TLV_BEARER_NAME,
317 b_ptr->name, 312 b_ptr->name,
318 strlen(b_ptr->name) + 1); 313 strlen(b_ptr->name) + 1);