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 buglog mailing list