rem: device->rxDescriptor[WB_RX_LIST_CNT - 1].wb_ctl |= WB_RXCTL_RLAST;
context: wb_create_rings(struct wb_device *device){	int i;			device->rxArea = create_area("wb840 rx buffer", (void **)&device->rxBuffer[0],			B_ANY_KERNEL_ADDRESS, ROUND_TO_PAGE_SIZE(WB_BUFBYTES * WB_RX_LIST_CNT),			B_FULL_LOCK, B_READ_AREA | B_WRITE_AREA);		if (device->rxArea < B_OK)		return device->rxArea;		for (i = 1; i < WB_RX_LIST_CNT; i++)		device->rxBuffer[i] = (void *)(((uint32)device->rxBuffer[0]) + (i * WB_BUFBYTES));	for (i = 0; i < WB_RX_LIST_CNT; i++) {		wb_put_rx_descriptor(&device->rxDescriptor[i]);		device->rxDescriptor[i].wb_data = physicalAddress(device->rxBuffer[i], WB_BUFBYTES);		device->rxDescriptor[i].wb_next = physicalAddress(&device->rxDescriptor[(i + 1)											& WB_RX_CNT_MASK], sizeof(struct wb_desc));	}	device->rxFree = WB_RX_LIST_CNT;	device->rxDescriptor[WB_RX_LIST_CNT - 1].wb_ctl |= WB_RXCTL_RLAST;		device->txArea = create_area("wb840 tx buffer", (void **)&device->txBuffer[0],			B_ANY_KERNEL_ADDRESS, ROUND_TO_PAGE_SIZE(WB_BUFBYTES * WB_TX_LIST_CNT),			B_FULL_LOCK, B_READ_AREA | B_WRITE_AREA);	if (device->txArea < B_OK) {		delete_area(device->rxArea);		return device->txArea;	}		for (i = 1; i < WB_TX_LIST_CNT; i++)		device->txBuffer[i] = (void *)(((uint32)device->txBuffer[0]) + (i * WB_BUFBYTES));	for (i = 0; i < WB_TX_LIST_CNT; i++) {		device->txDescriptor[i].wb_status = 0;		device->txDescriptor[i].wb_ctl = WB_TXCTL_TLINK;		device->txDescriptor[i].wb_data = physicalAddress(device->txBuffer[i], WB_BUFBYTES);		device->txDescriptor[i].wb_next = physicalAddress(&device->txDescriptor[(i + 1)												& WB_TX_CNT_MASK], sizeof(struct wb_desc));	}		device->txDescriptor[WB_TX_LIST_CNT - 1].wb_ctl |= WB_TXCTL_TLAST;		/* Load the address of the RX list */	WB_CLRBIT(device->reg_base + WB_NETCFG, WB_NETCFG_RX_ON);	write32(device->reg_base + WB_RXADDR, physicalAddress(&device->rxDescriptor[0],													sizeof(struct wb_desc)));		/* Load the address of the TX list */	WB_CLRBIT(device->reg_base + WB_NETCFG, WB_NETCFG_TX_ON);	write32(device->reg_base + WB_TXADDR, physicalAddress(&device->txDescriptor[0],													sizeof(struct wb_desc)));			return B_OK;}