[PATCH] drm/i915: Use Graphics Base of Stolen Memory on all gen3+

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jul 04, 2013 at 12:55:08AM +0100, Chris Wilson wrote:
> 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.

On a quick reading (I didn't really try it out in practice) the e820 code
inserts resource nodes for each memory segment into the resource tree. So
I think this should indeed work out. At least request_mem_region seems to
check for IORESOURCE_BUSY and e820_reserve_resources seems to set that on
all memory regions managed by the kernel (if I read the magic checks
correctly).
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch


[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux