aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/bridge/br_netlink.c27
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
464static 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
471static 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
464static size_t br_get_link_af_size(const struct net_device *dev) 477static 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
487struct rtnl_link_ops br_link_ops __read_mostly = { 500struct 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
496int __init br_netlink_init(void) 511int __init br_netlink_init(void)