Module Name: src
Committed By: msaitoh
Date: Fri Feb 16 10:11:21 UTC 2018
Modified Files:
src/sys/dev/pci/ixgbe: ixgbe.c ixv.c
Log Message:
Fix a bug that the first call of ifflags_cb() causes linkdown. The first
call of ix(gbe|v)_ifflags_cb() refered uninitialized adapter->if_flags.
adapter->if_flags should be initialized in the end of xxx_init().
XXX pullup-[678] (ixgbe)
XXX pullup-8 (ixv)
To generate a diff of this commit:
cvs rdiff -u -r1.122 -r1.123 src/sys/dev/pci/ixgbe/ixgbe.c
cvs rdiff -u -r1.78 -r1.79 src/sys/dev/pci/ixgbe/ixv.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/dev/pci/ixgbe/ixgbe.c
diff -u src/sys/dev/pci/ixgbe/ixgbe.c:1.122 src/sys/dev/pci/ixgbe/ixgbe.c:1.123
--- src/sys/dev/pci/ixgbe/ixgbe.c:1.122 Fri Feb 16 04:50:19 2018
+++ src/sys/dev/pci/ixgbe/ixgbe.c Fri Feb 16 10:11:21 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: ixgbe.c,v 1.122 2018/02/16 04:50:19 knakahara Exp $ */
+/* $NetBSD: ixgbe.c,v 1.123 2018/02/16 10:11:21 msaitoh Exp $ */
/******************************************************************************
@@ -3779,6 +3779,9 @@ ixgbe_init_locked(struct adapter *adapte
IXGBE_WRITE_REG(hw, IXGBE_CTRL_EXT, ctrl_ext);
}
+ /* Update saved flags. See ixgbe_ifflags_cb() */
+ adapter->if_flags = ifp->if_flags;
+
/* Now inform the stack we're ready */
ifp->if_flags |= IFF_RUNNING;
Index: src/sys/dev/pci/ixgbe/ixv.c
diff -u src/sys/dev/pci/ixgbe/ixv.c:1.78 src/sys/dev/pci/ixgbe/ixv.c:1.79
--- src/sys/dev/pci/ixgbe/ixv.c:1.78 Fri Feb 16 04:50:19 2018
+++ src/sys/dev/pci/ixgbe/ixv.c Fri Feb 16 10:11:21 2018
@@ -1,4 +1,4 @@
-/*$NetBSD: ixv.c,v 1.78 2018/02/16 04:50:19 knakahara Exp $*/
+/*$NetBSD: ixv.c,v 1.79 2018/02/16 10:11:21 msaitoh Exp $*/
/******************************************************************************
@@ -785,6 +785,9 @@ ixv_init_locked(struct adapter *adapter)
/* And now turn on interrupts */
ixv_enable_intr(adapter);
+ /* Update saved flags. See ixgbe_ifflags_cb() */
+ adapter->if_flags = ifp->if_flags;
+
/* Now inform the stack we're ready */
ifp->if_flags |= IFF_RUNNING;
ifp->if_flags &= ~IFF_OACTIVE;