Openmoko Bug #2361: reproducible way to hang the kernel when changing baudrate of serial port
Openmoko Public Trac
bugs at docs.openmoko.org
Tue Aug 17 21:46:46 CEST 2010
#2361: reproducible way to hang the kernel when changing baudrate of serial port
--------------------+-------------------------------------------------------
Reporter: lindi | Owner: openmoko-kernel
Type: defect | Status: new
Priority: normal | Milestone:
Component: kernel | Version: unspecified
Severity: normal | Keywords: serial crash
Haspatch: 0 | Blockedby:
Estimated: | Patchreview:
Blocking: | Reproducible: always
--------------------+-------------------------------------------------------
{{{
Steps to reproduce:
1) om gps power 1
2) stty -F /dev/ttySAC1 raw
3)
echo -en "\xb5\x62\x06\x00\x00\x00\x06\x18" > /dev/ttySAC1
echo -en
"\xb5\x62\x06\x00\x14\x00\x01\x00\x00\x00\xd0\x08\x08\x00\x80\x25\x00\x00\x01\x00\x01\x00\x00\x00\x00\x00\xa2\xe9"
> /dev/ttySAC1
echo -en "\xb5\x62\x06\x01\x03\x00\x01\x03\x00\x0e\x48" > /dev/ttySAC1
echo -en "\xb5\x62\x06\x01\x03\x00\x01\x02\x00\x0d\x46" > /dev/ttySAC1
echo -en "\xb5\x62\x06\x01\x03\x00\x01\x12\x00\x1d\x66" > /dev/ttySAC1
echo -en "\xb5\x62\x06\x01\x03\x00\x01\x21\x00\x2c\x84" > /dev/ttySAC1
echo -en "\xb5\x62\x06\x01\x03\x00\x01\x04\x00\x0f\x4a" > /dev/ttySAC1
echo -en "\xb5\x62\x06\x01\x03\x00\x01\x30\x00\x3b\xa2" > /dev/ttySAC1
echo -en
"\xb5\x62\x09\x01\x09\x00\x14\x6c\x00\x00\x00\x00\x00\x00\xff\x92\xf7" >
/dev/ttySAC1
echo -en "\xb5\x62\x06\x01\x03\x00\x02\x10\x01\x1d\x66" > /dev/ttySAC1
echo -en "\xb5\x62\x06\x01\x03\x00\x02\x11\x01\x1e\x68" > /dev/ttySAC1
echo -en "\xb5\x62\x06\x08\x06\x00\x64\x00\x01\x00\x00\x00\x79\x10" >
/dev/ttySAC1
4) hexdump -C /dev/ttySAC1
5) kill hexdump with ctrl-c after 10 seconds
6) stty -F /dev/ttySAC1 38400
7) stty -F /dev/ttySAC1
Expected results:
7) stty shows the new baudrate
Actual results:
5) kernel stops responding. watchdog kills the system after a while
More info:
1) ramconsole reports
[21474773.005000] rxerr: port=1 ch=0x80, rxs=0x00000001
[21474773.010000] rxerr: port=1 ch=0x80, rxs=0x00000001
[21474773.015000] INFO: RCU detected CPU 0 stall (t=4294954603/8000
jiffies)
[21474773.015000] [<c00327a4>] (dump_stack+0x0/0x14) from [<c0077490>]
(print_cpu_stall+0x34/0x94)
[21474773.015000] [<c007745c>] (print_cpu_stall+0x0/0x94) from
[<c0077528>] (check_cpu_stall+0x38/0x5c)
[21474773.015000] r5:c0371fbc r4:c03d20b0
[21474773.015000] [<c00774f0>] (check_cpu_stall+0x0/0x5c) from
[<c0077564>] (__rcu_pending+0x18/0xa4)
[21474773.015000] [<c007754c>] (__rcu_pending+0x0/0xa4) from [<c0077608>]
(rcu_pending+0x18/0x4c)
[21474773.015000] r5:c7940240 r4:00000000
[21474773.015000] [<c00775f0>] (rcu_pending+0x0/0x4c) from [<c00586f0>]
(update_process_times+0x34/0x58)
[21474773.015000] [<c00586bc>] (update_process_times+0x0/0x58) from
[<c0031cc8>] (timer_tick+0xe4/0x108)
[21474773.015000] r5:00000000 r4:c03cef00
[21474773.015000] [<c0031be4>] (timer_tick+0x0/0x108) from [<c003e270>]
(s3c2410_timer_interrupt+0x10/0x18)
[21474773.015000] r5:00000000 r4:c036e14c
[21474773.015000] [<c003e260>] (s3c2410_timer_interrupt+0x0/0x18) from
[<c0074e00>] (handle_IRQ_event+0x44/0x80)
[21474773.015000] [<c0074dbc>] (handle_IRQ_event+0x0/0x80) from
[<c0076748>] (handle_edge_irq+0xd8/0x148)
[21474773.015000] r7:c03d2098 r6:c036e14c r5:0000001e r4:c0370fb8
[21474773.015000] [<c0076670>] (handle_edge_irq+0x0/0x148) from
[<c002d054>] (__exception_text_start+0x54/0x6c)
[21474773.015000] r7:36b4a597 r6:00004000 r5:c6d37c18 r4:0000001e
[21474773.015000] [<c002d000>] (__exception_text_start+0x0/0x6c) from
[<c002d944>] (__irq_svc+0x24/0xa0)
[21474773.015000] Exception stack(0xc6d37a70 to 0xc6d37ab8)
[21474773.015000] 7a60: c036eb90
00080c29 00000013 c036eb4c
[21474773.015000] 7a80: 00000012 c6d37ae0 c03cd559 36b4a597 89705f41
00000000 c6d37ae0 c6d37b2c
[21474773.015000] 7aa0: c6d37a90 c6d37ab8 c004f054 c004f694 60000013
ffffffff
[21474773.015000] r5:f4000000 r4:ffffffff
[21474773.015000] [<c004f378>] (vprintk+0x0/0x374) from [<c004f714>]
(printk+0x28/0x30)
[21474773.015000] [<c004f6ec>] (printk+0x0/0x30) from [<c01893e4>]
(s3c24xx_serial_rx_chars+0xcc/0x270)
[21474773.015000] r3:00000001 r2:00000080 r1:00000001 r0:c0335c50
[21474773.015000] [<c0189318>] (s3c24xx_serial_rx_chars+0x0/0x270) from
[<c0074e00>] (handle_IRQ_event+0x44/0x80)
[21474773.015000] [<c0074dbc>] (handle_IRQ_event+0x0/0x80) from
[<c0076894>] (handle_level_irq+0xdc/0xf8)
[21474773.015000] r7:00000102 r6:00000049 r5:00000049 r4:c03719cc
[21474773.015000] [<c00767b8>] (handle_level_irq+0x0/0xf8) from
[<c0038c34>] (s3c_irq_demux_uart+0x54/0xa8)
[21474773.015000] r5:00000001 r4:00000027
[21474773.015000] [<c0038be0>] (s3c_irq_demux_uart+0x0/0xa8) from
[<c0038cb4>] (s3c_irq_demux_uart1+0x14/0x18)
[21474773.015000] r6:00800000 r5:c6d37cc0 r4:00000027
[21474773.015000] [<c0038ca0>] (s3c_irq_demux_uart1+0x0/0x18) from
[<c002d054>] (__exception_text_start+0x54/0x6c)
[21474773.015000] [<c002d000>] (__exception_text_start+0x0/0x6c) from
[<c002d944>] (__irq_svc+0x24/0xa0)
[21474773.015000] Exception stack(0xc6d37c18 to 0xc6d37c60)
[21474773.015000] 7c00:
00000003 c6d36000
[21474773.015000] 7c20: 00000000 20000013 00000027 00000000 c6d36000
00000102 0000000a c03cd960
[21474773.015000] 7c40: c03cd9d4 c6d37c94 c6d37c98 c6d37c60 c0053d14
c0053a34 20000013 ffffffff
[21474773.015000] r5:f4000000 r4:ffffffff
[21474773.015000] [<c00539e8>] (__do_softirq+0x0/0x104) from [<c0053d14>]
(irq_exit+0x44/0x4c)
[21474773.015000] [<c0053cd0>] (irq_exit+0x0/0x4c) from [<c002d058>]
(__exception_text_start+0x58/0x6c)
[21474773.015000] [<c002d000>] (__exception_text_start+0x0/0x6c) from
[<c002d944>] (__irq_svc+0x24/0xa0)
[21474773.015000] Exception stack(0xc6d37cc0 to 0xc6d37d08)
[21474773.015000] 7cc0: 00000000 f4000000 00000000 00000000 c03719cc
40000013 c7bfdde0 00000049
[21474773.015000] 7ce0: c03719e4 c031785c c0189318 c6d37d2c c6d37cd8
c6d37d08 c0075f28 c00756e8
[21474773.015000] 7d00: 60000013 ffffffff
[21474773.015000] r5:f4000000 r4:ffffffff
[21474773.015000] [<c007555c>] (__setup_irq+0x0/0x1dc) from [<c00757f0>]
(request_irq+0xb8/0xe0)
[21474773.015000] r8:c03719cc r7:00000000 r6:00000049 r5:00000000
r4:c7bfdde0
[21474773.015000] [<c0075738>] (request_irq+0x0/0xe0) from [<c0188f4c>]
(s3c24xx_serial_startup+0x3c/0xb0)
[21474773.015000] [<c0188f10>] (s3c24xx_serial_startup+0x0/0xb0) from
[<c0186244>] (uart_startup+0x90/0x194)
[21474773.015000] r7:c7926e88 r6:c7926e98 r5:c037f000 r4:00000000
[21474773.015000] [<c01861b4>] (uart_startup+0x0/0x194) from [<c018802c>]
(uart_open+0x13c/0x194)
[21474773.015000] [<c0187ef0>] (uart_open+0x0/0x194) from [<c0170b9c>]
(__tty_open+0x200/0x314)
[21474773.015000] r8:c6c52400 r7:c7a579c0 r6:00000000 r5:c6c52400
r4:c7894220
[21474773.015000] [<c017099c>] (__tty_open+0x0/0x314) from [<c0170cc0>]
(tty_open+0x10/0x14)
[21474773.015000] [<c0170cb0>] (tty_open+0x0/0x14) from [<c00a31f4>]
(chrdev_open+0x144/0x164)
[21474773.015000] [<c00a30b0>] (chrdev_open+0x0/0x164) from [<c009ea18>]
(__dentry_open+0x150/0x260)
[21474773.015000] r8:c780ae20 r7:c00a30b0 r6:c7a410a4 r5:c7a579c0
r4:00000000
[21474773.015000] [<c009e8c8>] (__dentry_open+0x0/0x260) from [<c009fb08>]
(nameidata_to_filp+0x4c/0x64)
[21474773.015000] [<c009fabc>] (nameidata_to_filp+0x0/0x64) from
[<c00ab770>] (do_filp_open+0x2dc/0x670)
[21474773.015000] r5:c6d37ed8 r4:00000000
[21474773.015000] [<c00ab494>] (do_filp_open+0x0/0x670) from [<c009e7dc>]
(do_sys_open+0x5c/0xec)
[21474773.015000] [<c009e780>] (do_sys_open+0x0/0xec) from [<c009e8a4>]
(sys_open+0x24/0x28)
[21474773.015000] r8:c002df08 r7:00000005 r6:bef2e914 r5:00000000
r4:bef2ea0d
[21474773.015000] [<c009e880>] (sys_open+0x0/0x28) from [<c002dd60>]
(ret_fast_syscall+0x0/0x2c)
2) I'm using andy-tracking a3587e4ed77974ad
}}}
--
Ticket URL: <https://docs.openmoko.org/trac/ticket/2361>
docs.openmoko.org <http://docs.openmoko.org/trac/>
openmoko trac
More information about the openmoko-kernel
mailing list