Skip to content

Commit

Permalink
FreeBSD compat layer: try 10BaseT if setting autoselect failed.
Browse files Browse the repository at this point in the history
* This fixes PCnet Fast III on VirtualBox with pcn driver (#10088).
  • Loading branch information
korli committed Oct 18, 2013
1 parent ae29523 commit 7d827cb
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion src/libs/compat/freebsd_network/device.c
Expand Up @@ -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))
Expand Down Expand Up @@ -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;
Expand Down

0 comments on commit 7d827cb

Please sign in to comment.