Re: [PATCH v2 1/1] s390: virtio: let arch accept devices without IOMMU feature

From: Halil Pasic
Date: Tue Jun 16 2020 - 07:58:05 EST


On Tue, 16 Jun 2020 12:52:50 +0200
Pierre Morel <pmorel@xxxxxxxxxxxxx> 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