diff options
Diffstat (limited to 'drivers/net/virtio_net.c')
| -rw-r--r-- | drivers/net/virtio_net.c | 14 | 
1 files changed, 9 insertions, 5 deletions
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 57ac4b0294b..50077753a0e 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -154,7 +154,7 @@ struct padded_vnet_hdr {   */  static int vq2txq(struct virtqueue *vq)  { -	return (virtqueue_get_queue_index(vq) - 1) / 2; +	return (vq->index - 1) / 2;  }  static int txq2vq(int txq) @@ -164,7 +164,7 @@ static int txq2vq(int txq)  static int vq2rxq(struct virtqueue *vq)  { -	return virtqueue_get_queue_index(vq) / 2; +	return vq->index / 2;  }  static int rxq2vq(int rxq) @@ -1006,7 +1006,8 @@ static void virtnet_set_rx_mode(struct net_device *dev)  	kfree(buf);  } -static int virtnet_vlan_rx_add_vid(struct net_device *dev, u16 vid) +static int virtnet_vlan_rx_add_vid(struct net_device *dev, +				   __be16 proto, u16 vid)  {  	struct virtnet_info *vi = netdev_priv(dev);  	struct scatterlist sg; @@ -1019,7 +1020,8 @@ static int virtnet_vlan_rx_add_vid(struct net_device *dev, u16 vid)  	return 0;  } -static int virtnet_vlan_rx_kill_vid(struct net_device *dev, u16 vid) +static int virtnet_vlan_rx_kill_vid(struct net_device *dev, +				    __be16 proto, u16 vid)  {  	struct virtnet_info *vi = netdev_priv(dev);  	struct scatterlist sg; @@ -1376,7 +1378,7 @@ static int virtnet_find_vqs(struct virtnet_info *vi)  	if (vi->has_cvq) {  		vi->cvq = vqs[total_vqs - 1];  		if (virtio_has_feature(vi->vdev, VIRTIO_NET_F_CTRL_VLAN)) -			vi->dev->features |= NETIF_F_HW_VLAN_FILTER; +			vi->dev->features |= NETIF_F_HW_VLAN_CTAG_FILTER;  	}  	for (i = 0; i < vi->max_queue_pairs; i++) { @@ -1511,6 +1513,8 @@ static int virtnet_probe(struct virtio_device *vdev)  		/* (!csum && gso) case will be fixed by register_netdev() */  	} +	dev->vlan_features = dev->features; +  	/* Configuration may specify what MAC to use.  Otherwise random. */  	if (virtio_config_val_len(vdev, VIRTIO_NET_F_MAC,  				  offsetof(struct virtio_net_config, mac),  |