qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] hw/vhost-user-i2c: Add support for VIRTIO_I2C_F_ZERO_LENGTH_


From: Alex Bennée
Subject: Re: [PATCH] hw/vhost-user-i2c: Add support for VIRTIO_I2C_F_ZERO_LENGTH_REQUEST
Date: Thu, 10 Feb 2022 08:29:19 +0000
User-agent: mu4e 1.7.7; emacs 28.0.91

Viresh Kumar <viresh.kumar@linaro.org> writes:

> VIRTIO_I2C_F_ZERO_LENGTH_REQUEST is a mandatory feature, that must be
> implemented by everyone. Add its support.
>
> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>

but...

<snip>
>      BusState *qbus = BUS(qdev_get_parent_bus(DEVICE(vdev)));
> @@ -113,8 +117,10 @@ static void vu_i2c_set_status(VirtIODevice *vdev, 
> uint8_t status)
>  static uint64_t vu_i2c_get_features(VirtIODevice *vdev,
>                                      uint64_t requested_features, Error 
> **errp)
>  {
> -    /* No feature bits used yet */
> -    return requested_features;
> +    VHostUserI2C *i2c = VHOST_USER_I2C(vdev);
> +
> +    virtio_add_feature(&requested_features, 
> VIRTIO_I2C_F_ZERO_LENGTH_REQUEST);
> +    return vhost_get_features(&i2c->vhost_dev, feature_bits, 
> requested_features);
>  }

It's a bit weird we set it and then pass it to the vhost-user backend.
It does raise the question of why the stub actually cares about feature
bits at all when really it's a negotiation with the backend.

IOW what would happen if we just called:

    return vhost_get_features(&i2c->vhost_dev, feature_bits, -1);

>  
>  static void vu_i2c_handle_output(VirtIODevice *vdev, VirtQueue *vq)
> diff --git a/include/hw/virtio/vhost-user-i2c.h 
> b/include/hw/virtio/vhost-user-i2c.h
> index deae47a76d55..d8372f3b43ea 100644
> --- a/include/hw/virtio/vhost-user-i2c.h
> +++ b/include/hw/virtio/vhost-user-i2c.h
> @@ -25,4 +25,7 @@ struct VHostUserI2C {
>      bool connected;
>  };
>  
> +/* Virtio Feature bits */
> +#define VIRTIO_I2C_F_ZERO_LENGTH_REQUEST             0
> +
>  #endif /* _QEMU_VHOST_USER_I2C_H */


-- 
Alex Bennée



reply via email to

[Prev in Thread] Current Thread [Next in Thread]