On Tue, 16 Jun 2020 12:52:50 +0200
Pierre Morel <pmo...@linux.ibm.com> wrote:

> >>   int virtio_finalize_features(struct virtio_device *dev)
> >>   {
> >>    int ret = dev->config->finalize_features(dev);
> >> @@ -179,6 +184,10 @@ int virtio_finalize_features(struct virtio_device 
> >> *dev)
> >>    if (!virtio_has_feature(dev, VIRTIO_F_VERSION_1))
> >>            return 0;
> >>   
> >> +  if (arch_needs_iommu_platform(dev) &&
> >> +          !virtio_has_feature(dev, VIRTIO_F_IOMMU_PLATFORM))
> >> +          return -EIO;
> >> +  
> > 
> > Why EIO?  
> 
> Because I/O can not occur correctly?
> I am open to suggestions.

We use -ENODEV if feature when the device rejects the features we
tried to negotiate (see virtio_finalize_features()) and -EINVAL when
the F_VERSION_1 and the virtio-ccw revision ain't coherent (in
virtio_ccw_finalize_features()). Any of those seems more fitting
that EIO to me. BTW does the error code itself matter in any way,
or is it just OK vs some error?

Regards,
Halil
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

Reply via email to