PERFORCE change 141400 for review

Andrew Thompson thompsa at FreeBSD.org
Sat May 10 00:07:53 UTC 2008


http://perforce.freebsd.org/chv.cgi?CH=141400

Change 141400 by thompsa at thompsa_burger on 2008/05/10 00:07:23

	Add a pause if the interface has been upped by our vap but the taskq
	hasnt completed yet. The NDIS OID commands will fail otherwise.

Affected files ...

.. //depot/projects/vap/sys/dev/if_ndis/if_ndis.c#24 edit

Differences ...

==== //depot/projects/vap/sys/dev/if_ndis/if_ndis.c#24 (text+ko) ====

@@ -2799,7 +2799,23 @@
 	struct ndis_oid_data	oid;
 	struct ndis_evt		evt;
 	void			*oidbuf;
-	int			error = 0;
+	int			n, error = 0;
+
+	switch(command) {
+	case SIOCGDRVSPEC:
+	case SIOCSDRVSPEC:
+		/*
+		 * The ndis commands get passed directly to us from
+		 * the vap, check if the vap has started us yet.
+		 */
+		n = 50;
+		while (n-- && (ifp->if_flags & IFF_UP) &&
+		    !(ifp->if_drv_flags & IFF_DRV_RUNNING))
+			pause("ndisioctl", hz/10);
+		/* Interface is not ready */
+		if (!NDIS_INITIALIZED(sc))
+			return (ENXIO);
+	}
 
 	switch(command) {
 	case SIOCSIFFLAGS:


More information about the p4-projects mailing list