All of lore.kernel.org
 help / color / mirror / Atom feed
From: Xianting Tian <xianting.tian@linux.alibaba.com>
To: Andrew Lunn <andrew@lunn.ch>
Cc: mst@redhat.com, jasowang@redhat.com, davem@davemloft.net,
	kuba@kernel.org, virtualization@lists.linux-foundation.org,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] virtio_net: Use BUG_ON instead of if condition followed by BUG
Date: Tue, 18 May 2021 17:20:36 +0800	[thread overview]
Message-ID: <32044caf-8da4-8bbd-86d6-693ab284351c@linux.alibaba.com> (raw)
In-Reply-To: <YKJ/KPtw5Xcjsea+@lunn.ch>

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:
>> BUG_ON() uses unlikely in if(), which can be optimized at compile time.
>>
>> Signed-off-by: Xianting Tian <xianting.tian@linux.alibaba.com>
>> ---
>>   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
> 

  reply	other threads:[~2021-05-18  9:20 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-17 13:31 [PATCH] virtio_net: Use BUG_ON instead of if condition followed by BUG Xianting Tian
2021-05-17 14:35 ` Andrew Lunn
2021-05-17 14:35   ` Andrew Lunn
2021-05-18  9:20   ` Xianting Tian [this message]
2021-05-17 18:43 ` virtio_net: BQL? Dave Taht
2021-05-17 20:23   ` Willem de Bruijn
2021-05-17 20:23     ` Willem de Bruijn
2021-05-17 21:48     ` Dave Taht
2021-05-17 23:00       ` [Bloat] " Stephen Hemminger
2021-05-17 23:32         ` Dave Taht
2021-05-18  2:48           ` Stephen Hemminger
2021-05-19 14:31         ` Eric Dumazet
2021-05-19 14:31           ` Eric Dumazet
2021-05-19 22:53           ` Jakub Kicinski
2021-05-24  2:53       ` Jason Wang
2021-05-24  2:53         ` Jason Wang
2021-05-24  9:10         ` Michael S. Tsirkin
2021-05-24  9:10           ` Michael S. Tsirkin
2021-05-19  8:35   ` Michael S. Tsirkin
2021-05-19  8:35     ` Michael S. Tsirkin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=32044caf-8da4-8bbd-86d6-693ab284351c@linux.alibaba.com \
    --to=xianting.tian@linux.alibaba.com \
    --cc=andrew@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=jasowang@redhat.com \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mst@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=virtualization@lists.linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.