Re: [BUG] rc1 rc2 rc3 not bootable - black screen after kernel loading

From: Martin Kepplinger
Date: Fri Jul 25 2014 - 06:16:38 EST


Am 2014-07-25 01:20, schrieb Hugh Dickins:
> On Thu, 24 Jul 2014, Martin Kepplinger wrote:
>> Am 2014-06-30 12:39, schrieb Martin Kepplinger:
>>> back to aaeb2554337217dfa4eac2fcc90da7be540b9a73 as the first bad
>>> commit. why is this not revertable exactly? how can I show a complete
>>> list of commits this merge introduces?
>>>
>>
>> It seems that _nobody_ is running a simple 32 bit i915 (acer) laptop.
>> rc6 is still unusable. Black screen directly after kernel-loading. no
>> change since rc1.
>>
>> Seems like I won't be able to use 3.16. I'm happy to test patches and am
>> happy for any advice what to do, when time permits.
>
> Martin, I know nothing about aaeb25543372 and why it should be relevant,
> but if you're having rc1..rc6 32-bit i915 black screens, please try this
> patch that Daniel Vetter put in his fixes queue on Monday, which I'm
> hoping will reach Linus for -rc7.
>
> Hugh
>
> [PATCH] drm/i915: fix freeze with blank screen booting highmem
>
> x86_64 boots and displays fine, but booting x86_32 with CONFIG_HIGHMEM
> has frozen with a blank screen throughout 3.16-rc on this ThinkPad T420s,
> with i915 generation 6 graphics.
>
> Fix 9d0a6fa6c5e6 ("drm/i915: add render state initialization"): kunmap()
> takes struct page * argument, not virtual address. Which the compiler
> kindly points out, if you use the appropriate u32 *batch, instead of
> silencing it with a void *.
>
> Why did bisection lead decisively to nearby 229b0489aa75 ("drm/i915:
> add null render states for gen6, gen7 and gen8")? Because the u32
> deposited at that virtual address by the previous stub failed the
> PageHighMem test, and so caused no harm.
>
> Signed-off-by: Hugh Dickins <hughd@xxxxxxxxxx>
> ---
>
> drivers/gpu/drm/i915/i915_gem_render_state.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> --- 3.16-rc/drivers/gpu/drm/i915/i915_gem_render_state.c 2014-06-16 00:28:52.384076465 -0700
> +++ linux/drivers/gpu/drm/i915/i915_gem_render_state.c 2014-07-21 20:10:03.824481521 -0700
> @@ -31,7 +31,7 @@
> struct i915_render_state {
> struct drm_i915_gem_object *obj;
> unsigned long ggtt_offset;
> - void *batch;
> + u32 *batch;
> u32 size;
> u32 len;
> };
> @@ -80,7 +80,7 @@ free:
>
> static void render_state_free(struct i915_render_state *so)
> {
> - kunmap(so->batch);
> + kunmap(kmap_to_page(so->batch));
> i915_gem_object_ggtt_unpin(so->obj);
> drm_gem_object_unreference(&so->obj->base);
> kfree(so);
>

yes! thanks Hugh. On top of linus' current tree, that finally fixes my
problem! I hope it'll be included soon!

martin

p.s. linux-media removed from thread
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/