https://bugzilla.kernel.org/show_bug.cgi?id=195159 Peter Wu (peter@xxxxxxxxxxxxx) changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |peter@xxxxxxxxxxxxx --- Comment #10 from Peter Wu (peter@xxxxxxxxxxxxx) --- The affected code is likely: If ((Arg0 == ToUUID ("a486d8f8-0bda-471b-a72b-6042a6b5bee0"))) { Local0 = Zero Local0 = (DerefOf (Arg3 [0x03]) << 0x18) Local0 += (DerefOf (Arg3 [0x02]) << 0x10) Local0 += (DerefOf (Arg3 [One]) << 0x08) Local0 += (DerefOf (Arg3 [Zero]) << Zero) The reason a Buffer is passed by nouveau instead of a Package is presumably due to an issue with the Windows driver that did the wrong thing, and firmware authors adapting that. I am quite puzzled though with this behavior: [ 13.439026] ACPI Exception: AE_AML_PACKAGE_LIMIT, Index (0x000000003) is beyond end of object (length 0x0) (20160930/exoparg2-427) [ 13.439088] ACPI Error: Method parse/execution failed [\_SB.PCI0.GFX0._DSM] (Node ffff8801c84b9780), AE_AML_PACKAGE_LIMIT (20160930/psparse-543) [ 13.439153] ACPI Error: Method parse/execution failed [\_SB.PCI0.PEG0.GFX0._DSM] (Node ffff8801c84ce7a8), AE_AML_PACKAGE_LIMIT (20160930/psparse-543) [ 13.439222] ACPI: \_SB_.PCI0.PEG0.GFX0: failed to evaluate _DSM (0x300b) [ 13.439383] pci 0000:01:00.0: optimus capabilities: enabled, status dynamic power, [ 13.439388] VGA switcheroo: detected Optimus DSM method \_SB_.PCI0.PEG0.GFX0 handle In both cases, the method invocation failed, and I would expect nouveau_optimus_dsm to set 0 as result: static int nouveau_optimus_dsm(acpi_handle handle, int func, int arg, uint32_t *result) { ... *result = 0; obj = acpi_evaluate_dsm_typed(handle, &nouveau_op_dsm_muid, 0x00000100, func, &argv4, ACPI_TYPE_BUFFER); if (!obj) { acpi_handle_info(handle, "failed to evaluate _DSM\n"); return AE_ERROR; } and I would expect "optimus capabilities: disabled, status " since " uint32_t result; nouveau_optimus_dsm(dhandle, NOUVEAU_DSM_OPTIMUS_CAPS, 0, &result); dev_info(&pdev->dev, "optimus capabilities: %s, status %s%s\n", (result & OPTIMUS_ENABLED) ? "enabled" : "disabled", (result & OPTIMUS_DYNAMIC_PWR_CAP) ? "dynamic power, " : "", (result & OPTIMUS_HDA_CODEC_MASK) ? "hda bios codec supported" : ""); However that does not seem to be the case, so either the Linux ACPI module does some kind of fallback, or there is some other kind of memory issue. Since you reported an issue "since 4.9.6", there was presumably a working version. Can you do a git bisect? -- You are receiving this mail because: You are watching the assignee of the bug. _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel