diff options
| author | Krzysztof Wilczyński <kwilczynski@kernel.org> | 2026-08-14 07:05:19 +0000 |
|---|---|---|
| committer | Bjorn Helgaas <bhelgaas@google.com> | 2026-10-07 16:09:45 -0500 |
| commit | 36f9bd09920ed71c1b79db397170412b2de22319 (patch) | |
| tree | 6e628d5cc43aa1090f682ae067678f0d291d65d8 /tools/perf/scripts/python | |
| parent | cee9395acd8043be0644b25c34bfa86623f2b935 (diff) | |
PCI/sysfs: Stop reporting _DSM failures as -EPERM
Currently, dsm_get_label() returns the literal -1 on every failure path.
The sysfs read path passes that value to userspace as -EPERM. Reading the
"label" or "acpi_index" attribute on a platform where the Device Name _DSM
returns a malformed result then fails with:
$ cat /sys/bus/pci/devices/0000:00:08.3/label
cat: /sys/bus/pci/devices/0000:00:08.3/label: Operation not permitted
Nothing in that path performs a permission check, and the read fails the
same way for a privileged reader. The error code points at a cause that
does not exist, and tools such as lspci report it on every invocation.
Return -ENODEV when the device has no ACPI companion, and -EIO when the
_DSM evaluation fails or returns an object that cannot be parsed. Other
_DSM users in the tree report such failures the same way.
The set of reads that succeed, and the bytes they return, stay the same.
Only the error code of reads that already fail differs.
Fixes: 6058989bad05 ("PCI: Export ACPI _DSM provided firmware instance number and string name to sysfs")
Link: https://github.com/pciutils/pciutils/issues/175
Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://patch.msgid.link/20260814070522.2327975-2-kwilczynski@kernel.org
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions
