[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] veth0 stuff in -unstable?



Gerd Knorr <kraxel@xxxxxxx> writes:

>                         for (i = 0; i < skb_shinfo(skb)->nr_frags; i++)
>                                 put_page(skb_shinfo(skb)->frags[i].page);
> 
> ebx is the loop count and is zero, so it's the first time we enter the
> loop.  skb_shinfo(skb)->frags[0].page is loaded into edx.  It is
> 0xffffffff (-1?).  Trying to dereference edx faults because it points
> into xen's memory area ...
> 
> So the question is why the heck the struct page pointer is -1 at this
> point?

Hmm, added a quick check to the most obvious place, that doesn't
trigger though, so it must happen somewhere else ...

Ideas anyone?

  Gerd

Index: linux-2.6.12-work/drivers/xen/netback/netback.c
===================================================================
--- linux-2.6.12-work.orig/drivers/xen/netback/netback.c        2005-07-14 
16:41:22.000000000 +0200
+++ linux-2.6.12-work/drivers/xen/netback/netback.c     2005-07-14 
16:43:18.000000000 +0200
@@ -626,6 +626,7 @@ static void net_tx_action(unsigned long 
             /* Append the packet payload as a fragment. */
             skb_shinfo(skb)->frags[0].page        = 
                 virt_to_page(MMAP_VADDR(pending_idx));
+            BUG_ON((void*)-1 == skb_shinfo(skb)->frags[0].page);
             skb_shinfo(skb)->frags[0].size        = txreq.size - data_len;
             skb_shinfo(skb)->frags[0].page_offset = 
                 (txreq.addr + data_len) & ~PAGE_MASK;

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.