diff mbox

[SRU,Trusty,3/5] rtnl/do_setlink(): set modified when IFLA_LINKMODE is updated

Message ID b85884a2adf33d28d26b0f6f59f6200bd34dc2fe.1496256804.git.joseph.salisbury@canonical.com
State New
Headers show

Commit Message

Joseph Salisbury June 2, 2017, 3:19 p.m. UTC
From: Nicolas Dichtel <nicolas.dichtel@6wind.com>

BugLink: http://bugs.launchpad.net/bugs/1690094

The only effect of this patch is to print a warning if IFLA_LINKMODE is updated
and a following change fails.

Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 1889b0e7efe8373793069bd3deb7702a51e6f2a5)
Signed-off-by: Joseph Salisbury <joseph.salisbury@canonical.com>
---
 net/core/rtnetlink.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
diff mbox

Patch

diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
index 6b48fca..6448d35 100644
--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
@@ -1595,8 +1595,12 @@  static int do_setlink(const struct sk_buff *skb,
 		set_operstate(dev, nla_get_u8(tb[IFLA_OPERSTATE]));
 
 	if (tb[IFLA_LINKMODE]) {
+		unsigned char value = nla_get_u8(tb[IFLA_LINKMODE]);
+
 		write_lock_bh(&dev_base_lock);
-		dev->link_mode = nla_get_u8(tb[IFLA_LINKMODE]);
+		if (dev->link_mode ^ value)
+			modified = 1;
+		dev->link_mode = value;
 		write_unlock_bh(&dev_base_lock);
 	}