diff --git a/src/add-ons/kernel/drivers/network/bcm440x/b44um.c b/src/add-ons/kernel/drivers/network/bcm440x/b44um.c index 7828842035..5056945f59 100644 --- a/src/add-ons/kernel/drivers/network/bcm440x/b44um.c +++ b/src/add-ons/kernel/drivers/network/bcm440x/b44um.c @@ -97,7 +97,7 @@ void uninit_driver(void) { delete_area(pUmDevice->mem_base); - free(dev_list[j]); + free((void *)dev_list[j]); } mempool_exit(); @@ -174,7 +174,7 @@ status_t b44_ioctl(void *cookie,uint32 op,void *data,size_t len) { memcpy(data,pUmDevice->lm_dev.NodeAddress,6); return B_OK; case ETHER_NONBLOCK: - pUmDevice->block = *((uint8 *)(data)); + pUmDevice->block = !*((uint8 *)(data)); return B_OK; case ETHER_ADDMULTI: return (b44_LM_MulticastAdd(&pUmDevice->lm_dev,(PLM_UINT8)(data)) == LM_STATUS_SUCCESS) ? B_OK : B_ERROR; @@ -238,8 +238,10 @@ status_t b44_read(void *cookie,off_t pos,void *data,size_t *numBytes) { release_spinlock(&pUmDevice->lock); restore_interrupts(cpu); - if (pPacket == 0) + if (pPacket == 0) { + *numBytes = -1; return B_ERROR; + } pUmPacket = (struct B_UM_PACKET *) pPacket; if ((pPacket->PacketStatus != LM_STATUS_SUCCESS) || diff --git a/src/add-ons/kernel/drivers/network/bcm570x/b57um.c b/src/add-ons/kernel/drivers/network/bcm570x/b57um.c index 1f6376cd73..3f898676fe 100644 --- a/src/add-ons/kernel/drivers/network/bcm570x/b57um.c +++ b/src/add-ons/kernel/drivers/network/bcm570x/b57um.c @@ -424,7 +424,7 @@ status_t b57_ioctl(void *cookie,uint32 op,void *data,size_t len) { memcpy(data,pUmDevice->lm_dev.NodeAddress,6); return B_OK; case ETHER_NONBLOCK: - pUmDevice->block = *((uint8 *)(data)); + pUmDevice->block = !*((uint8 *)(data)); return B_OK; case ETHER_ADDMULTI: return (LM_MulticastAdd(&pUmDevice->lm_dev,(PLM_UINT8)(data)) == LM_STATUS_SUCCESS) ? B_OK : B_ERROR; @@ -541,8 +541,10 @@ status_t b57_read(void *cookie,off_t pos,void *data,size_t *numBytes) { release_spinlock(&pUmDevice->lock); enable_interrupts(cpu); - if (pPacket == 0) + if (pPacket == 0) { + *numBytes = -1; return B_ERROR; + } pUmPacket = (struct B_UM_PACKET *) pPacket; if ((pPacket->PacketStatus != LM_STATUS_SUCCESS) ||