virtio_net: Remove BUG() to avoid machine dead
authorXianting Tian <xianting.tian@linux.alibaba.com>
Sat, 5 Jun 2021 15:31:00 +0000 (11:31 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 19 Jul 2021 07:44:47 +0000 (09:44 +0200)
[ Upstream commit 85eb1389458d134bdb75dad502cc026c3753a619 ]

We should not directly BUG() when there is hdr error, it is
better to output a print when such error happens. Currently,
the caller of xmit_skb() already did it.

Signed-off-by: Xianting Tian <xianting.tian@linux.alibaba.com>
Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/virtio_net.c

index e2c6c56..91e0e62 100644 (file)
@@ -1563,7 +1563,7 @@ static int xmit_skb(struct send_queue *sq, struct sk_buff *skb)
        if (virtio_net_hdr_from_skb(skb, &hdr->hdr,
                                    virtio_is_little_endian(vi->vdev), false,
                                    0))
-               BUG();
+               return -EPROTO;
 
        if (vi->mergeable_rx_bufs)
                hdr->num_buffers = 0;