On Sat, 2025-06-21 at 16:05 +0200, Lukas Wunner wrote: > On Sat, Jun 21, 2025 at 03:51:44PM +0200, Ben Hutchings wrote: > > On Sat, 2025-06-21 at 14:29 +0200, Lukas Wunner wrote: > > > On Sat, Jun 21, 2025 at 02:07:40PM +0200, Ben Hutchings wrote: > > > > On Sat, 2025-06-21 at 11:40 +0200, Lukas Wunner wrote: > > > > > Since commit 172efbb40333 ("AGP: Try unsupported AGP chipsets on > > > > > x86-64 by > > > > > default"), the AGP driver for AMD Opteron/Athlon64 CPUs attempts to > > > > > bind > > > > > to any PCI device. > > > > > > > > > > On modern CPUs exposing an AMD IOMMU, this results in a message with > > > > > KERN_CRIT severity: > > > > > > > > > > pci 0000:00:00.2: Resources present before probing > > > > > > > > > > The driver used to bind only to devices exposing the AGP Capability, > > > > > but > > > > > that restriction was removed by commit 6fd024893911 ("amd64-agp: Probe > > > > > unknown AGP devices the right way"). > > > > > > > > That didn't remove any restriction as the probe function still started > > > > by checking for an AGP capability. The change I made was that the > > > > driver would actually bind to devices with the AGP capability instead of > > > > starting to use them without binding. > > > > > > The message above would not be emitted without your change. > > > > > > The check for the AGP capability in agp_amd64_probe() is too late > > > to prevent the message. That's because the message is emitted > > > before ->probe() is even called. > > > > I understand that. But I don't feel that the explanation above > > accurately described the history here. > > So please propose a more accurate explanation.
Something like "The driver iterates over all PCI devices, checking for an AGP capability. Since commit 6fd024893911 ("amd64-agp: Probe unknown AGP devices the right way") this is done with driver_attach() and a wildcard PCI ID table, and the preparation for probing the IOMMU device produces this error message." Thinking about this further: - Why *does* the IOMMU device have resources assigned but no driver bound? Is that the real bug? - If not, and there's a general problem with this promiscuous probing, would it make more sense to: 1. Restore the search for an AGP capability in agp_amd64_init(). 2. If and only if an AGP device is found, poke the appropriate device ID into agp_amd64_pci_promisc_table and then call driver_attach(). ? Ben. -- Ben Hutchings Horngren's Observation: Among economists, the real world is often a special case.
signature.asc
Description: This is a digitally signed message part