Re: [REGRESSION] component: add support for releasing match data

From: Russell King - ARM Linux
Date: Tue Jan 26 2016 - 09:15:26 EST


On Tue, Jan 26, 2016 at 02:42:16PM +0100, Maarten Lankhorst wrote:
> Commit ce657b1cddf1f88c56 ("component: add support for releasing match
> data") causes a general protection fault when unloading snd-hda-intel
> with the i915 module loaded on a recent skylake machine.

I'm no good at interpreting x86 oopses. Can I have some help with
this one? What causes a "general protection fault"? What does the
code line disassemble to? What was the code doing at the point
it caused this fault? Was it calling mc->release() or was it
trying to access some data?

> This breaks one of the i915 acceptance tests that performs a module
> unload/reload on snd-hda-intel and i915.
>
> # modprobe -r snd-hda-intel
>
> [ 268.635792] general protection fault: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC
> [ 268.635879] Modules linked in: fuse snd_hda_codec_hdmi
> snd_hda_codec_realtek snd_hda_codec_generic snd_hda_intel(-)
> snd_hda_codec snd_hwdep snd_hda_core snd_pcm snd_seq_midi
> snd_seq_midi_event snd_rawmidi snd_seq input_leds intel_rapl led_class
> x86_pkg_temp_thermal snd_seq_device snd_timer thermal fan wmi snd
> soundcore pinctrl_sunrisepoint pinctrl_intel acpi_cpufreq acpi_pad i915
> processor parport_pc ppdev parport efivarfs autofs4
> [ 268.636072] CPU: 3 PID: 2156 Comm: modprobe Tainted: G U W 4.5.0-rc1+ #4626
> [ 268.636101] Hardware name: Intel Corporation Skylake Client
> platform/Skylake DT DDR4
> [ 268.636142] task: ffff88044242ab80 ti: ffff880089c7c000 task.ti: ffff880089c7c000
> [ 268.636168] RIP: 0010:[<ffffffff8141f865>] [<ffffffff8141f865>] devm_component_match_release+0x35/0x50
> [ 268.636205] RSP: 0018:ffff880089c7fd88 EFLAGS: 00010202
> [ 268.636224] RAX: 6b6b6b6b6b6b6b6b RBX: 0000000000000000 RCX: 0000000000000001
> [ 268.636248] RDX: ffff880453b71260 RSI: 6b6b6b6b6b6b6b6b RDI: ffff8804592545b8
> [ 268.636272] RBP: ffff880089c7fda0 R08: ffff88045c0039d0 R09: 0000000000000026
> [ 268.636296] R10: 00000000000000d2 R11: 0000000000002c81 R12: ffff8804592545b8
> [ 268.636320] R13: ffff8804582181b0 R14: 0000000000000002 R15: ffff880089c7fdd0
> [ 268.636345] FS: 00007fc3b6f74700(0000) GS:ffff88046c6c0000(0000) knlGS:0000000000000000
> [ 268.636373] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [ 268.636393] CR2: 0000559dae9b10e0 CR3: 000000045566e000 CR4: 00000000003406e0
> [ 268.636417] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> [ 268.636442] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
> [ 268.636468] Stack:
> [ 268.636477] ffff880458218188 ffff8804592545b8 ffff880089c7fdd0 ffff880089c7fe08
> [ 268.636509] ffffffff81428f50 0000000000000286 ffff880459254818 ffffffff00000000
> [ 268.636542] ffff880459254818 ffff880458218188 ffff880453b71238 ffff8804592545b8
> [ 268.636574] Call Trace:
> [ 268.636587] [<ffffffff81428f50>] release_nodes+0x120/0x1e0
> [ 268.636608] [<ffffffff81429107>] devres_release_all+0x37/0x60
> [ 268.636630] [<ffffffff81424c74>] __device_release_driver+0xa4/0x150
> [ 268.636654] [<ffffffff8142561c>] driver_detach+0xac/0xb0
> [ 268.636674] [<ffffffff814247a0>] bus_remove_driver+0x60/0xb0
> [ 268.636695] [<ffffffff81425bf7>] driver_unregister+0x27/0x50
> [ 268.636717] [<ffffffff81320535>] pci_unregister_driver+0x25/0x70
> [ 268.636740] [<ffffffffc022a9a1>] azx_driver_exit+0x10/0x66f [snd_hda_intel]
> [ 268.636767] [<ffffffff810f445b>] SyS_delete_module+0x17b/0x240
> [ 268.636789] [<ffffffff817396d7>] entry_SYSCALL_64_fastpath+0x12/0x6a
> [ 268.636811] Code: f5 41 54 49 89 fc 53 31 db 48 83 7e 08 00 74 29 48
> 8d 14 80 49 8b 45 10 48 8d 14 d0 48 8b 42 10 48 85 c0 74 08 48 8b 32 4c
> 89 e7 <ff> d0 8d 43 01 49 3b 45 08 48 89 c3 72 d7 5b 41 5c 41 5d
> 5d c3
> [ 268.636993] RIP [<ffffffff8141f865>] devm_component_match_release+0x35/0x50
> [ 268.637021] RSP <ffff880089c7fd88>
> [ 268.637043] ---[ end trace 31731dfc9d95562b ]---
>
> Looking at the code, I see it only happens on newer i915 chips with power well support,
> so haswell/broadwell/skylake are probably affected in the functions
> snd_hdac_i915_init and snd_hdac_i915_exit.
>
> ~Maarten
>

--
RMK's Patch system: http://www.arm.linux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.