[kernel/f14/master] nouveau: fix oops in acpi edid support

Ben Skeggs bskeggs at fedoraproject.org
Sun Sep 12 23:14:19 UTC 2010


commit 4badda43702a016b6b3f7cda94e5b2fd06d4fd96
Author: Ben Skeggs <bskeggs at redhat.com>
Date:   Mon Sep 13 09:05:15 2010 +1000

    nouveau: fix oops in acpi edid support

 drm-nouveau-acpi-edid-fix.patch |   29 +++++++++++++++++++++++++++++
 kernel.spec                     |    7 ++++++-
 2 files changed, 35 insertions(+), 1 deletions(-)
---
diff --git a/drm-nouveau-acpi-edid-fix.patch b/drm-nouveau-acpi-edid-fix.patch
new file mode 100644
index 0000000..52c6662
--- /dev/null
+++ b/drm-nouveau-acpi-edid-fix.patch
@@ -0,0 +1,29 @@
+From 3a25c2ea8bd898dff218ef8baa09ea1f05a60b48 Mon Sep 17 00:00:00 2001
+From: Ben Skeggs <bskeggs at redhat.com>
+Date: Fri, 10 Sep 2010 15:33:11 +1000
+Subject: [PATCH] drm/nouveau: we can't free ACPI EDID, so make a copy that we can
+
+The rest of the connector code assumes we can kfree() the EDID pointer.
+This causes things to blow up with the ACPI EDID pointer we get
+passed.
+
+Signed-off-by: Ben Skeggs <bskeggs at redhat.com>
+---
+ drivers/gpu/drm/nouveau/nouveau_acpi.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/drivers/gpu/drm/nouveau/nouveau_acpi.c b/drivers/gpu/drm/nouveau/nouveau_acpi.c
+index c17a055..1191526 100644
+--- a/drivers/gpu/drm/nouveau/nouveau_acpi.c
++++ b/drivers/gpu/drm/nouveau/nouveau_acpi.c
+@@ -292,6 +292,6 @@ nouveau_acpi_edid(struct drm_device *dev, struct drm_connector *connector)
+ 	if (ret < 0)
+ 		return ret;
+ 
+-	nv_connector->edid = edid;
++	nv_connector->edid = kmemdup(edid, EDID_LENGTH, GFP_KERNEL);
+ 	return 0;
+ }
+-- 
+1.7.2.2
+
diff --git a/kernel.spec b/kernel.spec
index e4fc678..cf75f61 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -48,7 +48,7 @@ Summary: The Linux kernel
 # reset this by hand to 1 (or to 0 and then use rpmdev-bumpspec).
 # scripts/rebase.sh should be made to do that for you, actually.
 #
-%global baserelease 25
+%global baserelease 26
 %global fedora_build %{baserelease}
 
 # base_sublevel is the kernel version we're starting with and patching
@@ -659,6 +659,7 @@ Patch1807: drm-i2c-ch7006-fix.patch
 Patch1810: drm-nouveau-updates.patch
 Patch1811: drm-nouveau-race-fix.patch
 Patch1812: drm-nouveau-nva3-noaccel.patch
+Patch1813: drm-nouveau-acpi-edid-fix.patch
 Patch1819: drm-intel-big-hammer.patch
 # intel drm is all merged upstream
 Patch1824: drm-intel-next.patch
@@ -1278,6 +1279,7 @@ ApplyPatch drm-i2c-ch7006-fix.patch
 ApplyPatch drm-nouveau-updates.patch
 ApplyPatch drm-nouveau-race-fix.patch
 ApplyPatch drm-nouveau-nva3-noaccel.patch
+ApplyPatch drm-nouveau-acpi-edid-fix.patch
 
 ApplyPatch drm-intel-big-hammer.patch
 ApplyOptionalPatch drm-intel-next.patch
@@ -1929,6 +1931,9 @@ fi
 # and build.
 
 %changelog
+* Mon Sep 13 2010 Ben Skeggs <bskeggs at redhat.com> 2.6.35.4-27
+- nouveau: fix oops in acpi edid support
+
 * Fri Sep 10 2010 Jarod Wilson <jarod at redhat.com> 2.6.35.4-26
 - ir-core rebase to current upstream
 


More information about the scm-commits mailing list