On amd64 and i386, when we recognize that we've been PXE-booted and identified the interface, there is this:
... if (ifp) { #if defined(NFSCLIENT) printf("PXE boot MAC address %s, interface %s\n", ether_sprintf(bios_bootmac->mac), ifp->if_xname); bootdv = parsedisk(ifp->if_xname, strlen(ifp->if_xname), 0, &tmpdev); part = 0; #endif } else printf("PXE boot MAC address %s, interface %s\n", ether_sprintf(bios_bootmac->mac), "unknown"); ... Setting the boot device is protected by the NFSCLIENT ifdef, but I don't see why this should affect the reporting of the identified interface. So, move the ifdef two lines down. And while I'm here, modernize the preceding loop a bit; ok? Index: arch/amd64/amd64/autoconf.c =================================================================== RCS file: /cvs/src/sys/arch/amd64/amd64/autoconf.c,v retrieving revision 1.50 diff -u -p -r1.50 autoconf.c --- arch/amd64/amd64/autoconf.c 14 Oct 2017 04:44:43 -0000 1.50 +++ arch/amd64/amd64/autoconf.c 7 Feb 2018 00:10:24 -0000 @@ -196,18 +196,17 @@ diskconf(void) if (bios_bootmac) { struct ifnet *ifp; - for (ifp = TAILQ_FIRST(&ifnet); ifp != NULL; - ifp = TAILQ_NEXT(ifp, if_list)) { + TAILQ_FOREACH(ifp, &ifnet, if_list) { if (ifp->if_type == IFT_ETHER && - bcmp(bios_bootmac->mac, + memcmp(bios_bootmac->mac, ((struct arpcom *)ifp)->ac_enaddr, ETHER_ADDR_LEN) == 0) break; } if (ifp) { -#if defined(NFSCLIENT) printf("PXE boot MAC address %s, interface %s\n", ether_sprintf(bios_bootmac->mac), ifp->if_xname); +#if defined(NFSCLIENT) bootdv = parsedisk(ifp->if_xname, strlen(ifp->if_xname), 0, &tmpdev); part = 0; Index: arch/i386/i386/autoconf.c =================================================================== RCS file: /cvs/src/sys/arch/i386/i386/autoconf.c,v retrieving revision 1.104 diff -u -p -r1.104 autoconf.c --- arch/i386/i386/autoconf.c 27 Jan 2018 22:55:23 -0000 1.104 +++ arch/i386/i386/autoconf.c 7 Feb 2018 00:11:34 -0000 @@ -236,18 +236,17 @@ diskconf(void) if (bios_bootmac) { struct ifnet *ifp; - for (ifp = TAILQ_FIRST(&ifnet); ifp != NULL; - ifp = TAILQ_NEXT(ifp, if_list)) { + TAILQ_FOREACH(ifp, &ifnet, if_list) { if (ifp->if_type == IFT_ETHER && - bcmp(bios_bootmac->mac, + memcmp(bios_bootmac->mac, ((struct arpcom *)ifp)->ac_enaddr, ETHER_ADDR_LEN) == 0) break; } if (ifp) { -#if defined(NFSCLIENT) printf("PXE boot MAC address %s, interface %s\n", ether_sprintf(bios_bootmac->mac), ifp->if_xname); +#if defined(NFSCLIENT) bootdv = parsedisk(ifp->if_xname, strlen(ifp->if_xname), 0, &tmpdev); part = 0; -- Christian "naddy" Weisgerber na...@mips.inka.de