Thread (14 messages) 14 messages, 9 authors, 2021-05-24

Re: [PATCH] virtio_net: Use BUG_ON instead of if condition followed by BUG

From: Xianting Tian <hidden>
Date: 2021-05-18 09:20:45
Also in: lkml

thanks for your comments,
It is a good idea, I think we can follow the similar logic in function 
'receive_buf':
	if (virtio_net_hdr_to_skb(skb, &hdr->hdr,
				  virtio_is_little_endian(vi->vdev))) {
		net_warn_ratelimited("%s: bad gso: type: %u, size:%u\n",
				     dev->name, hdr->hdr.gso_type,
				     hdr->hdr.gso_size);
		goto frame_err;
	}

I will summit a new patch later.


在 2021/5/17 下午10:35, Andrew Lunn 写道:
On Mon, May 17, 2021 at 09:31:19PM +0800, Xianting Tian wrote:
quoted
BUG_ON() uses unlikely in if(), which can be optimized at compile time.

Signed-off-by: Xianting Tian <redacted>
---
  drivers/net/virtio_net.c | 5 ++---
  1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index c921ebf3ae82..212d52204884 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -1646,10 +1646,9 @@ static int xmit_skb(struct send_queue *sq, struct
sk_buff *skb)
  	else
  		hdr = skb_vnet_hdr(skb);

-	if (virtio_net_hdr_from_skb(skb, &hdr->hdr,
How fatal is it not being able to get the header from the skb? There
has been push back on the use of BUG() or its variants, since it kills
the machine dead. Would it be possible to turn this into a WARN_ON and
return -EPROTO or something?

        Andrew
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help