[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3] crypto: add virtio-crypto driver
From: |
Cornelia Huck |
Subject: |
Re: [Qemu-devel] [PATCH v3] crypto: add virtio-crypto driver |
Date: |
Mon, 28 Nov 2016 14:12:44 +0100 |
On Mon, 28 Nov 2016 20:08:23 +0800
Gonglei <address@hidden> 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?
> +
> + 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;
> +}
> +
- [Qemu-devel] [PATCH v3] virtio-crypto: add Linux driver, Gonglei, 2016/11/28
- Re: [Qemu-devel] [PATCH v3] crypto: add virtio-crypto driver, kbuild test robot, 2016/11/28
- Re: [Qemu-devel] [PATCH v3] crypto: add virtio-crypto driver, Stefan Hajnoczi, 2016/11/28
- Re: [Qemu-devel] [PATCH v3] crypto: add virtio-crypto driver, Gonglei (Arei), 2016/11/28
- Re: [Qemu-devel] [PATCH v3] crypto: add virtio-crypto driver, Gonglei (Arei), 2016/11/29