Bug 14337
Summary: | PCI host bridge driver accepts invalid apertures | ||
---|---|---|---|
Product: | Drivers | Reporter: | Bjorn Helgaas (bjorn.helgaas) |
Component: | PCI | Assignee: | drivers_pci (drivers_pci) |
Status: | CLOSED CODE_FIX | ||
Severity: | normal | CC: | acpi-bugzilla, jbarnes, lenb, yakui.zhao |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 2.6.32-rc3 | Subsystem: | |
Regression: | No | Bisected commit-id: | |
Attachments: |
PCI resources from Windows device manager
Windows with a non-aligned IO window |
Description
Bjorn Helgaas
2009-10-06 22:42:29 UTC
Created attachment 23292 [details]
PCI resources from Windows device manager
Hi, Bjorn Will you please add the boot option of "pci=earlydump" and attach the output of dmesg? Please also attach the output of acpidump, lspci -vxxx. Thanks. Patch from Bjorn: http://patchwork.kernel.org/patch/57712/ Here's part of the _CRS descriptor dump for the [io 0x0000-0x2cfe] window above: [02] 16-Bit WORD Address Space Resource Resource Type : I/O Range Address Minimum : 0000 (_MIN) Address Maximum : 2CFF (_MAX) Address Length : 2CFF (_LEN) Windows computed the window as [io 0x0000-0x2cff] instead. I assumed this was because Windows was rounding the end to a sensible boundary. But I now think Windows is ignoring _LEN and simply using [_MIN to _MAX]. Created attachment 26162 [details]
Windows with a non-aligned IO window
Here's a Windows screenshot showing an I/O window where [_MIN to _MIN + _LEN - 1] would be [io 0x0d00-0xffff], but Windows is apparently using [_MIN to _MAX], or [io 0xd00-0xfffe].
Doing the same in Linux would make the code simpler and (I hope) closer to what Windows does.
bjorn's two patches on this subject: https://patchwork.kernel.org/patch/95495/ https://patchwork.kernel.org/patch/95493/ applied to acpi test tree Already pulled the x86/PCI patch into my tree and sent to Linus yesterday. shipped in 2.6.34 closed |