diff options
-rw-r--r-- | net/bridge/br_netlink.c | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/net/bridge/br_netlink.c b/net/bridge/br_netlink.c index cb5fcf62f663..80d23471743f 100644 --- a/net/bridge/br_netlink.c +++ b/net/bridge/br_netlink.c | |||
@@ -461,6 +461,19 @@ static int br_dev_newlink(struct net *src_net, struct net_device *dev, | |||
461 | return register_netdevice(dev); | 461 | return register_netdevice(dev); |
462 | } | 462 | } |
463 | 463 | ||
464 | static int br_port_fill_slave_info(struct sk_buff *skb, | ||
465 | const struct net_device *brdev, | ||
466 | const struct net_device *dev) | ||
467 | { | ||
468 | return br_port_fill_attrs(skb, br_port_get_rtnl(dev)); | ||
469 | } | ||
470 | |||
471 | static size_t br_port_get_slave_size(const struct net_device *brdev, | ||
472 | const struct net_device *dev) | ||
473 | { | ||
474 | return br_port_info_size(); | ||
475 | } | ||
476 | |||
464 | static size_t br_get_link_af_size(const struct net_device *dev) | 477 | static size_t br_get_link_af_size(const struct net_device *dev) |
465 | { | 478 | { |
466 | struct net_port_vlans *pv; | 479 | struct net_port_vlans *pv; |
@@ -485,12 +498,14 @@ static struct rtnl_af_ops br_af_ops = { | |||
485 | }; | 498 | }; |
486 | 499 | ||
487 | struct rtnl_link_ops br_link_ops __read_mostly = { | 500 | struct rtnl_link_ops br_link_ops __read_mostly = { |
488 | .kind = "bridge", | 501 | .kind = "bridge", |
489 | .priv_size = sizeof(struct net_bridge), | 502 | .priv_size = sizeof(struct net_bridge), |
490 | .setup = br_dev_setup, | 503 | .setup = br_dev_setup, |
491 | .validate = br_validate, | 504 | .validate = br_validate, |
492 | .newlink = br_dev_newlink, | 505 | .newlink = br_dev_newlink, |
493 | .dellink = br_dev_delete, | 506 | .dellink = br_dev_delete, |
507 | .get_slave_size = br_port_get_slave_size, | ||
508 | .fill_slave_info = br_port_fill_slave_info, | ||
494 | }; | 509 | }; |
495 | 510 | ||
496 | int __init br_netlink_init(void) | 511 | int __init br_netlink_init(void) |