Armadilloフォーラム

起動時にkernel panicが発生して停止してしまいます

t-yamada

2014年8月29日 9時43分

掲題の件について起動時ログを参照していたところ、USB1.1 OHCIでエラーが発生している事が分かりました。
(ログは下記の通りとなります。)

hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
rmobile-ohci-driver rmobile-ohci-driver: R-Mobile OHCI
rmobile-ohci-driver rmobile-ohci-driver: new USB bus registered, assigned bus number 2
rmobile-ohci-driver rmobile-ohci-driver: irq 266, io mem 0xc6700000
Unable to handle kernel NULL pointer dereference at virtual address 0000000c
pgd = c0004000
[0000000c] *pgd=00000000
Internal error: Oops: 5 [#1] PREEMPT ARM
Modules linked in:
CPU: 0    Not tainted  (3.4-at9 #1)
PC is at ohci_irq+0x18/0x478
LR is at usb_hcd_irq+0x38/0x48
pc : [<c02acab4>]    lr : [<c02966f0>]    psr: 60000193
sp : d3837ad8  ip : d3837b18  fp : d3837b14
r10: 00000001  r9 : c05876e7  r8 : 00000001
r7 : 00000080  r6 : 0000010a  r5 : 00000000  r4 : d3345400
r3 : c02aca9c  r2 : d3837ab8  r1 : d3345400  r0 : d3345400
Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
Control: 10c53c7d  Table: 40004059  DAC: 00000015
Process swapper (pid: 1, stack limit = 0xd38362e8)
Stack: (0xd3837ad8 to 0xd3838000)
7ac0:                                                       c02a8f28 c029708c
7ae0: a0000193 d3345d84 d3837b0c a0000193 d380edc0 0000010a 00000080 00000001
7b00: c05876e7 00000001 d3837b2c d3837b18 c02966f0 c02acaa8 c02966b8 c101f500
7b20: d3837b64 d3837b30 c006c1e0 c02966c4 58ffc527 00000000 59682f00 d380edc0
7b40: c101f780 d3837be8 d3837c1c 0000000a c04d9354 00000000 d3837b7c d3837b68
7b60: c006c39c c006c1b4 d380edc0 d3837cb0 d3837b94 d3837b80 c006eab0 c006c34c
7b80: c006ea04 0000010a d3837bac d3837b98 c006bae4 c006ea10 00000160 0000010a
7ba0: d3837bc4 d3837bb0 c000e4ac c006bac8 d8802000 c0556074 d3837be4 d3837bc8
7bc0: c00084c4 c000e450 c00230a4 c00230b8 20000113 ffffffff d3837c64 d3837be8
7be0: c000d7c0 c0008494 c0599540 00000000 d3837c18 00000000 d3836000 00000202
7c00: c0599540 d3837ce4 0000000a c04d9354 00000000 d3837c64 d3837c30 d3837c30
7c20: c00230a4 c00230b8 20000113 ffffffff d38082c0 00000000 d3837c5c 0000005e
7c40: 00000000 d3837cb0 d3837ce4 d3837cf8 c04d9354 60000013 d3837c74 d3837c68
7c60: c00235b8 c002306c d3837c8c d3837c78 c000e4b0 c0023574 d8802000 c0556074
7c80: d3837cac d3837c90 c00084c4 c000e450 c001e048 c001e54c 60000013 ffffffff
7ca0: d3837d84 d3837cb0 c000d7c0 c0008494 c003f258 d3837c88 c0567880 c0567880
7cc0: 00000001 0000004a c0589160 00000000 d3837cf8 c04d9354 60000013 d3837d84
7ce0: d3837cb8 d3837cf8 c001e048 c001e54c 60000013 ffffffff c00701d0 00000000
7d00: 6963686f 6463685f 6273753a 00000032 00000000 00000000 00000000 00000000
7d20: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
7d40: 00000000 00000000 00000000 00000000 00000006 00000000 00000000 c04c7911
7d60: d3837ddc c055f308 00000080 c0578568 0000010a 00000002 d3837d9c d3837d88
7d80: c03edb88 c001e19c 0000010a d3837da4 d3837dd4 d3837db0 c0253310 c03edb74
7da0: c04d9354 c04c7911 c04bc12d d38c0440 d3837ddc c101f500 d380edc0 d3345400
7dc0: 0000010a 00000000 d3837df8 d3837dd8 c025335c c02532c4 00000080 c04df8aa
7de0: d3837de4 d3837e00 00000080 d3837e3c d3837e08 c0297b0c c0253330 c04df8aa
7e00: 0000010a c04df804 c6700000 00000000 c001a18c d3345000 d3345400 c055f300
7e20: c055fbd8 c055fb88 00000000 c055f308 d3837e74 d3837e40 c02ad98c c0297888
7e40: 00000000 c0527258 d3837e64 c055f308 c055f308 c0578c74 c0578c74 00000094
7e60: c054c284 c0527258 d3837e84 d3837e78 c0256e04 c02ad684 d3837ea4 d3837e88
7e80: c0255d34 c0256df4 c055f308 c055f33c c0578c74 00000000 d3837ec4 d3837ea8
7ea0: c0255eb4 c0255c90 00000000 c0578c74 d3837ec8 c0255e4c d3837eec d3837ec8
7ec0: c0254598 c0255e58 d38263cc d38afaf0 c0578c74 d33b9d40 c0575f70 00000000
7ee0: d3837efc d3837ef0 c0255898 c0254548 d3837f2c d3837f00 c025544c c0255884
7f00: c04bc12d 00000000 c0578c74 c053f4f0 00000000 c05877c0 00000094 c0527258
7f20: d3837f54 d3837f30 c02561e4 c02553b4 c05cb824 c053f4f0 00000000 c05877c0
7f40: 00000094 c0527258 d3837f64 d3837f58 c025703c c025614c d3837f7c d3837f68
7f60: c053f538 c0256ffc d3836000 00000006 d3837fb4 d3837f80 c00085ec c053f4fc
7f80: 00000000 c04b8c0a d3837fb4 00000006 00000006 c0546934 c0546914 c05877c0
7fa0: 00000094 c054c284 d3837ff4 d3837fb8 c0527960 c0008560 00000006 00000006
7fc0: c0527258 c0527820 c0020eb0 00000000 c0527820 c0020eb0 00000013 00000000
7fe0: 00000000 00000000 00000000 d3837ff8 c0020eb0 c052782c 41300d0c 4c806681
Backtrace:
[<c02aca9c>] (ohci_irq+0x0/0x478) from [<c02966f0>] (usb_hcd_irq+0x38/0x48)
[<c02966b8>] (usb_hcd_irq+0x0/0x48) from [<c006c1e0>] (handle_irq_event_percpu+0x38/0x198)
 r4:c101f500 r3:c02966b8
[<c006c1a8>] (handle_irq_event_percpu+0x0/0x198) from [<c006c39c>] (handle_irq_event+0x5c/0x7c)
[<c006c340>] (handle_irq_event+0x0/0x7c) from [<c006eab0>] (handle_fasteoi_irq+0xac/0x110)
 r5:d3837cb0 r4:d380edc0
[<c006ea04>] (handle_fasteoi_irq+0x0/0x110) from [<c006bae4>] (generic_handle_irq+0x28/0x38)
 r4:0000010a r3:c006ea04
[<c006babc>] (generic_handle_irq+0x0/0x38) from [<c000e4ac>] (handle_IRQ+0x68/0x8c)
 r4:0000010a r3:00000160
[<c000e444>] (handle_IRQ+0x0/0x8c) from [<c00084c4>] (gic_handle_irq+0x3c/0x54)
 r5:c0556074 r4:d8802000
[<c0008488>] (gic_handle_irq+0x0/0x54) from [<c000d7c0>] (__irq_svc+0x40/0x70)
Exception stack(0xd3837be8 to 0xd3837c30)
7be0:                   c0599540 00000000 d3837c18 00000000 d3836000 00000202
7c00: c0599540 d3837ce4 0000000a c04d9354 00000000 d3837c64 d3837c30 d3837c30
7c20: c00230a4 c00230b8 20000113 ffffffff
 r6:ffffffff r5:20000113 r4:c00230b8 r3:c00230a4
[<c0023060>] (__do_softirq+0x0/0x128) from [<c00235b8>] (irq_exit+0x50/0xa4)
[<c0023568>] (irq_exit+0x0/0xa4) from [<c000e4b0>] (handle_IRQ+0x6c/0x8c)
[<c000e444>] (handle_IRQ+0x0/0x8c) from [<c00084c4>] (gic_handle_irq+0x3c/0x54)
 r5:c0556074 r4:d8802000
[<c0008488>] (gic_handle_irq+0x0/0x54) from [<c000d7c0>] (__irq_svc+0x40/0x70)
Exception stack(0xd3837cb0 to 0xd3837cf8)
7ca0:                                     c003f258 d3837c88 c0567880 c0567880
7cc0: 00000001 0000004a c0589160 00000000 d3837cf8 c04d9354 60000013 d3837d84
7ce0: d3837cb8 d3837cf8 c001e048 c001e54c 60000013 ffffffff
 r6:ffffffff r5:60000013 r4:c001e54c r3:c001e048
[<c001e190>] (vprintk+0x0/0x400) from [<c03edb88>] (printk+0x24/0x2c)
[<c03edb64>] (printk+0x0/0x2c) from [<c0253310>] (__dev_printk+0x58/0x68)
 r3:d38c0440 r2:c04bc12d r1:c04c7911 r0:c04d9354
[<c02532b8>] (__dev_printk+0x0/0x68) from [<c025335c>] (_dev_info+0x3c/0x48)
 r6:00000000 r5:0000010a r4:d3345400
[<c0253320>] (_dev_info+0x0/0x48) from [<c0297b0c>] (usb_add_hcd+0x290/0x628)
 r3:c04df804 r2:0000010a r1:c04df8aa
[<c029787c>] (usb_add_hcd+0x0/0x628) from [<c02ad98c>] (ohci_hcd_drv_probe+0x314/0x3dc)
[<c02ad678>] (ohci_hcd_drv_probe+0x0/0x3dc) from [<c0256e04>] (platform_drv_probe+0x1c/0x20)
[<c0256de8>] (platform_drv_probe+0x0/0x20) from [<c0255d34>] (driver_probe_device+0xb0/0x1c8)
[<c0255c84>] (driver_probe_device+0x0/0x1c8) from [<c0255eb4>] (__driver_attach+0x68/0x8c)
 r7:00000000 r6:c0578c74 r5:c055f33c r4:c055f308
[<c0255e4c>] (__driver_attach+0x0/0x8c) from [<c0254598>] (bus_for_each_dev+0x5c/0x94)
 r6:c0255e4c r5:d3837ec8 r4:c0578c74 r3:00000000
[<c025453c>] (bus_for_each_dev+0x0/0x94) from [<c0255898>] (driver_attach+0x20/0x28)
 r7:00000000 r6:c0575f70 r5:d33b9d40 r4:c0578c74
[<c0255878>] (driver_attach+0x0/0x28) from [<c025544c>] (bus_add_driver+0xa4/0x220)
[<c02553a8>] (bus_add_driver+0x0/0x220) from [<c02561e4>] (driver_register+0xa4/0x130)
[<c0256140>] (driver_register+0x0/0x130) from [<c025703c>] (platform_driver_register+0x4c/0x60)
[<c0256ff0>] (platform_driver_register+0x0/0x60) from [<c053f538>] (ohci_hcd_mod_init+0x48/0x84)
[<c053f4f0>] (ohci_hcd_mod_init+0x0/0x84) from [<c00085ec>] (do_one_initcall+0x98/0x168)
 r4:00000006 r3:d3836000
[<c0008554>] (do_one_initcall+0x0/0x168) from [<c0527960>] (kernel_init+0x140/0x204)
 r9:c054c284 r8:00000094 r7:c05877c0 r6:c0546914 r5:c0546934
r4:00000006
[<c0527820>] (kernel_init+0x0/0x204) from [<c0020eb0>] (do_exit+0x0/0x75c)
Code: e24cb004 e24dd014 e59050d8 e1a04000 (e595300c)
---[ end trace aead0281b3a71205 ]---
Kernel panic - not syncing: Fatal exception in interrupt

コンパイル時にOHCIを外してやると起動するようになりましたのでこの部分に問題があると考え
OHCIのソースを確認しました。
作成元がルネサスエレクトロニクスであった為、そちらに問合せたところ、弊社を通して確認せよ
との回答が得られました。

OHCIソース(ファイル名:ohci-rmobile.c)について更新情報はありませんでしょうか?

コメント

at_takashi.sasayama

2014年8月29日 11時30分

笹山です。

> コンパイル時にOHCIを外してやると起動するようになりましたのでこの部分に問題があると考え
> OHCIのソースを確認しました。
> 作成元がルネサスエレクトロニクスであった為、そちらに問合せたところ、弊社を通して確認せよ
> との回答が得られました。
>
> OHCIソース(ファイル名:ohci-rmobile.c)について更新情報はありませんでしょうか?

ohci-rmobile.c の更新情報は現状ありません。

OHCIドライバを使用するオーディオ、ハブ、テンキーで再現を試みましたが、
こちらでは問題を再現することができませんでした。

差支えなければ、以下の情報を教えていただけないでしょうか?

1.問題発生時のカーネルコンフィグレーション
(linux-3.4-at9のデフォルトから変更した設定)

2.問題が発生したUSBデバイス

3.問題の再現率

どうぞよろしくお願いいたします。

山田です
御回答いただきありがとうございます。
こちらからも回答いたします。

> > OHCIソース(ファイル名:ohci-rmobile.c)について更新情報はありませんでしょうか?
>
> ohci-rmobile.c の更新情報は現状ありません。
了解しました。

> OHCIドライバを使用するオーディオ、ハブ、テンキーで再現を試みましたが、
> こちらでは問題を再現することができませんでした。
>
> 差支えなければ、以下の情報を教えていただけないでしょうか?
>
> 1.問題発生時のカーネルコンフィグレーション
> (linux-3.4-at9のデフォルトから変更した設定)
現在linux-3.4-at8を使用しております。
kernelコンフィグレーションについてはこちらに添付すると全ての方に
見えてしまいますでしょうか?
見えないようでしたら添付したいと思いますが見える様であれば御社に
直接送りたいのですが可能でしょうか?

> 2.問題が発生したUSBデバイス
DMCというメーカーのタッチパネルコントローラになります。
TSC-306というデバイスです

> 3.問題の再現率
現状では100%再現します

また、本日原因調査中にUSBポートの変更を試したところ、正常に起動する事を確認いたしました。
armadillo840の基板上には二つのUSBポートが存在し、上下二段のコネクタが搭載されております
こちらの上段のUSBポートと前述いたしましたDMC製タッチパネルコントローラを接続すると、必ず
カーネルパニックとなり停止します。
下段のUSBポートに接続すると正常に起動いたします。

上下のUSBポートで差分はありませんでしょうか?

at_daisuke.sasaki

2014年11月4日 16時38分

佐々木大輔です。

本問題は、USBホストドライバの初期化手順に関する問題でした。
10月31日に行った製品アップデートで、本問題を修正しています。

起動時にohci_irqにNULL pointer dereferenceが発生するUSBデバイスを使用されているお客様は
linux-3.4-at10をお試しください。

Armadillo 製品アップデートのお知らせ (2014年10月/Armadillo-800シリーズ対象)
(http://armadillo.atmark-techno.com/news/141031/a800-update)

・カーネル (linux-3.4-at10)
 USB: 特定のデバイスを接続した状態で電源投入するとカーネルパニックする問題を修正