diff --git a/src/add-ons/kernel/drivers/network/bcm440x/b44um.c b/src/add-ons/kernel/drivers/network/bcm440x/b44um.c index ac4ab88a52..307be04a6f 100644 --- a/src/add-ons/kernel/drivers/network/bcm440x/b44um.c +++ b/src/add-ons/kernel/drivers/network/bcm440x/b44um.c @@ -261,8 +261,12 @@ b44_ioctl(void *cookie,uint32 op, void *data, size_t len) case ETHER_GET_LINK_STATE: { ether_link_state_t state; + + if (pUmDevice->lm_dev.corerev < 7) { + b44_LM_PollLink(&pUmDevice->lm_dev); + } state.media = (pUmDevice->lm_dev.LinkStatus - == LM_STATUS_LINK_DOWN ? IFM_ACTIVE : 0) | IFM_ETHER; + == LM_STATUS_LINK_DOWN ? 0 : IFM_ACTIVE) | 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 94d9e200c7..4425a206e7 100644 --- a/src/add-ons/kernel/drivers/network/bcm570x/b57um.c +++ b/src/add-ons/kernel/drivers/network/bcm570x/b57um.c @@ -499,7 +499,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) | IFM_ETHER; + == LM_STATUS_LINK_DOWN ? 0 : IFM_ACTIVE) | IFM_ETHER; switch (pUmDevice->lm_dev.LineSpeed) { case LM_LINE_SPEED_10MBPS: state.media |= IFM_10_T;