From mboxrd@z Thu Jan 1 00:00:00 1970 From: Steven Rostedt Subject: Re: NULL pointer dereference when loading the gre module (3.10.0-rc4) Date: Fri, 07 Jun 2013 14:26:08 -0400 Message-ID: <1370629568.9844.87.camel@gandalf.local.home> References: <20130606221656.GA11475@uio.no> <20130607030648.GA28618@home.goodmis.org> <20130607085421.GF15083@uio.no> <1370612441.24311.411.camel@edumazet-glaptop> <1370618100.9844.73.camel@gandalf.local.home> <20130607154634.GA7529@uio.no> <1370621543.9844.78.camel@gandalf.local.home> <20130607175233.GA20230@uio.no> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Cc: Eric Dumazet , linux-kernel@vger.kernel.org, davem@davemloft.net, netdev@vger.kernel.org, Rusty Russell , Pravin B Shelar To: "Steinar H. Gunderson" Return-path: In-Reply-To: <20130607175233.GA20230@uio.no> Sender: linux-kernel-owner@vger.kernel.org List-Id: netdev.vger.kernel.org On Fri, 2013-06-07 at 19:52 +0200, Steinar H. Gunderson wrote: > On Fri, Jun 07, 2013 at 12:12:23PM -0400, Steven Rostedt wrote: > >> Ffffffffa0e76000 u ip_tunnel_init_net [ip_gre] > > What do you get if you do an objdump -Dr ip_gre.ko > > > > And then look for ipgre_init, and then subtract 0xb053 (45139) from its > > address. As that is: ffffffffa0e81055 - ffffffffa0e76002, then see if > > that object file has anything in that location. > > pannekake:~> objdump -Dr /lib/modules/3.10.0-rc4/kernel/net/ipv4/ip_gre.ko | grep ipgre_init > 0000000000000000 : > 0: 8b 35 00 00 00 00 mov 0x0(%rip),%esi # 6 > 13: e8 00 00 00 00 callq 18 > > Ie., the symbol doesn't show up in the disassembly (for whatever reason). Ah, that's because of this: module_init(ipgre_init); Where it makes it into: 00000000 : 0: 55 push %ebp 1: 89 e5 mov %esp,%ebp 3: 53 push %ebx 4: 83 ec 08 sub $0x8,%esp 7: c7 04 24 00 00 00 00 movl $0x0,(%esp) a: R_386_32 .rodata.str1.4 We can use ipgre_tap_init_net, and the offset of 0xb032 (45106) as that was 0xffffffffa0e5d034 - 0xffffffffa0e52002. Do you have CONFIG_NET_NS set? You can also cat /proc/modules. It gives you where the modules are located. -- Steve