diff options
Diffstat (limited to 'drivers/vdpa/vdpa_sim/vdpa_sim_net.c')
| -rw-r--r-- | drivers/vdpa/vdpa_sim/vdpa_sim_net.c | 7 | 
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/vdpa/vdpa_sim/vdpa_sim_net.c b/drivers/vdpa/vdpa_sim/vdpa_sim_net.c index c3cb225ea469..584b975a98a7 100644 --- a/drivers/vdpa/vdpa_sim/vdpa_sim_net.c +++ b/drivers/vdpa/vdpa_sim/vdpa_sim_net.c @@ -62,6 +62,9 @@ static bool receive_filter(struct vdpasim *vdpasim, size_t len)  	if (len < ETH_ALEN + hdr_len)  		return false; +	if (is_broadcast_ether_addr(vdpasim->buffer + hdr_len) || +	    is_multicast_ether_addr(vdpasim->buffer + hdr_len)) +		return true;  	if (!strncmp(vdpasim->buffer + hdr_len, vio_config->mac, ETH_ALEN))  		return true; @@ -305,8 +308,10 @@ static int __init vdpasim_net_init(void)  	int ret;  	ret = device_register(&vdpasim_net_mgmtdev); -	if (ret) +	if (ret) { +		put_device(&vdpasim_net_mgmtdev);  		return ret; +	}  	ret = vdpa_mgmtdev_register(&mgmt_dev);  	if (ret)  | 
