diff --git a/src/add-ons/kernel/network/devices/ethernet/ethernet.cpp b/src/add-ons/kernel/network/devices/ethernet/ethernet.cpp index 110b9ac2c9..2d7153106f 100644 --- a/src/add-ons/kernel/network/devices/ethernet/ethernet.cpp +++ b/src/add-ons/kernel/network/devices/ethernet/ethernet.cpp @@ -67,15 +67,24 @@ update_link_state(ethernet_device *device, bool notify = true) device->link_quality = state.quality; device->link_speed = state.speed; - if (device->media & IFM_ACTIVE) + if (device->media & IFM_ACTIVE) { + if ((device->flags & IFF_LINK) == 0) { + dprintf("%s: link up, media 0x%0x quality %u speed %u\n", + device->name, (unsigned int)device->media, + (unsigned int)device->link_quality, + (unsigned int)device->link_speed); + } device->flags |= IFF_LINK; - else + } else { + if ((device->flags & IFF_LINK) != 0) { + dprintf("%s: link down, media 0x%0x quality %u speed %u\n", + device->name, (unsigned int)device->media, + (unsigned int)device->link_quality, + (unsigned int)device->link_speed); + } device->flags &= ~IFF_LINK; + } - 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);