On Thu, Jul 04, 2013 at 01:38:05AM +0200, Daniel Vetter wrote: > On Thu, Jul 4, 2013 at 1:33 AM, Chris Wilson <chris at chris-wilson.co.uk> wrote: > > On Thu, Jul 04, 2013 at 01:26:03AM +0200, Daniel Vetter wrote: > >> On Thu, Jul 4, 2013 at 1:23 AM, Chris Wilson <chris at chris-wilson.co.uk> wrote: > >> > So I made the mistake of missing that the desktop and mobile chipsets > >> > have different layouts in their PCI configurations, and we were > >> > incorrectly setting the wrong physical address for stolen memory on > >> > mobile chipsets. > >> > > >> > Since all gen3+ are actually consistent in the location of the GBSM > >> > register in the PCI configuration space on device 2 (the GPU), use it. > >> > > >> > Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk> > >> > Cc: Daniel Vetter <daniel.vetter at ffwll.ch> > >> > Cc: stable at vger.kernel.org > >> > >> Nope, not cc: stable since the last time around the overlay blew up in > >> flames ... > > > > You can comment out gen3, but the dangerous part is that we are > > overwriting random physical addresses. > > Hm, should we do a request_region on the stolen range to double-check > that? Just for paranoia and in case the BIOS does something terrible > ... Afaict, request_region() is only being used to reserve and check for conflicting io ranges. I don't know if that will give us protection against overwriting user/kernel memory. Maybe it does - I haven't found the documentation for it yet. -Chris -- Chris Wilson, Intel Open Source Technology Centre