A Patch Is Still Pending For Fixing Up Newer Radeon GPUs In Older Motherboards
An issue that has been known for weeks and with a patch available but not yet back-ported is about using PCI Express 3.0 capable Radeon graphics cards in older PCI Express 1.0 motherboards. A small patch to the kernel's PCI code is needed to correct the function for returning the PCI Express speed capabilities. On problematic kernel builds, when a PCI Express 3.0 card is in a PCI Express 1.0 motherboard slot, it will be reported as PCIe 3.0 and that can cause issues.
The number of users with PCI Express 3.0 graphics cards and still using PCI Express 1.0 motherboards is to some surprise still up there given the reports of GPU fatal errors on Linux 4.19 and early 4.20 release candidates, PowerPlay regressions, etc. The patch was posted at the end of October but as of writing isn't yet in stable kernel builds.
Since the middle of November, AMDGPU maintainer Alex Deucher had been calling for the Linux PCI patch to be picked up for fixing "a ton of bugs" but with little activity. The pcie_get_speed_cap() is a PCI kernel function in the common code, so it's possible the flawed behavior could be affecting other drivers/hardware too than just AMD Radeon GPUs, and the flawed logic was introduced during Linux 4.17 when this helper was added.
Fortunately, with yesterday's Linux 4.20-rc5 kernel release it's at least picked up there so in 4.20 Git the issue is corrected. It's not yet in any of the stable patch queues for back-porting, but hopefully it's just a matter of days before that will begin appearing in Linux stable point releases.