Zwane Mwaikambo | 1 Aug 04:19 2003
Picon

oops in udp_queue_rcv_skb

I got this whilst doing transfers from a SAMBA server, kernel is 
2.6.0-test2-mm2 on a 3way. Is there any specific information you require?

Unable to handle kernel paging request at virtual address c4734068
 printing eip:
c04e58b6
*pde = 00012067
Oops: 0000 [#1]
PREEMPT SMP DEBUG_PAGEALLOC
CPU:    0
EIP:    0060:[<c04e58b6>]    Not tainted VLI
EFLAGS: 00010246
EIP is at udp_queue_rcv_skb+0x276/0x3e0
eax: 00000000   ebx: c8977060   ecx: 00000104   edx: 00000001
esi: c4734004   edi: c8977004   ebp: 00000000   esp: c06dde78
ds: 007b   es: 007b   ss: 0068
Process swapper (pid: 0, threadinfo=c06dc000 task=c0623a20)
Stack: c897706c c06dc000 00000202 00000000 0300a8c0 cad60084 c4734004 c8977004 
       cad60084 c97ef038 c04e5fe2 c8977004 c4734004 c06dc000 2003c000 0300a8c0 
       ca789004 0300a8c0 0a00a8c0 c0687d18 00000000 c4734004 0a00a8c0 c04bcfc2 
Call Trace:
 [<c04e5fe2>] udp_rcv+0x222/0x3e0
 [<c04bcfc2>] ip_local_deliver+0x102/0x270
 [<c04bd4ac>] ip_rcv+0x37c/0x4e0
 [<c04a7ee3>] netif_receive_skb+0x153/0x1d0
 [<c04a7fe7>] process_backlog+0x87/0x160
 [<c04a8144>] net_rx_action+0x84/0x160
 [<c0129173>] do_softirq+0xd3/0xe0
 [<c010c2a5>] do_IRQ+0x1b5/0x250
 [<c0106f30>] default_idle+0x0/0x40
(Continue reading)

Zwane Mwaikambo | 1 Aug 07:35 2003
Picon

oops in raw_rcv_skb

You can reproduce this one easily by doing 5-6 ping -f of a system on the 
network (not loopback), originally picked up at http://bugme.osdl.org/show_bug.cgi?id=937

Unable to handle kernel paging request at virtual address c5100068
 printing eip:
c02ae8b6
*pde = 00015067
*pte = 05100163
Oops: 0000 [#1]
CPU:    0
EIP:    0060:[<c02ae8b6>]    Not tainted
EFLAGS: 00010246
EIP is at raw_rcv_skb+0x156/0x220
eax: 00000040   ebx: c52ed060   ecx: c4f6e024   edx: 00000014
esi: c52ed004   edi: c5100004   ebp: c52ed06c   esp: c5661d24
ds: 007b   es: 007b   ss: 0068
Process ping (pid: 283, threadinfo=c5660000 task=c585f000)
Stack: c5100000 c1169890 00001000 00000206 00000000 c1169890 c5100000 0000005a
       c5100004 c52ed004 c4f6e024 c54a2004 c02aea1d c52ed004 c5100004 c54a2038
       00000030 00000001 c52ed004 c02ae569 c52ed004 c5100004 6164050a 1964050a
Call Trace:
 [<c02aea1d>] raw_rcv+0x9d/0x110
 [<c02ae569>] raw_v4_input+0xa9/0x130
 [<c028ad0b>] ip_local_deliver+0x8b/0x200
 [<c028b1fc>] ip_rcv+0x37c/0x47a
 [<c0118588>] kernel_map_pages+0x28/0x5c
 [<c027a205>] netif_receive_skb+0x165/0x1f0
 [<c027a319>] process_backlog+0x89/0x120
 [<c027a441>] net_rx_action+0x91/0x110
 [<c0123165>] do_softirq+0xd5/0xe0
(Continue reading)

Ville Nuorvala | 1 Aug 13:15 2003
Picon
Picon

[PATCH] IPV6: Incorrect hoplimit in ip6_push_pending_frames()

Hi,

I noticed the hop limit passed to ip6_append_data() isn't used by
ip6_push_pending_frames(), which might lead to unexpected behavior with
multicast and (ipv6-in-ipv6) tunneled packets. This patch (against Linux
2.6.0-test2 and cset 1.1595) fixes the problem.

Thanks,
Ville

diff -Nur linux-2.5.OLD/include/linux/ipv6.h linux-2.5/include/linux/ipv6.h
--- linux-2.5.OLD/include/linux/ipv6.h	Thu Jul 31 18:07:13 2003
+++ linux-2.5/include/linux/ipv6.h	Wed Jul 30 15:53:12 2003
 <at>  <at>  -189,6 +189,7  <at>  <at> 
 		struct ipv6_txoptions *opt;
 		struct rt6_info	*rt;
 		struct flowi *fl;
+		int hop_limit;
 	} cork;
 };

diff -Nur linux-2.5.OLD/net/ipv6/ip6_output.c linux-2.5/net/ipv6/ip6_output.c
--- linux-2.5.OLD/net/ipv6/ip6_output.c	Thu Jul 31 18:07:30 2003
+++ linux-2.5/net/ipv6/ip6_output.c	Wed Jul 30 22:11:51 2003
 <at>  <at>  -1243,6 +1243,7  <at>  <at> 
 		dst_hold(&rt->u.dst);
 		np->cork.rt = rt;
 		np->cork.fl = fl;
+		np->cork.hop_limit = hlimit;
 		inet->cork.fragsize = mtu = dst_pmtu(&rt->u.dst);
(Continue reading)

Matthew Wilcox | 1 Aug 17:02 2003
Picon

[PATCH] ethtool_ops rev 4


At 55k, I doubt you want to see it posted to the list; patch is available from

http://ftp.linux.org.uk/pub/linux/willy/patches/ethtool4.diff

and here's the diffstat

 drivers/net/8139too.c     |  330 ++++++++--------------
 drivers/net/tg3.c         |  584 ++++++++++++++++------------------------
 include/linux/ethtool.h   |  100 ++++++
 include/linux/netdevice.h |    5 
 net/core/Makefile         |    4 
 net/core/dev.c            |   16 -
 net/core/ethtool.c        |  671 ++++++++++++++++++++++++++++++++++++++++++++++
 7 files changed, 1154 insertions(+), 556 deletions(-)

Patch has received light testing on an rtl8139c card:

Settings for eth0:
        Supported ports: [ TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
        Advertised auto-negotiation: Yes
        Speed: 100Mb/s
        Duplex: Full
        Port: MII
        PHYAD: 32
(Continue reading)

Jeff Garzik | 1 Aug 17:40 2003
Picon

Re: [PATCH] ethtool_ops rev 4

On Fri, Aug 01, 2003 at 04:02:32PM +0100, Matthew Wilcox wrote:
> and here's the diffstat
> 
>  drivers/net/8139too.c     |  330 ++++++++--------------
>  drivers/net/tg3.c         |  584 ++++++++++++++++------------------------
>  include/linux/ethtool.h   |  100 ++++++
>  include/linux/netdevice.h |    5 
>  net/core/Makefile         |    4 
>  net/core/dev.c            |   16 -
>  net/core/ethtool.c        |  671 ++++++++++++++++++++++++++++++++++++++++++++++
>  7 files changed, 1154 insertions(+), 556 deletions(-)

Comments:

* need SET_ETHTOOL_OPS macro or HAVE_ETHTOOL_OPS test macro or similar

* I still do not see the need to change a simple storage of a constant
  (into ethtool_gdrvinfo) into _four_ separate function call hooks (reg
  dump len, eeprom dump len, nic-specific stats len, self-test len).
  Internal kernel code that needs this information is always a slow path
  anyway, so just call the ->get_drvinfo hook internally.

* I prefer not to add '#include <linux/types.h>' to ethtool.h

Other than those, looks real good.

	Jeff

James Morris | 1 Aug 17:50 2003
Picon

Re: oops in raw_rcv_skb

On Fri, 1 Aug 2003, Zwane Mwaikambo wrote:

> You can reproduce this one easily by doing 5-6 ping -f of a system on the 
> network (not loopback), originally picked up at http://bugme.osdl.org/show_bug.cgi?id=937

Any chance of getting a gdb traceback on this one? :-)

- James
--

-- 
James Morris
<jmorris <at> intercode.com.au>

Jeff Garzik | 1 Aug 18:25 2003
Picon

Re: [PATCH] ethtool_ops rev 4

On Fri, Aug 01, 2003 at 04:46:56PM +0100, Matthew Wilcox wrote:
> On Fri, Aug 01, 2003 at 11:40:21AM -0400, Jeff Garzik wrote:
> > Comments:
> > 
> > * need SET_ETHTOOL_OPS macro or HAVE_ETHTOOL_OPS test macro or similar
> 
> DaveM disagreed with that...

It's standard netdevice.h practice, and, he didn't disagree w/ my
rebuttal.

It is needed.

> > * I still do not see the need to change a simple storage of a constant
> >   (into ethtool_gdrvinfo) into _four_ separate function call hooks (reg
> >   dump len, eeprom dump len, nic-specific stats len, self-test len).
> >   Internal kernel code that needs this information is always a slow path
> >   anyway, so just call the ->get_drvinfo hook internally.
> 
> slow path, sure, but increased stack usage.  it's a tradeoff, and this way
> feels more clean to me.

Additing a function hook each time you want to retrieve a new integer
value?  That's feels overly excessive to me.

> > * I prefer not to add '#include <linux/types.h>' to ethtool.h
> 
> That means that any code which includes ethtool.h has to include types.h
> first (either implicitly or explicitly).  The rule so far has been that
> header files should call out their dependencies explictly with an include
(Continue reading)

Zwane Mwaikambo | 1 Aug 18:14 2003
Picon

Re: oops in raw_rcv_skb

On Sat, 2 Aug 2003, James Morris wrote:

> On Fri, 1 Aug 2003, Zwane Mwaikambo wrote:
> 
> > You can reproduce this one easily by doing 5-6 ping -f of a system on the 
> > network (not loopback), originally picked up at http://bugme.osdl.org/show_bug.cgi?id=937
> 
> Any chance of getting a gdb traceback on this one? :-)

Here is a new oops with the corresponding code. 2.6.0-test2-mm2

(gdb) list *raw_rcv_skb+0x1b5
0xc04e2235 is in raw_rcv_skb (sock.h:942).
937
938             skb->dev = NULL;
939             skb_set_owner_r(skb, sk);
940             skb_queue_tail(&sk->sk_receive_queue, skb);
941             if (!sock_flag(sk, SOCK_DEAD))
942                     sk->sk_data_ready(sk, skb->len);
943     out:
944             return err;
945     }

Unable to handle kernel paging request at virtual address c3148068
 printing eip:
c04e2235
*pde = 0000d067
Oops: 0000 [#1]
PREEMPT SMP DEBUG_PAGEALLOC
CPU:    0
(Continue reading)

Zwane Mwaikambo | 1 Aug 18:18 2003
Picon

Re: oops in raw_rcv_skb

On Fri, 1 Aug 2003, Zwane Mwaikambo wrote:

> Here is a new oops with the corresponding code. 2.6.0-test2-mm2
> 
> (gdb) list *raw_rcv_skb+0x1b5
> 0xc04e2235 is in raw_rcv_skb (sock.h:942).
> 937
> 938             skb->dev = NULL;
> 939             skb_set_owner_r(skb, sk);
> 940             skb_queue_tail(&sk->sk_receive_queue, skb);
> 941             if (!sock_flag(sk, SOCK_DEAD))
> 942                     sk->sk_data_ready(sk, skb->len);
> 943     out:
> 944             return err;
> 945     }

seems to be the same bug as the previous one i posted.

Picon

[PATCH] 2.4.x USAGI mipv6_ha_ipsec

Hello,

My 2.4.21 with USAGI 20030801 don't build
/net/ipv6/mobile_ip6/mipv6_ha_ipsec.c :
mipv6_ha_ipsec.c: In function `mipv6_change_sa_index':
mipv6_ha_ipsec.c:118: warning: implicit declaration of function `in6_ntop'
mipv6_ha_ipsec.c:118: warning: format argument is not a pointer (arg 4)
mipv6_ha_ipsec.c:119: warning: format argument is not a pointer (arg 4)
mipv6_ha_ipsec.c:126: warning: format argument is not a pointer (arg 4)
mipv6_ha_ipsec.c:127: warning: format argument is not a pointer (arg 4)
[...]

I search for the definition of in6_ntop, it in include/linux/inet.h
so I make that patch.

Thanks.

--- linux-2.4.21/net/ipv6/mobile_ip6/mipv6_ha_ipsec.c.orig	2003-08-01 19:37:22.000000000 +0200
+++ linux-2.4.21/net/ipv6/mobile_ip6/mipv6_ha_ipsec.c	2003-08-01 19:03:42.000000000 +0200
 <at>  <at>  -62,6 +62,7  <at>  <at> 
 #include <linux/init.h>
 #include <linux/types.h>
 #include <linux/socket.h>
+#include <linux/inet.h>
 #include <linux/in6.h>
 #include <linux/pfkeyv2.h>
 #include <net/spd.h>

--

-- 
Daniel 'NebuchadnezzaR' Dehennin
(Continue reading)


Gmane