[BUG] ohci_enable() fails during resume
From: Lukasz Stelmach
Date: Sun Jun 21 2015 - 17:16:45 EST
Hi,
A bit, suddenly by desktop PC started to fail to resume. I have
redirected the console to ttyS0 and managed to caputere the oops
(attached). I am not a dissassebling expert and I have built my
kernel without full debuging symbold but here is what I found
(at least for the first trace in the attached oops.txt).
The failing code is somewhere around line 2400 of
drivers/firewire/ohci.c (the latest mainline). There is a note
about some values beeing NULL during the resume process but it
appears there are more NULLs then expected.
(%rbx) points to ohci structure.
I attach:
oops.txt - full dump of oops from console.
oops_code.txt - disassembled Code from the oops.
ohci_enable_disassembled.txt - dissassembled ohci_enable function
from my kernel (gentoo v3.18.8, but as far as I can tell there
haven't been much changes around).
I have marked the failing instruction in the disassembler dumps
with "-->".
There are two conditinons I *suspect* being responsible for this
situation.
Hardware failure. There was a storm a week ago recently which might
damaged the hardware. It appears it hit my SB Audigy very slightly
(the card's PCI interface appears OK but the AC97 codec is glitching
when setting mixer registers)
Hardware bug in the on-board firewire controller *and* a bug in the
driver. The code around the line 2400 appears to handle multiple
firewire ports (if I recognise variable names correctly, e.g.
next_config_rom). Now, without the SB card, I've got only one
firewire port so this is what has changed.
Please tell me how can I help more to debug this problem. (I may
have some problems using the firewire port because I don't have any
firewire devices)
Kind regards,
--
ByÅo mi bardzo miÅo. Twoje oczy lubiÄ mnie
>Åukasz< i to mnie zgubi (c)SNL
root@kotik ~ # dmesg -n8
root@kotik ~ # modprobe firewire_ohci
[ 232.783281] calling fw_core_init+0x0/0xfb [firewire_core] @ 1944
[ 232.789425] initcall fw_core_init+0x0/0xfb [firewire_core] returned 0 after 39 usecs
[ 232.798059] calling fw_ohci_init+0x0/0x4d [firewire_ohci] @ 1944
[ 232.855042] firewire_ohci 0000:04:03.0: added OHCI v1.0 device as card 0, 8 IR + 8 IT contexts, quirks 0x0
[ 232.864724] firewire_ohci 0000:04:03.0: bad self ID 0/1 (00000000 != ~00000000)
[ 232.864862] initcall fw_ohci_init+0x0/0x4d [firewire_ohci] returned 0 after 59285 usecs
root@kotik ~ # systemctl suspend
[ 311.223312] PM: Syncing filesystems ... done.
[ 311.301192] Freezing user space processes ... (elapsed 0.001 seconds) done.
[ 311.309337] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
[ 311.318148] wlan0: deauthenticating from 28:be:9b:d2:ce:ce by local choice (Reason: 3=DEAUTH_LEAVING)
[ 311.416471] cfg80211: Calling CRDA to update world regulatory domain
[ <some RS-232 garbage>usb usb5: root hub lost power or was reset
[ 340.411105] snd_hda_intel 0000:00:1b.0: irq 28 for MSI/MSI-X
[ 340.411222] usb usb6: root hub lost power or was reset
[ 340.411302] usb usb7: root hub lost power or was reset
[ 340.411380] usb usb8: root hub lost power or was reset
[ 340.411711] usb usb4: root hub lost power or was reset
[ 340.411737] rtc_cmos 00:01: System wakeup disabled by ACPI
[ 340.412285] serial 00:05: activated
[ 341.759829] BUG: unable to handle kernel NULL pointer dereference at (null)
[ 341.759834] IP: [<ffffffffa069a7c4>] ohci_enable+0x274/0x570 [firewire_ohci]
[ 341.759836] PGD 0
[ 341.759837] Oops: 0000 [#1] PREEMPT SMP
[ 341.759859] Modules linked in: firewire_ohci firewire_core crc_itu_t ctr ccm snd_usb_audio snd_usbmidi_lib snd_rawmidi snd_seq_device snd_hda_codec_analog snd_hda_codec_generic arc4 iTCO_wdt coretemp kvm_intel kvm microcode sr_mod rtl8187 serio_raw cdrom eeprom_93cx6 mac80211 mousedev gspca_zc3xx gspca_main uas videodev cfg80211 btusb usb_storage media bluetooth rfkill i2c_i801 i2c_core sky2 lpc_ich mfd_core snd_hda_intel snd_hda_controller floppy snd_hda_codec snd_hwdep snd_pcm snd_timer asus_atk0110 acpi_cpufreq snd processor soundcore button thermal_sys hwmon binfmt_misc dm_mod ext4 crc16 mbcache jbd2 usbhid hid_generic hid
[ 341.759861] CPU: 0 PID: 2033 Comm: kworker/u8:84 Not tainted 3.18.7-gentoo #3
[ 341.759862] Hardware name: System manufacturer P5K-E/P5K-E, BIOS 1305 06/19/2009
[ 341.759866] Workqueue: events_unbound async_run_entry_fn
[ 341.759867] task: ffff88019262e010 ti: ffff880191770000 task.ti: ffff880191770000
[ 341.759869] RIP: 0010:[<ffffffffa069a7c4>] [<ffffffffa069a7c4>] ohci_enable+0x274/0x570 [firewire_ohci]
[ 341.759870] RSP: 0018:ffff880191773cb8 EFLAGS: 00010246
[ 341.759871] RAX: 0000000000000000 RBX: ffff88019140a000 RCX: 00000000000000c0
[ 341.759872] RDX: 0000000000000000 RSI: 0000000000000004 RDI: ffff88019140a5f8
[ 341.759873] RBP: ffff880191773ce8 R08: ffff880191770000 R09: ffff8800c9bb97e0
[ 341.759873] R10: 000000000000000f R11: 0000000000000001 R12: 0000000000000000
[ 341.759874] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000001
[ 341.759875] FS: 0000000000000000(0000) GS:ffff8801afc00000(0000) knlGS:0000000000000000
[ 341.759876] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[ 341.759877] CR2: 0000000000000000 CR3: 0000000192666000 CR4: 00000000000007f0
[ 341.759877] Stack:
[ 341.759879] ffff880191773cc8 ffff88019140a000 0000000000000000 ffff8801a9302000
[ 341.759880] ffff8801a93020f8 ffff8801a9049000 ffff880191773d08 ffffffffa069ab36
[ 341.759881] ffff8801a9302000 ffffffffa069bc00 ffff880191773d28 ffffffff81208c63
[ 341.759882] Call Trace:
[ 341.759885] [<ffffffffa069ab36>] pci_resume+0x76/0x162 [firewire_ohci]
[ 341.759888] [<ffffffff81208c63>] pci_legacy_resume+0x33/0x50
[ 341.759890] [<ffffffff81209b78>] pci_pm_resume+0x78/0xb0
[ 341.759892] [<ffffffff81209b00>] ? pci_pm_thaw+0xa0/0xa0
[ 341.759894] [<ffffffff8128a2b6>] dpm_run_callback.isra.19+0x16/0x50
[ 341.759895] [<ffffffff8128a626>] device_resume+0x96/0x140
[ 341.759897] [<ffffffff8128a6ec>] async_resume+0x1c/0x50
[ 341.759898] [<ffffffff81060596>] async_run_entry_fn+0x36/0xf0
[ 341.759900] [<ffffffff8105932a>] process_one_work+0x12a/0x310
[ 341.759901] [<ffffffff81059be9>] worker_thread+0x119/0x450
[ 341.759902] [<ffffffff81059ad0>] ? cancel_delayed_work_sync+0x10/0x10
[ 341.759904] [<ffffffff8105df84>] kthread+0xc4/0xe0
[ 341.759906] [<ffffffff8105dec0>] ? kthread_create_on_node+0x180/0x180
[ 341.759908] [<ffffffff814241ec>] ret_from_fork+0x7c/0xb0
[ 341.759909] [<ffffffff8105dec0>] ? kthread_create_on_node+0x180/0x180
[ 341.759923] Code: 00 04 00 00 ff d0 48 85 c0 48 89 c7 48 89 83 98 08 00 00 0f 84 07 01 00 00 4c 89 f2 4c 89 ee e8 f3 af ff ff 48 8b 83 98 08 00 00 <8b> 10 89 93 a8 08 00 00 c7 00 00 00 00 00 31 c0 48 8b 93 c8 05
[ 341.759925] RIP [<ffffffffa069a7c4>] ohci_enable+0x274/0x570 [firewire_ohci]
[ 341.759925] RSP <ffff880191773cb8>
[ 341.759926] CR2: 0000000000000000
[ 341.759927] ---[ end trace 0f215659818bf259 ]---
[ 341.759942] BUG: unable to handle kernel paging request at ffffffffffffffd8
[ 341.759944] IP: [<ffffffff8105e4ac>] kthread_data+0xc/0x20
[ 341.759946] PGD 1812067 PUD 1814067 PMD 0
[ 341.759947] Oops: 0000 [#2] PREEMPT SMP
[ 341.759965] Modules linked in: firewire_ohci firewire_core crc_itu_t ctr ccm snd_usb_audio snd_usbmidi_lib snd_rawmidi snd_seq_device snd_hda_codec_analog snd_hda_codec_generic arc4 iTCO_wdt coretemp kvm_intel kvm microcode sr_mod rtl8187 serio_raw cdrom eeprom_93cx6 mac80211 mousedev gspca_zc3xx gspca_main uas videodev cfg80211 btusb usb_storage media bluetooth rfkill i2c_i801 i2c_core sky2 lpc_ich mfd_core snd_hda_intel snd_hda_controller floppy snd_hda_codec snd_hwdep snd_pcm snd_timer asus_atk0110 acpi_cpufreq snd processor soundcore button thermal_sys hwmon binfmt_misc dm_mod ext4 crc16 mbcache jbd2 usbhid hid_generic hid
[ 341.759966] CPU: 0 PID: 2033 Comm: kworker/u8:84 Tainted: G D 3.18.7-gentoo #3
[ 341.759967] Hardware name: System manufacturer P5K-E/P5K-E, BIOS 1305 06/19/2009
[ 341.759974] task: ffff88019262e010 ti: ffff880191770000 task.ti: ffff880191770000
[ 341.759976] RIP: 0010:[<ffffffff8105e4ac>] [<ffffffff8105e4ac>] kthread_data+0xc/0x20
[ 341.759977] RSP: 0018:ffff880191773810 EFLAGS: 00010096
[ 341.759977] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 000000000000000f
[ 341.759978] RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff88019262e010
[ 341.759979] RBP: ffff880191773828 R08: 0000000000000001 R09: 000000000000001f
[ 341.759980] R10: ffffffff8199c684 R11: 000000000000001a R12: ffff88019262e438
[ 341.759980] R13: 0000000000000000 R14: 0000000000000000 R15: ffff88019262e010
[ 341.759981] FS: 0000000000000000(0000) GS:ffff8801afc00000(0000) knlGS:0000000000000000
[ 341.759982] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[ 341.759983] CR2: 0000000000000028 CR3: 0000000192666000 CR4: 00000000000007f0
[ 341.759983] Stack:
[ 341.759985] ffffffff81059f90 ffff880191773828 ffff8801afc10700 ffff880191773938
[ 341.759986] ffffffff81420803 ffff880191773893 0000000000009000 ffff88019262e010
[ 341.759988] ffff880191773fd8 0000000000000008 ffff880192547240 0000000000000001
[ 341.759988] Call Trace:
[ 341.759990] [<ffffffff81059f90>] ? wq_worker_sleeping+0x10/0xa0
[ 341.759991] [<ffffffff81420803>] __schedule+0x403/0x870
[ 341.759994] [<ffffffff8108bd52>] ? call_rcu+0x12/0x20
[ 341.759995] [<ffffffff8108bd52>] ? call_rcu+0x12/0x20
[ 341.759997] [<ffffffff81045b0b>] ? release_task+0x38b/0x490
[ 341.759998] [<ffffffff81420c94>] schedule+0x24/0x70
[ 341.760000] [<ffffffff810462ba>] do_exit+0x6aa/0xa00
[ 341.760002] [<ffffffff81006109>] oops_end+0x89/0xd0
[ 341.760004] [<ffffffff8141da72>] no_context+0x2e5/0x343
[ 341.760006] [<ffffffff8106d80f>] ? set_next_entity+0x5f/0x80
[ 341.760008] [<ffffffff8141db4b>] __bad_area_nosemaphore+0x7b/0x1d1
[ 341.760009] [<ffffffff8141dcaf>] bad_area_nosemaphore+0xe/0x10
[ 341.760011] [<ffffffff81038612>] __do_page_fault+0x2d2/0x4b0
[ 341.760013] [<ffffffff8126d61a>] ? acpi_rs_get_prt_method_data+0x3c/0x45
[ 341.760016] [<ffffffff810332ce>] ? mp_map_pin_to_irq+0xee/0x250
[ 341.760018] [<ffffffff8108ee96>] ? lock_timer_base.isra.31+0x26/0x50
[ 341.760020] [<ffffffff8108f2f3>] ? try_to_del_timer_sync+0x43/0x60
[ 341.760021] [<ffffffff8103882c>] do_page_fault+0xc/0x10
[ 341.760023] [<ffffffff814257b2>] page_fault+0x22/0x30
[ 341.760025] [<ffffffffa069a7c4>] ? ohci_enable+0x274/0x570 [firewire_ohci]
[ 341.760027] [<ffffffffa069a715>] ? ohci_enable+0x1c5/0x570 [firewire_ohci]
[ 341.760029] [<ffffffffa069ab36>] pci_resume+0x76/0x162 [firewire_ohci]
[ 341.760031] [<ffffffff81208c63>] pci_legacy_resume+0x33/0x50
[ 341.760032] [<ffffffff81209b78>] pci_pm_resume+0x78/0xb0
[ 341.760034] [<ffffffff81209b00>] ? pci_pm_thaw+0xa0/0xa0
[ 341.760035] [<ffffffff8128a2b6>] dpm_run_callback.isra.19+0x16/0x50
[ 341.760036] [<ffffffff8128a626>] device_resume+0x96/0x140
[ 341.760038] [<ffffffff8128a6ec>] async_resume+0x1c/0x50
[ 341.760039] [<ffffffff81060596>] async_run_entry_fn+0x36/0xf0
[ 341.760040] [<ffffffff8105932a>] process_one_work+0x12a/0x310
[ 341.760041] [<ffffffff81059be9>] worker_thread+0x119/0x450
[ 341.760043] [<ffffffff81059ad0>] ? cancel_delayed_work_sync+0x10/0x10
[ 341.760044] [<ffffffff8105df84>] kthread+0xc4/0xe0
[ 341.760046] [<ffffffff8105dec0>] ? kthread_create_on_node+0x180/0x180
[ 341.760047] [<ffffffff814241ec>] ret_from_fork+0x7c/0xb0
[ 341.760049] [<ffffffff8105dec0>] ? kthread_create_on_node+0x180/0x180
[ 341.760062] Code: 48 89 e5 5d 48 8b 40 c8 48 c1 e8 02 83 e0 01 c3 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 48 8b 87 d0 03 00 00 55 48 89 e5 5d <48> 8b 40 d8 c3 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 55
[ 341.760063] RIP [<ffffffff8105e4ac>] kthread_data+0xc/0x20
[ 341.760064] RSP <ffff880191773810>
[ 341.760064] CR2: ffffffffffffffd8
[ 341.760065] ---[ end trace 0f215659818bf25a ]---
[ 341.760065] Fixing recursive fault but reboot is needed!
[ 341.760067] BUG: scheduling while atomic: kworker/u8:84/2033/0x00000004
[ 341.760084] Modules linked in: firewire_ohci firewire_core crc_itu_t ctr ccm snd_usb_audio snd_usbmidi_lib snd_rawmidi snd_seq_device snd_hda_codec_analog snd_hda_codec_generic arc4 iTCO_wdt coretemp kvm_intel kvm microcode sr_mod rtl8187 serio_raw cdrom eeprom_93cx6 mac80211 mousedev gspca_zc3xx gspca_main uas videodev cfg80211 btusb usb_storage media bluetooth rfkill i2c_i801 i2c_core sky2 lpc_ich mfd_core snd_hda_intel snd_hda_controller floppy snd_hda_codec snd_hwdep snd_pcm snd_timer asus_atk0110 acpi_cpufreq snd processor soundcore button thermal_sys hwmon binfmt_misc dm_mod ext4 crc16 mbcache jbd2 usbhid hid_generic hid
[ 341.760086] CPU: 0 PID: 2033 Comm: kworker/u8:84 Tainted: G D 3.18.7-gentoo #3
[ 341.760086] Hardware name: System manufacturer P5K-E/P5K-E, BIOS 1305 06/19/2009
[ 341.760093] ffff880191773768 ffff880191773378 ffffffff8141f0f1 0000000000008c8c
[ 341.760094] ffff8801afc10700 ffff880191773388 ffffffff8141e269 ffff880191773498
[ 341.760096] ffffffff81420991 0000000000000000 0000000000009000 ffff88019262e010
[ 341.760096] Call Trace:
[ 341.760098] [<ffffffff8141f0f1>] dump_stack+0x4e/0x71
[ 341.760100] [<ffffffff8141e269>] __schedule_bug+0x42/0x50
[ 341.760101] [<ffffffff81420991>] __schedule+0x591/0x870
[ 341.760103] [<ffffffff81081b15>] ? vprintk_emit+0x215/0x4d0
[ 341.760105] [<ffffffff8141e4b9>] ? printk+0x48/0x4a
[ 341.760106] [<ffffffff81420c94>] schedule+0x24/0x70
[ 341.760107] [<ffffffff810464f8>] do_exit+0x8e8/0xa00
[ 341.760109] [<ffffffff81082ce9>] ? kmsg_dump+0xb9/0xd0
[ 341.760111] [<ffffffff81006109>] oops_end+0x89/0xd0
[ 341.760112] [<ffffffff8141da72>] no_context+0x2e5/0x343
[ 341.760114] [<ffffffff8141db4b>] __bad_area_nosemaphore+0x7b/0x1d1
[ 341.760115] [<ffffffff8141dcaf>] bad_area_nosemaphore+0xe/0x10
[ 341.760117] [<ffffffff81038612>] __do_page_fault+0x2d2/0x4b0
[ 341.760119] [<ffffffff811dfa42>] ? put_dec+0x72/0x90
[ 341.760120] [<ffffffff811e063c>] ? number.isra.2+0x35c/0x3a0
[ 341.760122] [<ffffffff8103882c>] do_page_fault+0xc/0x10
[ 341.760123] [<ffffffff814257b2>] page_fault+0x22/0x30
[ 341.760125] [<ffffffff8105e4ac>] ? kthread_data+0xc/0x20
[ 341.760126] [<ffffffff81059f90>] ? wq_worker_sleeping+0x10/0xa0
[ 341.760127] [<ffffffff81420803>] __schedule+0x403/0x870
[ 341.760129] [<ffffffff8108bd52>] ? call_rcu+0x12/0x20
[ 341.760130] [<ffffffff8108bd52>] ? call_rcu+0x12/0x20
[ 341.760132] [<ffffffff81045b0b>] ? release_task+0x38b/0x490
[ 341.760133] [<ffffffff81420c94>] schedule+0x24/0x70
[ 341.760134] [<ffffffff810462ba>] do_exit+0x6aa/0xa00
[ 341.760135] [<ffffffff81006109>] oops_end+0x89/0xd0
[ 341.760137] [<ffffffff8141da72>] no_context+0x2e5/0x343
[ 341.760138] [<ffffffff8106d80f>] ? set_next_entity+0x5f/0x80
[ 341.760140] [<ffffffff8141db4b>] __bad_area_nosemaphore+0x7b/0x1d1
[ 341.760141] [<ffffffff8141dcaf>] bad_area_nosemaphore+0xe/0x10
[ 341.760143] [<ffffffff81038612>] __do_page_fault+0x2d2/0x4b0
[ 341.760144] [<ffffffff8126d61a>] ? acpi_rs_get_prt_method_data+0x3c/0x45
[ 341.760146] [<ffffffff810332ce>] ? mp_map_pin_to_irq+0xee/0x250
[ 341.760147] [<ffffffff8108ee96>] ? lock_timer_base.isra.31+0x26/0x50
[ 341.760149] [<ffffffff8108f2f3>] ? try_to_del_timer_sync+0x43/0x60
[ 341.760150] [<ffffffff8103882c>] do_page_fault+0xc/0x10
[ 341.760152] [<ffffffff814257b2>] page_fault+0x22/0x30
[ 341.760154] [<ffffffffa069a7c4>] ? ohci_enable+0x274/0x570 [firewire_ohci]
[ 341.760156] [<ffffffffa069a715>] ? ohci_enable+0x1c5/0x570 [firewire_ohci]
[ 341.760158] [<ffffffffa069ab36>] pci_resume+0x76/0x162 [firewire_ohci]
[ 341.760159] [<ffffffff81208c63>] pci_legacy_resume+0x33/0x50
[ 341.760161] [<ffffffff81209b78>] pci_pm_resume+0x78/0xb0
[ 341.760162] [<ffffffff81209b00>] ? pci_pm_thaw+0xa0/0xa0
[ 341.760164] [<ffffffff8128a2b6>] dpm_run_callback.isra.19+0x16/0x50
[ 341.760165] [<ffffffff8128a626>] device_resume+0x96/0x140
[ 341.760166] [<ffffffff8128a6ec>] async_resume+0x1c/0x50
[ 341.760167] [<ffffffff81060596>] async_run_entry_fn+0x36/0xf0
[ 341.760169] [<ffffffff8105932a>] process_one_work+0x12a/0x310
[ 341.760170] [<ffffffff81059be9>] worker_thread+0x119/0x450
[ 341.760171] [<ffffffff81059ad0>] ? cancel_delayed_work_sync+0x10/0x10
[ 341.760173] [<ffffffff8105df84>] kthread+0xc4/0xe0
[ 341.760174] [<ffffffff8105dec0>] ? kthread_create_on_node+0x180/0x180
[ 341.760176] [<ffffffff814241ec>] ret_from_fork+0x7c/0xb0
[ 341.760177] [<ffffffff8105dec0>] ? kthread_create_on_node+0x180/0x180
0x0000000000000020 <+0>: add %al,(%rax,%rax,1)
0x0000000000000023 <+3>: add %bh,%bh
0x0000000000000025 <+5>: rorb -0x7b(%rax)
0x0000000000000028 <+8>: rorb $0xc7,-0x77(%rax)
0x000000000000002c <+12>: mov %rax,0x898(%rbx)
0x0000000000000033 <+19>: je 0x140
0x0000000000000039 <+25>: mov %r14,%rdx
0x000000000000003c <+28>: mov %r13,%rsi
0x000000000000003f <+31>: callq 0xffffffffffffb037 <copy_config_rom>
0x0000000000000044 <+36>: mov 0x898(%rbx),%rax
-->0x000000000000004b <+43>: mov (%rax),%edx <--
0x000000000000004d <+45>: mov %edx,0x8a8(%rbx)
0x0000000000000053 <+51>: movl $0x0,(%rax)
0x0000000000000059 <+57>: xor %eax,%eax
0x000000000000005b <+59>: rex.W
0x000000000000005c <+60>: .byte 0x8b
0x000000000000005d <+61>: xchg %eax,%ebx
0x000000000000005e <+62>: .byte 0xc8
0x000000000000005f <+63>: .byte 0x5
0x0000000000000060 <+64>: .byte 0x0
Dump of assembler code for function ohci_enable:
0x0000000000005550 <+0>: push %rbp
0x0000000000005551 <+1>: mov %rsp,%rbp
0x0000000000005554 <+4>: push %r15
0x0000000000005556 <+6>: push %r14
0x0000000000005558 <+8>: mov %rdx,%r14
0x000000000000555b <+11>: push %r13
0x000000000000555d <+13>: mov %rsi,%r13
0x0000000000005560 <+16>: push %r12
0x0000000000005562 <+18>: push %rbx
0x0000000000005563 <+19>: mov %rdi,%rbx
0x0000000000005566 <+22>: sub $0x8,%rsp
0x000000000000556a <+26>: callq 0x410 <software_reset>
0x000000000000556f <+31>: test %eax,%eax
0x0000000000005571 <+33>: mov %eax,%r12d
0x0000000000005574 <+36>: jne 0x5a4e <ohci_enable+1278>
0x000000000000557a <+42>: mov 0x5c8(%rbx),%rdx
0x0000000000005581 <+49>: mov $0xc0000,%eax
0x0000000000005586 <+54>: mov %eax,0x50(%rdx)
0x0000000000005589 <+57>: mov 0x5c8(%rbx),%rax
0x0000000000005590 <+64>: mov (%rax),%eax
0x0000000000005592 <+66>: xor %r15d,%r15d
0x0000000000005595 <+69>: jmp 0x55a6 <ohci_enable+86>
0x0000000000005597 <+71>: nopw 0x0(%rax,%rax,1)
0x00000000000055a0 <+80>: cmp $0x2,%r15d
0x00000000000055a4 <+84>: jg 0x55c5 <ohci_enable+117>
0x00000000000055a6 <+86>: mov $0x32,%edi
0x00000000000055ab <+91>: callq 0x55b0 <ohci_enable+96>
0x00000000000055b0 <+96>: mov 0x5c8(%rbx),%rax
0x00000000000055b7 <+103>: mov 0x50(%rax),%eax
0x00000000000055ba <+106>: add $0x1,%r15d
0x00000000000055be <+110>: and $0x80000,%eax
0x00000000000055c3 <+115>: je 0x55a0 <ohci_enable+80>
0x00000000000055c5 <+117>: test %eax,%eax
0x00000000000055c7 <+119>: je 0x5a6b <ohci_enable+1307>
0x00000000000055cd <+125>: testb $0x20,0x5dc(%rbx)
0x00000000000055d4 <+132>: jne 0x591d <ohci_enable+973>
0x00000000000055da <+138>: mov 0x5c8(%rbx),%rdx
0x00000000000055e1 <+145>: mov $0x40000000,%eax
0x00000000000055e6 <+150>: mov %eax,0x54(%rdx)
0x00000000000055e9 <+153>: mov 0x8b8(%rbx),%rax
0x00000000000055f0 <+160>: mov 0x5c8(%rbx),%rdx
0x00000000000055f7 <+167>: mov %eax,0x64(%rdx)
0x00000000000055fa <+170>: mov $0x300000,%eax
0x00000000000055ff <+175>: mov 0x5c8(%rbx),%rdx
0x0000000000005606 <+182>: mov %eax,0xe0(%rdx)
0x000000000000560c <+188>: mov $0xc8082f,%eax
0x0000000000005611 <+193>: mov 0x5c8(%rbx),%rdx
0x0000000000005618 <+200>: mov %eax,0x8(%rdx)
0x000000000000561b <+203>: mov $0x404,%eax
0x0000000000005620 <+208>: movb $0x0,0x5e8(%rbx)
0x0000000000005627 <+215>: xor %ecx,%ecx
0x0000000000005629 <+217>: mov $0x1,%esi
0x000000000000562e <+222>: mov $0x10000000,%edi
0x0000000000005633 <+227>: nopl 0x0(%rax,%rax,1)
0x0000000000005638 <+232>: mov %esi,%edx
0x000000000000563a <+234>: shl %cl,%edx
0x000000000000563c <+236>: test %edx,0x868(%rbx)
0x0000000000005642 <+242>: je 0x5650 <ohci_enable+256>
0x0000000000005644 <+244>: mov %rax,%rdx
0x0000000000005647 <+247>: add 0x5c8(%rbx),%rdx
0x000000000000564e <+254>: mov %edi,(%rdx)
0x0000000000005650 <+256>: add $0x1,%ecx
0x0000000000005653 <+259>: add $0x20,%rax
0x0000000000005657 <+263>: cmp $0x20,%ecx
0x000000000000565a <+266>: jne 0x5638 <ohci_enable+232>
0x000000000000565c <+268>: mov 0x5c8(%rbx),%rax
0x0000000000005663 <+275>: mov (%rax),%eax
0x0000000000005665 <+277>: and $0xff00ff,%eax
0x000000000000566a <+282>: cmp $0x1000f,%eax
0x000000000000566f <+287>: ja 0x5890 <ohci_enable+832>
0x0000000000005675 <+293>: mov 0x5c8(%rbx),%rdx
0x000000000000567c <+300>: mov $0x3f,%eax
0x0000000000005681 <+305>: mov %eax,0xdc(%rdx)
0x0000000000005687 <+311>: mov 0x5c8(%rbx),%rax
0x000000000000568e <+318>: mov 0xdc(%rax),%eax
0x0000000000005694 <+324>: and $0x3f,%eax
0x0000000000005697 <+327>: mov 0x5c8(%rbx),%rdx
0x000000000000569e <+334>: mov %eax,0x5e0(%rbx)
0x00000000000056a4 <+340>: xor %eax,%eax
0x00000000000056a6 <+342>: mov %eax,0xdc(%rdx)
0x00000000000056ac <+348>: mov 0x5e0(%rbx),%eax
0x00000000000056b2 <+354>: mov 0x5c8(%rbx),%rdx
0x00000000000056b9 <+361>: test %eax,%eax
0x00000000000056bb <+363>: mov $0x10000,%eax
0x00000000000056c0 <+368>: setne 0x1bd(%rbx)
0x00000000000056c7 <+375>: mov %eax,0x120(%rdx)
0x00000000000056cd <+381>: mov $0xffffffff,%eax
0x00000000000056d2 <+386>: mov 0x5c8(%rbx),%rdx
0x00000000000056d9 <+393>: mov %eax,0x84(%rdx)
0x00000000000056df <+399>: mov 0x5c8(%rbx),%rdx
0x00000000000056e6 <+406>: mov %eax,0x8c(%rdx)
0x00000000000056ec <+412>: mov 0x5c8(%rbx),%rax
0x00000000000056f3 <+419>: mov 0x50(%rax),%eax
0x00000000000056f6 <+422>: test $0x800000,%eax
0x00000000000056fb <+427>: jne 0x58d8 <ohci_enable+904>
0x0000000000005701 <+433>: xor %edx,%edx
0x0000000000005703 <+435>: mov $0xc0,%ecx
0x0000000000005708 <+440>: mov $0x4,%esi
0x000000000000570d <+445>: mov %rbx,%rdi
0x0000000000005710 <+448>: callq 0x2d80 <ohci_update_phy_reg>
0x0000000000005715 <+453>: test %eax,%eax
0x0000000000005717 <+455>: js 0x5918 <ohci_enable+968>
0x000000000000571d <+461>: test %r13,%r13
0x0000000000005720 <+464>: je 0x59a1 <ohci_enable+1105>
0x0000000000005726 <+470>: mov 0x8(%rbx),%rdi
0x000000000000572a <+474>: test %rdi,%rdi
0x000000000000572d <+477>: je 0x5a9e <ohci_enable+1358>
0x0000000000005733 <+483>: mov 0x148(%rdi),%rax
0x000000000000573a <+490>: test %rax,%rax
0x000000000000573d <+493>: cmove 0x0(%rip),%rax # 0x5745 <ohci_enable+501>
0x0000000000005745 <+501>: mov 0x110(%rdi),%rdx
0x000000000000574c <+508>: test %rdx,%rdx
0x000000000000574f <+511>: je 0x58ae <ohci_enable+862>
0x0000000000005755 <+517>: cmpq $0x0,(%rdx)
0x0000000000005759 <+521>: je 0x58ae <ohci_enable+862>
0x000000000000575f <+527>: mov (%rax),%rax
0x0000000000005762 <+530>: test %rax,%rax
0x0000000000005765 <+533>: je 0x58ae <ohci_enable+862>
0x000000000000576b <+539>: mov 0x118(%rdi),%rdx
0x0000000000005772 <+546>: mov $0xd4,%ecx
0x0000000000005777 <+551>: test %rdx,%rdx
0x000000000000577a <+554>: je 0x578e <ohci_enable+574>
0x000000000000577c <+556>: cmp $0xffffff,%rdx
0x0000000000005783 <+563>: ja 0x5a86 <ohci_enable+1334>
0x0000000000005789 <+569>: mov $0xd1,%ecx
0x000000000000578e <+574>: lea 0x8a0(%rbx),%rdx
0x0000000000005795 <+581>: xor %r8d,%r8d
0x0000000000005798 <+584>: mov $0x400,%esi
0x000000000000579d <+589>: callq *%rax
0x000000000000579f <+591>: test %rax,%rax
0x00000000000057a2 <+594>: mov %rax,%rdi
0x00000000000057a5 <+597>: mov %rax,0x898(%rbx)
0x00000000000057ac <+604>: je 0x58b9 <ohci_enable+873>
0x00000000000057b2 <+610>: mov %r14,%rdx
0x00000000000057b5 <+613>: mov %r13,%rsi
0x00000000000057b8 <+616>: callq 0x7b0 <copy_config_rom>
0x00000000000057bd <+621>: mov 0x898(%rbx),%rax
-->0x00000000000057c4 <+628>: mov (%rax),%edx<--
0x00000000000057c6 <+630>: mov %edx,0x8a8(%rbx)
0x00000000000057cc <+636>: movl $0x0,(%rax)
0x00000000000057d2 <+642>: xor %eax,%eax
0x00000000000057d4 <+644>: mov 0x5c8(%rbx),%rdx
0x00000000000057db <+651>: mov %eax,0x18(%rdx)
0x00000000000057de <+654>: mov 0x898(%rbx),%rax
0x00000000000057e5 <+661>: mov 0x5c8(%rbx),%rdx
0x00000000000057ec <+668>: mov 0x8(%rax),%eax
0x00000000000057ef <+671>: bswap %eax
0x00000000000057f1 <+673>: mov %eax,0x20(%rdx)
0x00000000000057f4 <+676>: mov 0x8a0(%rbx),%rax
0x00000000000057fb <+683>: mov 0x5c8(%rbx),%rdx
0x0000000000005802 <+690>: mov %eax,0x34(%rdx)
0x0000000000005805 <+693>: mov $0x80000000,%eax
0x000000000000580a <+698>: mov 0x5c8(%rbx),%rdx
0x0000000000005811 <+705>: mov %eax,0x100(%rdx)
0x0000000000005817 <+711>: mov 0x0(%rip),%eax # 0x581d <ohci_enable+717>
0x000000000000581d <+717>: mov 0x5c8(%rbx),%rdx
0x0000000000005824 <+724>: and $0x8,%eax
0x0000000000005827 <+727>: cmp $0x1,%eax
0x000000000000582a <+730>: sbb %eax,%eax
0x000000000000582c <+732>: and $0xfffe0000,%eax
0x0000000000005831 <+737>: sub $0x7c78fe0d,%eax
0x0000000000005836 <+742>: mov %eax,0x88(%rdx)
0x000000000000583c <+748>: mov $0x80020000,%eax
0x0000000000005841 <+753>: mov 0x5c8(%rbx),%rdx
0x0000000000005848 <+760>: mov %eax,0x50(%rdx)
0x000000000000584b <+763>: mov $0x600,%eax
0x0000000000005850 <+768>: mov 0x5c8(%rbx),%rdx
0x0000000000005857 <+775>: mov %eax,0xe0(%rdx)
0x000000000000585d <+781>: lea 0x630(%rbx),%rdi
0x0000000000005864 <+788>: callq 0x50 <ar_context_run>
0x0000000000005869 <+793>: lea 0x6c8(%rbx),%rdi
0x0000000000005870 <+800>: callq 0x50 <ar_context_run>
0x0000000000005875 <+805>: mov 0x5c8(%rbx),%rax
0x000000000000587c <+812>: mov (%rax),%eax
0x000000000000587e <+814>: mov $0x1,%edx
0x0000000000005883 <+819>: xor %esi,%esi
0x0000000000005885 <+821>: mov %rbx,%rdi
0x0000000000005888 <+824>: callq 0x588d <ohci_enable+829>
0x000000000000588d <+829>: jmp 0x58bf <ohci_enable+879>
0x000000000000588f <+831>: nop
0x0000000000005890 <+832>: mov 0x5c8(%rbx),%rdx
0x0000000000005897 <+839>: mov $0xfffffffe,%eax
0x000000000000589c <+844>: mov %eax,0xb4(%rdx)
0x00000000000058a2 <+850>: movb $0x1,0x1be(%rbx)
0x00000000000058a9 <+857>: jmpq 0x5675 <ohci_enable+293>
0x00000000000058ae <+862>: movq $0x0,0x898(%rbx)
0x00000000000058b9 <+873>: mov $0xfffffff4,%r12d
0x00000000000058bf <+879>: add $0x8,%rsp
0x00000000000058c3 <+883>: mov %r12d,%eax
0x00000000000058c6 <+886>: pop %rbx
0x00000000000058c7 <+887>: pop %r12
0x00000000000058c9 <+889>: pop %r13
0x00000000000058cb <+891>: pop %r14
0x00000000000058cd <+893>: pop %r15
0x00000000000058cf <+895>: pop %rbp
0x00000000000058d0 <+896>: retq
0x00000000000058d1 <+897>: nopl 0x0(%rax)
0x00000000000058d8 <+904>: mov $0x2,%esi
0x00000000000058dd <+909>: mov %rbx,%rdi
0x00000000000058e0 <+912>: callq 0x2c70 <read_phy_reg>
0x00000000000058e5 <+917>: test %eax,%eax
0x00000000000058e7 <+919>: js 0x5918 <ohci_enable+968>
0x00000000000058e9 <+921>: and $0xe0,%eax
0x00000000000058ee <+926>: cmp $0xe0,%eax
0x00000000000058f3 <+931>: je 0x59c2 <ohci_enable+1138>
0x00000000000058f9 <+937>: xor %ecx,%ecx
0x00000000000058fb <+939>: mov $0x3,%edx
0x0000000000005900 <+944>: mov $0x5,%esi
0x0000000000005905 <+949>: mov %rbx,%rdi
0x0000000000005908 <+952>: callq 0x2d30 <update_phy_reg>
0x000000000000590d <+957>: test %eax,%eax
0x000000000000590f <+959>: jns 0x5ab1 <ohci_enable+1377>
0x0000000000005915 <+965>: nopl (%rax)
0x0000000000005918 <+968>: mov %eax,%r12d
0x000000000000591b <+971>: jmp 0x58bf <ohci_enable+879>
0x000000000000591d <+973>: mov $0x2,%esi
0x0000000000005922 <+978>: mov %rbx,%rdi
0x0000000000005925 <+981>: callq 0x2c70 <read_phy_reg>
0x000000000000592a <+986>: test %eax,%eax
0x000000000000592c <+988>: js 0x5918 <ohci_enable+968>
0x000000000000592e <+990>: and $0xe0,%eax
0x0000000000005933 <+995>: cmp $0xe0,%eax
0x0000000000005938 <+1000>: je 0x5946 <ohci_enable+1014>
0x000000000000593a <+1002>: andl $0xffffffdf,0x5dc(%rbx)
0x0000000000005941 <+1009>: jmpq 0x55da <ohci_enable+138>
0x0000000000005946 <+1014>: xor %r15d,%r15d
0x0000000000005949 <+1017>: mov $0x20,%ecx
0x000000000000594e <+1022>: mov $0xe0,%edx
0x0000000000005953 <+1027>: mov $0x7,%esi
0x0000000000005958 <+1032>: mov %rbx,%rdi
0x000000000000595b <+1035>: callq 0x2d30 <update_phy_reg>
0x0000000000005960 <+1040>: test %eax,%eax
0x0000000000005962 <+1042>: js 0x5918 <ohci_enable+968>
0x0000000000005964 <+1044>: lea 0xf(%r15),%esi
0x0000000000005968 <+1048>: mov %rbx,%rdi
0x000000000000596b <+1051>: callq 0x2c70 <read_phy_reg>
0x0000000000005970 <+1056>: test %eax,%eax
0x0000000000005972 <+1058>: js 0x5918 <ohci_enable+968>
0x0000000000005974 <+1060>: movzbl 0x0(%r15),%edx
0x000000000000597c <+1068>: cmp %eax,%edx
0x000000000000597e <+1070>: jne 0x593a <ohci_enable+1002>
0x0000000000005980 <+1072>: sub $0x1,%r15
0x0000000000005984 <+1076>: cmp $0xfffffffffffffffa,%r15
0x0000000000005988 <+1080>: jne 0x5949 <ohci_enable+1017>
0x000000000000598a <+1082>: mov 0x8(%rbx),%rdi
0x000000000000598e <+1086>: mov $0x0,%rsi
0x0000000000005995 <+1093>: xor %eax,%eax
0x0000000000005997 <+1095>: callq 0x599c <ohci_enable+1100>
0x000000000000599c <+1100>: jmpq 0x55da <ohci_enable+138>
0x00000000000059a1 <+1105>: mov 0x888(%rbx),%rax
0x00000000000059a8 <+1112>: mov 0x890(%rbx),%rdx
0x00000000000059af <+1119>: mov %rax,0x898(%rbx)
0x00000000000059b6 <+1126>: mov %rdx,0x8a0(%rbx)
0x00000000000059bd <+1133>: jmpq 0x57c4 <ohci_enable+628>
0x00000000000059c2 <+1138>: mov $0x20,%ecx
0x00000000000059c7 <+1143>: mov $0xe0,%edx
0x00000000000059cc <+1148>: mov $0x7,%esi
0x00000000000059d1 <+1153>: mov %rbx,%rdi
0x00000000000059d4 <+1156>: callq 0x2d30 <update_phy_reg>
0x00000000000059d9 <+1161>: test %eax,%eax
0x00000000000059db <+1163>: js 0x5918 <ohci_enable+968>
0x00000000000059e1 <+1169>: mov $0x8,%esi
0x00000000000059e6 <+1174>: mov %rbx,%rdi
0x00000000000059e9 <+1177>: callq 0x2c70 <read_phy_reg>
0x00000000000059ee <+1182>: test %eax,%eax
0x00000000000059f0 <+1184>: js 0x5918 <ohci_enable+968>
0x00000000000059f6 <+1190>: testb $0x8,0x5dc(%rbx)
0x00000000000059fd <+1197>: jne 0x58f9 <ohci_enable+937>
0x0000000000005a03 <+1203>: test %eax,%eax
0x0000000000005a05 <+1205>: je 0x58f9 <ohci_enable+937>
0x0000000000005a0b <+1211>: xor %edx,%edx
0x0000000000005a0d <+1213>: mov $0x3,%ecx
0x0000000000005a12 <+1218>: mov $0x5,%esi
0x0000000000005a17 <+1223>: mov %rbx,%rdi
0x0000000000005a1a <+1226>: callq 0x2d30 <update_phy_reg>
0x0000000000005a1f <+1231>: test %eax,%eax
0x0000000000005a21 <+1233>: js 0x5918 <ohci_enable+968>
0x0000000000005a27 <+1239>: mov $0x50,%edx
0x0000000000005a2c <+1244>: add 0x5c8(%rbx),%rdx
0x0000000000005a33 <+1251>: mov $0x400000,%eax
0x0000000000005a38 <+1256>: mov %eax,(%rdx)
0x0000000000005a3a <+1258>: mov $0x800000,%eax
0x0000000000005a3f <+1263>: mov 0x5c8(%rbx),%rdx
0x0000000000005a46 <+1270>: mov %eax,0x54(%rdx)
0x0000000000005a49 <+1273>: jmpq 0x5701 <ohci_enable+433>
0x0000000000005a4e <+1278>: mov 0x8(%rbx),%rdi
0x0000000000005a52 <+1282>: mov $0x0,%rsi
0x0000000000005a59 <+1289>: xor %eax,%eax
0x0000000000005a5b <+1291>: mov $0xfffffff0,%r12d
0x0000000000005a61 <+1297>: callq 0x5a66 <ohci_enable+1302>
0x0000000000005a66 <+1302>: jmpq 0x58bf <ohci_enable+879>
0x0000000000005a6b <+1307>: mov 0x8(%rbx),%rdi
0x0000000000005a6f <+1311>: mov $0x0,%rsi
0x0000000000005a76 <+1318>: mov $0xfffffffb,%r12d
0x0000000000005a7c <+1324>: callq 0x5a81 <ohci_enable+1329>
0x0000000000005a81 <+1329>: jmpq 0x58bf <ohci_enable+879>
0x0000000000005a86 <+1334>: mov $0xffffffff,%ecx
0x0000000000005a8b <+1339>: cmp %rdx,%rcx
0x0000000000005a8e <+1342>: sbb %ecx,%ecx
0x0000000000005a90 <+1344>: and $0xfffffffc,%ecx
0x0000000000005a93 <+1347>: add $0xd4,%ecx
0x0000000000005a99 <+1353>: jmpq 0x578e <ohci_enable+574>
0x0000000000005a9e <+1358>: mov 0x0(%rip),%rax # 0x5aa5 <ohci_enable+1365>
0x0000000000005aa5 <+1365>: mov $0x0,%rdi
0x0000000000005aac <+1372>: jmpq 0x5745 <ohci_enable+501>
0x0000000000005ab1 <+1377>: mov $0x54,%edx
0x0000000000005ab6 <+1382>: jmpq 0x5a2c <ohci_enable+1244>
Attachment:
signature.asc
Description: OpenPGP digital signature