[3.11.y.z extended stable] Patch "drm/nouveau/bios: make jump conditional" has been added to staging queue

Luis Henriques luis.henriques at canonical.com
Mon Jan 13 14:44:28 UTC 2014


This is a note to let you know that I have just added a patch titled

    drm/nouveau/bios: make jump conditional

to the linux-3.11.y-queue branch of the 3.11.y.z extended stable tree 
which can be found at:

 http://kernel.ubuntu.com/git?p=ubuntu/linux.git;a=shortlog;h=refs/heads/linux-3.11.y-queue

If you, or anyone else, feels it should not be added to this tree, please 
reply to this email.

For more information about the 3.11.y.z tree, see
https://wiki.ubuntu.com/Kernel/Dev/ExtendedStable

Thanks.
-Luis

------

>From 6c1160e0d2315f558bb8931dd85b56eeb40bf0ad Mon Sep 17 00:00:00 2001
From: Ilia Mirkin <imirkin at alum.mit.edu>
Date: Sun, 5 Jan 2014 20:07:02 -0500
Subject: drm/nouveau/bios: make jump conditional
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

commit 6d60792ec059d9f2139828f9f017679abb81aa73 upstream.

This fixes a hang in VBIOS scripts of the form "condition; jump".
The jump used to always be executed, while now it will only be
executed if the condition is true.

See https://bugs.freedesktop.org/show_bug.cgi?id=72943

Reported-by: Darcy BrĂ¡s da Silva <dardevelin at cidadecool.com>
Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
Signed-off-by: Luis Henriques <luis.henriques at canonical.com>
---
 drivers/gpu/drm/nouveau/core/subdev/bios/init.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/init.c b/drivers/gpu/drm/nouveau/core/subdev/bios/init.c
index 8f06cca..892070a 100644
--- a/drivers/gpu/drm/nouveau/core/subdev/bios/init.c
+++ b/drivers/gpu/drm/nouveau/core/subdev/bios/init.c
@@ -1294,7 +1294,11 @@ init_jump(struct nvbios_init *init)
 	u16 offset = nv_ro16(bios, init->offset + 1);

 	trace("JUMP\t0x%04x\n", offset);
-	init->offset = offset;
+
+	if (init_exec(init))
+		init->offset = offset;
+	else
+		init->offset += 3;
 }

 /**
--
1.8.3.2





More information about the kernel-team mailing list