From: "KONDO KAZUMA(近藤 和真)" <kazuma-kondo@nec.com>
To: "rafael@kernel.org" <rafael@kernel.org>,
"lenb@kernel.org" <lenb@kernel.org>,
"bhelgaas@google.com" <bhelgaas@google.com>
Cc: "jonathan.cameron@huawei.com" <jonathan.cameron@huawei.com>,
"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: [REGRESSION] ACPI: PCI: misleading _OSC failure message when _OSC is absent
Date: Fri, 17 Jul 2026 12:01:50 +0000 [thread overview]
Message-ID: <d0be949d-0e21-472e-a44b-cedb1dd8695d@nec.com> (raw)
Hello,
After 7d703df7f4f5 ("ACPI: bus: Split _OSC evaluation out of acpi_run_osc()"),
AE_NOT_FOUND from acpi_evaluate_object() is handled as AE_ERROR in
negotiate_os_control().
I haven't yet observed any functional issue with this change,
but I started seeing the following misleading messages on my Intel servers:
kernel: ACPI: Enabled 2 GPEs in block 00 to 7F
kernel: ACPI: PCI Root Bridge [UNC0] (domain 0000 [bus fe])
kernel: acpi PNP0A03:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI EDR HPX-Type3]
+ kernel: acpi PNP0A03:00: _OSC: OS requested [PCIeHotplug SHPCHotplug PME AER PCIeCapability LTR DPC]
+ kernel: acpi PNP0A03:00: _OSC: platform willing to grant [PCIeHotplug SHPCHotplug PME AER PCIeCapability LTR DPC]
+ kernel: acpi PNP0A03:00: _OSC: platform retains control of PCIe features (AE_ERROR)
kernel: PCI host bridge to bus 0000:fe
Before the commit, the log was:
kernel: ACPI: Enabled 2 GPEs in block 00 to 7F
kernel: ACPI: PCI Root Bridge [UNC0] (domain 0000 [bus fe])
kernel: acpi PNP0A03:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI EDR HPX-Type3]
kernel: PCI host bridge to bus 0000:fe
"UNC0" is an uncore root bridge and does not define an _OSC method in the ACPI
namespace on my systems.
Previously, when acpi_evaluate_object() was called for UNC0._OSC, it returned
AE_NOT_FOUND, and that status was propagated to negotiate_os_control().
Now, it appears that acpi_eval_osc()/acpi_run_osc() no longer preserve the
distinction between AE_NOT_FOUND and other errors from acpi_evaluate_object(),
so negotiate_os_control() no longer receives AE_NOT_FOUND in this case.
The call chain looks like this on my system:
negotiate_os_control()
acpi_pci_osc_control_set() [retval = AE_ERROR ]
acpi_pci_query_osc () [retval = AE_ERROR ]
acpi_pci_run_osc() [retval = AE_ERROR ]
acpi_run_osc() [retval = AE_ERROR ]
acpi_eval_osc() [retval = -ENODATA ]
acpi_evaluate_object() [retval = AE_NOT_FOUND]
As a result, negotiate_os_control() logs messages as if the OS had negotiated
with the platform via _OSC, even though _OSC is absent and no such negotiation
actually happens.
I'm not very familiar with the ACPI/PCI code, so I may be missing some
context. However, if my understanding is correct, would preserving
AE_NOT_FOUND here (for example, having acpi_eval_osc()/acpi_run_osc() return
the error as-is) be the right direction, or should the message handling be
adjusted instead?
If there is a preferred direction for fixing this, I would be happy to try
putting together a patch and testing it on my system.
Thanks,
Kazuma
next reply other threads:[~2026-07-17 12:01 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-17 12:01 KONDO KAZUMA(近藤 和真) [this message]
2026-07-17 16:22 ` [REGRESSION] ACPI: PCI: misleading _OSC failure message when _OSC is absent Rafael J. Wysocki (Intel)
2026-07-24 11:15 ` KONDO KAZUMA(近藤 和真)
2026-07-27 12:10 ` Rafael J. Wysocki (Intel)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d0be949d-0e21-472e-a44b-cedb1dd8695d@nec.com \
--to=kazuma-kondo@nec.com \
--cc=bhelgaas@google.com \
--cc=jonathan.cameron@huawei.com \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=rafael@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox