ethernet: do not log everytime there is a media change.

This code was written with wired ethernet in mind, where changes are
rare. However, on wifi the "media" changes all the time (switching
between different connection speeds). So, only log linkup and linkdown.
The other events are not that important.

Change-Id: Iaafb74ceb05a59dedf94184eee23a4e81fa5e983
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4827
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
This commit is contained in:
Adrien Destugues 2021-12-21 19:17:52 +01:00 committed by waddlesplash
parent a8b90daa8a
commit 5fcc7f71b5

View File

@ -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);