Re: 3.8.0-rc4+ - Oops on removing WinTV-HVR-1400 expresscard TV Tuner

From: Bjorn Helgaas
Date: Fri Mar 08 2013 - 17:57:37 EST


[+cc Rafael, in case the _OSC thing rings a bell with him]

On Fri, Mar 8, 2013 at 3:44 AM, Chris Clayton <chris2553@xxxxxxxxxxxxxx> wrote:
> On 03/08/13 00:39, Bjorn Helgaas wrote:
>> On Thu, Mar 7, 2013 at 1:21 PM, Chris Clayton <chris2553@xxxxxxxxxxxxxx>
>> wrote:
>>> On 03/07/13 17:30, Bjorn Helgaas wrote:

>>>> 3) HVR-1400 not being recognized when inserted. This is a PCI hotplug
>>>> issue, and I *can* help with this. I don't know what your hardware
>>>> is, but in general, pciehp should take care of this. If it doesn't,
>>>> or if you have to use an argument like "pcie_ports=native", we should
>>>> fix this.

>>>> So 3) is the thing I might be able to help with. If there's still a
>>>> problem here (and even having to boot with an argument is a problem),
>>>> let's start by collecting complete dmesg logs, with and without your
>>>> "pcie_ports" option. Boot without the card installed, then insert it
>>>> and remove it. If you can use something like v3.9-rc1 with
>>>> CONFIG_HOTPLUG_PCI_PCIE=y, that would be ideal.
>>>
>>>
>>> OK, I've gathered these logs using a kernel built from a pull of Linus'
>>> tree
>>> this afternoon (v3.9-rc1-108-g9f22578). Also, the cx23885 driver is still
>>> blacklisted to avoid unnecessary noise and the chance of an oops if the
>>> card
>>> springs out again when I insert it. The driver does load if it's not
>>> blacklisted (and the pcie_ports=native option is present).
>>>
>>> The two logs are attached. As you will see, nothing at all happens when
>>> the
>>> pcie_ports=native option is absent. The nf_conntrack message is normally
>>> the
>>> last one from a normal boot.
>>
>>
>> Perfect, thanks!
>>
>> It looks like something's going wrong when we evaluate _OSC. Can you
>> collect an acpidump from your machine?
>>
> A bziped file containing the output from acpidump is attached.

Thanks. I opened this bug report:
https://bugzilla.kernel.org/show_bug.cgi?id=54981 to keep track of
your logs.

Here's your _OSC method from the acpidump:

Method (_OSC, 4, Serialized) {
...
If (LAnd (LEqual (Arg0, GUID), NEXP))
... # normal case
Else {
Or (CDW1, 0x04, CDW1) # "unrecognized UUID" error
Return (Local0)
}

It fails with "unrecognized UUID" if either (1) we supply the wrong
UUID or (2) "NEXP" is false. I have no idea what NEXP is; your
DSDT.dsl never sets it, so maybe it's related to a BIOS setup option
or something? I found a BIOS manual [1] but didn't see anything
likely. I guess it might be worth you looking, or maybe trying a
"reset to defaults" if it's not too destructive for you. You don't
have a copy of Windows on that box, do you? I *assume* hotplug would
work fine with Windows and maybe we could figure out what it is doing
differently.

Bjorn

[1] http://solutions.us.fujitsu.com/www/content/pdf/SupportGuides/AH530_BIOS_Guide_FPC58-2843-01_rA.pdf
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/