Re: 8.0RC1 - Kernel panic when loading a ndisgen-generated module (rtl8180_sys)

From: Raphael Kubo da Costa <kubito_at_gmail.com>
Date: Tue, 22 Sep 2009 18:49:26 -0300
2009/9/22 Paul B. Mahol <onemda_at_gmail.com>:
> On 9/22/09, Raphael Kubo da Costa <kubito_at_gmail.com> wrote:
>> 2009/9/22 Paul B. Mahol <onemda_at_gmail.com>:
>>> On 9/22/09, Raphael Kubo da Costa <kubito_at_gmail.com> wrote:
>>>> Hi there,
>>>>
>>>> I'm not sure this is the proper place to send this, so please tell me
>>>> if I should send this mail to another mailing list or file a PR about
>>>> this.
>>>>
>>>> I used freebsd-update to upgrade from 7.2-RELEASE-p3 to 8.0-RC1.
>>>> Everything went fine, but I had to regenerate my wireless card
>>>> (Realtek RTL8180L) module with ndisgen. However, when I load the
>>>> generated module with kldload I get a kernel panic and the system
>>>> reboots. I also have a 67mb vmcore; I can try to make it available if
>>>> needed.
>>>
>>> You are saying that it worked without problems on 7.2?
>> Yes, until this upgrade everything worked fine.
>>
>>> There were very little changes with sys/compat/ndis between that two
>>> versions
>>> so if problem really exist it must be somewhere in if_ndis module.
>>> Are you sure that complete world and kernel are in sync?
>> I think so; I've followed
>> http://www.daemonology.net/blog/2009-07-11-freebsd-update-to-8.0-beta1.html
>> and ran "freebsd-update -r 8.0-RC1 upgrade", "freebsd-update install",
>> rebooted, reran "freebsd-update install", rebooted and ran ndisgen.
>
> Once more, ndisgen(ndiscvt) requires correct kernel sources to make
> working kernel module.
>
> For example you _must_ have 8.0-RC1 in /src and not some other version.
>
>>
>>> And you really did loaded regenerated module?
>> Yes, I ran ndisgen and used kldload to load the generated module and
>> besides I copied the module to /boot/modules and tried loading it
>> after the kernel panics.
>>
>>>>
>>>> I'll paste some sections from core.txt; I can attach the whole file if
>>>> you
>>>> want.
>>>>
>>>> -----------
>>>>
>>>> Unread portion of the kernel message buffer:
>>>>
>>>>
>>>> Fatal trap 12: page fault while in kernel mode
>>>> cpuid = 0; apic id = 00
>>>> fault virtual address = 0xc4ea831a
>>>> fault code            = supervisor read, page not present
>>>> instruction pointer   = 0x20:0xc4df96b3
>>>> stack pointer         = 0x28:0xe3744a44
>>>> frame pointer         = 0x28:0xe3744aac
>>>> code segment          = base 0x0, limit 0xfffff, type 0x1b
>>>>                       = DPL 0, pres 1, def32 1, gran 1
>>>> processor eflags      = interrupt enabled, resume, IOPL = 0
>>>> current process               = 1110 (ifconfig)
>>>> trap number           = 12
>>>> panic: page fault
>>>> cpuid = 0
>>>> Uptime: 36s
>>>> Physical memory: 883 MB
>>>> Dumping 67 MB: 52 36 20 4
>>>>
>>>> Reading symbols from /boot/kernel/snd_hda.ko...Reading symbols from
>>>> /boot/kernel/snd_hda.ko.symbols...done.
>>>> done.
>>>> Loaded symbols for /boot/kernel/snd_hda.ko
>>>> Reading symbols from /boot/kernel/sound.ko...Reading symbols from
>>>> /boot/kernel/sound.ko.symbols...done.
>>>> done.
>>>> Loaded symbols for /boot/kernel/sound.ko
>>>> Reading symbols from /boot/kernel/linprocfs.ko...Reading symbols from
>>>> /boot/kernel/linprocfs.ko.symbols...done.
>>>> done.
>>>> Loaded symbols for /boot/kernel/linprocfs.ko
>>>> Reading symbols from /boot/kernel/linux.ko...Reading symbols from
>>>> /boot/kernel/linux.ko.symbols...done.
>>>> done.
>>>> Loaded symbols for /boot/kernel/linux.ko
>>>> Reading symbols from /boot/kernel/reiserfs.ko...Reading symbols from
>>>> /boot/kernel/reiserfs.ko.symbols...done.
>>>> done.
>>>> Loaded symbols for /boot/kernel/reiserfs.ko
>>>> Reading symbols from /boot/kernel/logo_saver.ko...Reading symbols from
>>>> /boot/kernel/logo_saver.ko.symbols...done.
>>>> done.
>>>> Loaded symbols for /boot/kernel/logo_saver.ko
>>>> Reading symbols from /boot/modules/rtl8180_sys.ko...done.
>>>> Loaded symbols for /boot/modules/rtl8180_sys.ko
>>>> Reading symbols from /boot/kernel/if_ndis.ko...Reading symbols from
>>>> /boot/kernel/if_ndis.ko.symbols...done.
>>>> done.
>>>> Loaded symbols for /boot/kernel/if_ndis.ko
>>>> Reading symbols from /boot/kernel/ndis.ko...Reading symbols from
>>>> /boot/kernel/ndis.ko.symbols...done.
>>>> done.
>>>> Loaded symbols for /boot/kernel/ndis.ko
>>>> #0  doadump () at pcpu.h:246
>>>> 246   pcpu.h: No such file or directory.
>>>>       in pcpu.h
>>>> (kgdb) #0  doadump () at pcpu.h:246
>>>> #1  0xc08823c7 in boot (howto=260) at
>>>> /usr/src/sys/kern/kern_shutdown.c:416
>>>> #2  0xc08826b9 in panic (fmt=Variable "fmt" is not available.
>>>> ) at /usr/src/sys/kern/kern_shutdown.c:579
>>>> #3  0xc0bb346c in trap_fatal (frame=0xe3744a04, eva=3303703322)
>>>>     at /usr/src/sys/i386/i386/trap.c:933
>>>> #4  0xc0bb36f0 in trap_pfault (frame=0xe3744a04, usermode=0,
>>>> eva=3303703322)
>>>>     at /usr/src/sys/i386/i386/trap.c:846
>>>> #5  0xc0bb40d5 in trap (frame=0xe3744a04) at
>>>> /usr/src/sys/i386/i386/trap.c:528
>>>> #6  0xc0b96a4b in calltrap () at /usr/src/sys/i386/i386/exception.s:165
>>>> #7  0xc4df96b3 in ndis_rtl8180_sys_drv_data_start ()
>>>>    from /boot/modules/rtl8180_sys.ko
>>>> Previous frame inner to this frame (corrupt stack?)
>>>> (kgdb)
>>>>
>>>>
>>>> ------ Last lines from dmesg --------
>>>> Tue Sep 22 01:02:49 BRT 2009
>>>> Sep 22 01:02:55 borges login: ROOT LOGIN (root) ON ttyv0
>>>> warning: KLD '/boot/modules/rtl8180_sys.ko' is newer than the
>>>> linker.hints
>>>> file
>>>> ndis0: <Realtek RTL8180 Wireless LAN (Mini-)PCI NIC> port
>>>> 0xe800-0xe8ff mem 0xdffffc00-0xdffffcff irq 16 at device 6.0 on pci1
>>>> ndis0: [ITHREAD]
>>>> ndis0: NDIS API version: 5.1
>>>> ifa_add_loopback_route: insertion failed
>>>
>>> Try to enable debug.ndis sysctl.
>> And then paste the same sections here?
>
> You can post newly introduced messages.(aka diff)
>>>>
>>>> Fatal trap 12: page fault while in kernel mode
>>>> cpuid = 0; apic id = 00
>>>> fault virtual address = 0xc4ea831a
>>>> fault code            = supervisor read, page not present
>>>> instruction pointer   = 0x20:0xc4df96b3
>>>> stack pointer         = 0x28:0xe3744a44
>>>> frame pointer         = 0x28:0xe3744aac
>>>> code segment          = base 0x0, limit 0xfffff, type 0x1b
>>>>                       = DPL 0, pres 1, def32 1, gran 1
>>>> processor eflags      = interrupt enabled, resume, IOPL = 0
>>>> current process               = 1110 (ifconfig)
>>>
>>> What commands are to reproduce this?
>> # kldload rtl8180_sys
>
> But up there is ifconfig mentioned so I need exact way to reproduce
> it because backtrace is misleading.
While I'm not at home to do the other things you've mentioned: I don't
even have time to run ifconfig - I've commented out the lines enabling
ndis, if_ndis and rtl8180_sys in /boot/loader.conf. I just run kldload
rtl8180_sys the kernel panics automatically.
Received on Tue Sep 22 2009 - 19:49:28 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:55 UTC