netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] deal with if frags[0].size is pulled to 0 in dev_gro_receive()
@ 2010-08-03  3:17 xiaohui.xin
  2010-08-03  4:56 ` Herbert Xu
  0 siblings, 1 reply; 3+ messages in thread
From: xiaohui.xin @ 2010-08-03  3:17 UTC (permalink / raw)
  To: netdev, herbert, davem; +Cc: Xin Xiaohui

From: Xin Xiaohui <xiaohui.xin@intel.com>

Now in dev_gro_receive(), if frags[0].size is pulled to 0, memmove is called and
the null page is released. But it's not enough, we should reset size of each frags
left as well. Compared to this, we can have another way to do this, it's not do do
anything at all.

Signed-off-by: Xin Xiaohui <xiaohui.xin@intel.com>

---
 net/core/dev.c |    7 -------
 1 files changed, 0 insertions(+), 7 deletions(-)

diff --git a/net/core/dev.c b/net/core/dev.c
index 264137f..28cdbbf 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -2730,13 +2730,6 @@ pull:
 
 		skb_shinfo(skb)->frags[0].page_offset += grow;
 		skb_shinfo(skb)->frags[0].size -= grow;
-
-		if (unlikely(!skb_shinfo(skb)->frags[0].size)) {
-			put_page(skb_shinfo(skb)->frags[0].page);
-			memmove(skb_shinfo(skb)->frags,
-				skb_shinfo(skb)->frags + 1,
-				--skb_shinfo(skb)->nr_frags);
-		}
 	}
 
 ok:
-- 
1.5.4.4


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] deal with if frags[0].size is pulled to 0 in dev_gro_receive()
  2010-08-03  3:17 [PATCH] deal with if frags[0].size is pulled to 0 in dev_gro_receive() xiaohui.xin
@ 2010-08-03  4:56 ` Herbert Xu
  2010-08-03  5:03   ` David Miller
  0 siblings, 1 reply; 3+ messages in thread
From: Herbert Xu @ 2010-08-03  4:56 UTC (permalink / raw)
  To: xiaohui.xin; +Cc: netdev, davem

On Tue, Aug 03, 2010 at 11:17:19AM +0800, xiaohui.xin@intel.com wrote:
> From: Xin Xiaohui <xiaohui.xin@intel.com>
> 
> Now in dev_gro_receive(), if frags[0].size is pulled to 0, memmove is called and
> the null page is released. But it's not enough, we should reset size of each frags
> left as well. Compared to this, we can have another way to do this, it's not do do
> anything at all.
> 
> Signed-off-by: Xin Xiaohui <xiaohui.xin@intel.com>

This patch can only work if you audit everything that uses skb
frags to ensure that they can tolerate a zero-sided frag.

I think it's much easier to just fix the memmove.

Thanks,
-- 
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] deal with if frags[0].size is pulled to 0 in dev_gro_receive()
  2010-08-03  4:56 ` Herbert Xu
@ 2010-08-03  5:03   ` David Miller
  0 siblings, 0 replies; 3+ messages in thread
From: David Miller @ 2010-08-03  5:03 UTC (permalink / raw)
  To: herbert; +Cc: xiaohui.xin, netdev

From: Herbert Xu <herbert@gondor.apana.org.au>
Date: Tue, 3 Aug 2010 12:56:38 +0800

> On Tue, Aug 03, 2010 at 11:17:19AM +0800, xiaohui.xin@intel.com wrote:
>> From: Xin Xiaohui <xiaohui.xin@intel.com>
>> 
>> Now in dev_gro_receive(), if frags[0].size is pulled to 0, memmove is called and
>> the null page is released. But it's not enough, we should reset size of each frags
>> left as well. Compared to this, we can have another way to do this, it's not do do
>> anything at all.
>> 
>> Signed-off-by: Xin Xiaohui <xiaohui.xin@intel.com>
> 
> This patch can only work if you audit everything that uses skb
> frags to ensure that they can tolerate a zero-sided frag.
> 
> I think it's much easier to just fix the memmove.

Agreed.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2010-08-03  5:03 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-08-03  3:17 [PATCH] deal with if frags[0].size is pulled to 0 in dev_gro_receive() xiaohui.xin
2010-08-03  4:56 ` Herbert Xu
2010-08-03  5:03   ` David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).