int isr = ((nic_state->regs.isr & nic_state->regs.imr) & 0xffff);
if(isr & 0xffff){
- v3_pci_raise_irq(nic_state->pci_bus, 0, nic_state->pci_dev);
+ v3_pci_raise_irq(nic_state->pci_bus, nic_state->pci_dev, 0);
nic_state->statistic.tx_interrupts ++;
}
}
}
bars[0].type = PCI_BAR_IO;
- bars[0].default_base_port = 0xc100;
+ bars[0].default_base_port = -1;
bars[0].num_ports = 0x100;
bars[0].io_read = rtl8139_ioport_read;
pci_dev = v3_pci_register_device(nic_state->pci_bus, PCI_STD_DEVICE, 0, -1, 0,
"RTL8139", bars,
- NULL, NULL, NULL, nic_state);
+ NULL, NULL, NULL, NULL, nic_state);
if (pci_dev == NULL) {
char * macstr = v3_cfg_val(cfg, "mac");
nic_state = (struct rtl8139_state *)V3_Malloc(sizeof(struct rtl8139_state));
+
+ if (!nic_state) {
+ PrintError("Cannot allocate in init\n");
+ return -1;
+ }
+
memset(nic_state, 0, sizeof(struct rtl8139_state));
nic_state->pci_bus = pci_bus;