Fixed
Created: Jul 6, 2016
Updated: Dec 3, 2018
Resolved Date: Aug 10, 2016
Found In Version: 6.0
Fix Version: 6.0.0.31
Severity: Standard
Applicable for: Wind River Linux 6
Component/s: Kernel
when build kgdboc driver as module, in cgl project, after install kgdboc module, and then remove this module, it will let kernel hang and show the following log:
/***********************************************************************************/
root@RCU-1:/mnt/userdir/yxdu> rmmod kgdboc
root@RCU-1:/mnt/userdir/yxdu>
last sysfs file: /sys/bus/pci/drivers/linux-kernel-bde/uevent
Modules linked in: rcucpld rcusys pciedrv coreCpld spi pcie watchdog ttyVS linux_kernel_dfe_bde(P) linux_user_dfe_bde(P) linux_kernel_bde kfh [last unloaded: kgdboc]
NIP: fb9fc420 LR: c035fc00 CTR: fb9fc420
REGS: c0797ce0 TRAP: 0700 Tainted: P (2.6.34.15-grsec-WR4.3.0.0_cgl)
MSR: 00021202 <ME,CE,DE> CR: 24042028 XER: 00000000
TASK = c0765380[0] 'swapper' THREAD: c0796000 CPU: 0
GPR00: fb9fc420 c0797d90 c0765380 0000000d 00000000 00000024 1dcd6500 00069202
GPR08: 00000002 00000000 00021202 c0796000 c0796000 0c0c6206 00000000 00000000
GPR16: 00000000 c0688f14 c0790230 00000000 0000000d ebe79000 c079b104 c0797d99
GPR24: c0797d98 00000004 00029202 00000001 00000000 00000061 00000100 c0873870
NIP [fb9fc420] 0xfb9fc420
LR [c035fc00] serial8250_handle_port+0x110/0x400
Call Trace:
[c0797d90] [c035fb08] serial8250_handle_port+0x18/0x400 (unreliable)
[c0797de0] [c035ff88] serial8250_interrupt+0x98/0x130
[c0797e10] [c00a8814] handle_irq_action+0x84/0xa0
[c0797e30] [c00a88e0] handle_IRQ_event+0xb0/0x310
[c0797e80] [c00ab754] handle_fasteoi_irq+0x94/0x1a0
[c0797ea0] [c000544c] native_do_IRQ+0xec/0x130
[c0797ec0] [c0003ec0] do_IRQ+0x10/0x20
[c0797ed0] [c0012180] ret_from_except+0x0/0x18
--- Exception: 501 at cpu_idle+0x90/0xf0
LR = cpu_idle+0x90/0xf0
[c0797f90] [c0008f18] cpu_idle+0xe8/0xf0 (unreliable)
[c0797fb0] [c00026e0] rest_init+0xc0/0xe0
[c0797fc0] [c0722a74] start_kernel+0x310/0x324
[c0797ff0] [c00003c4] skpinv+0x2dc/0x318
Instruction dump:
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
Kernel panic - not syncing: Fatal exception in interrupt
Call Trace:
[c0797b10] [c0007ce0] show_stack+0x50/0x160 (unreliable)
[c0797b40] [c0595974] panic+0x12c/0x1a4
[c0797b90] [c000eb70] die+0x140/0x230
[c0797bc0] [c000ef30] _exception+0x150/0x270
[c0797cd0] [c0012134] ret_from_except_full+0x0/0x4c
--- Exception: 700 at 0xfb9fc420
LR = serial8250_handle_port+0x110/0x400
[c0797d90] [c035fb08] serial8250_handle_port+0x18/0x400 (unreliable)
[c0797de0] [c035ff88] serial8250_interrupt+0x98/0x130
[c0797e10] [c00a8814] handle_irq_action+0x84/0xa0
[c0797e30] [c00a88e0] handle_IRQ_event+0xb0/0x310
[c0797e80] [c00ab754] handle_fasteoi_irq+0x94/0x1a0
[c0797ea0] [c000544c] native_do_IRQ+0xec/0x130
[c0797ec0] [c0003ec0] do_IRQ+0x10/0x20
[c0797ed0] [c0012180] ret_from_except+0x0/0x18
--- Exception: 501 at cpu_idle+0x90/0xf0
LR = cpu_idle+0x90/0xf0
[c0797f90] [c0008f18] cpu_idle+0xe8/0xf0 (unreliable)
[c0797fb0] [c00026e0] rest_init+0xc0/0xe0
[c0797fc0] [c0722a74] start_kernel+0x310/0x324
[c0797ff0] [c00003c4] skpinv+0x2dc/0x318
/***********************************************************************************/
1, build p2041 cgl project with the following config:
configure --enable-rootfs=glibc_cgl --enable-board=fsl_p204x --enable-kernel=cgl --with-product-dir=/WindRiver-4.3/wrlinux-4/wrlinux --enable-parallel-pkgbuilds=4 --enable-jobs=4 --with-rcpl-version=0029
2, change kgdboc driver to module
3, after boot target, insert kgdboc module with the following command:
# insmod kgdboc kgdboc=ttyS0,115200
then remove with
# rmmod kgdboc
the system will hang there after several seconds.