Skip to content

Commit

Permalink
Merge patch-axel-45
Browse files Browse the repository at this point in the history
  • Loading branch information
Axel Heider committed Jan 31, 2024
2 parents cb6ddc6 + 85995a9 commit 2116976
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 5 deletions.
2 changes: 1 addition & 1 deletion components/Init/src/virtio_con.c
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ static void console_handle_irq(void *cookie)
{
virtio_con_cookie_t *virtio_cookie = (virtio_con_cookie_t *)cookie;
if (!virtio_cookie || !virtio_cookie->vm) {
ZF_LOGE("NULL virtio cookie given to raw irq handler");
ZF_LOGE("invalid cookie given to raw irq handler");
return;
}

Expand Down
2 changes: 1 addition & 1 deletion components/Init/src/virtio_vsock.c
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,7 @@ static void vsock_inject_irq(void *cookie)
{
virtio_vsock_cookie_t *virtio_cookie = (virtio_vsock_cookie_t *)cookie;
if (!virtio_cookie || !virtio_cookie->vm) {
ZF_LOGE("NULL virtio cookie given to raw irq handler");
ZF_LOGE("invalid cookie given to raw irq handler");
return;
}

Expand Down
11 changes: 9 additions & 2 deletions libs/libvirtio/src/virtio_console.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ static void console_handle_irq(void *cookie)
{
virtio_con_cookie_t *virtio_cookie = (virtio_con_cookie_t *)cookie;
if (!virtio_cookie || !virtio_cookie->vm) {
ZF_LOGE("NULL virtio cookie given to raw irq handler");
ZF_LOGE("invalid cookie given to raw irq handler");
return;
}
int err = vm_inject_irq(virtio_cookie->vm->vcpus[BOOT_VCPU], VIRTIO_CON_PLAT_INTERRUPT_LINE);
Expand Down Expand Up @@ -63,11 +63,18 @@ virtio_con_t *virtio_console_init(vm_t *vm, console_putchar_fn_t putchar,
ioport_range_t virtio_port_range = {0, 0, VIRTIO_IOPORT_SIZE};
virtio_con = common_make_virtio_con(vm, pci, io_ports, virtio_port_range, IOPORT_FREE,
VIRTIO_INTERRUPT_PIN, VIRTIO_CON_PLAT_INTERRUPT_LINE, backend);
if (!virtio_con) {
ZF_LOGE("Failed to initialise virtio con driver");
free(virtio_con);
return NULL;
}

console_cookie->virtio_con = virtio_con;
console_cookie->vm = vm;
err = vm_register_irq(vm->vcpus[BOOT_VCPU], VIRTIO_CON_PLAT_INTERRUPT_LINE, &virtio_console_ack, NULL);
err = vm_register_irq(vm->vcpus[BOOT_VCPU], VIRTIO_CON_PLAT_INTERRUPT_LINE, &virtio_console_ack, NULL);
if (err) {
ZF_LOGE("Failed to register console irq");
/* ToDo: free virtio_con? */
free(console_cookie);
return NULL;
}
Expand Down
9 changes: 8 additions & 1 deletion libs/libvirtio/src/virtio_net.c
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,14 @@ virtio_net_t *virtio_net_init(vm_t *vm, virtio_net_callbacks_t *callbacks,
}
driver_cookie->virtio_net = virtio_net;
driver_cookie->vm = vm;
int err = vm_register_irq(vm->vcpus[BOOT_VCPU], VIRTIO_NET_PLAT_INTERRUPT_LINE, &virtio_net_ack, NULL);
int err = vm_register_irq(vm->vcpus[BOOT_VCPU], VIRTIO_NET_PLAT_INTERRUPT_LINE, &virtio_net_ack, NULL);
if (err) {
ZF_LOGE("Failed to register net irq");
/* ToDo: free virtio_net? */
free(driver_cookie);
return NULL;
}

if (callbacks) {
driver_cookie->callbacks.tx_callback = callbacks->tx_callback;
driver_cookie->callbacks.irq_callback = callbacks->irq_callback;
Expand Down

0 comments on commit 2116976

Please sign in to comment.