@@ -144,8 +144,10 @@ struct virtnet_info {
144
144
/* Control VQ buffers: protected by the rtnl lock */
145
145
struct virtio_net_ctrl_hdr ctrl_hdr ;
146
146
virtio_net_ctrl_ack ctrl_status ;
147
+ struct virtio_net_ctrl_mq ctrl_mq ;
147
148
u8 ctrl_promisc ;
148
149
u8 ctrl_allmulti ;
150
+ u16 ctrl_vid ;
149
151
150
152
/* Ethtool settings */
151
153
u8 duplex ;
@@ -1058,14 +1060,13 @@ static void virtnet_ack_link_announce(struct virtnet_info *vi)
1058
1060
static int virtnet_set_queues (struct virtnet_info * vi , u16 queue_pairs )
1059
1061
{
1060
1062
struct scatterlist sg ;
1061
- struct virtio_net_ctrl_mq s ;
1062
1063
struct net_device * dev = vi -> dev ;
1063
1064
1064
1065
if (!vi -> has_cvq || !virtio_has_feature (vi -> vdev , VIRTIO_NET_F_MQ ))
1065
1066
return 0 ;
1066
1067
1067
- s .virtqueue_pairs = cpu_to_virtio16 (vi -> vdev , queue_pairs );
1068
- sg_init_one (& sg , & s , sizeof (s ));
1068
+ vi -> ctrl_mq .virtqueue_pairs = cpu_to_virtio16 (vi -> vdev , queue_pairs );
1069
+ sg_init_one (& sg , & vi -> ctrl_mq , sizeof (vi -> ctrl_mq ));
1069
1070
1070
1071
if (!virtnet_send_command (vi , VIRTIO_NET_CTRL_MQ ,
1071
1072
VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET , & sg )) {
@@ -1172,7 +1173,8 @@ static int virtnet_vlan_rx_add_vid(struct net_device *dev,
1172
1173
struct virtnet_info * vi = netdev_priv (dev );
1173
1174
struct scatterlist sg ;
1174
1175
1175
- sg_init_one (& sg , & vid , sizeof (vid ));
1176
+ vi -> ctrl_vid = vid ;
1177
+ sg_init_one (& sg , & vi -> ctrl_vid , sizeof (vi -> ctrl_vid ));
1176
1178
1177
1179
if (!virtnet_send_command (vi , VIRTIO_NET_CTRL_VLAN ,
1178
1180
VIRTIO_NET_CTRL_VLAN_ADD , & sg ))
@@ -1186,7 +1188,8 @@ static int virtnet_vlan_rx_kill_vid(struct net_device *dev,
1186
1188
struct virtnet_info * vi = netdev_priv (dev );
1187
1189
struct scatterlist sg ;
1188
1190
1189
- sg_init_one (& sg , & vid , sizeof (vid ));
1191
+ vi -> ctrl_vid = vid ;
1192
+ sg_init_one (& sg , & vi -> ctrl_vid , sizeof (vi -> ctrl_vid ));
1190
1193
1191
1194
if (!virtnet_send_command (vi , VIRTIO_NET_CTRL_VLAN ,
1192
1195
VIRTIO_NET_CTRL_VLAN_DEL , & sg ))
0 commit comments