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

Bug#703468: [3.2.35-2 -> 3.2.39-1 regression] fails to boot on apple iMac



found 703468 linux/3.5.5-1~experimental.1
fixed 703468 linux/3.6.4-1~experimental.1
tags 703468 + upstream patch moreinfo
quit

Geoff Crompton wrote:

> works 3.6.4
> fails 3.5.5-1
[...]
> Hope that is helpful, what is the next step?

Very much so!  Thanks for this work.

> 00:02.0 Display controller [0380]: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller [8086:0102] (rev 09)

Could you try the attached patch against a 3.4.y kernel?  It works like
this:

0. prerequisites:

  apt-get install git build-essential

1. get the kernel history, if you don't already have it:

  git clone \
    https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux.git

2. grab point releases:

  cd linux
  git remote add stable \
    https://kernel.googlesource.com/pub/scm/linux/kernel/git/stable/linux-stable
  git fetch stable

3. configure, build, test:

  git checkout stable/linux-3.4.y
  cp /boot/config-$(uname -r) .config; # current configuration
  make localmodconfig; # optional: minimize configuration
  scripts/config --disable DEBUG_INFO
  make deb-pkg; # optionally with -j<num> for parallel build
  dpkg -i ../<name of package>; # as root
  reboot
  ... test test test ...

   Hopefully it reproduces the bug.  So

4. try the patch:

  cd linux
  git cherry-pick -x -s 9a0f938bde74bf9e50bd75c8de9e38c1787398cd
  make deb-pkg; # maybe with -j4
  dpkg -i ../<name of package>; # as root
  reboot
  ... test test test ...

Regards,
Jonathan
From: Chris Wilson <chris@chris-wilson.co.uk>
Date: Fri, 24 Aug 2012 09:12:22 +0100
Subject: drm/i915: Use the correct size of the GTT for placing the per-process entries

commit 9a0f938bde74bf9e50bd75c8de9e38c1787398cd upstream.

The current layout is to place the per-process tables at the end of the
GTT. However, this is currently using a hardcoded maximum size for the GTT
and not taking in account limitations imposed by the BIOS. Use the value
for the total number of entries allocated in the table as provided by
the configuration registers.

Reported-by: Matthew Garrett <mjg@redhat.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Ben Widawsky <ben@bwidawsk.net>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
---
 drivers/gpu/drm/i915/i915_gem_gtt.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
index a135c61..99a7855 100644
--- a/drivers/gpu/drm/i915/i915_gem_gtt.c
+++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
@@ -72,7 +72,7 @@ int i915_gem_init_aliasing_ppgtt(struct drm_device *dev)
 	/* ppgtt PDEs reside in the global gtt pagetable, which has 512*1024
 	 * entries. For aliasing ppgtt support we just steal them at the end for
 	 * now. */
-	first_pd_entry_in_global_pt = 512*1024 - I915_PPGTT_PD_ENTRIES;
+	first_pd_entry_in_global_pt = dev_priv->mm.gtt->gtt_total_entries - I915_PPGTT_PD_ENTRIES;
 
 	ppgtt = kzalloc(sizeof(*ppgtt), GFP_KERNEL);
 	if (!ppgtt)

Reply to: