[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <51131E99.8080400@gmail.com>
Date: Thu, 07 Feb 2013 11:25:13 +0800
From: Cong Wang <xiyou.wangcong@...il.com>
To: "Michael S. Tsirkin" <mst@...hat.com>
CC: netdev@...r.kernel.org, Eilon Greenstein <eilong@...adcom.com>,
Jeff Kirsher <jeffrey.t.kirsher@...el.com>,
Jesse Brandeburg <jesse.brandeburg@...el.com>,
Bruce Allan <bruce.w.allan@...el.com>,
Carolyn Wyborny <carolyn.wyborny@...el.com>,
Don Skidmore <donald.c.skidmore@...el.com>,
Greg Rose <gregory.v.rose@...el.com>,
Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@...el.com>,
Alex Duyck <alexander.h.duyck@...el.com>,
John Ronciak <john.ronciak@...el.com>,
Tushar Dave <tushar.n.dave@...el.com>,
Jitendra Kalsaria <jitendra.kalsaria@...gic.com>,
Sony Chacko <sony.chacko@...gic.com>, linux-driver@...gic.com,
John Fastabend <john.r.fastabend@...el.com>,
"David S. Miller" <davem@...emloft.net>,
Jacob Keller <jacob.e.keller@...el.com>,
linux-kernel@...r.kernel.org, e1000-devel@...ts.sourceforge.net,
bhutchings@...arflare.com, eric.dumazet@...il.com
Subject: Re: [PATCH 0/2] fix kernel crash with macvtap on top of LRO
On 02/07/2013 07:02 AM, Michael S. Tsirkin wrote:
> At the moment, macvtap crashes are observed if macvtap is attached
> to an interface with LRO enabled.
> The crash in question is BUG() in macvtap_skb_to_vnet_hdr.
> This happens because several drivers set gso_size but not gso_type
> in incoming skbs.
> The following patches fix this for
> Additionally, cbf1de72324a8105ddcc3d9ce9acbc613faea17e is required
> to fix this for broadcom - would it make sense to cherry-pick
> this patch into 3.8?
Doesn't macvtap need to call skb_warn_if_lro() too like bridge and
openvswitch? Something like...
diff --git a/drivers/net/macvtap.c b/drivers/net/macvtap.c
index b181dfb..b2c6227 100644
--- a/drivers/net/macvtap.c
+++ b/drivers/net/macvtap.c
@@ -253,6 +253,9 @@ static int macvtap_forward(struct net_device *dev,
struct sk_buff *skb)
if (!q)
goto drop;
+ if (unlikely(skb_warn_if_lro(skb)))
+ goto drop;
+
if (skb_queue_len(&q->sk.sk_receive_queue) >= dev->tx_queue_len)
goto drop;
I am not saying these drivers don't need to fix, I am just saying if we
need to fix LRO case.
Thanks.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists