FreeBSD compat layer: try 10BaseT if setting autoselect failed.

* This fixes PCnet Fast III on VirtualBox with pcn driver (#10088).
This commit is contained in:
Jérôme Duval
2013-10-18 17:49:47 +02:00
parent ae29523f9b
commit 7d827cb864
+6 -1
View File
@@ -28,6 +28,7 @@ compat_open(const char *name, uint32 flags, void **cookie)
struct ifnet *ifp;
struct ifreq ifr;
int i;
status_t status;
for (i = 0; i < MAX_DEVICES; i++) {
if (gDevices[i] != NULL && !strcmp(gDevices[i]->device_name, name))
@@ -56,7 +57,11 @@ compat_open(const char *name, uint32 flags, void **cookie)
memset(&ifr, 0, sizeof(ifr));
ifr.ifr_media = IFM_MAKEWORD(IFM_ETHER, IFM_AUTO, 0, 0);
ifp->if_ioctl(ifp, SIOCSIFMEDIA, (caddr_t)&ifr);
status = ifp->if_ioctl(ifp, SIOCSIFMEDIA, (caddr_t)&ifr);
if (status != B_OK) {
ifr.ifr_media = IFM_MAKEWORD(IFM_ETHER, IFM_10_T, 0, 0);
status = ifp->if_ioctl(ifp, SIOCSIFMEDIA, (caddr_t)&ifr);
}
}
ifp->if_flags |= IFF_UP;