rem: wb_read_eeprom(data, &data->MAC_Address, 0, 3, 0);
add: wb_read_eeprom(data, &data->MAC_Address, 0, 3, false);
context: wb840_open(const char *name, uint32 flags, void** cookie){	char *deviceName = NULL;	int32 i;	int32 mask;	struct wb_device *data;	status_t status;		LOG((DEVICE_NAME ": open()\n"));		for (i = 0; (deviceName = gDevNameList[i]) != NULL; i++) {		if (!strcmp(name, deviceName))			break;	}				if (deviceName == NULL) {		LOG(("invalid device name"));		return EINVAL;	}		/* There can be only one access at time */	mask = 1L << i;	if (atomic_or(&gOpenMask, mask) & mask)		return B_BUSY;		/* Allocate a wb_device structure */	if (!(data = (wb_device *)malloc(sizeof(wb_device)))) {		gOpenMask &= ~(1L << i);		return B_NO_MEMORY;	}		memset(data, 0, sizeof(wb_device));		*cookie = data;#ifdef DEBUG	load_driver_symbols("wb840");#endif	data->devId = i;	data->pciInfo = gDevList[i];	data->deviceName = gDevNameList[i];	data->blockFlag = 0;	data->reg_base = data->pciInfo->u.h0.base_registers[0];		data->wb_cachesize = gPci->read_pci_config(data->pciInfo->bus, data->pciInfo->device,			data->pciInfo->function, PCI_line_size, sizeof (PCI_line_size)) & 0xff;			wb_read_eeprom(data, &data->MAC_Address, 0, 3, 0);		status = wb_create_semaphores(data);	if (status < B_OK) {		LOG((DEVICE_NAME ": Couldn't create semaphores\n"));		goto err;	}			status = wb_stop(data);	if (status < B_OK) {		LOG((DEVICE_NAME": Can't stop device\n"));		goto err1;	}				status = wb_initPHYs(data);	if (status < B_OK) {		LOG((DEVICE_NAME": Can't init PHYs\n"));		goto err1;	}			wb_init(data);			/* Setup interrupts */	data->irq = data->pciInfo->u.h0.interrupt_line;	status = install_io_interrupt_handler(data->irq, wb_interrupt, data, 0);	if (status < B_OK) {		LOG((DEVICE_NAME			" can't install interrupt handler: %s\n", strerror(status)));		goto err1;			}		LOG(("Interrupts installed at irq line %x\n", data->irq));			status = wb_create_rings(data);	if (status < B_OK) {		LOG((DEVICE_NAME": can't create ring buffers\n"));		goto err2;	}		wb_enable_interrupts(data);		wb_set_rx_filter(data);		WB_SETBIT(data->reg_base + WB_NETCFG, WB_NETCFG_RX_ON);	write32(data->reg_base + WB_RXSTART, 0xFFFFFFFF);	WB_SETBIT(data->reg_base + WB_NETCFG, WB_NETCFG_TX_ON);		add_timer(&data->timer, wb_tick, 1000000LL, B_PERIODIC_TIMER);			return B_OK; // Everything after this line is an error		err2:	remove_io_interrupt_handler(data->irq, wb_interrupt, data);	err1:	wb_delete_semaphores(data);	err:				gOpenMask &= ~(1L << i);		free(data);		LOG(("wb840: Open Failed\n"));		return status;}