summaryrefslogtreecommitdiff
path: root/net/openvswitch/files/patch-lib-netdev-bsd.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/openvswitch/files/patch-lib-netdev-bsd.c')
-rw-r--r--net/openvswitch/files/patch-lib-netdev-bsd.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/net/openvswitch/files/patch-lib-netdev-bsd.c b/net/openvswitch/files/patch-lib-netdev-bsd.c
new file mode 100644
index 000000000000..d7fcb081a9ac
--- /dev/null
+++ b/net/openvswitch/files/patch-lib-netdev-bsd.c
@@ -0,0 +1,24 @@
+--- lib/netdev-bsd.c.orig 2015-04-08 13:49:06.863643000 +0800
++++ lib/netdev-bsd.c 2015-04-08 13:50:53.973989000 +0800
+@@ -1771,7 +1771,7 @@
+ ifr_get_flags(const struct ifreq *ifr)
+ {
+ #ifdef HAVE_STRUCT_IFREQ_IFR_FLAGSHIGH
+- return (ifr->ifr_flagshigh << 16) | ifr->ifr_flags;
++ return (ifr->ifr_flagshigh << 16) | (ifr->ifr_flags & 0xffff);
+ #else
+ return ifr->ifr_flags;
+ #endif
+@@ -1780,9 +1780,11 @@
+ static void
+ ifr_set_flags(struct ifreq *ifr, int flags)
+ {
+- ifr->ifr_flags = flags;
+ #ifdef HAVE_STRUCT_IFREQ_IFR_FLAGSHIGH
++ ifr->ifr_flags = flags & 0xffff;
+ ifr->ifr_flagshigh = flags >> 16;
++#else
++ ifr->ifr_flags = flags;
+ #endif
+ }
+