diff --git a/src/add-ons/kernel/drivers/network/ipro1000/device.c b/src/add-ons/kernel/drivers/network/ipro1000/device.c index d4f6b34f3f..bb792b2f95 100644 --- a/src/add-ons/kernel/drivers/network/ipro1000/device.c +++ b/src/add-ons/kernel/drivers/network/ipro1000/device.c @@ -351,6 +351,8 @@ ipro1000_control(void *cookie, uint32 op, void *arg, size_t len) em_media_status(&ifp, &mediareq); state.media = mediareq.ifm_active; + if (mediareq.ifm_status & IFM_ACTIVE) + state.media |= IFM_ACTIVE; if (mediareq.ifm_active & IFM_10_T) state.speed = 10000; else if (mediareq.ifm_active & IFM_100_TX) diff --git a/src/add-ons/kernel/network/devices/ethernet/ethernet.cpp b/src/add-ons/kernel/network/devices/ethernet/ethernet.cpp index c3f1bdc20f..80aeaa929f 100644 --- a/src/add-ons/kernel/network/devices/ethernet/ethernet.cpp +++ b/src/add-ons/kernel/network/devices/ethernet/ethernet.cpp @@ -64,6 +64,11 @@ update_link_state(ethernet_device *device, bool notify = true) device->link_quality = state.quality; device->link_speed = state.speed; + dprintf("%s: media change, media 0x%0x quality %u speed %u\n", + device->name, (unsigned int)device->media, + (unsigned int)device->link_quality, + (unsigned int)device->link_speed); + if (notify) sStackModule->device_link_changed(device); }