rpms/kernel/F-11 patch-2.6.32.10-rc1.bz2.sign, NONE, 1.1 .cvsignore, 1.1072, 1.1073 kernel.spec, 1.1825, 1.1826 linux-2.6-upstream-reverts.patch, 1.12, 1.13 sources, 1.1034, 1.1035 upstream, 1.945, 1.946 fix-LOOKUP_FOLLOW-on-automount-symlinks.patch, 1.1, NONE fs-exec.c-fix-initial-stack-reservation.patch, 1.1, NONE
Chuck Ebbert
cebbert at fedoraproject.org
Sun Mar 14 05:41:08 UTC 2010
- Previous message: rpms/xiphos/F-13 xiphos-xul-1.9.2.patch,NONE,1.1 xiphos.spec,1.8,1.9
- Next message: rpms/scidavis/devel scidavis-fitPlugins.patch, NONE, 1.1 scidavis-manual.patch, NONE, 1.1 scidavis-pro.patch, NONE, 1.1 sources, 1.9, 1.10
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: cebbert
Update of /cvs/pkgs/rpms/kernel/F-11
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv15816
Modified Files:
.cvsignore kernel.spec linux-2.6-upstream-reverts.patch
sources upstream
Added Files:
patch-2.6.32.10-rc1.bz2.sign
Removed Files:
fix-LOOKUP_FOLLOW-on-automount-symlinks.patch
fs-exec.c-fix-initial-stack-reservation.patch
Log Message:
Linux 2.6.32.10-rc1
Revert -stable patches that conflict with our F-11 DRM:
acpi-i915-blacklist-clevo-m5x0n-bad_lid-state.patch
drm-i915-fix-get_core_clock_speed-for-g33-class-desktop-chips.patch
drm-radeon-kms-r600-r700-don-t-test-ib-if-ib-initialization-fails.patch
drm-radeon-r6xx-r7xx-possible-security-issue-system-ram-access.patch
drm-i915-disable-tv-hotplug-status-check.patch
drm-ttm-handle-oom-in-ttm_tt_swapout.patch
drm-i915-use-a-dmi-quirk-to-skip-a-broken-sdvo-tv-output.patch
Drop patches merged in -stable:
fs-exec.c-fix-initial-stack-reservation.patch
fix-LOOKUP_FOLLOW-on-automount-symlinks.patch
--- NEW FILE patch-2.6.32.10-rc1.bz2.sign ---
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: See http://www.kernel.org/signature.html for info
iD8DBQBLmwb4yGugalF9Dw4RAnSfAJ4yLK8VGGyyHi3U/hr87H+c90Gr1gCfakje
ojX23o142BfLTb+lbVZrF8g=
=FCkI
-----END PGP SIGNATURE-----
Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-11/.cvsignore,v
retrieving revision 1.1072
retrieving revision 1.1073
diff -u -p -r1.1072 -r1.1073
--- .cvsignore 23 Feb 2010 23:20:50 -0000 1.1072
+++ .cvsignore 14 Mar 2010 05:41:06 -0000 1.1073
@@ -6,3 +6,4 @@ temp-*
kernel-2.6.32
linux-2.6.32.tar.bz2
patch-2.6.32.9.bz2
+patch-2.6.32.10-rc1.bz2
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-11/kernel.spec,v
retrieving revision 1.1825
retrieving revision 1.1826
diff -u -p -r1.1825 -r1.1826
--- kernel.spec 4 Mar 2010 00:35:34 -0000 1.1825
+++ kernel.spec 14 Mar 2010 05:41:07 -0000 1.1826
@@ -40,9 +40,9 @@ Summary: The Linux kernel
%if 0%{?released_kernel}
# Do we have a -stable update to apply?
-%define stable_update 9
+%define stable_update 10
# Is it a -stable RC?
-%define stable_rc 0
+%define stable_rc 1
# Set rpm version accordingly
%if 0%{?stable_update}
%define stablerev .%{stable_update}
@@ -752,12 +752,6 @@ Patch12311: fix-ima-null-ptr-deref.patch
# rhbz#567530
Patch12350: tcp-fix-icmp-rto-war.patch
-# fix breakage from 2.6.32.9
-Patch12400: fs-exec.c-fix-initial-stack-reservation.patch
-
-# fix automount symlinks (#567813)
-Patch12410: fix-LOOKUP_FOLLOW-on-automount-symlinks.patch
-
Patch20031: vgaarb-fix-userspace-ptr-deref.patch
#===============================================================================
@@ -1389,12 +1383,6 @@ ApplyPatch fix-ima-null-ptr-deref.patch
# rhbz#567530
ApplyPatch tcp-fix-icmp-rto-war.patch
-# fix breakage from 2.6.32.9
-ApplyPatch fs-exec.c-fix-initial-stack-reservation.patch
-
-# fix automount symlinks (#567813)
-ApplyPatch fix-LOOKUP_FOLLOW-on-automount-symlinks.patch
-
# END OF PATCH APPLICATIONS ====================================================
%endif
@@ -2049,6 +2037,20 @@ fi
# and build.
%changelog
+* Sat Mar 13 2010 Chuck Ebbert <cebbert at redhat.com> 2.6.32.10-41.rc1
+- Linux 2.6.32.10-rc1
+- Revert -stable patches that conflict with our F-11 DRM:
+ acpi-i915-blacklist-clevo-m5x0n-bad_lid-state.patch
+ drm-i915-fix-get_core_clock_speed-for-g33-class-desktop-chips.patch
+ drm-radeon-kms-r600-r700-don-t-test-ib-if-ib-initialization-fails.patch
+ drm-radeon-r6xx-r7xx-possible-security-issue-system-ram-access.patch
+ drm-i915-disable-tv-hotplug-status-check.patch
+ drm-ttm-handle-oom-in-ttm_tt_swapout.patch
+ drm-i915-use-a-dmi-quirk-to-skip-a-broken-sdvo-tv-output.patch
+- Drop patches merged in -stable:
+ fs-exec.c-fix-initial-stack-reservation.patch
+ fix-LOOKUP_FOLLOW-on-automount-symlinks.patch
+
* Wed Mar 03 2010 Kyle McMartin <kyle at redhat.com>
- Fix nouveau ABI version, didn't get reset with the DRM downgrade.
linux-2.6-upstream-reverts.patch:
drivers/gpu/drm/i915/i915_debugfs.c | 30 --------
drivers/gpu/drm/i915/i915_drv.h | 13 +++
drivers/gpu/drm/i915/i915_gem.c | 123 +++++++++++++++++++++++++++++++----
drivers/gpu/drm/i915/i915_reg.h | 15 ++++
drivers/gpu/drm/i915/i915_suspend.c | 5 +
drivers/gpu/drm/i915/intel_crt.c | 3
drivers/gpu/drm/i915/intel_display.c | 50 ++++++++++++--
drivers/gpu/drm/i915/intel_drv.h | 2
drivers/gpu/drm/i915/intel_fb.c | 2
drivers/gpu/drm/i915/intel_i2c.c | 19 +++++
drivers/gpu/drm/i915/intel_lvds.c | 30 ++++++++
drivers/gpu/drm/i915/intel_sdvo.c | 25 ++++++-
drivers/gpu/drm/i915/intel_tv.c | 2
drivers/gpu/drm/radeon/atom.c | 2
drivers/gpu/drm/radeon/r600.c | 13 +--
drivers/gpu/drm/radeon/r600_cs.c | 83 +++++++++++++++++++++++
drivers/gpu/drm/radeon/r600d.h | 26 +++++++
drivers/gpu/drm/radeon/radeon.h | 1
drivers/gpu/drm/radeon/radeon_cs.c | 1
drivers/gpu/drm/radeon/rv770.c | 13 +--
drivers/gpu/drm/ttm/ttm_tt.c | 18 +++--
include/drm/drm_os_linux.h | 2
22 files changed, 399 insertions(+), 79 deletions(-)
Index: linux-2.6-upstream-reverts.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-11/linux-2.6-upstream-reverts.patch,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -p -r1.12 -r1.13
--- linux-2.6-upstream-reverts.patch 22 Feb 2010 23:17:14 -0000 1.12
+++ linux-2.6-upstream-reverts.patch 14 Mar 2010 05:41:08 -0000 1.13
@@ -1,3 +1,592 @@
+From 6070a4a928f8c92b9fae7d6717ebbb05f425d6b2 Mon Sep 17 00:00:00 2001
+From: Zhao Yakui <yakui.zhao at intel.com>
+Date: Mon, 8 Feb 2010 21:35:12 +0800
+Subject: drm/i915: Use a dmi quirk to skip a broken SDVO TV output.
+
+From: Zhao Yakui <yakui.zhao at intel.com>
+
+commit 6070a4a928f8c92b9fae7d6717ebbb05f425d6b2 upstream.
+
+This IBM system has a multi-function SDVO card that reports both VGA
+and TV, but the system has no TV connector. The TV connector always
+reported as connected, which would lead to poor modesetting choices.
+
+https://bugs.freedesktop.org/show_bug.cgi?id=25787
+
+Signed-off-by: Zhao Yakui <yakui.zhao at intel.com>
+Tested-by: Vance <liangghv at sg.ibm.com>
+Signed-off-by: Eric Anholt <eric at anholt.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+---
+ drivers/gpu/drm/i915/intel_sdvo.c | 23 ++++++++++++++++++++++-
+ 1 file changed, 22 insertions(+), 1 deletion(-)
+
+--- a/drivers/gpu/drm/i915/intel_sdvo.c
++++ b/drivers/gpu/drm/i915/intel_sdvo.c
+@@ -35,6 +35,7 @@
+ #include "i915_drm.h"
+ #include "i915_drv.h"
+ #include "intel_sdvo_regs.h"
++#include <linux/dmi.h>
+
+ #undef SDVO_DEBUG
+
+@@ -2289,6 +2290,25 @@ intel_sdvo_get_slave_addr(struct drm_dev
+ return 0x72;
+ }
+
++static int intel_sdvo_bad_tv_callback(const struct dmi_system_id *id)
++{
++ DRM_DEBUG_KMS("Ignoring bad SDVO TV connector for %s\n", id->ident);
++ return 1;
++}
++
++static struct dmi_system_id intel_sdvo_bad_tv[] = {
++ {
++ .callback = intel_sdvo_bad_tv_callback,
++ .ident = "IntelG45/ICH10R/DME1737",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "IBM CORPORATION"),
++ DMI_MATCH(DMI_PRODUCT_NAME, "4800784"),
++ },
++ },
++
++ { } /* terminating entry */
++};
++
+ static bool
+ intel_sdvo_output_setup(struct intel_output *intel_output, uint16_t flags)
+ {
+@@ -2329,7 +2349,8 @@ intel_sdvo_output_setup(struct intel_out
+ (1 << INTEL_SDVO_NON_TV_CLONE_BIT) |
+ (1 << INTEL_ANALOG_CLONE_BIT);
+ }
+- } else if (flags & SDVO_OUTPUT_SVID0) {
++ } else if ((flags & SDVO_OUTPUT_SVID0) &&
++ !dmi_check_system(intel_sdvo_bad_tv)) {
+
+ sdvo_priv->controlled_output = SDVO_OUTPUT_SVID0;
+ encoder->encoder_type = DRM_MODE_ENCODER_TVDAC;
+From 290e55056ec3d25c72088628245d8cae037b30db Mon Sep 17 00:00:00 2001
+From: Maarten Maathuis <madman2003 at gmail.com>
+Date: Sat, 20 Feb 2010 03:22:21 +0100
+Subject: drm/ttm: handle OOM in ttm_tt_swapout
+
+From: Maarten Maathuis <madman2003 at gmail.com>
+
+commit 290e55056ec3d25c72088628245d8cae037b30db upstream.
+
+- Without this change I get a general protection fault.
+- Also use PTR_ERR where applicable.
+
+Signed-off-by: Maarten Maathuis <madman2003 at gmail.com>
+Reviewed-by: Dave Airlie <airlied at redhat.com>
+Acked-by: Thomas Hellstrom <thellstrom at vmware.com>
+Signed-off-by: Dave Airlie <airlied at redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+---
+ drivers/gpu/drm/ttm/ttm_tt.c | 18 +++++++++++-------
+ 1 file changed, 11 insertions(+), 7 deletions(-)
+
+--- a/drivers/gpu/drm/ttm/ttm_tt.c
++++ b/drivers/gpu/drm/ttm/ttm_tt.c
+@@ -466,7 +466,7 @@ static int ttm_tt_swapin(struct ttm_tt *
+ void *from_virtual;
+ void *to_virtual;
+ int i;
+- int ret;
++ int ret = -ENOMEM;
+
+ if (ttm->page_flags & TTM_PAGE_FLAG_USER) {
+ ret = ttm_tt_set_user(ttm, ttm->tsk, ttm->start,
+@@ -485,8 +485,10 @@ static int ttm_tt_swapin(struct ttm_tt *
+
+ for (i = 0; i < ttm->num_pages; ++i) {
+ from_page = read_mapping_page(swap_space, i, NULL);
+- if (IS_ERR(from_page))
++ if (IS_ERR(from_page)) {
++ ret = PTR_ERR(from_page);
+ goto out_err;
++ }
+ to_page = __ttm_tt_get_page(ttm, i);
+ if (unlikely(to_page == NULL))
+ goto out_err;
+@@ -509,7 +511,7 @@ static int ttm_tt_swapin(struct ttm_tt *
+ return 0;
+ out_err:
+ ttm_tt_free_alloced_pages(ttm);
+- return -ENOMEM;
++ return ret;
+ }
+
+ int ttm_tt_swapout(struct ttm_tt *ttm, struct file *persistant_swap_storage)
+@@ -521,6 +523,7 @@ int ttm_tt_swapout(struct ttm_tt *ttm, s
+ void *from_virtual;
+ void *to_virtual;
+ int i;
++ int ret = -ENOMEM;
+
+ BUG_ON(ttm->state != tt_unbound && ttm->state != tt_unpopulated);
+ BUG_ON(ttm->caching_state != tt_cached);
+@@ -543,7 +546,7 @@ int ttm_tt_swapout(struct ttm_tt *ttm, s
+ 0);
+ if (unlikely(IS_ERR(swap_storage))) {
+ printk(KERN_ERR "Failed allocating swap storage.\n");
+- return -ENOMEM;
++ return PTR_ERR(swap_storage);
+ }
+ } else
+ swap_storage = persistant_swap_storage;
+@@ -555,9 +558,10 @@ int ttm_tt_swapout(struct ttm_tt *ttm, s
+ if (unlikely(from_page == NULL))
+ continue;
+ to_page = read_mapping_page(swap_space, i, NULL);
+- if (unlikely(to_page == NULL))
++ if (unlikely(IS_ERR(to_page))) {
++ ret = PTR_ERR(to_page);
+ goto out_err;
+-
++ }
+ preempt_disable();
+ from_virtual = kmap_atomic(from_page, KM_USER0);
+ to_virtual = kmap_atomic(to_page, KM_USER1);
+@@ -581,5 +585,5 @@ out_err:
+ if (!persistant_swap_storage)
+ fput(swap_storage);
+
+- return -ENOMEM;
++ return ret;
+ }
+From 8fcc501831aa5b37a4a5a8cd9dc965be3cacc599 Mon Sep 17 00:00:00 2001
+From: Zhenyu Wang <zhenyuw at linux.intel.com>
+Date: Mon, 28 Dec 2009 13:15:20 +0800
+Subject: drm/i915: disable TV hotplug status check
+
+From: Zhenyu Wang <zhenyuw at linux.intel.com>
+
+commit 8fcc501831aa5b37a4a5a8cd9dc965be3cacc599 upstream.
+
+As we removed TV hotplug, don't check its status ever.
+
+Reviewed-by: Adam Jackson <ajax at redhat.com>
+Signed-off-by: Zhenyu Wang <zhenyuw at linux.intel.com>
+Signed-off-by: Eric Anholt <eric at anholt.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+---
+ drivers/gpu/drm/i915/intel_tv.c | 2 --
+ 1 file changed, 2 deletions(-)
+
+--- a/drivers/gpu/drm/i915/intel_tv.c
++++ b/drivers/gpu/drm/i915/intel_tv.c
+@@ -1801,8 +1801,6 @@ intel_tv_init(struct drm_device *dev)
+ drm_connector_attach_property(connector,
+ dev->mode_config.tv_bottom_margin_property,
+ tv_priv->margin[TV_MARGIN_BOTTOM]);
+-
+- dev_priv->hotplug_supported_mask |= TV_HOTPLUG_INT_STATUS;
+ out:
+ drm_sysfs_connector_add(connector);
+ }
+From ceb0297d3da7ecf44bccec2c4520c8710612c238 Mon Sep 17 00:00:00 2001
+From: Jerome Glisse <jglisse at redhat.com>
+Date: Sun, 14 Feb 2010 19:33:18 +0000
+Subject: drm/radeon: r6xx/r7xx possible security issue, system ram access
+
+From: Jerome Glisse <jglisse at redhat.com>
+
+commit c8c15ff1e90bfc4a2db1ba77a01b3b2783e723fc upstream
+
+This patch workaround a possible security issue which can allow
+user to abuse drm on r6xx/r7xx hw to access any system ram memory.
+This patch doesn't break userspace, it detect "valid" old use of
+CB_COLOR[0-7]_FRAG & CB_COLOR[0-7]_TILE registers and overwritte
+the address these registers are pointing to with the one of the
+last color buffer. This workaround will work for old mesa &
+xf86-video-ati and any old user which did use similar register
+programming pattern as those (we expect that there is no others
+user of those ioctl except possibly a malicious one). This patch
+add a warning if it detects such usage, warning encourage people
+to update their mesa & xf86-video-ati. New userspace will submit
+proper relocation.
+
+Fix for xf86-video-ati / mesa (this kernel patch is enough to
+prevent abuse, fix for userspace are to set proper cs stream and
+avoid kernel warning) :
+http://cgit.freedesktop.org/xorg/driver/xf86-video-ati/commit/?id=95d63e408cc88b6934bec84a0b1ef94dfe8bee7b
+http://cgit.freedesktop.org/mesa/mesa/commit/?id=46dc6fd3ed5ef96cda53641a97bc68c3bc104a9f
+
+Abusing this register to perform system ram memory is not easy,
+here is outline on how it could be achieve. First attacker must
+have access to the drm device and be able to submit command stream
+throught cs ioctl. Then attacker must build a proper command stream
+for r6xx/r7xx hw which will abuse the FRAG or TILE buffer to
+overwrite the GPU GART which is in VRAM. To achieve so attacker
+as to setup CB_COLOR[0-7]_FRAG or CB_COLOR[0-7]_TILE to point
+to the GPU GART, then it has to find a way to write predictable
+value into those buffer (with little cleverness i believe this
+can be done but this is an hard task). Once attacker have such
+program it can overwritte GPU GART to program GPU gart to point
+anywhere in system memory. It then can reusse same method as he
+used to reprogram GART to overwritte the system ram through the
+GART mapping. In the process the attacker has to be carefull to
+not overwritte any sensitive area of the GART table, like ring
+or IB gart entry as it will more then likely lead to GPU lockup.
+Bottom line is that i think it's very hard to use this flaw
+to get system ram access but in theory one can achieve so.
+
+Side note: I am not aware of anyone ever using the GPU as an
+attack vector, nevertheless we take great care in the opensource
+driver to try to detect and forbid malicious use of GPU. I don't
+think the closed source driver are as cautious as we are.
+
+[bwh: Adjusted context for 2.6.32]
+Signed-off-by: Jerome Glisse <jglisse at redhat.com>
+Signed-off-by: Dave Airlie <airlied at linux.ie>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+---
+ drivers/gpu/drm/radeon/r600_cs.c | 83 +++++++++++++++++++++++++++++++++++++
+ drivers/gpu/drm/radeon/r600d.h | 26 +++++++++++
+ drivers/gpu/drm/radeon/radeon.h | 1
+ drivers/gpu/drm/radeon/radeon_cs.c | 1
+ 4 files changed, 111 insertions(+)
+
+--- a/drivers/gpu/drm/radeon/r600_cs.c
++++ b/drivers/gpu/drm/radeon/r600_cs.c
+@@ -36,6 +36,10 @@ static int r600_cs_packet_next_reloc_nom
+ typedef int (*next_reloc_t)(struct radeon_cs_parser*, struct radeon_cs_reloc**);
+ static next_reloc_t r600_cs_packet_next_reloc = &r600_cs_packet_next_reloc_mm;
+
++struct r600_cs_track {
++ u32 cb_color0_base_last;
++};
++
+ /**
+ * r600_cs_packet_parse() - parse cp packet and point ib index to next packet
+ * @parser: parser structure holding parsing context.
+@@ -177,6 +181,28 @@ static int r600_cs_packet_next_reloc_nom
+ }
+
+ /**
++ * r600_cs_packet_next_is_pkt3_nop() - test if next packet is packet3 nop for reloc
++ * @parser: parser structure holding parsing context.
++ *
++ * Check next packet is relocation packet3, do bo validation and compute
++ * GPU offset using the provided start.
++ **/
++static inline int r600_cs_packet_next_is_pkt3_nop(struct radeon_cs_parser *p)
++{
++ struct radeon_cs_packet p3reloc;
++ int r;
++
++ r = r600_cs_packet_parse(p, &p3reloc, p->idx);
++ if (r) {
++ return 0;
++ }
++ if (p3reloc.type != PACKET_TYPE3 || p3reloc.opcode != PACKET3_NOP) {
++ return 0;
++ }
++ return 1;
++}
++
++/**
+ * r600_cs_packet_next_vline() - parse userspace VLINE packet
+ * @parser: parser structure holding parsing context.
+ *
+@@ -337,6 +363,7 @@ static int r600_packet3_check(struct rad
+ struct radeon_cs_packet *pkt)
+ {
+ struct radeon_cs_reloc *reloc;
++ struct r600_cs_track *track;
+ volatile u32 *ib;
+ unsigned idx;
+ unsigned i;
+@@ -344,6 +371,7 @@ static int r600_packet3_check(struct rad
+ int r;
+ u32 idx_value;
+
++ track = (struct r600_cs_track *)p->track;
+ ib = p->ib->ptr;
+ idx = pkt->idx + 1;
+ idx_value = radeon_get_ib_value(p, idx);
+@@ -503,9 +531,60 @@ static int r600_packet3_check(struct rad
+ for (i = 0; i < pkt->count; i++) {
+ reg = start_reg + (4 * i);
+ switch (reg) {
++ /* This register were added late, there is userspace
++ * which does provide relocation for those but set
++ * 0 offset. In order to avoid breaking old userspace
++ * we detect this and set address to point to last
++ * CB_COLOR0_BASE, note that if userspace doesn't set
++ * CB_COLOR0_BASE before this register we will report
++ * error. Old userspace always set CB_COLOR0_BASE
++ * before any of this.
++ */
++ case R_0280E0_CB_COLOR0_FRAG:
++ case R_0280E4_CB_COLOR1_FRAG:
++ case R_0280E8_CB_COLOR2_FRAG:
++ case R_0280EC_CB_COLOR3_FRAG:
++ case R_0280F0_CB_COLOR4_FRAG:
++ case R_0280F4_CB_COLOR5_FRAG:
++ case R_0280F8_CB_COLOR6_FRAG:
++ case R_0280FC_CB_COLOR7_FRAG:
++ case R_0280C0_CB_COLOR0_TILE:
++ case R_0280C4_CB_COLOR1_TILE:
++ case R_0280C8_CB_COLOR2_TILE:
++ case R_0280CC_CB_COLOR3_TILE:
++ case R_0280D0_CB_COLOR4_TILE:
++ case R_0280D4_CB_COLOR5_TILE:
++ case R_0280D8_CB_COLOR6_TILE:
++ case R_0280DC_CB_COLOR7_TILE:
++ if (!r600_cs_packet_next_is_pkt3_nop(p)) {
++ if (!track->cb_color0_base_last) {
++ dev_err(p->dev, "Broken old userspace ? no cb_color0_base supplied before trying to write 0x%08X\n", reg);
++ return -EINVAL;
++ }
++ ib[idx+1+i] = track->cb_color0_base_last;
++ printk_once(KERN_WARNING "You have old & broken userspace "
++ "please consider updating mesa & xf86-video-ati\n");
++ } else {
++ r = r600_cs_packet_next_reloc(p, &reloc);
++ if (r) {
++ dev_err(p->dev, "bad SET_CONTEXT_REG 0x%04X\n", reg);
++ return -EINVAL;
++ }
++ ib[idx+1+i] += (u32)((reloc->lobj.gpu_offset >> 8) & 0xffffffff);
++ }
++ break;
+ case DB_DEPTH_BASE:
+ case DB_HTILE_DATA_BASE:
+ case CB_COLOR0_BASE:
++ r = r600_cs_packet_next_reloc(p, &reloc);
++ if (r) {
++ DRM_ERROR("bad SET_CONTEXT_REG "
++ "0x%04X\n", reg);
++ return -EINVAL;
++ }
++ ib[idx+1+i] += (u32)((reloc->lobj.gpu_offset >> 8) & 0xffffffff);
++ track->cb_color0_base_last = ib[idx+1+i];
++ break;
+ case CB_COLOR1_BASE:
+ case CB_COLOR2_BASE:
+ case CB_COLOR3_BASE:
+@@ -678,8 +757,11 @@ static int r600_packet3_check(struct rad
+ int r600_cs_parse(struct radeon_cs_parser *p)
+ {
+ struct radeon_cs_packet pkt;
++ struct r600_cs_track *track;
+ int r;
+
++ track = kzalloc(sizeof(*track), GFP_KERNEL);
++ p->track = track;
+ do {
+ r = r600_cs_packet_parse(p, &pkt, p->idx);
+ if (r) {
+@@ -757,6 +839,7 @@ int r600_cs_legacy(struct drm_device *de
+ /* initialize parser */
+ memset(&parser, 0, sizeof(struct radeon_cs_parser));
+ parser.filp = filp;
++ parser.dev = &dev->pdev->dev;
+ parser.rdev = NULL;
+ parser.family = family;
+ parser.ib = &fake_ib;
+--- a/drivers/gpu/drm/radeon/r600d.h
++++ b/drivers/gpu/drm/radeon/r600d.h
+@@ -674,4 +674,30 @@
+ #define S_000E60_SOFT_RESET_TSC(x) (((x) & 1) << 16)
+ #define S_000E60_SOFT_RESET_VMC(x) (((x) & 1) << 17)
+
++#define R_005480_HDP_MEM_COHERENCY_FLUSH_CNTL 0x5480
++
++#define R_0280E0_CB_COLOR0_FRAG 0x0280E0
++#define S_0280E0_BASE_256B(x) (((x) & 0xFFFFFFFF) << 0)
++#define G_0280E0_BASE_256B(x) (((x) >> 0) & 0xFFFFFFFF)
++#define C_0280E0_BASE_256B 0x00000000
++#define R_0280E4_CB_COLOR1_FRAG 0x0280E4
++#define R_0280E8_CB_COLOR2_FRAG 0x0280E8
++#define R_0280EC_CB_COLOR3_FRAG 0x0280EC
++#define R_0280F0_CB_COLOR4_FRAG 0x0280F0
++#define R_0280F4_CB_COLOR5_FRAG 0x0280F4
++#define R_0280F8_CB_COLOR6_FRAG 0x0280F8
++#define R_0280FC_CB_COLOR7_FRAG 0x0280FC
++#define R_0280C0_CB_COLOR0_TILE 0x0280C0
++#define S_0280C0_BASE_256B(x) (((x) & 0xFFFFFFFF) << 0)
++#define G_0280C0_BASE_256B(x) (((x) >> 0) & 0xFFFFFFFF)
++#define C_0280C0_BASE_256B 0x00000000
++#define R_0280C4_CB_COLOR1_TILE 0x0280C4
++#define R_0280C8_CB_COLOR2_TILE 0x0280C8
++#define R_0280CC_CB_COLOR3_TILE 0x0280CC
++#define R_0280D0_CB_COLOR4_TILE 0x0280D0
++#define R_0280D4_CB_COLOR5_TILE 0x0280D4
++#define R_0280D8_CB_COLOR6_TILE 0x0280D8
++#define R_0280DC_CB_COLOR7_TILE 0x0280DC
++
++
+ #endif
+--- a/drivers/gpu/drm/radeon/radeon.h
++++ b/drivers/gpu/drm/radeon/radeon.h
+@@ -448,6 +448,7 @@ struct radeon_cs_chunk {
+ };
+
+ struct radeon_cs_parser {
++ struct device *dev;
+ struct radeon_device *rdev;
+ struct drm_file *filp;
+ /* chunks */
+--- a/drivers/gpu/drm/radeon/radeon_cs.c
++++ b/drivers/gpu/drm/radeon/radeon_cs.c
+@@ -230,6 +230,7 @@ int radeon_cs_ioctl(struct drm_device *d
+ memset(&parser, 0, sizeof(struct radeon_cs_parser));
+ parser.filp = filp;
+ parser.rdev = rdev;
++ parser.dev = rdev->dev;
+ r = radeon_cs_parser_init(&parser, data);
+ if (r) {
+ DRM_ERROR("Failed to initialize parser !\n");
+From e3dae5087754984ed7e6daf4fbb742ff026aadd5 Mon Sep 17 00:00:00 2001
+From: Jerome Glisse <jglisse at redhat.com>
+Date: Sun, 14 Feb 2010 19:31:58 +0000
+Subject: drm/radeon/kms: r600/r700 don't test ib if ib initialization fails
+
+From: Jerome Glisse <jglisse at redhat.com>
+
+commit db96380ea26fcc31ab37189aedeabd12894b1431 upstream
+
+If ib initialization failed don't try to test ib as it will result
+in an oops (accessing NULL ib buffer ptr).
+
+[bwh: Adjusted context for 2.6.32]
+Signed-off-by: Jerome Glisse <jglisse at redhat.com>
+Signed-off-by: Dave Airlie <airlied at linux.ie>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+---
+ drivers/gpu/drm/radeon/r600.c | 13 +++++++------
+ drivers/gpu/drm/radeon/rv770.c | 13 +++++++------
+ 2 files changed, 14 insertions(+), 12 deletions(-)
+
+--- a/drivers/gpu/drm/radeon/r600.c
++++ b/drivers/gpu/drm/radeon/r600.c
+@@ -1686,13 +1686,14 @@ int r600_init(struct radeon_device *rdev
+ if (rdev->accel_working) {
+ r = radeon_ib_pool_init(rdev);
+ if (r) {
+- DRM_ERROR("radeon: failled initializing IB pool (%d).\n", r);
+- rdev->accel_working = false;
+- }
+- r = r600_ib_test(rdev);
+- if (r) {
+- DRM_ERROR("radeon: failled testing IB (%d).\n", r);
++ dev_err(rdev->dev, "IB initialization failed (%d).\n", r);
+ rdev->accel_working = false;
++ } else {
++ r = r600_ib_test(rdev);
++ if (r) {
++ dev_err(rdev->dev, "IB test failed (%d).\n", r);
++ rdev->accel_working = false;
++ }
+ }
+ }
+ return 0;
+--- a/drivers/gpu/drm/radeon/rv770.c
++++ b/drivers/gpu/drm/radeon/rv770.c
+@@ -1034,13 +1034,14 @@ int rv770_init(struct radeon_device *rde
+ if (rdev->accel_working) {
+ r = radeon_ib_pool_init(rdev);
+ if (r) {
+- DRM_ERROR("radeon: failled initializing IB pool (%d).\n", r);
+- rdev->accel_working = false;
+- }
+- r = r600_ib_test(rdev);
+- if (r) {
+- DRM_ERROR("radeon: failled testing IB (%d).\n", r);
++ dev_err(rdev->dev, "IB initialization failed (%d).\n", r);
+ rdev->accel_working = false;
++ } else {
++ r = r600_ib_test(rdev);
++ if (r) {
++ dev_err(rdev->dev, "IB test failed (%d).\n", r);
++ rdev->accel_working = false;
++ }
+ }
+ }
+ return 0;
+From 43bcd61fae05fc6062b4f117c5adb1a72c9f8c57 Mon Sep 17 00:00:00 2001
+From: Daniel Vetter <daniel.vetter at ffwll.ch>
+Date: Tue, 3 Nov 2009 09:03:34 +0000
+Subject: drm/i915: fix get_core_clock_speed for G33 class desktop chips
+
+From: Daniel Vetter <daniel.vetter at ffwll.ch>
+
+commit 43bcd61fae05fc6062b4f117c5adb1a72c9f8c57 upstream.
+
+Somehow the case for G33 got dropped while porting from ums code.
+This made a 400MHz chip into a 133MHz one which resulted in the
+unnecessary enabling of double wide pipe mode which in turn
+screwed up the overlay code.
+
+Nothing else (than the overlay code) seems to be affected.
+
+This fixes fdo.org bug #24835
+
+Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
+Signed-off-by: Eric Anholt <eric at anholt.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+---
+ drivers/gpu/drm/i915/intel_display.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/gpu/drm/i915/intel_display.c
++++ b/drivers/gpu/drm/i915/intel_display.c
+@@ -4322,7 +4322,7 @@ static void intel_init_display(struct dr
+ }
+
+ /* Returns the core display clock speed */
+- if (IS_I945G(dev))
++ if (IS_I945G(dev) || (IS_G33(dev) && ! IS_IGDGM(dev)))
+ dev_priv->display.get_display_clock_speed =
+ i945_get_display_clock_speed;
+ else if (IS_I915G(dev))
+From 1379d2fef0ec07c7027a5e89036025ce761470c8 Mon Sep 17 00:00:00 2001
+From: Zhang Rui <rui.zhang at intel.com>
+Date: Tue, 16 Feb 2010 04:16:55 -0500
+Subject: ACPI, i915: blacklist Clevo M5x0N bad_lid state
+
+From: Zhang Rui <rui.zhang at intel.com>
+
+commit 1379d2fef0ec07c7027a5e89036025ce761470c8 upstream.
+
+Wrong Lid state reported.
+Need to blacklist this machine for LVDS detection.
+
+Signed-off-by: Zhang Rui <rui.zhang at intel.com>
+Signed-off-by: Len Brown <len.brown at intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+---
+ drivers/gpu/drm/i915/intel_lvds.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+--- a/drivers/gpu/drm/i915/intel_lvds.c
++++ b/drivers/gpu/drm/i915/intel_lvds.c
+@@ -629,6 +629,13 @@ static const struct dmi_system_id bad_li
+ DMI_MATCH(DMI_PRODUCT_NAME, "PC-81005"),
+ },
+ },
++ {
++ .ident = "Clevo M5x0N",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "CLEVO Co."),
++ DMI_MATCH(DMI_BOARD_NAME, "M5x0N"),
++ },
++ },
+ { }
+ };
+
From 01d4503968f471f876fb44335800d2cf8dc5a2ce Mon Sep 17 00:00:00 2001
From: Dave Airlie <airlied at redhat.com>
Date: Sun, 31 Jan 2010 07:07:14 +1000
Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-11/sources,v
retrieving revision 1.1034
retrieving revision 1.1035
diff -u -p -r1.1034 -r1.1035
--- sources 23 Feb 2010 23:20:51 -0000 1.1034
+++ sources 14 Mar 2010 05:41:08 -0000 1.1035
@@ -1,2 +1,3 @@
260551284ac224c3a43c4adac7df4879 linux-2.6.32.tar.bz2
7f615dd3b4a3b19fb86e479996a2deb5 patch-2.6.32.9.bz2
+9ffbbf9eb9d6537b995dd782dbbb68ee patch-2.6.32.10-rc1.bz2
Index: upstream
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-11/upstream,v
retrieving revision 1.945
retrieving revision 1.946
diff -u -p -r1.945 -r1.946
--- upstream 23 Feb 2010 23:20:51 -0000 1.945
+++ upstream 14 Mar 2010 05:41:08 -0000 1.946
@@ -1,2 +1,3 @@
linux-2.6.32.tar.bz2
patch-2.6.32.9.bz2
+patch-2.6.32.10-rc1.bz2
--- fix-LOOKUP_FOLLOW-on-automount-symlinks.patch DELETED ---
--- fs-exec.c-fix-initial-stack-reservation.patch DELETED ---
- Previous message: rpms/xiphos/F-13 xiphos-xul-1.9.2.patch,NONE,1.1 xiphos.spec,1.8,1.9
- Next message: rpms/scidavis/devel scidavis-fitPlugins.patch, NONE, 1.1 scidavis-manual.patch, NONE, 1.1 scidavis-pro.patch, NONE, 1.1 sources, 1.9, 1.10
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the scm-commits
mailing list