Add support for extended error reporting.

Signed-off-by: Matthias Schiffer <mschif...@universe-factory.net>
---
 include/net/rtnetlink.h | 3 ++-
 net/core/rtnetlink.c    | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/include/net/rtnetlink.h b/include/net/rtnetlink.h
index baf99e173dca..abe6b733d473 100644
--- a/include/net/rtnetlink.h
+++ b/include/net/rtnetlink.h
@@ -91,7 +91,8 @@ struct rtnl_link_ops {
        int                     slave_maxtype;
        const struct nla_policy *slave_policy;
        int                     (*slave_validate)(struct nlattr *tb[],
-                                                 struct nlattr *data[]);
+                                                 struct nlattr *data[],
+                                                 struct netlink_ext_ack 
*extack);
        int                     (*slave_changelink)(struct net_device *dev,
                                                    struct net_device 
*slave_dev,
                                                    struct nlattr *tb[],
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
index 658a48959fc4..ed51de525a88 100644
--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
@@ -2601,7 +2601,8 @@ static int rtnl_newlink(struct sk_buff *skb, struct 
nlmsghdr *nlh,
                                slave_data = slave_attr;
                        }
                        if (m_ops->slave_validate) {
-                               err = m_ops->slave_validate(tb, slave_data);
+                               err = m_ops->slave_validate(tb, slave_data,
+                                                           extack);
                                if (err < 0)
                                        return err;
                        }
-- 
2.13.1

Reply via email to