mirror of
https://github.com/novatiq/packages.git
synced 2026-04-29 23:18:42 +01:00
openvswitch: upgrade to version 2.3.90
This commit is contained in:
+41
@@ -0,0 +1,41 @@
|
||||
From b9284f535e93c337ab21f330753e60e1038f9a27 Mon Sep 17 00:00:00 2001
|
||||
From: Helmut Schaa <helmut.schaa@googlemail.com>
|
||||
Date: Wed, 8 Jan 2014 13:48:49 +0100
|
||||
Subject: [PATCH 2/2] netdev-linux: Let interface flag survive internal port
|
||||
setup
|
||||
|
||||
Due to a race condition when bringing up an internal port on Linux
|
||||
some interface flags (e.g. IFF_MULTICAST) are falsely reset. This
|
||||
happens because netlink events may be processed after the according
|
||||
netdev has been brought up (which sets interface flags).
|
||||
|
||||
Fix this by reading the interface flags just before updating them
|
||||
if they have not been updated by from the kernel yet.
|
||||
|
||||
Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
|
||||
---
|
||||
lib/netdev-linux.c | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c
|
||||
index 9eaac33..423e72e 100644
|
||||
--- a/lib/netdev-linux.c
|
||||
+++ b/lib/netdev-linux.c
|
||||
@@ -2712,7 +2712,13 @@ update_flags(struct netdev_linux *netdev, enum netdev_flags off,
|
||||
unsigned int old_flags, new_flags;
|
||||
int error = 0;
|
||||
|
||||
- old_flags = netdev->ifi_flags;
|
||||
+ if (!(netdev->cache_valid & VALID_DRVINFO)) {
|
||||
+ /* Most likely the debvice flags are not in sync yet, fetch them now */
|
||||
+ get_flags(&netdev->up, &old_flags);
|
||||
+ } else {
|
||||
+ old_flags = netdev->ifi_flags;
|
||||
+ }
|
||||
+
|
||||
*old_flagsp = iff_to_nd_flags(old_flags);
|
||||
new_flags = (old_flags & ~nd_to_iff_flags(off)) | nd_to_iff_flags(on);
|
||||
if (new_flags != old_flags) {
|
||||
--
|
||||
1.8.1.4
|
||||
|
||||
Reference in New Issue
Block a user