> > Subject: [virtio-dev] Re: [PATCH v3] crypto: add virtio-crypto driver > > On Mon, 28 Nov 2016 20:08:23 +0800 > Gonglei <arei.gonglei@xxxxxxxxxx> wrote: > > > +static int virtcrypto_update_status(struct virtio_crypto *vcrypto) > > +{ > > + u32 status; > > + int err; > > + > > + virtio_cread(vcrypto->vdev, > > + struct virtio_crypto_config, status, &status); > > + > > + /* Ignore unknown (future) status bits */ > > + status &= VIRTIO_CRYPTO_S_HW_READY; > > I'm wondering what the driver really should do if it encounters unknown > status bits. > > I'd expect that new status bits are guarded by a feature bit and that > the device should not set status bits if the respective feature bit has > not been negotiated. Therefore, unknown status bits would be a host > error and the driver should consider the device to be broken. > > Thoughts? > I agree with you. The reasonable way is reset the device if the driver receive an unknown status IMO. Regards, -Gonglei > > + > > + if (vcrypto->status == status) > > + return 0; > > + > > + vcrypto->status = status; > > + > > + if (vcrypto->status & VIRTIO_CRYPTO_S_HW_READY) { > > + err = virtcrypto_dev_start(vcrypto); > > + if (err) { > > + dev_err(&vcrypto->vdev->dev, > > + "Failed to start virtio crypto device.\n"); > > + virtcrypto_dev_stop(vcrypto); > > + return -EPERM; > > + } > > + dev_info(&vcrypto->vdev->dev, "Accelerator is ready\n"); > > + } else { > > + virtcrypto_dev_stop(vcrypto); > > + dev_info(&vcrypto->vdev->dev, "Accelerator is not ready\n"); > > + } > > + > > + return 0; > > +} > > + > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: virtio-dev-unsubscribe@xxxxxxxxxxxxxxxxxxxx > For additional commands, e-mail: virtio-dev-help@xxxxxxxxxxxxxxxxxxxx _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization