rem: print_address((void*)&data->myaddr);
context: wb840_open(const char *name, uint32 flags, void** cookie){	char *deviceName = NULL;	int32 i;	int32 mask;	struct wb_device *data;		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;		/* Let's map card registers to host's memory */	data->reg_base = data->pciInfo->u.h0.base_registers[0];		LOG(("wb840: reg_base=%x\n", (int)data->reg_base));			wb_read_eeprom(data, &data->myaddr, 0, 3, 0);	print_address((void*)&data->myaddr);		data->wb_cachesize = gPci->read_pci_config(data->pciInfo->bus, data->pciInfo->device,			data->pciInfo->function, PCI_line_size, sizeof (PCI_line_size)) & 0xff;			if (wb_create_semaphores(data) == B_OK) {				/* reset the card */		wb_reset(data);				/* Setup interrupts */		data->irq = data->pciInfo->u.h0.interrupt_line;		install_io_interrupt_handler(data->irq, wb_interrupt, data, 0);		LOG(("Interrupts installed at irq line %x\n", data->irq));				wb_enable_interrupts(data);			wb_create_rings(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);		//write32(data->reg_base + WB_TXSTART, 0xFFFFFFFF);				//dump_registers(data);				add_timer(&data->timer, wb_tick, 1000000LL, B_PERIODIC_TIMER);		#if DEBUG		dump_registers(data);#endif		return B_OK; // Everything after this line is an error			} else		LOG((DEVICE_NAME ": Couldn't create semaphores\n"));				gOpenMask &= ~(1L << i);		free(data);		LOG(("wb840: Open Failed\n"));		return B_ERROR;}