Module Name:    src
Committed By:   yamaguchi
Date:           Thu Sep 30 04:06:50 UTC 2021

Modified Files:
        src/sys/dev/pci/ixgbe: ixgbe.c

Log Message:
Remove vlan_ifdetach() from ixgbe_detach()

The removed function is called in ether_ifdetach().
And ether_ifdetach is changed to be called before a device
is stopped, because vlan_ifdetach called from ether_ifdetach
configures VLAN settings.


To generate a diff of this commit:
cvs rdiff -u -r1.292 -r1.293 src/sys/dev/pci/ixgbe/ixgbe.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.292 src/sys/dev/pci/ixgbe/ixgbe.c:1.293
--- src/sys/dev/pci/ixgbe/ixgbe.c:1.292	Thu Sep 16 09:55:28 2021
+++ src/sys/dev/pci/ixgbe/ixgbe.c	Thu Sep 30 04:06:50 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: ixgbe.c,v 1.292 2021/09/16 09:55:28 msaitoh Exp $ */
+/* $NetBSD: ixgbe.c,v 1.293 2021/09/30 04:06:50 yamaguchi Exp $ */
 
 /******************************************************************************
 
@@ -64,7 +64,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ixgbe.c,v 1.292 2021/09/16 09:55:28 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ixgbe.c,v 1.293 2021/09/30 04:06:50 yamaguchi Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -75,7 +75,6 @@ __KERNEL_RCSID(0, "$NetBSD: ixgbe.c,v 1.
 #include "ixgbe.h"
 #include "ixgbe_phy.h"
 #include "ixgbe_sriov.h"
-#include "vlan.h"
 
 #include <sys/cprng.h>
 #include <dev/mii/mii.h>
@@ -3668,17 +3667,13 @@ ixgbe_detach(device_t dev, int flags)
 		return (EBUSY);
 	}
 
-#if NVLAN > 0
-	/* Make sure VLANs are not using driver */
-	if (!VLAN_ATTACHED(&adapter->osdep.ec))
-		;	/* nothing to do: no VLANs */
-	else if ((flags & (DETACH_SHUTDOWN | DETACH_FORCE)) != 0)
-		vlan_ifdetach(adapter->ifp);
-	else {
+	if (VLAN_ATTACHED(&adapter->osdep.ec) &&
+	    (flags & (DETACH_SHUTDOWN | DETACH_FORCE)) == 0) {
 		aprint_error_dev(dev, "VLANs in use, detach first\n");
 		return (EBUSY);
 	}
-#endif
+
+	ether_ifdetach(adapter->ifp);
 
 	adapter->osdep.detaching = true;
 	/*
@@ -3699,8 +3694,6 @@ ixgbe_detach(device_t dev, int flags)
 
 	pmf_device_deregister(dev);
 
-	ether_ifdetach(adapter->ifp);
-
 	ixgbe_free_deferred_handlers(adapter);
 
 	/* let hardware know driver is unloading */

Reply via email to