diff options
Diffstat (limited to 'drivers/net/virtio_net.c')
-rw-r--r-- | drivers/net/virtio_net.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 9c82a39497e5..071855871524 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c | |||
@@ -621,12 +621,9 @@ static bool virtnet_send_command(struct virtnet_info *vi, u8 class, u8 cmd, | |||
621 | virtio_net_ctrl_ack status = ~0; | 621 | virtio_net_ctrl_ack status = ~0; |
622 | unsigned int tmp; | 622 | unsigned int tmp; |
623 | 623 | ||
624 | if (!virtio_has_feature(vi->vdev, VIRTIO_NET_F_CTRL_VQ)) { | 624 | /* Caller should know better */ |
625 | BUG(); /* Caller should know better */ | 625 | BUG_ON(!virtio_has_feature(vi->vdev, VIRTIO_NET_F_CTRL_VQ) || |
626 | return false; | 626 | (out + in > VIRTNET_SEND_COMMAND_SG_MAX)); |
627 | } | ||
628 | |||
629 | BUG_ON(out + in > VIRTNET_SEND_COMMAND_SG_MAX); | ||
630 | 627 | ||
631 | out++; /* Add header */ | 628 | out++; /* Add header */ |
632 | in++; /* Add return status */ | 629 | in++; /* Add return status */ |
@@ -640,8 +637,7 @@ static bool virtnet_send_command(struct virtnet_info *vi, u8 class, u8 cmd, | |||
640 | memcpy(&sg[1], data, sizeof(struct scatterlist) * (out + in - 2)); | 637 | memcpy(&sg[1], data, sizeof(struct scatterlist) * (out + in - 2)); |
641 | sg_set_buf(&sg[out + in - 1], &status, sizeof(status)); | 638 | sg_set_buf(&sg[out + in - 1], &status, sizeof(status)); |
642 | 639 | ||
643 | if (vi->cvq->vq_ops->add_buf(vi->cvq, sg, out, in, vi) != 0) | 640 | BUG_ON(vi->cvq->vq_ops->add_buf(vi->cvq, sg, out, in, vi)); |
644 | BUG(); | ||
645 | 641 | ||
646 | vi->cvq->vq_ops->kick(vi->cvq); | 642 | vi->cvq->vq_ops->kick(vi->cvq); |
647 | 643 | ||