[PATCH V3 4/7] mdev: introduce device specific ops

Jason Wang jasowang at redhat.com
Thu Oct 17 08:46:20 UTC 2019


On 2019/10/17 下午4:45, Cornelia Huck wrote:
> On Thu, 17 Oct 2019 16:30:43 +0800
> Jason Wang <jasowang at redhat.com> wrote:
>
>> On 2019/10/17 上午12:53, Alex Williamson wrote:
>>>>> Yet another suggestion: have the class id derive from the function
>>>>> you use to set up the ops.
>>>>>
>>>>> void mdev_set_vfio_ops(struct mdev_device *mdev, const struct
>>>>> vfio_mdev_ops *vfio_ops) {
>>>>> 	mdev->device_ops = vfio_ops;
>>>>> 	mdev->class_id = MDEV_ID_VFIO;
>>>>> }
>>>>>
>>>>> void mdev_set_virtio_ops(struct mdev_device *mdev, const struct
>>>>> virtio_mdev_ops *virtio_ops) {
>>>>> 	mdev->device_ops = virtio_ops;
>>>>> 	mdev->class_id = MDEV_ID_VIRTIO;
>>>>> }
>>>>>
>>>>> void mdev_set_vhost_ops(struct mdev_device *mdev, const struct
>>>>> virtio_mdev_ops *virtio_ops) {
>>>>> 	mdev->device_ops = virtio_ops;
>>>>> 	mdev->class_id = MDEV_ID_VHOST;
>>>>> }
>>>>>
>>>>> void mdev_set_vendor_ops(struct mdev_device *mdev) /* no ops */ {
>>>>> 	mdev->class_id = MDEV_ID_VENDOR;
>>>>> }
>>> One further step towards making this hard to use incorrectly might be
>>> to return an error if class_id is already set.  Thanks,
>>>
>>> Alex
>>
>> I will add a BUG_ON() when class_id has already set.
> Probably better a WARN_ON()?


Right.

Thanks



More information about the dri-devel mailing list