diff --git a/drivers/virtio/virtio-mmio.c b/drivers/virtio/virtio-mmio.c index a1326ed551..2d1d404c81 100644 --- a/drivers/virtio/virtio-mmio.c +++ b/drivers/virtio/virtio-mmio.c @@ -819,23 +819,11 @@ static int virtio_mmio_init_device(FAR struct virtio_mmio_device_s *vmdev, int virtio_register_mmio_device(FAR void *regs, int irq) { - struct metal_init_params params = METAL_INIT_DEFAULTS; FAR struct virtio_mmio_device_s *vmdev; - static bool onceinit; int ret; DEBUGASSERT(regs != NULL); - if (onceinit == false) - { - onceinit = true; - ret = metal_init(¶ms); - if (ret < 0) - { - return ret; - } - } - vmdev = kmm_zalloc(sizeof(*vmdev)); if (vmdev == NULL) { diff --git a/drivers/virtio/virtio.c b/drivers/virtio/virtio.c index e01a776880..ddf737eb31 100644 --- a/drivers/virtio/virtio.c +++ b/drivers/virtio/virtio.c @@ -119,8 +119,15 @@ void virtio_free_buf(FAR struct virtio_device *vdev, FAR void *buf) void virtio_register_drivers(void) { + struct metal_init_params params = METAL_INIT_DEFAULTS; int ret = OK; + ret = metal_init(¶ms); + if (ret < 0) + { + vrterr("metal_init failed, ret=%d\n", ret); + } + #ifdef CONFIG_DRIVERS_VIRTIO_BLK ret = virtio_register_blk_driver(); if (ret < 0)