From 0cac8bd145974b7b386f6e848f74cd9ee2123dc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Wed, 4 Apr 2007 17:04:54 +0000 Subject: [PATCH] Forgot to set IFM_ETHER in all drivers; "ethernet" now also sets it just in case. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20561 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/drivers/network/bcm440x/b44um.c | 2 +- src/add-ons/kernel/drivers/network/bcm570x/b57um.c | 2 +- src/add-ons/kernel/drivers/network/sis900/device.c | 2 +- src/add-ons/kernel/network/devices/ethernet/ethernet.cpp | 3 +++ 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/add-ons/kernel/drivers/network/bcm440x/b44um.c b/src/add-ons/kernel/drivers/network/bcm440x/b44um.c index b8d36a4867..49b4357cae 100644 --- a/src/add-ons/kernel/drivers/network/bcm440x/b44um.c +++ b/src/add-ons/kernel/drivers/network/bcm440x/b44um.c @@ -259,7 +259,7 @@ b44_ioctl(void *cookie,uint32 op,void *data,size_t len) { ether_link_state_t state; state.media = (pUmDevice->lm_dev.LinkStatus - == LM_STATUS_LINK_DOWN) ? IFM_ACTIVE : 0; + == LM_STATUS_LINK_DOWN ? IFM_ACTIVE : 0) | IFM_ETHER; switch (pUmDevice->lm_dev.LineSpeed) { case LM_LINE_SPEED_10MBPS: state.media |= IFM_10_T; diff --git a/src/add-ons/kernel/drivers/network/bcm570x/b57um.c b/src/add-ons/kernel/drivers/network/bcm570x/b57um.c index 6146d99851..f7df69dda5 100644 --- a/src/add-ons/kernel/drivers/network/bcm570x/b57um.c +++ b/src/add-ons/kernel/drivers/network/bcm570x/b57um.c @@ -495,7 +495,7 @@ b57_ioctl(void *cookie,uint32 op,void *data,size_t len) { ether_link_state_t state; state.media = (pUmDevice->lm_dev.LinkStatus - == LM_STATUS_LINK_DOWN) ? IFM_ACTIVE : 0; + == LM_STATUS_LINK_DOWN ? IFM_ACTIVE : 0) | IFM_ETHER; switch (pUmDevice->lm_dev.LineSpeed) { case LM_LINE_SPEED_10MBPS: state.media |= IFM_10_T; diff --git a/src/add-ons/kernel/drivers/network/sis900/device.c b/src/add-ons/kernel/drivers/network/sis900/device.c index e616435fa2..addeaf0866 100644 --- a/src/add-ons/kernel/drivers/network/sis900/device.c +++ b/src/add-ons/kernel/drivers/network/sis900/device.c @@ -390,7 +390,7 @@ device_ioctl(void *data, uint32 msg, void *buffer, size_t bufferLength) case ETHER_GET_LINK_STATE: { ether_link_state_t state; - state.media = (info->link ? IFM_ACTIVE : 0) + state.media = (info->link ? IFM_ACTIVE : 0) | IFM_ETHER | (info->full_duplex ? IFM_FULL_DUPLEX : IFM_HALF_DUPLEX) | (info->speed == LINK_SPEED_100_MBIT ? IFM_100_TX : IFM_10_T); state.speed = info->speed == LINK_SPEED_100_MBIT diff --git a/src/add-ons/kernel/network/devices/ethernet/ethernet.cpp b/src/add-ons/kernel/network/devices/ethernet/ethernet.cpp index 757d425588..bec50f2533 100644 --- a/src/add-ons/kernel/network/devices/ethernet/ethernet.cpp +++ b/src/add-ons/kernel/network/devices/ethernet/ethernet.cpp @@ -57,6 +57,9 @@ update_link_state(ethernet_device *device, bool notify = true) return EOPNOTSUPP; } + state.media |= IFM_ETHER; + // make sure the media type is returned correctly + if (device->media != state.media || device->link_quality != state.quality || device->link_speed != state.speed) {