virtio_net: don't crash if virtqueue is broken.
A bad implementation of virtio might cause us to mark the virtqueue broken: we'll dev_err() in that case, and the device is useless, but let's not BUG_ON(). Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
Родитель
1f74ef0f2d
Коммит
a7c58146cf
|
@ -938,7 +938,7 @@ static bool virtnet_send_command(struct virtnet_info *vi, u8 class, u8 cmd,
|
||||||
sgs[out_num] = &stat;
|
sgs[out_num] = &stat;
|
||||||
|
|
||||||
BUG_ON(out_num + 1 > ARRAY_SIZE(sgs));
|
BUG_ON(out_num + 1 > ARRAY_SIZE(sgs));
|
||||||
BUG_ON(virtqueue_add_sgs(vi->cvq, sgs, out_num, 1, vi, GFP_ATOMIC) < 0);
|
virtqueue_add_sgs(vi->cvq, sgs, out_num, 1, vi, GFP_ATOMIC);
|
||||||
|
|
||||||
if (unlikely(!virtqueue_kick(vi->cvq)))
|
if (unlikely(!virtqueue_kick(vi->cvq)))
|
||||||
return status == VIRTIO_NET_OK;
|
return status == VIRTIO_NET_OK;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче