diff options
Diffstat (limited to 'drivers/vdpa/vdpa_sim/vdpa_sim_net.c')
| -rw-r--r-- | drivers/vdpa/vdpa_sim/vdpa_sim_net.c | 13 | 
1 files changed, 9 insertions, 4 deletions
| diff --git a/drivers/vdpa/vdpa_sim/vdpa_sim_net.c b/drivers/vdpa/vdpa_sim/vdpa_sim_net.c index 862f405362de..dfe2ce341803 100644 --- a/drivers/vdpa/vdpa_sim/vdpa_sim_net.c +++ b/drivers/vdpa/vdpa_sim/vdpa_sim_net.c @@ -466,16 +466,21 @@ static int vdpasim_net_dev_add(struct vdpa_mgmt_dev *mdev, const char *name,  	vdpasim_net_setup_config(simdev, config); -	ret = _vdpa_register_device(&simdev->vdpa, VDPASIM_NET_VQ_NUM); -	if (ret) -		goto reg_err; -  	net = sim_to_net(simdev);  	u64_stats_init(&net->tx_stats.syncp);  	u64_stats_init(&net->rx_stats.syncp);  	u64_stats_init(&net->cq_stats.syncp); +	/* +	 * Initialization must be completed before this call, since it can +	 * connect the device to the vDPA bus, so requests can arrive after +	 * this call. +	 */ +	ret = _vdpa_register_device(&simdev->vdpa, VDPASIM_NET_VQ_NUM); +	if (ret) +		goto reg_err; +  	return 0;  reg_err: |