[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