> The driver certainly shouldn't offer VIRTIO_CONSOLE_F_DMA_MEM if you > don't have DMA! OK, so the feature table could be done like this: static unsigned int features[] = { VIRTIO_CONSOLE_F_SIZE, VIRTIO_CONSOLE_F_MULTIPORT, #if VIRTIO_CONSOLE_HAS_DMA VIRTIO_CONSOLE_F_DMA_MEM, #endif } If the device then asks for VIRTIO_CONSOLE_F_DMA_MEM when DMA is not supported, virtio will do BUG_ON() from virtio_check_driver_offered_feature(). Is this acceptable or should we add a check in virtcons_probe() and let the probing fail instead? E.g: /* Refuse to bind if F_DMA_MEM request cannot be met */ if (!VIRTIO_CONSOLE_HAS_DMA && (vdev->config->get_features(vdev) & (1 << VIRTIO_CONSOLE_F_DMA_MEM))){ dev_err(&vdev->dev, "DMA_MEM requested, but arch does not support DMA\n"); err = -EINVAL; goto fail; } Regards, Sjur _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization