[linux] Infinite loop in pci_get_rom_size()
This is one of those issues that you find when putting supposedly stable code through unusual situations. I did expect any function in linux that is not part of radeon.ko to not be rock solid. Turns out that's not really the case.
If we have a PCIR structure with a zero size length, the loop iterating through those structure does not advance. It simply does "image += readw(pds + 16) * 512;", but if that field is zero we're back analyzing the same structure on the next loop. The way to get out of this loop is to set bit 7 of the type field. That's what 'last_image' does. If that bit is not set, with the above, that's an infinite loop.
Luckily, it doesn't crash the kernel, but it hangs any driver that calls the function under said circumstances. No more modprobe -r or unbinding. Reboot is needed. No idea why a firmware blob here is treated as trusted input.
Also just tried *enabling* the IGP and keeping PEG as the primary graphics. Video output stayed on the discrete card output and the same stack trace happened when booting without nomodeset. So now I'm back to setting it as disabled as it had been before.2015-01-14 23:59 GMT-03:00 Federico <federicotg@xxxxxxxxx>:AFAIK this BIOS requires me to disable IGP to even use the discrete graphics. At least that's the first thing I had to do when I first installed the card and every time I wanted to change the monitor connection.Here's how "disabled" it is:
https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/1386973/+attachment/4298792/+files/20150114_234953.png2015-01-14 23:46 GMT-03:00 Michel Dänzer <michel@xxxxxxxxxxx>:On 15.01.2015 11:10, Federico wrote:
> Here's the 3.18 32-bits 60 lines per screen stack trace. Always using
> softlockup_panic=1.
>
> Quite similar, but slightly different. Hopefully, useful.
>
> https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/1386973/+attachment/4298769/+files/20150114_230142.png
Looks like it hangs while reading the video BIOS ROM.
If the integrated GPU is still enabled in the system BIOS setup, does
disabling it avoid the problem?
_______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel