[dpdk-dev] [PATCH v2 4/8] emu/iavf: add vfio-user device register and unregister

Wu, Jingjing jingjing.wu at intel.com
Tue Jan 5 14:41:58 CET 2021


> +static int iavf_emu_update_status(int vfio_dev_id) {
> +	struct iavf_emudev *dev;
> +	int ret;
> +
> +	dev = find_iavf_with_dev_id(vfio_dev_id);
> +	if (!dev)
> +		return -1;
> +
> +	ret = iavf_emu_setup_mem_table(dev);
> +	if (ret) {
> +		EMU_IAVF_LOG(ERR, "Failed to set up memtable for "
> +			"device %d", dev->vfio->dev_id);
> +		return ret;
> +	}
> +
> +	ret = iavf_emu_setup_irq(dev);
In update callback, irq fds will be reinitialized here. Think about if the update happening during mailbox communication, the eventfd of mailbox will be cleared without notify.

> +	if (ret) {
> +		EMU_IAVF_LOG(ERR, "Failed to set up irq for "
> +			"device %d", dev->vfio->dev_id);
> +		return ret;
> +	}
> +
> +	dev->ops->update_status(dev->edev);
> +
> +	return 0;
> +}


More information about the dev mailing list