raspberrypi / firmware

This repository contains pre-compiled binaries of the current Raspberry Pi kernel and modules, userspace libraries, and bootloader/GPU firmware.
5.15k stars 1.68k forks source link

Unable to handle kernel paging request at virtual address 00040004 #239

Closed ferren closed 10 years ago

ferren commented 10 years ago

Kernel version: 3.10.25+

I compiled a driver module from peak(peak-linux-driver-7.9), And when I type 'insmod pcan.ko', kernel crashed with the messages below.

[ 171.987546] pcan: Release_20130814_n (le) [ 171.987584] pcan: driver config [mod] [usb] [ 171.987852] usbcore: registered new interface driver pcan [ 171.987911] pcan: major 248. [ 171.987954] Unable to handle kernel paging request at virtual address 00040004 [ 171.998231] pgd = d9888000 [ 172.002438] [00040004] *pgd=00000000 [ 172.007445] Internal error: Oops: 5 [#1] PREEMPT ARM

ferren commented 10 years ago

When I use 'bcmrpi_defconfig' to compile the kernel (from github.com/raspberrypi/linux/ branch rpi-3.10.y), the issue can recur. But when I use 'bcmrpi_quick_defconfig' to compile the kernel. The driver module worked fine.

ferren commented 10 years ago

If comment out 'CONFIG_JUMP_LABEL=y' The issue will be resolve.

P33M commented 10 years ago

Out of interest, could you find out where the bug occurs?

You can use kdb (which should be enabled in the bcmrpi_defconfig) after the kernel crashes to find out which function the kernel was in (btc command in kdb).

ferren commented 10 years ago

I post the messages to

http://dpaste.com/1548715/ http://dpaste.com/1548728/

P33M commented 10 years ago

There's more in the trace log - it blew up in module_put but the bit we need is off the bottom of the screen. Pressing enter in the KDB more > prompt will show the remaining lines.

ferren commented 10 years ago

That is all. I retry it use the newest kernel from github, and paste the log below. http://dpaste.com/1552337/