[dpdk-dev] [PATCH 5/9] vfio_user: implement interrupt related APIs
Wu, Jingjing
jingjing.wu at intel.com
Wed Dec 30 02:04:59 CET 2020
> if ((cmd == VFIO_USER_DMA_MAP || cmd == VFIO_USER_DMA_UNMAP
> ||
> + cmd == VFIO_USER_DEVICE_SET_IRQS ||
> cmd == VFIO_USER_DEVICE_RESET)
> && dev->ops->lock_dp) {
> dev->ops->lock_dp(dev_id, 1);
About cmd "VFIO_USER_REGION_WRITE", irq setting would cause update_status to iavfbe device.
Where will the lock be?
> @@ -871,7 +1056,8 @@ static int vfio_user_message_handler(int dev_id, int fd)
> if (vfio_user_is_ready(dev) && dev->ops->new_device)
> dev->ops->new_device(dev_id);
> } else {
> - if ((cmd == VFIO_USER_DMA_MAP || cmd ==
> VFIO_USER_DMA_UNMAP)
> + if ((cmd == VFIO_USER_DMA_MAP || cmd ==
> VFIO_USER_DMA_UNMAP
> + || cmd == VFIO_USER_DEVICE_SET_IRQS)
> && dev->ops->update_status)
> dev->ops->update_status(dev_id);
> }
> @@ -898,6 +1084,7 @@ static int vfio_user_sock_read(int fd, void *data)
> if (dev) {
> dev->ops->destroy_device(dev_id);
> vfio_user_destroy_mem_entries(dev->mem);
> + vfio_user_clean_irqfd(dev);
> dev->is_ready = 0;
> dev->msg_id = 0;
> }
> @@ -995,9 +1182,9 @@ vfio_user_start_server(struct vfio_user_server_socket
> *sk)
> }
>
> /* All the info must be set before start */
> - if (!dev->dev_info || !dev->reg) {
> + if (!dev->dev_info || !dev->reg || !dev->irqs.info) {
> VFIO_USER_LOG(ERR, "Failed to start, "
> - "dev/reg info must be set before start\n");
> + "dev/reg/irq info must be set before start\n");
> return -1;
> }
>
More information about the dev
mailing list