radeon: screen garbled after page allocator change, was: Re: [patch v2 3/3] mm: page_alloc: fair zone allocator policy

Thomas Schwinge thomas at codesourcery.com
Mon Apr 28 01:09:17 PDT 2014


Hi!

On Sun, 27 Apr 2014 15:55:29 -0400, Jerome Glisse <j.glisse at gmail.com> wrote:
> If my ugly patch works does this quirk also work ?

Unfortunately they both don't; see my other email,
<http://news.gmane.org/find-root.php?message_id=%3C87sioxq3rx.fsf%40schwinge.name%3E>.


Also, the quirk patch resulted in a NULL pointer dereference in
pci_find_ht_capability+0x4/0x30, which I hacked around as follows:

diff --git drivers/pci/quirks.c drivers/pci/quirks.c
index f025867..33aaad2 100644
--- drivers/pci/quirks.c
+++ drivers/pci/quirks.c
@@ -2452,6 +2452,8 @@ u64 pci_ht_quirk_dma_32bit_only(struct pci_dev *dev, u64 mask)
 		struct pci_dev *bridge = bus->self;
 		int pos;
 
+		if (!bridge)
+			goto skip;
 		pos = pci_find_ht_capability(bridge, HT_CAPTYPE_SLAVE);
 		if (pos) {
 			int ctrl_off;
@@ -2472,6 +2474,7 @@ u64 pci_ht_quirk_dma_32bit_only(struct pci_dev *dev, u64 mask)
 				return 0xffffffff;
 			}
 		}
+	skip:
 		bus = bus->parent;
 	} while (bus);
 	return mask;

If needed, I can try to capture more data, but someone who has knowledge
of PCI bus architecture and Linux kernel code (so, not me), might
probably already see what's wrong.


Grüße,
 Thomas
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 489 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20140428/f01b3bbe/attachment-0001.sig>


More information about the dri-devel mailing list