Bug 42715
Summary: | regression - hard freeze during PCMCIA probe | ||
---|---|---|---|
Product: | Drivers | Reporter: | neologix |
Component: | PCMCIA | Assignee: | linux-pcmcia |
Status: | RESOLVED OBSOLETE | ||
Severity: | normal | CC: | alan, pegasus |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 509b0865fbd8ab6c820397706dde980c1c285538 | Subsystem: | |
Regression: | Yes | Bisected commit-id: | |
Attachments: |
lcpsi -vvv
2.6.32 dmesg 2.6.37 dmesg /proc/ioports |
Created attachment 72250 [details]
2.6.32 dmesg
Created attachment 72251 [details]
2.6.37 dmesg
Here's the commit that introduced the regression: """ commit 509b0865fbd8ab6c820397706dde980c1c285538 Author: Dominik Brodowski <linux@dominikbrodowski.net> Date: Thu Apr 8 19:23:07 2010 +0200 pcmcia: fix io_probe due to parent (PCI) resources Similar to commit 7a96e87d, we need to be aware of any parent PCI device when requesting IO regions, even only for testing ("probing"). Reported-by: Komuro <komurojun-mbn@nifty.com> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net> """ Since this commit, do_io_probe() probes I/O ranges it didn't probe before, which results in random freezes on my machine (and a few others, after doing a quick search for "cs: IO port brobe + freeze"). Fow now, I disable IO probing by setting pcmcia_rsrc.probe_io=0, but it should probably be looked into. I'm attaching /proc/ioports. Created attachment 72288 [details]
/proc/ioports
If this is still present in modern kernels please update the bug This does indeed still happen in kernel 3.16.7 (from Debian 8.2) on applicable hardware (Compaq R3000 series notebook, R3306US in my case.) Using the boot option pcmcia_rsrc.probe_io=0 gets around the problem. |
Created attachment 72249 [details] lcpsi -vvv Hello, I'm experiencing random (1 out of 3 times) freezes with 2.6.37 and later during PCMCIA probe: When that happens, the lines printed by the kernel are the following: """ [ 9.425089] yenta_cardbus 0000:02:04.1: ISA IRQ mask 0x0cb8, PCI irq 18 [ 9.425100] yenta_cardbus 0000:02:04.1: Socket status: 30000006 [ 9.425110] pci_bus 0000:02: Raising subordinate bus# of parent bus (#02) from #06 to #0a [ 9.425132] yenta_cardbus 0000:02:04.1: pcmcia: parent PCI bridge window: [io 0x3000-0x7fff] [ 9.425143] pcmcia_socket pcmcia_socket1: cs: IO port probe 0x3000-0x7fff: excluding 0x3000-0x30ff 0x3400-0x34ff 0x3800-0x38ff """ A successful boot will instead list some more ranges: """ [ 9.425143] pcmcia_socket pcmcia_socket1: cs: IO port probe 0x3000-0x7fff: excluding 0x3000-0x30ff 0x3400-0x34ff 0x3800-0x38ff 0x3c00-0x3cff 0x7000-0x70ff 0x7400-0x743f [ 9.443240] yenta_cardbus 0000:02:04.1: pcmcia: parent PCI bridge window: [mem 0xe8100000-0xe97fffff] [ 9.443252] pcmcia_socket pcmcia_socket1: cs: memory probe 0xe8100000-0xe97fffff: excluding 0xe8100000-0xe826ffff 0xe83e0000-0xe882ffff 0xe8b10000-0xe90cffff [ 9.443301] yenta_cardbus 0000:02:04.1: pcmcia: parent PCI bridge window: [mem 0x50000000-0x57ffffff pref] [ 9.443311] pcmcia_socket pcmcia_socket1: cs: memory probe 0x50000000-0x57ffffff: excluding 0x50000000-0x57ffffff [ 9.469880] parport_pc 00:0b: reported by Plug and Play ACPI [ 9.469943] parport0: PC-style at 0x378 (0x778), irq 7 [PCSPP,TRISTATE] [ 9.544240] cfg80211: Calling CRDA to update world regulatory domain [ 9.602151] [drm] Initialized drm 1.1.0 20060810 [ 9.666391] pcmcia_socket pcmcia_socket1: cs: IO port probe 0x100-0x3af: excluding nothing: probe failed. [ 9.666533] pcmcia_socket pcmcia_socket1: cs: IO port probe 0x3e0-0x4ff: excluding nothing: probe failed. [ 9.666614] pcmcia_socket pcmcia_socket1: cs: IO port probe 0x820-0x8ff: excluding nothing: probe failed. [ 9.666685] pcmcia_socket pcmcia_socket1: cs: IO port probe 0xc00-0xcf7: excluding nothing: probe failed. [ 9.666764] pcmcia_socket pcmcia_socket1: cs: memory probe 0x0c0000-0x0fffff: excluding 0xc0000-0xfffff [ 9.666827] pcmcia_socket pcmcia_socket1: cs: memory probe 0xa0000000-0xa0ffffff: excluding 0xa0000000-0xa0ffffff [ 9.666888] pcmcia_socket pcmcia_socket1: cs: memory probe 0x60000000-0x60ffffff: excluding 0x60000000-0x60ffffff [ 9.666948] pcmcia_socket pcmcia_socket1: cs: IO port probe 0xa00-0xaff: excluding nothing: probe failed. """ This did not happend with 2.6.32, which, for info, lists the following: """ [ 9.812931] yenta_cardbus 0000:02:04.0: pcmcia: parent PCI bridge I/O window: 0x3000 - 0x7fff [ 9.812941] pcmcia_socket pcmcia_socket0: cs: IO port probe 0x3000-0x7fff: clean. [ 9.815360] yenta_cardbus 0000:02:04.0: pcmcia: parent PCI bridge Memory window: 0xe8100000 - 0xe97fffff [ 9.815369] yenta_cardbus 0000:02:04.0: pcmcia: parent PCI bridge Memory window: 0x50000000 - 0x57ffffff """ I'm currently bisecting the commit, but it seems that the probing code has changed a lot around 2.6.34. I'd be happy to provide any relevant information, or test patches. Cheers.