Module Name:    src
Committed By:   martin
Date:           Tue May 14 11:43:23 UTC 2019

Modified Files:
        src/sys/dev/pci [netbsd-8]: if_alc.c

Log Message:
Pull up following revision(s) (requested by msaitoh in ticket #1268):

        sys/dev/pci/if_alc.c: revision 1.33
        sys/dev/pci/if_alc.c: revision 1.34

 Fix a wrong and extra ether_ioctl() call in alc_ioctl(). _IOWR types call
broke ifreq by the first ether_ioct() and the second ether_ioctl() caused
unexpected behavior. One of bug example is that SIOCGIFMEDIA always failed.

This bug was added in if_alc.c rev. 1.16.
XXX pullup-8

 -

 Add ether_ioctl() call for SIOCSIFADDR and SIOCSIFFLAGS to make behavior
the same as before.

XXX need cleanup.


To generate a diff of this commit:
cvs rdiff -u -r1.24.8.2 -r1.24.8.3 src/sys/dev/pci/if_alc.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/if_alc.c
diff -u src/sys/dev/pci/if_alc.c:1.24.8.2 src/sys/dev/pci/if_alc.c:1.24.8.3
--- src/sys/dev/pci/if_alc.c:1.24.8.2	Thu Jul 26 23:55:30 2018
+++ src/sys/dev/pci/if_alc.c	Tue May 14 11:43:23 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_alc.c,v 1.24.8.2 2018/07/26 23:55:30 snj Exp $	*/
+/*	$NetBSD: if_alc.c,v 1.24.8.3 2019/05/14 11:43:23 martin Exp $	*/
 /*	$OpenBSD: if_alc.c,v 1.1 2009/08/08 09:31:13 kevlo Exp $	*/
 /*-
  * Copyright (c) 2009, Pyun YongHyeon <yong...@freebsd.org>
@@ -2036,15 +2036,16 @@ alc_ioctl(struct ifnet *ifp, u_long cmd,
 
 	s = splnet();
 
-	error = ether_ioctl(ifp, cmd, data);
 	switch (cmd) {
 	case SIOCSIFADDR:
+		error = ether_ioctl(ifp, cmd, data);
 		ifp->if_flags |= IFF_UP;
 		if (!(ifp->if_flags & IFF_RUNNING))
 			alc_init(ifp);
 		break;
- 
+
 	case SIOCSIFFLAGS:
+		error = ether_ioctl(ifp, cmd, data);
 		if (ifp->if_flags & IFF_UP) {
 			if (ifp->if_flags & IFF_RUNNING)
 				error = ENETRESET;
@@ -2060,7 +2061,7 @@ alc_ioctl(struct ifnet *ifp, u_long cmd,
 	case SIOCGIFMEDIA:
 		error = ifmedia_ioctl(ifp, ifr, &mii->mii_media, cmd);
 		break;
- 
+
 	default:
 		error = ether_ioctl(ifp, cmd, data);
 		break;

Reply via email to