diff options
| -rw-r--r-- | net/tipc/bearer.c | 14 | ||||
| -rw-r--r-- | net/tipc/bearer.h | 2 | ||||
| -rw-r--r-- | net/tipc/eth_media.c | 6 | ||||
| -rw-r--r-- | net/tipc/ib_media.c | 6 | 
4 files changed, 10 insertions, 18 deletions
| diff --git a/net/tipc/bearer.c b/net/tipc/bearer.c index 09faa5520079..3f9707a16d06 100644 --- a/net/tipc/bearer.c +++ b/net/tipc/bearer.c | |||
| @@ -420,23 +420,15 @@ exit: | |||
| 420 | } | 420 | } | 
| 421 | 421 | ||
| 422 | /** | 422 | /** | 
| 423 | * tipc_block_bearer - Block the bearer with the given name, and reset all its links | 423 | * tipc_block_bearer - Block the bearer, and reset all its links | 
| 424 | */ | 424 | */ | 
| 425 | int tipc_block_bearer(const char *name) | 425 | int tipc_block_bearer(struct tipc_bearer *b_ptr) | 
| 426 | { | 426 | { | 
| 427 | struct tipc_bearer *b_ptr = NULL; | ||
| 428 | struct tipc_link *l_ptr; | 427 | struct tipc_link *l_ptr; | 
| 429 | struct tipc_link *temp_l_ptr; | 428 | struct tipc_link *temp_l_ptr; | 
| 430 | 429 | ||
| 431 | read_lock_bh(&tipc_net_lock); | 430 | read_lock_bh(&tipc_net_lock); | 
| 432 | b_ptr = tipc_bearer_find(name); | 431 | pr_info("Blocking bearer <%s>\n", b_ptr->name); | 
| 433 | if (!b_ptr) { | ||
| 434 | pr_warn("Attempt to block unknown bearer <%s>\n", name); | ||
| 435 | read_unlock_bh(&tipc_net_lock); | ||
| 436 | return -EINVAL; | ||
| 437 | } | ||
| 438 | |||
| 439 | pr_info("Blocking bearer <%s>\n", name); | ||
| 440 | spin_lock_bh(&b_ptr->lock); | 432 | spin_lock_bh(&b_ptr->lock); | 
| 441 | b_ptr->blocked = 1; | 433 | b_ptr->blocked = 1; | 
| 442 | list_for_each_entry_safe(l_ptr, temp_l_ptr, &b_ptr->links, link_list) { | 434 | list_for_each_entry_safe(l_ptr, temp_l_ptr, &b_ptr->links, link_list) { | 
| diff --git a/net/tipc/bearer.h b/net/tipc/bearer.h index f800e63980cf..e5e04be6fffa 100644 --- a/net/tipc/bearer.h +++ b/net/tipc/bearer.h | |||
| @@ -163,7 +163,7 @@ int tipc_register_media(struct tipc_media *m_ptr); | |||
| 163 | 163 | ||
| 164 | void tipc_recv_msg(struct sk_buff *buf, struct tipc_bearer *tb_ptr); | 164 | void tipc_recv_msg(struct sk_buff *buf, struct tipc_bearer *tb_ptr); | 
| 165 | 165 | ||
| 166 | int tipc_block_bearer(const char *name); | 166 | int tipc_block_bearer(struct tipc_bearer *b_ptr); | 
| 167 | void tipc_continue(struct tipc_bearer *tb_ptr); | 167 | void tipc_continue(struct tipc_bearer *tb_ptr); | 
| 168 | 168 | ||
| 169 | int tipc_enable_bearer(const char *bearer_name, u32 disc_domain, u32 priority); | 169 | int tipc_enable_bearer(const char *bearer_name, u32 disc_domain, u32 priority); | 
| diff --git a/net/tipc/eth_media.c b/net/tipc/eth_media.c index e048d491cc0b..c36c938306a1 100644 --- a/net/tipc/eth_media.c +++ b/net/tipc/eth_media.c | |||
| @@ -265,17 +265,17 @@ static int recv_notification(struct notifier_block *nb, unsigned long evt, | |||
| 265 | if (netif_carrier_ok(dev)) | 265 | if (netif_carrier_ok(dev)) | 
| 266 | tipc_continue(eb_ptr->bearer); | 266 | tipc_continue(eb_ptr->bearer); | 
| 267 | else | 267 | else | 
| 268 | tipc_block_bearer(eb_ptr->bearer->name); | 268 | tipc_block_bearer(eb_ptr->bearer); | 
| 269 | break; | 269 | break; | 
| 270 | case NETDEV_UP: | 270 | case NETDEV_UP: | 
| 271 | tipc_continue(eb_ptr->bearer); | 271 | tipc_continue(eb_ptr->bearer); | 
| 272 | break; | 272 | break; | 
| 273 | case NETDEV_DOWN: | 273 | case NETDEV_DOWN: | 
| 274 | tipc_block_bearer(eb_ptr->bearer->name); | 274 | tipc_block_bearer(eb_ptr->bearer); | 
| 275 | break; | 275 | break; | 
| 276 | case NETDEV_CHANGEMTU: | 276 | case NETDEV_CHANGEMTU: | 
| 277 | case NETDEV_CHANGEADDR: | 277 | case NETDEV_CHANGEADDR: | 
| 278 | tipc_block_bearer(eb_ptr->bearer->name); | 278 | tipc_block_bearer(eb_ptr->bearer); | 
| 279 | tipc_continue(eb_ptr->bearer); | 279 | tipc_continue(eb_ptr->bearer); | 
| 280 | break; | 280 | break; | 
| 281 | case NETDEV_UNREGISTER: | 281 | case NETDEV_UNREGISTER: | 
| diff --git a/net/tipc/ib_media.c b/net/tipc/ib_media.c index 5545145ccffa..20b1aa464321 100644 --- a/net/tipc/ib_media.c +++ b/net/tipc/ib_media.c | |||
| @@ -258,17 +258,17 @@ static int recv_notification(struct notifier_block *nb, unsigned long evt, | |||
| 258 | if (netif_carrier_ok(dev)) | 258 | if (netif_carrier_ok(dev)) | 
| 259 | tipc_continue(ib_ptr->bearer); | 259 | tipc_continue(ib_ptr->bearer); | 
| 260 | else | 260 | else | 
| 261 | tipc_block_bearer(ib_ptr->bearer->name); | 261 | tipc_block_bearer(ib_ptr->bearer); | 
| 262 | break; | 262 | break; | 
| 263 | case NETDEV_UP: | 263 | case NETDEV_UP: | 
| 264 | tipc_continue(ib_ptr->bearer); | 264 | tipc_continue(ib_ptr->bearer); | 
| 265 | break; | 265 | break; | 
| 266 | case NETDEV_DOWN: | 266 | case NETDEV_DOWN: | 
| 267 | tipc_block_bearer(ib_ptr->bearer->name); | 267 | tipc_block_bearer(ib_ptr->bearer); | 
| 268 | break; | 268 | break; | 
| 269 | case NETDEV_CHANGEMTU: | 269 | case NETDEV_CHANGEMTU: | 
| 270 | case NETDEV_CHANGEADDR: | 270 | case NETDEV_CHANGEADDR: | 
| 271 | tipc_block_bearer(ib_ptr->bearer->name); | 271 | tipc_block_bearer(ib_ptr->bearer); | 
| 272 | tipc_continue(ib_ptr->bearer); | 272 | tipc_continue(ib_ptr->bearer); | 
| 273 | break; | 273 | break; | 
| 274 | case NETDEV_UNREGISTER: | 274 | case NETDEV_UNREGISTER: | 
