rpms/kernel/devel linux-2.6-ext4-ENOSPC-debug.patch, NONE, 1.1.2.2 linux-2.6-ext4-write-cyclic-fix.patch, NONE, 1.1.2.2 linux-2.6-iommu-write-buf.patch, NONE, 1.1.2.2 patch-2.6.29-rc5.bz2.sign, NONE, 1.1.2.2 xen.pvops.patch, NONE, 1.1.2.1 xen.pvops.post.patch, NONE, 1.1.2.1 xen.pvops.pre.patch, NONE, 1.1.2.1 config-generic, 1.238, 1.238.6.1 config-powerpc-generic, 1.33, 1.33.6.1 config-x86-generic, 1.68, 1.68.6.1 config-x86_64-generic, 1.68, 1.68.2.1 drm-intel-next.patch, 1.4, 1.4.6.1 kernel.spec, 1.1294, 1.1294.2.1 sources, 1.976, 1.976.2.1

Michael Young myoung at fedoraproject.org
Tue Feb 17 22:10:51 UTC 2009


Author: myoung

Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv5779

Modified Files:
      Tag: private-myoung-dom0-branch
	config-generic config-powerpc-generic config-x86-generic 
	config-x86_64-generic drm-intel-next.patch kernel.spec sources 
Added Files:
      Tag: private-myoung-dom0-branch
	linux-2.6-ext4-ENOSPC-debug.patch 
	linux-2.6-ext4-write-cyclic-fix.patch 
	linux-2.6-iommu-write-buf.patch patch-2.6.29-rc5.bz2.sign 
	xen.pvops.patch xen.pvops.post.patch xen.pvops.pre.patch 
Log Message:
Add xen pvops dom0 patch to the Fedora devel kernel based on the
xen.dom0/hackery branch of
git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git


linux-2.6-ext4-ENOSPC-debug.patch:

--- NEW FILE linux-2.6-ext4-ENOSPC-debug.patch ---
Author: Theodore Ts'o <tytso at mit.edu>
Date:   Mon Feb 16 13:51:16 2009 -0500

    ext4: Add fallback for find_group_flex
    
    This is a workaround for find_group_flex() which badly needs to be
    replaced.  One of its problems (besides ignoring the Orlov algorithm)
    is that it is a bit hyperactive about returning failure under
    suspicious circumstances.  This can lead to spurious ENOSPC failures.
    Work around this for now by retrying the search using
    find_group_other() if find_group_flex() returns -1.  If
    find_group_other() succeeds when find_group_flex(), log a warning
    message.  I can't quite find the motivation to spend effort working on
    fixing find_group_flex() given that I want to replace it all anyway
    (and in fact work on the replacement code is underway), so we may
    leave the workaround for as long as find_group_flex() stays in the
    kernel...
    
    Signed-off-by: "Theodore Ts'o" <tytso at mit.edu>

diff --git a/fs/ext4/ialloc.c b/fs/ext4/ialloc.c
index a200059..21080ab 100644
--- a/fs/ext4/ialloc.c
+++ b/fs/ext4/ialloc.c
@@ -715,6 +715,13 @@ struct inode *ext4_new_inode(handle_t *handle, struct inode *dir, int mode)
 
 	if (sbi->s_log_groups_per_flex) {
 		ret2 = find_group_flex(sb, dir, &group);
+		if (ret2 == -1) {
+			ret2 = find_group_other(sb, dir, &group);
+			if (ret2 == 0)
+				printk(KERN_NOTICE "ext4: find_group_flex "
+				       "failed, fallback succeeded dir %lu\n",
+				       dir->i_ino);
+		}
 		goto got_group;
 	}

linux-2.6-ext4-write-cyclic-fix.patch:

--- NEW FILE linux-2.6-ext4-write-cyclic-fix.patch ---
ext4: Implement range_cyclic in ext4_da_writepages instead of write_cache_pages

From: "Aneesh Kumar K.V" <aneesh.kumar at linux.vnet.ibm.com>

With delayed allocation we lock the page in write_cache_pages() and
try to build an in memory extent of contiguous blocks.  This is needed
so that we can get large contiguous blocks request.  If range_cyclic
mode is enabled, write_cache_pages() will loop back to the 0 index if
no I/O has been done yet, and try to start writing from the beginning
of the range.  That causes an attempt to take the page lock of lower
index page while holding the page lock of higher index page, which can
cause a dead lock with another writeback thread.

The solution is to implement the range_cyclic behavior in
ext4_da_writepages() instead.

http://bugzilla.kernel.org/show_bug.cgi?id=12579

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar at linux.vnet.ibm.com>
Signed-off-by: "Theodore Ts'o" <tytso at mit.edu>
---
 fs/ext4/inode.c |   21 +++++++++++++++++++--
 1 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index 658c4a7..cbd2ca9 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -2439,6 +2439,7 @@ static int ext4_da_writepages(struct address_space *mapping,
 	int no_nrwrite_index_update;
 	int pages_written = 0;
 	long pages_skipped;
+	int range_cyclic, cycled = 1, io_done = 0;
 	int needed_blocks, ret = 0, nr_to_writebump = 0;
 	struct ext4_sb_info *sbi = EXT4_SB(mapping->host->i_sb);
 
@@ -2490,9 +2491,15 @@ static int ext4_da_writepages(struct address_space *mapping,
 	if (wbc->range_start == 0 && wbc->range_end == LLONG_MAX)
 		range_whole = 1;
 
-	if (wbc->range_cyclic)
+	range_cyclic = wbc->range_cyclic;
+	if (wbc->range_cyclic) {
 		index = mapping->writeback_index;
-	else
+		if (index)
+			cycled = 0;
+		wbc->range_start = index << PAGE_CACHE_SHIFT;
+		wbc->range_end  = LLONG_MAX;
+		wbc->range_cyclic = 0;
+	} else
 		index = wbc->range_start >> PAGE_CACHE_SHIFT;
 
 	mpd.wbc = wbc;
@@ -2506,6 +2513,7 @@ static int ext4_da_writepages(struct address_space *mapping,
 	wbc->no_nrwrite_index_update = 1;
 	pages_skipped = wbc->pages_skipped;
 
+retry:
 	while (!ret && wbc->nr_to_write > 0) {
 
 		/*
@@ -2548,6 +2556,7 @@ static int ext4_da_writepages(struct address_space *mapping,
 			pages_written += mpd.pages_written;
 			wbc->pages_skipped = pages_skipped;
 			ret = 0;
+			io_done = 1;
 		} else if (wbc->nr_to_write)
 			/*
 			 * There is no more writeout needed
@@ -2556,6 +2565,13 @@ static int ext4_da_writepages(struct address_space *mapping,
 			 */
 			break;
 	}
+	if (!io_done && !cycled) {
+		cycled = 1;
+		index = 0;
+		wbc->range_start = index << PAGE_CACHE_SHIFT;
+		wbc->range_end  = mapping->writeback_index - 1;
+		goto retry;
+	}
 	if (pages_skipped != wbc->pages_skipped)
 		printk(KERN_EMERG "This should not happen leaving %s "
 				"with nr_to_write = %ld ret = %d\n",
@@ -2563,6 +2579,7 @@ static int ext4_da_writepages(struct address_space *mapping,
 
 	/* Update index */
 	index += pages_written;
+	wbc->range_cyclic = range_cyclic;
 	if (wbc->range_cyclic || (range_whole && wbc->nr_to_write > 0))
 		/*
 		 * set the writeback_index so that range_cyclic

linux-2.6-iommu-write-buf.patch:

--- NEW FILE linux-2.6-iommu-write-buf.patch ---
>From dwmw2 at infradead.org Fri Feb 13 23:18:30 2009
Subject: [2.6.29 PATCH] Fix Intel IOMMU write-buffer flushing

This is the cause of the DMA faults and disk corruption that people have
been seeing. Some chipsets neglect to report the RWBF "capability" --
the flag which says that we need to flush the chipset write-buffer when
changing the DMA page tables, to ensure that the change is visible to
the IOMMU.

Override that bit on the affected chipsets, and everything is happy
again.

Thanks to Chris and Bhavesh and others for helping to debug.

Signed-off-by: David Woodhouse <David.Woodhouse at intel.com>

diff --git a/drivers/pci/intel-iommu.c b/drivers/pci/intel-iommu.c
index 3dfecb2..812a3ec 100644
--- a/drivers/pci/intel-iommu.c
+++ b/drivers/pci/intel-iommu.c
@@ -61,6 +61,8 @@
 /* global iommu list, set NULL for ignored DMAR units */
 static struct intel_iommu **g_iommus;
 
+static int rwbf_quirk = 0;
+
 /*
  * 0: Present
  * 1-11: Reserved
@@ -777,7 +779,7 @@ static void iommu_flush_write_buffer(struct intel_iommu *iommu)
 	u32 val;
 	unsigned long flag;
 
-	if (!cap_rwbf(iommu->cap))
+	if (!rwbf_quirk && !cap_rwbf(iommu->cap))
 		return;
 	val = iommu->gcmd | DMA_GCMD_WBF;
 
@@ -3129,3 +3131,13 @@ static struct iommu_ops intel_iommu_ops = {
 	.unmap		= intel_iommu_unmap_range,
 	.iova_to_phys	= intel_iommu_iova_to_phys,
 };
+
+static void __devinit quirk_iommu_rwbf(struct pci_dev *dev)
+{
+	/* Mobile 4 Series Chipset neglects to set RWBF capability,
+	   but needs it */
+	printk(KERN_INFO "DMAR: Forcing write-buffer flush capability\n");
+	rwbf_quirk = 1;
+}
+
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2a40, quirk_iommu_rwbf);

-- 
David Woodhouse                            Open Source Technology Centre
David.Woodhouse at intel.com                              Intel Corporation


--- NEW FILE patch-2.6.29-rc5.bz2.sign ---
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: See http://www.kernel.org/signature.html for info

iD8DBQBJlfQ6yGugalF9Dw4RAvx5AJ9komkKsX8U3IDYTVzbNaWeTsWRaQCcDzNZ
44YrvbcqheJSO5BbNx87VpE=
=gn3M
-----END PGP SIGNATURE-----

xen.pvops.patch:

--- NEW FILE xen.pvops.patch ---
diff --git a/Documentation/ABI/testing/debugfs-kmemtrace b/Documentation/ABI/testing/debugfs-kmemtrace
new file mode 100644
index 0000000..5e6a92a
--- /dev/null
+++ b/Documentation/ABI/testing/debugfs-kmemtrace
@@ -0,0 +1,71 @@
+What:		/sys/kernel/debug/kmemtrace/
+Date:		July 2008
+Contact:	Eduard - Gabriel Munteanu <eduard.munteanu at linux360.ro>
+Description:
+
+In kmemtrace-enabled kernels, the following files are created:
+
+/sys/kernel/debug/kmemtrace/
+	cpu<n>		(0400)	Per-CPU tracing data, see below. (binary)
+	total_overruns	(0400)	Total number of bytes which were dropped from
+				cpu<n> files because of full buffer condition,
+				non-binary. (text)
+	abi_version	(0400)	Kernel's kmemtrace ABI version. (text)
+
+Each per-CPU file should be read according to the relay interface. That is,
+the reader should set affinity to that specific CPU and, as currently done by
+the userspace application (though there are other methods), use poll() with
+an infinite timeout before every read(). Otherwise, erroneous data may be
+read. The binary data has the following _core_ format:
+
+	Event ID	(1 byte)	Unsigned integer, one of:
+		0 - represents an allocation (KMEMTRACE_EVENT_ALLOC)
+		1 - represents a freeing of previously allocated memory
+		    (KMEMTRACE_EVENT_FREE)
+	Type ID		(1 byte)	Unsigned integer, one of:
+		0 - this is a kmalloc() / kfree()
+		1 - this is a kmem_cache_alloc() / kmem_cache_free()
+		2 - this is a __get_free_pages() et al.
+	Event size	(2 bytes)	Unsigned integer representing the
+					size of this event. Used to extend
+					kmemtrace. Discard the bytes you
+					don't know about.
+	Sequence number	(4 bytes)	Signed integer used to reorder data
+					logged on SMP machines. Wraparound
+					must be taken into account, although
+					it is unlikely.
+	Caller address	(8 bytes)	Return address to the caller.
+	Pointer to mem	(8 bytes)	Pointer to target memory area. Can be
+					NULL, but not all such calls might be
+					recorded.
+
+In case of KMEMTRACE_EVENT_ALLOC events, the next fields follow:
+
+	Requested bytes	(8 bytes)	Total number of requested bytes,
+					unsigned, must not be zero.
+	Allocated bytes (8 bytes)	Total number of actually allocated
+					bytes, unsigned, must not be lower
+					than requested bytes.
+	Requested flags	(4 bytes)	GFP flags supplied by the caller.
+	Target CPU	(4 bytes)	Signed integer, valid for event id 1.
+					If equal to -1, target CPU is the same
+					as origin CPU, but the reverse might
+					not be true.
+
+The data is made available in the same endianness the machine has.
+
+Other event ids and type ids may be defined and added. Other fields may be
+added by increasing event size, but see below for details.
+Every modification to the ABI, including new id definitions, are followed
+by bumping the ABI version by one.
+
+Adding new data to the packet (features) is done at the end of the mandatory
+data:
+	Feature size	(2 byte)
+	Feature ID	(1 byte)
+	Feature data	(Feature size - 3 bytes)
+
+
+Users:
+	kmemtrace-user - git://repo.or.cz/kmemtrace-user.git
+
diff --git a/Documentation/cputopology.txt b/Documentation/cputopology.txt
index 45932ec..b41f3e5 100644
--- a/Documentation/cputopology.txt
+++ b/Documentation/cputopology.txt
@@ -18,11 +18,11 @@ For an architecture to support this feature, it must define some of
 these macros in include/asm-XXX/topology.h:
 #define topology_physical_package_id(cpu)
 #define topology_core_id(cpu)
-#define topology_thread_siblings(cpu)
-#define topology_core_siblings(cpu)
+#define topology_thread_cpumask(cpu)
+#define topology_core_cpumask(cpu)
 
 The type of **_id is int.
-The type of siblings is cpumask_t.
+The type of siblings is (const) struct cpumask *.
 
 To be consistent on all architectures, include/linux/topology.h
 provides default definitions for any of the above macros that are
diff --git a/Documentation/ftrace.txt b/Documentation/ftrace.txt
index 803b131..758fb42 100644
--- a/Documentation/ftrace.txt
+++ b/Documentation/ftrace.txt
@@ -165,6 +165,8 @@ Here is the list of current tracers that may be configured.
   nop - This is not a tracer. To remove all tracers from tracing
 		simply echo "nop" into current_tracer.
 
+  hw-branch-tracer - traces branches on all cpu's in a circular buffer.
+
 
 Examples of using the tracer
 ----------------------------
@@ -1152,6 +1154,78 @@ int main (int argc, char **argv)
         return 0;
 }
 
+
+hw-branch-tracer (x86 only)
+---------------------------
+
+This tracer uses the x86 last branch tracing hardware feature to
+collect a branch trace on all cpus with relatively low overhead.
+
+The tracer uses a fixed-size circular buffer per cpu and only
+traces ring 0 branches. The trace file dumps that buffer in the
+following format:
+
+# tracer: hw-branch-tracer
+#
+# CPU#        TO  <-  FROM
+   0  scheduler_tick+0xb5/0x1bf	  <-  task_tick_idle+0x5/0x6
+   2  run_posix_cpu_timers+0x2b/0x72a	  <-  run_posix_cpu_timers+0x25/0x72a
+   0  scheduler_tick+0x139/0x1bf	  <-  scheduler_tick+0xed/0x1bf
+   0  scheduler_tick+0x17c/0x1bf	  <-  scheduler_tick+0x148/0x1bf
+   2  run_posix_cpu_timers+0x9e/0x72a	  <-  run_posix_cpu_timers+0x5e/0x72a
+   0  scheduler_tick+0x1b6/0x1bf	  <-  scheduler_tick+0x1aa/0x1bf
+
+
+The tracer may be used to dump the trace for the oops'ing cpu on a
+kernel oops into the system log. To enable this, ftrace_dump_on_oops
+must be set. To set ftrace_dump_on_oops, one can either use the sysctl
+function or set it via the proc system interface.
+
+  sysctl kernel.ftrace_dump_on_oops=1
+
+or
+
+  echo 1 > /proc/sys/kernel/ftrace_dump_on_oops
+
+
+Here's an example of such a dump after a null pointer dereference in a
+kernel module:
+
+[57848.105921] BUG: unable to handle kernel NULL pointer dereference at 0000000000000000
+[57848.106019] IP: [<ffffffffa0000006>] open+0x6/0x14 [oops]
+[57848.106019] PGD 2354e9067 PUD 2375e7067 PMD 0
+[57848.106019] Oops: 0002 [#1] SMP
+[57848.106019] last sysfs file: /sys/devices/pci0000:00/0000:00:1e.0/0000:20:05.0/local_cpus
+[57848.106019] Dumping ftrace buffer:
+[57848.106019] ---------------------------------
+[...]
+[57848.106019]    0  chrdev_open+0xe6/0x165	  <-  cdev_put+0x23/0x24
+[57848.106019]    0  chrdev_open+0x117/0x165	  <-  chrdev_open+0xfa/0x165
+[57848.106019]    0  chrdev_open+0x120/0x165	  <-  chrdev_open+0x11c/0x165
+[57848.106019]    0  chrdev_open+0x134/0x165	  <-  chrdev_open+0x12b/0x165
+[57848.106019]    0  open+0x0/0x14 [oops]	  <-  chrdev_open+0x144/0x165
+[57848.106019]    0  page_fault+0x0/0x30	  <-  open+0x6/0x14 [oops]
+[57848.106019]    0  error_entry+0x0/0x5b	  <-  page_fault+0x4/0x30
+[57848.106019]    0  error_kernelspace+0x0/0x31	  <-  error_entry+0x59/0x5b
+[57848.106019]    0  error_sti+0x0/0x1	  <-  error_kernelspace+0x2d/0x31
+[57848.106019]    0  page_fault+0x9/0x30	  <-  error_sti+0x0/0x1
+[57848.106019]    0  do_page_fault+0x0/0x881	  <-  page_fault+0x1a/0x30
+[...]
+[57848.106019]    0  do_page_fault+0x66b/0x881	  <-  is_prefetch+0x1ee/0x1f2
+[57848.106019]    0  do_page_fault+0x6e0/0x881	  <-  do_page_fault+0x67a/0x881
+[57848.106019]    0  oops_begin+0x0/0x96	  <-  do_page_fault+0x6e0/0x881
+[57848.106019]    0  trace_hw_branch_oops+0x0/0x2d	  <-  oops_begin+0x9/0x96
+[...]
+[57848.106019]    0  ds_suspend_bts+0x2a/0xe3	  <-  ds_suspend_bts+0x1a/0xe3
+[57848.106019] ---------------------------------
+[57848.106019] CPU 0
+[57848.106019] Modules linked in: oops
+[57848.106019] Pid: 5542, comm: cat Tainted: G        W  2.6.28 #23
+[57848.106019] RIP: 0010:[<ffffffffa0000006>]  [<ffffffffa0000006>] open+0x6/0x14 [oops]
+[57848.106019] RSP: 0018:ffff880235457d48  EFLAGS: 00010246
+[...]
+
+
 dynamic ftrace
 --------------
 
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index b182626..fc22e92 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -49,6 +49,7 @@ parameter is applicable:
 	ISAPNP	ISA PnP code is enabled.
 	ISDN	Appropriate ISDN support is enabled.
 	JOY	Appropriate joystick support is enabled.
+	KMEMTRACE kmemtrace is enabled.
 	LIBATA  Libata driver is enabled
 	LP	Printer support is enabled.
[...80627 lines suppressed...]
+	    "\tDelete $inputfile and try again. If the same object file\n" .
+	    "\tstill causes an issue, then disable CONFIG_DYNAMIC_FTRACE.\n";
+	exit(-1);
     }
 
     # is this a call site to mcount? If so, record it to print later
diff --git a/security/capability.c b/security/capability.c
index c545bd1..930169a 100644
--- a/security/capability.c
+++ b/security/capability.c
@@ -11,6 +11,7 @@
  */
 
 #include <linux/security.h>
+#include <net/sock.h>
 
 static int cap_acct(struct file *file)
 {
@@ -680,6 +681,9 @@ static int cap_socket_getpeersec_dgram(struct socket *sock,
 
 static int cap_sk_alloc_security(struct sock *sk, int family, gfp_t priority)
 {
+#ifdef CONFIG_SECURITY_NETWORK
+	sk->sk_security = NULL;
+#endif
 	return 0;
 }
 
diff --git a/security/keys/keyctl.c b/security/keys/keyctl.c
index b1ec3b4..8d9f93b 100644
--- a/security/keys/keyctl.c
+++ b/security/keys/keyctl.c
@@ -896,7 +896,7 @@ long keyctl_instantiate_key(key_serial_t id,
 {
 	const struct cred *cred = current_cred();
 	struct request_key_auth *rka;
-	struct key *instkey, *dest_keyring;
+	struct key *instkey, *uninitialized_var(dest_keyring);
 	void *payload;
 	long ret;
 	bool vm = false;
@@ -974,7 +974,7 @@ long keyctl_negate_key(key_serial_t id, unsigned timeout, key_serial_t ringid)
 {
 	const struct cred *cred = current_cred();
 	struct request_key_auth *rka;
-	struct key *instkey, *dest_keyring;
+	struct key *instkey, *uninitialized_var(dest_keyring);
 	long ret;
 
 	kenter("%d,%u,%d", id, timeout, ringid);
diff --git a/security/selinux/netnode.c b/security/selinux/netnode.c
index 7100072..a307122 100644
--- a/security/selinux/netnode.c
+++ b/security/selinux/netnode.c
@@ -140,6 +140,7 @@ static struct sel_netnode *sel_netnode_find(const void *addr, u16 family)
 		break;
 	default:
 		BUG();
+		return NULL;
 	}
 
 	list_for_each_entry_rcu(node, &sel_netnode_hash[idx].list, list)
diff --git a/sound/drivers/Kconfig b/sound/drivers/Kconfig
index 0bcf146..491e0d7 100644
--- a/sound/drivers/Kconfig
+++ b/sound/drivers/Kconfig
@@ -33,7 +33,7 @@ if SND_DRIVERS
 
 config SND_PCSP
 	tristate "PC-Speaker support (READ HELP!)"
-	depends on PCSPKR_PLATFORM && X86_PC && HIGH_RES_TIMERS
+	depends on PCSPKR_PLATFORM && X86 && HIGH_RES_TIMERS
 	depends on INPUT
 	depends on EXPERIMENTAL
 	select SND_PCM
@@ -91,6 +91,8 @@ config SND_VIRMIDI
 
 config SND_MTPAV
 	tristate "MOTU MidiTimePiece AV multiport MIDI"
+	# sometimes crashes
+	depends on 0
 	select SND_RAWMIDI
 	help
 	  To use a MOTU MidiTimePiece AV multiport MIDI adapter
diff --git a/sound/isa/sb/sb8.c b/sound/isa/sb/sb8.c
index ea06877..07552a7 100644
--- a/sound/isa/sb/sb8.c
+++ b/sound/isa/sb/sb8.c
@@ -101,7 +101,7 @@ static int __devinit snd_sb8_probe(struct device *pdev, unsigned int dev)
 	struct snd_card *card;
 	struct snd_sb8 *acard;
 	struct snd_opl3 *opl3;
-	int err;
+	int uninitialized_var(err);
 
 	card = snd_card_new(index[dev], id[dev], THIS_MODULE,
 			    sizeof(struct snd_sb8));
diff --git a/sound/oss/ad1848.c b/sound/oss/ad1848.c
index 7cf9913..2e586f4 100644
--- a/sound/oss/ad1848.c
+++ b/sound/oss/ad1848.c
@@ -2879,7 +2879,7 @@ static struct isapnp_device_id id_table[] __devinitdata = {
 	{0}
 };
 
-MODULE_DEVICE_TABLE(isapnp, id_table);
+MODULE_STATIC_DEVICE_TABLE(isapnp, id_table);
 
 static struct pnp_dev *activate_dev(char *devname, char *resname, struct pnp_dev *dev)
 {
diff --git a/sound/pci/pcxhr/pcxhr.c b/sound/pci/pcxhr/pcxhr.c
index 27cf2c2..5d3ed63 100644
--- a/sound/pci/pcxhr/pcxhr.c
+++ b/sound/pci/pcxhr/pcxhr.c
@@ -224,7 +224,7 @@ static int pcxhr_pll_freq_register(unsigned int freq, unsigned int* pllreg,
 static int pcxhr_get_clock_reg(struct pcxhr_mgr *mgr, unsigned int rate,
 			       unsigned int *reg, unsigned int *freq)
 {
-	unsigned int val, realfreq, pllreg;
+	unsigned int val, realfreq, uninitialized_var(pllreg);
 	struct pcxhr_rmh rmh;
 	int err;
 
@@ -298,7 +298,9 @@ static int pcxhr_sub_set_clock(struct pcxhr_mgr *mgr,
 			       unsigned int rate,
 			       int *changed)
 {
-	unsigned int val, realfreq, speed;
+	unsigned int uninitialized_var(val),
+		     uninitialized_var(realfreq),
+		     speed;
 	struct pcxhr_rmh rmh;
 	int err;
 
@@ -681,7 +683,7 @@ static void pcxhr_trigger_tasklet(unsigned long arg)
 {
 	unsigned long flags;
 	int i, j, err;
-	struct pcxhr_pipe *pipe;
+	struct pcxhr_pipe *uninitialized_var(pipe);
 	struct snd_pcxhr *chip;
 	struct pcxhr_mgr *mgr = (struct pcxhr_mgr*)(arg);
 	int capture_mask = 0;
diff --git a/sound/pci/pcxhr/pcxhr_mixer.c b/sound/pci/pcxhr/pcxhr_mixer.c
index 2436e37..5e087a5 100644
--- a/sound/pci/pcxhr/pcxhr_mixer.c
+++ b/sound/pci/pcxhr/pcxhr_mixer.c
@@ -936,7 +936,7 @@ static int pcxhr_iec958_get(struct snd_kcontrol *kcontrol,
 			    struct snd_ctl_elem_value *ucontrol)
 {
 	struct snd_pcxhr *chip = snd_kcontrol_chip(kcontrol);
-	unsigned char aes_bits;
+	unsigned char uninitialized_var(aes_bits);
 	int i, err;
 
 	mutex_lock(&chip->mgr->mixer_mutex);
@@ -1264,3 +1264,4 @@ int pcxhr_create_mixer(struct pcxhr_mgr *mgr)
 
 	return 0;
 }
+
diff --git a/sound/pci/via82xx.c b/sound/pci/via82xx.c
index 1aafe95..7ed453e 100644
--- a/sound/pci/via82xx.c
+++ b/sound/pci/via82xx.c
@@ -2428,7 +2428,7 @@ static int __devinit snd_via82xx_probe(struct pci_dev *pci,
 				       const struct pci_device_id *pci_id)
 {
 	struct snd_card *card;
-	struct via82xx *chip;
+	struct via82xx *uninitialized_var(chip);
 	int chip_type = 0, card_type;
 	unsigned int i;
 	int err;
diff --git a/sound/pci/via82xx_modem.c b/sound/pci/via82xx_modem.c
index 5bd79d2..4ceb563 100644
--- a/sound/pci/via82xx_modem.c
+++ b/sound/pci/via82xx_modem.c
@@ -1162,7 +1162,7 @@ static int __devinit snd_via82xx_probe(struct pci_dev *pci,
 				       const struct pci_device_id *pci_id)
 {
 	struct snd_card *card;
-	struct via82xx_modem *chip;
+	struct via82xx_modem *uninitialized_var(chip);
 	int chip_type = 0, card_type;
 	unsigned int i;
 	int err;
diff --git a/sound/pci/vx222/vx222.c b/sound/pci/vx222/vx222.c
index acc352f..67bd762 100644
--- a/sound/pci/vx222/vx222.c
+++ b/sound/pci/vx222/vx222.c
@@ -194,7 +194,7 @@ static int __devinit snd_vx222_probe(struct pci_dev *pci,
 	static int dev;
 	struct snd_card *card;
 	struct snd_vx_hardware *hw;
-	struct snd_vx222 *vx;
+	struct snd_vx222 *uninitialized_var(vx);
 	int err;
 
 	if (dev >= SNDRV_CARDS)

xen.pvops.post.patch:

--- NEW FILE xen.pvops.post.patch ---
Reapply and merge in Fedora changes
remove localversion-tip file to avoid -tip being added to the kernel name

--- a/arch/x86/mm/ioremap.c	2009-02-14 09:16:34.000000000 +0000
+++ b/arch/x86/mm/ioremap.c	2009-02-14 12:49:11.000000000 +0000
@@ -133,6 +133,7 @@
 	}
 	return 0;
 }
+EXPORT_SYMBOL_GPL(page_is_ram);
 
 /*
  * Fix up the linear direct mapping of the kernel to avoid cache attribute
--- a/arch/x86/mm/pat.c	2009-02-14 09:16:34.000000000 +0000
+++ b/arch/x86/mm/pat.c	2009-02-14 12:49:46.000000000 +0000
@@ -29,6 +30,7 @@
 
 #ifdef CONFIG_X86_PAT
 int __read_mostly pat_enabled = 1;
+EXPORT_SYMBOL_GPL(pat_enabled);
 
 void __cpuinit pat_disable(const char *reason)
 {
--- a/drivers/pci/intel-iommu.c	2009-02-17 19:31:17.000000000 +0000
+++ b/drivers/pci/intel-iommu.c	2009-02-17 19:57:58.000000000 +0000
@@ -61,7 +61,7 @@
 /* global iommu list, set NULL for ignored DMAR units */
 static struct intel_iommu **g_iommus;
 
-static int rwbf_quirk;
+static int rwbf_quirk = 0;

 /*
  * 0: Present
--- a/localversion-tip	2009-02-17 19:49:34.000000000 +0000
+++ /dev/null	2009-02-17 18:08:14.005240123 +0000
@@ -1 +0,0 @@
--tip

xen.pvops.pre.patch:

--- NEW FILE xen.pvops.pre.patch ---
temporarily revert various Fedora changes so that the pvops patch applies cleanly
Affected patches;
linux-2.6-crash-driver.patch - arch/x86/mm/ioremap.c
drm-modesetting-radeon.patch - arch/x86/mm/pat.c
linux-2.6-iommu-write-buf.patch - drivers/pci/intel-iommu.c (essentially in the pvops patch already)

--- a/arch/x86/mm/ioremap.c	2009-02-14 12:49:11.000000000 +0000
+++ b/arch/x86/mm/ioremap.c	2009-02-14 09:16:34.000000000 +0000
@@ -133,7 +133,6 @@
 	}
 	return 0;
 }
-EXPORT_SYMBOL_GPL(page_is_ram);
 
 int pagerange_is_ram(unsigned long start, unsigned long end)
 {
--- a/arch/x86/mm/pat.c	2009-02-14 12:49:46.000000000 +0000
+++ b/arch/x86/mm/pat.c	2009-02-14 09:16:34.000000000 +0000
@@ -30,7 +29,6 @@
 
 #ifdef CONFIG_X86_PAT
 int __read_mostly pat_enabled = 1;
-EXPORT_SYMBOL_GPL(pat_enabled);
 
 void __cpuinit pat_disable(char *reason)
 {
--- a/drivers/pci/intel-iommu.c	2009-02-17 19:57:58.000000000 +0000
+++ b/drivers/pci/intel-iommu.c	2009-02-17 19:31:17.000000000 +0000
@@ -61,8 +61,6 @@
 /* global iommu list, set NULL for ignored DMAR units */
 static struct intel_iommu **g_iommus;
 
-static int rwbf_quirk = 0;
-
 /*
  * 0: Present
  * 1-11: Reserved
@@ -787,7 +785,7 @@
 	u32 val;
 	unsigned long flag;
 
-	if (!rwbf_quirk && !cap_rwbf(iommu->cap))
+	if (!cap_rwbf(iommu->cap))
 		return;
 	val = iommu->gcmd | DMA_GCMD_WBF;
 
@@ -3139,13 +3137,3 @@
 	.unmap		= intel_iommu_unmap_range,
 	.iova_to_phys	= intel_iommu_iova_to_phys,
 };
-
-static void __devinit quirk_iommu_rwbf(struct pci_dev *dev)
-{
-	/* Mobile 4 Series Chipset neglects to set RWBF capability,
-	   but needs it */
-	printk(KERN_INFO "DMAR: Forcing write-buffer flush capability\n");
-	rwbf_quirk = 1;
-}
-
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2a40, quirk_iommu_rwbf);


Index: config-generic
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/config-generic,v
retrieving revision 1.238
retrieving revision 1.238.6.1
diff -u -r1.238 -r1.238.6.1
--- config-generic	11 Feb 2009 20:16:01 -0000	1.238
+++ config-generic	17 Feb 2009 22:10:50 -0000	1.238.6.1
@@ -2170,7 +2170,7 @@
 CONFIG_DRM_SIS=m
 CONFIG_DRM_SAVAGE=m
 CONFIG_DRM_I915=m
-# CONFIG_DRM_I915_KMS is not set
+CONFIG_DRM_I915_KMS=y
 CONFIG_DRM_VIA=m
 CONFIG_DRM_NOUVEAU=m
 
@@ -3502,7 +3502,7 @@
 # CONFIG_COPS is not set
 
 CONFIG_SCSI_AHA152X=m
-CONFIG_SCSI_AHA1542=m
+# CONFIG_SCSI_AHA1542 is not set
 # CONFIG_SCSI_IN2000 is not set
 CONFIG_SCSI_ARCMSR=m
 CONFIG_SCSI_ARCMSR_AER=y
@@ -3921,3 +3921,22 @@
 CONFIG_DVB_DYNAMIC_MINORS=y
 CONFIG_DVB_LGDT3304=m
 CONFIG_DVB_S921=m
+
+#
+# added for xen pvops patch
+#
+# CONFIG_PERF_COUNTERS is not set
+# CONFIG_X86_EXTENDED_PLATFORM is not set
+# CONFIG_X86_VSMP is not set
+# CONFIG_X86_UV is not set
+CONFIG_XEN_DOM0=y
+CONFIG_XEN_DEV_EVTCHN=m
+CONFIG_ALLOW_WARNINGS=y
+# CONFIG_DETECT_HUNG_TASK is not set
+# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
+# CONFIG_KMEMTRACE is not set
+# CONFIG_WORKQUEUE_TRACER is not set
+CONFIG_XEN_BACKEND=y
+CONFIG_XEN_BLKDEV_BACKEND=y
+CONFIG_XEN_NETDEV_BACKEND=y
+# CONFIG_CC_STACKPROTECTOR is not set


Index: config-powerpc-generic
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/config-powerpc-generic,v
retrieving revision 1.33
retrieving revision 1.33.6.1
diff -u -r1.33 -r1.33.6.1
--- config-powerpc-generic	28 Jan 2009 19:40:41 -0000	1.33
+++ config-powerpc-generic	17 Feb 2009 22:10:50 -0000	1.33.6.1
@@ -88,6 +88,7 @@
 # CONFIG_PCMCIA_M8XX is not set
 # CONFIG_SCSI_AHA1542 is not set
 # CONFIG_SCSI_IN2000 is not set
+# CONFIG_SCSI_IPS is not set
 # CONFIG_NI52 is not set
 # CONFIG_NI65 is not set
 # CONFIG_LANCE is not set


Index: config-x86-generic
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/config-x86-generic,v
retrieving revision 1.68
retrieving revision 1.68.6.1
diff -u -r1.68 -r1.68.6.1
--- config-x86-generic	12 Feb 2009 09:10:10 -0000	1.68
+++ config-x86-generic	17 Feb 2009 22:10:50 -0000	1.68.6.1
@@ -65,8 +65,8 @@
 CONFIG_SONYPI=m
 CONFIG_SONYPI_COMPAT=y
 CONFIG_MICROCODE=m
-CONFIG_X86_MSR=m
-CONFIG_X86_CPUID=m
+CONFIG_X86_MSR=y
+CONFIG_X86_CPUID=y
 CONFIG_EDD=m
 # CONFIG_EDD_OFF is not set
 # CONFIG_NUMA is not set
@@ -98,7 +98,7 @@
 #
 CONFIG_PCMCIA_FDOMAIN=m
 CONFIG_SCSI_FUTURE_DOMAIN=m
-CONFIG_SCSI_ADVANSYS=m
+# CONFIG_SCSI_ADVANSYS is not set
 
 CONFIG_SECCOMP=y
 
@@ -358,11 +358,11 @@
 CONFIG_XEN_SCRUB_PAGES=y
 CONFIG_XEN_SAVE_RESTORE=y
 CONFIG_HVC_XEN=y
-CONFIG_XEN_FBDEV_FRONTEND=y
-CONFIG_XEN_KBDDEV_FRONTEND=y
+CONFIG_XEN_FBDEV_FRONTEND=m
+CONFIG_XEN_KBDDEV_FRONTEND=m
 CONFIG_XEN_BLKDEV_FRONTEND=m
 CONFIG_XEN_NETDEV_FRONTEND=m
-CONFIG_XENFS=m
+CONFIG_XENFS=y
 CONFIG_XEN_COMPAT_XENFS=y
 
 CONFIG_MTD_ESB2ROM=m


Index: config-x86_64-generic
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/config-x86_64-generic,v
retrieving revision 1.68
retrieving revision 1.68.2.1
diff -u -r1.68 -r1.68.2.1
--- config-x86_64-generic	13 Feb 2009 19:10:25 -0000	1.68
+++ config-x86_64-generic	17 Feb 2009 22:10:50 -0000	1.68.2.1
@@ -30,7 +30,7 @@
 CONFIG_DMAR=y
 CONFIG_DMAR_GFX_WA=y
 CONFIG_DMAR_FLOPPY_WA=y
-# CONFIG_DMAR_DEFAULT_ON is not set
+CONFIG_DMAR_DEFAULT_ON=y
 
 CONFIG_EFI=y
 CONFIG_EFI_VARS=y
@@ -277,11 +277,11 @@
 CONFIG_XEN_SCRUB_PAGES=y
 CONFIG_XEN_SAVE_RESTORE=y
 CONFIG_HVC_XEN=y
-CONFIG_XEN_FBDEV_FRONTEND=y
-CONFIG_XEN_KBDDEV_FRONTEND=y
+CONFIG_XEN_FBDEV_FRONTEND=m
+CONFIG_XEN_KBDDEV_FRONTEND=m
 CONFIG_XEN_BLKDEV_FRONTEND=m
 CONFIG_XEN_NETDEV_FRONTEND=m
-CONFIG_XENFS=m
+CONFIG_XENFS=y
 CONFIG_XEN_COMPAT_XENFS=y
 
 CONFIG_DMADEVICES=y

drm-intel-next.patch:

Index: drm-intel-next.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/drm-intel-next.patch,v
retrieving revision 1.4
retrieving revision 1.4.6.1
diff -u -r1.4 -r1.4.6.1
--- drm-intel-next.patch	11 Feb 2009 15:28:08 -0000	1.4
+++ drm-intel-next.patch	17 Feb 2009 22:10:50 -0000	1.4.6.1
@@ -16,6 +16,44 @@
 # Patches follow
 
 
+commit 5eaf13a569f7b0e7884fc083cbf7e62ddcec6a8f
+Author: Kristian Høgsberg <krh at redhat.com>
+Date:   Fri Feb 13 18:22:53 2009 -0500
+
+    [i915] Bring PLL limits in sync with DDX values.
+    
+    Signed-off-by: Kristian Høgsberg <krh at redhat.com>
+
+commit b02c4adfa7c31b6679dcd4da5a66c125bac8aafe
+Author: Kristian Høgsberg <krh at redhat.com>
+Date:   Fri Feb 13 17:51:11 2009 -0500
+
+    [i915] Collapse identical i8xx_clock() and i9xx_clock().
+    
+    They used to be different.  Now they're identical.
+    
+    Signed-off-by: Kristian Høgsberg <krh at redhat.com>
+
+commit 3435521fd84cf373c02b8e0fb9e59a75285636a4
+Author: Kristian Høgsberg <krh at redhat.com>
+Date:   Fri Feb 13 17:44:12 2009 -0500
+
+    [i915] Use spread spectrum when the bios tells us it's ok.
+    
+    Lifted from the DDX modesetting.
+    
+    Signed-off-by: Kristian Høgsberg <krh at redhat.com>
+
+commit 5e15374a3900c941bbeb5d5cedddad07aa821184
+Author: Kristian Høgsberg <krh at redhat.com>
+Date:   Fri Feb 13 15:41:59 2009 -0500
+
+    [i915] Add missing locking around gem operations.
+    
+    Pinning and setting the domains requires taking the struct mutex.
+    
+    Signed-off-by: Kristian Høgsberg <krh at redhat.com>
+
 commit 6c7aefedd9ebaf1146581dec54f74b29486dae56
 Author: Jesse Barnes <jbarnes at virtuousgeek.org>
 Date:   Wed Feb 4 14:27:01 2009 -0800
@@ -349,6 +387,19 @@
  }
  
  /**
+diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
+index 7325363..135a08f 100644
+--- a/drivers/gpu/drm/i915/i915_drv.h
++++ b/drivers/gpu/drm/i915/i915_drv.h
+@@ -184,6 +184,8 @@ typedef struct drm_i915_private {
+ 	unsigned int lvds_dither:1;
+ 	unsigned int lvds_vbt:1;
+ 	unsigned int int_crt_support:1;
++	unsigned int lvds_use_ssc:1;
++	int lvds_ssc_freq;
+ 
+ 	struct drm_i915_fence_reg fence_regs[16]; /* assume 965 */
+ 	int fence_reg_start; /* 4 if userland hasn't ioctl'd us yet */
 diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
 index 8185766..ff0d94d 100644
 --- a/drivers/gpu/drm/i915/i915_gem.c
@@ -440,11 +491,153 @@
  
  	return 0;
  }
+diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
+index 4ca82a0..65be30d 100644
+--- a/drivers/gpu/drm/i915/intel_bios.c
++++ b/drivers/gpu/drm/i915/intel_bios.c
+@@ -135,6 +135,14 @@ parse_general_features(struct drm_i915_private *dev_priv,
+ 	if (general) {
+ 		dev_priv->int_tv_support = general->int_tv_support;
+ 		dev_priv->int_crt_support = general->int_crt_support;
++		dev_priv->lvds_use_ssc = general->enable_ssc;
++
++		if (dev_priv->lvds_use_ssc) {
++		  if (IS_I855(dev_priv->dev))
++		    dev_priv->lvds_ssc_freq = general->ssc_freq ? 66 : 48;
++		  else
++		    dev_priv->lvds_ssc_freq = general->ssc_freq ? 100 : 96;
++		}
+ 	}
+ }
+ 
 diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index bbdd729..0c66952 100644
+index bbdd729..2daf989 100644
 --- a/drivers/gpu/drm/i915/intel_display.c
 +++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -782,6 +782,9 @@ static void intel_crtc_mode_set(struct drm_crtc *crtc,
+@@ -90,12 +90,12 @@ typedef struct {
+ #define I9XX_DOT_MAX		 400000
+ #define I9XX_VCO_MIN		1400000
+ #define I9XX_VCO_MAX		2800000
+-#define I9XX_N_MIN		      3
+-#define I9XX_N_MAX		      8
++#define I9XX_N_MIN		      1
++#define I9XX_N_MAX		      6
+ #define I9XX_M_MIN		     70
+ #define I9XX_M_MAX		    120
+ #define I9XX_M1_MIN		     10
+-#define I9XX_M1_MAX		     20
++#define I9XX_M1_MAX		     22
+ #define I9XX_M2_MIN		      5
+ #define I9XX_M2_MAX		      9
+ #define I9XX_P_SDVO_DAC_MIN	      5
+@@ -189,19 +189,7 @@ static const intel_limit_t *intel_limit(struct drm_crtc *crtc)
+ 	return limit;
+ }
+ 
+-/** Derive the pixel clock for the given refclk and divisors for 8xx chips. */
+-
+-static void i8xx_clock(int refclk, intel_clock_t *clock)
+-{
+-	clock->m = 5 * (clock->m1 + 2) + (clock->m2 + 2);
+-	clock->p = clock->p1 * clock->p2;
+-	clock->vco = refclk * clock->m / (clock->n + 2);
+-	clock->dot = clock->vco / clock->p;
+-}
+-
+-/** Derive the pixel clock for the given refclk and divisors for 9xx chips. */
+-
+-static void i9xx_clock(int refclk, intel_clock_t *clock)
++static void intel_clock(int refclk, intel_clock_t *clock)
+ {
+ 	clock->m = 5 * (clock->m1 + 2) + (clock->m2 + 2);
+ 	clock->p = clock->p1 * clock->p2;
+@@ -209,15 +197,6 @@ static void i9xx_clock(int refclk, intel_clock_t *clock)
+ 	clock->dot = clock->vco / clock->p;
+ }
+ 
+-static void intel_clock(struct drm_device *dev, int refclk,
+-			intel_clock_t *clock)
+-{
+-	if (IS_I9XX(dev))
+-		i9xx_clock (refclk, clock);
+-	else
+-		i8xx_clock (refclk, clock);
+-}
+-
+ /**
+  * Returns whether any output on the specified pipe is of the specified type
+  */
+@@ -238,7 +217,7 @@ bool intel_pipe_has_type (struct drm_crtc *crtc, int type)
+     return false;
+ }
+ 
+-#define INTELPllInvalid(s)   { /* ErrorF (s) */; return false; }
++#define INTELPllInvalid(s)   do { DRM_DEBUG(s); return false; } while (0)
+ /**
+  * Returns whether the given set of divisors are valid for a given refclk with
+  * the given connectors.
+@@ -318,7 +297,7 @@ static bool intel_find_best_PLL(struct drm_crtc *crtc, int target,
+ 				     clock.p1 <= limit->p1.max; clock.p1++) {
+ 					int this_err;
+ 
+-					intel_clock(dev, refclk, &clock);
++					intel_clock(refclk, &clock);
+ 
+ 					if (!intel_PLL_is_valid(crtc, &clock))
+ 						continue;
+@@ -390,10 +369,14 @@ intel_pipe_set_base(struct drm_crtc *crtc, int x, int y,
+ 		BUG();
+ 	}
+ 
+-	if (i915_gem_object_pin(intel_fb->obj, alignment))
++	mutex_lock(&dev->struct_mutex);
++	if (i915_gem_object_pin(intel_fb->obj, alignment)) {
++		mutex_unlock(&dev->struct_mutex);
+ 		return;
++	}
+ 
+ 	i915_gem_object_set_to_gtt_domain(intel_fb->obj, 1);
++	mutex_unlock(&dev->struct_mutex);
+ 
+ 	Start = obj_priv->gtt_offset;
+ 	Offset = y * crtc->fb->pitch + x * (crtc->fb->bits_per_pixel / 8);
+@@ -437,8 +420,10 @@ intel_pipe_set_base(struct drm_crtc *crtc, int x, int y,
+ 	intel_wait_for_vblank(dev);
+ 
+ 	if (old_fb) {
++		mutex_lock(&dev->struct_mutex);
+ 		intel_fb = to_intel_framebuffer(old_fb);
+ 		i915_gem_object_unpin(intel_fb->obj);
++		mutex_unlock(&dev->struct_mutex);
+ 	}
+ 
+ 	if (!dev->primary->master)
+@@ -732,7 +717,7 @@ static void intel_crtc_mode_set(struct drm_crtc *crtc,
+ 	int dspsize_reg = (pipe == 0) ? DSPASIZE : DSPBSIZE;
+ 	int dsppos_reg = (pipe == 0) ? DSPAPOS : DSPBPOS;
+ 	int pipesrc_reg = (pipe == 0) ? PIPEASRC : PIPEBSRC;
+-	int refclk;
++	int refclk, num_outputs = 0;
+ 	intel_clock_t clock;
+ 	u32 dpll = 0, fp = 0, dspcntr, pipeconf;
+ 	bool ok, is_sdvo = false, is_dvo = false;
+@@ -768,9 +753,14 @@ static void intel_crtc_mode_set(struct drm_crtc *crtc,
+ 			is_crt = true;
+ 			break;
+ 		}
++
++		num_outputs++;
+ 	}
+ 
+-	if (IS_I9XX(dev)) {
++	if (is_lvds && dev_priv->lvds_use_ssc && num_outputs < 2) {
++		refclk = dev_priv->lvds_ssc_freq * 1000;
++		DRM_DEBUG("using SSC reference clock of %d MHz\n", refclk / 1000);
++	} else if (IS_I9XX(dev)) {
+ 		refclk = 96000;
+ 	} else {
+ 		refclk = 48000;
+@@ -782,6 +772,9 @@ static void intel_crtc_mode_set(struct drm_crtc *crtc,
  		return;
  	}
  
@@ -454,6 +647,96 @@
  	fp = clock.n << 16 | clock.m1 << 8 | clock.m2;
  
  	dpll = DPLL_VGA_MODE_DIS;
+@@ -829,11 +822,14 @@ static void intel_crtc_mode_set(struct drm_crtc *crtc,
+ 		}
+ 	}
+ 
+-	if (is_tv) {
++	if (is_sdvo && is_tv)
++		dpll |= PLL_REF_INPUT_TVCLKINBC;
++	else if (is_tv)
+ 		/* XXX: just matching BIOS for now */
+-/*	dpll |= PLL_REF_INPUT_TVCLKINBC; */
++		/*	dpll |= PLL_REF_INPUT_TVCLKINBC; */
+ 		dpll |= 3;
+-	}
++	else if (is_lvds && dev_priv->lvds_use_ssc && num_outputs < 2)
++		dpll |= PLLB_REF_INPUT_SPREADSPECTRUMIN;
+ 	else
+ 		dpll |= PLL_REF_INPUT_DREFCLK;
+ 
+@@ -1023,18 +1019,19 @@ static int intel_crtc_cursor_set(struct drm_crtc *crtc,
+ 	}
+ 
+ 	/* we only need to pin inside GTT if cursor is non-phy */
++	mutex_lock(&dev->struct_mutex);
+ 	if (!dev_priv->cursor_needs_physical) {
+ 		ret = i915_gem_object_pin(bo, PAGE_SIZE);
+ 		if (ret) {
+ 			DRM_ERROR("failed to pin cursor bo\n");
+-			goto fail;
++			goto fail_locked;
+ 		}
+ 		addr = obj_priv->gtt_offset;
+ 	} else {
+ 		ret = i915_gem_attach_phys_object(dev, bo, (pipe == 0) ? I915_GEM_PHYS_CURSOR_0 : I915_GEM_PHYS_CURSOR_1);
+ 		if (ret) {
+ 			DRM_ERROR("failed to attach phys object\n");
+-			goto fail;
++			goto fail_locked;
+ 		}
+ 		addr = obj_priv->phys_obj->handle->busaddr;
+ 	}
+@@ -1054,10 +1051,9 @@ static int intel_crtc_cursor_set(struct drm_crtc *crtc,
+ 				i915_gem_detach_phys_object(dev, intel_crtc->cursor_bo);
+ 		} else
+ 			i915_gem_object_unpin(intel_crtc->cursor_bo);
+-		mutex_lock(&dev->struct_mutex);
+ 		drm_gem_object_unreference(intel_crtc->cursor_bo);
+-		mutex_unlock(&dev->struct_mutex);
+ 	}
++	mutex_unlock(&dev->struct_mutex);
+ 
+ 	intel_crtc->cursor_addr = addr;
+ 	intel_crtc->cursor_bo = bo;
+@@ -1065,6 +1061,7 @@ static int intel_crtc_cursor_set(struct drm_crtc *crtc,
+ 	return 0;
+ fail:
+ 	mutex_lock(&dev->struct_mutex);
++fail_locked:
+ 	drm_gem_object_unreference(bo);
+ 	mutex_unlock(&dev->struct_mutex);
+ 	return ret;
+@@ -1292,7 +1289,7 @@ static int intel_crtc_clock_get(struct drm_device *dev, struct drm_crtc *crtc)
+ 		}
+ 
+ 		/* XXX: Handle the 100Mhz refclk */
+-		i9xx_clock(96000, &clock);
++		intel_clock(96000, &clock);
+ 	} else {
+ 		bool is_lvds = (pipe == 1) && (I915_READ(LVDS) & LVDS_PORT_EN);
+ 
+@@ -1304,9 +1301,9 @@ static int intel_crtc_clock_get(struct drm_device *dev, struct drm_crtc *crtc)
+ 			if ((dpll & PLL_REF_INPUT_MASK) ==
+ 			    PLLB_REF_INPUT_SPREADSPECTRUMIN) {
+ 				/* XXX: might not be 66MHz */
+-				i8xx_clock(66000, &clock);
++				intel_clock(66000, &clock);
+ 			} else
+-				i8xx_clock(48000, &clock);
++				intel_clock(48000, &clock);
+ 		} else {
+ 			if (dpll & PLL_P1_DIVIDE_BY_TWO)
+ 				clock.p1 = 2;
+@@ -1319,7 +1316,7 @@ static int intel_crtc_clock_get(struct drm_device *dev, struct drm_crtc *crtc)
+ 			else
+ 				clock.p2 = 2;
+ 
+-			i8xx_clock(48000, &clock);
++			intel_clock(48000, &clock);
+ 		}
+ 	}
+ 
 diff --git a/drivers/gpu/drm/i915/intel_fb.c b/drivers/gpu/drm/i915/intel_fb.c
 index afd1217..0fd76d4 100644
 --- a/drivers/gpu/drm/i915/intel_fb.c


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.1294
retrieving revision 1.1294.2.1
diff -u -r1.1294 -r1.1294.2.1
--- kernel.spec	13 Feb 2009 19:10:25 -0000	1.1294
+++ kernel.spec	17 Feb 2009 22:10:51 -0000	1.1294.2.1
@@ -12,7 +12,7 @@
 # that the kernel isn't the stock distribution kernel, for example,
 # by setting the define to ".local" or ".bz123456"
 #
-#% define buildid .local
+# % define buildid .local
 
 # fedora_build defines which build revision of this kernel version we're
 # building. Rather than incrementing forever, as with the prior versioning
@@ -56,9 +56,9 @@
 # The next upstream release sublevel (base_sublevel+1)
 %define upstream_sublevel %(echo $((%{base_sublevel} + 1)))
 # The rc snapshot level
-%define rcrev 4
+%define rcrev 5
 # The git snapshot level
-%define gitrev 7
+%define gitrev 0
 # Set rpm version accordingly
 %define rpmversion 2.6.%{upstream_sublevel}
 %endif
@@ -241,8 +241,8 @@
 %endif
 
 # no need to build headers again for these arches,
-# they can just use i386 and ppc64 headers
-%ifarch i586 i686 ppc64iseries
+# they can just use i586 and ppc64 headers
+%ifarch i686 ppc64iseries
 %define with_headers 0
 %endif
 
@@ -365,7 +365,7 @@
 
 # We don't build a kernel on i386; we only do kernel-headers there,
 # and we no longer build for 31bit S390. Same for 32bit sparc and arm.
-%define nobuildarches i386 s390 sparc %{arm}
+%define nobuildarches i386 i586 ppc64 ia64 sparc sparc64 390 s390x alpha alphaev56 %{arm}
 
 %ifarch %nobuildarches
 %define with_up 0
@@ -582,9 +582,12 @@
 # Git trees.
 Patch10: git-cpufreq.patch
 
+Patch15: linux-2.6-iommu-write-buf.patch
+
 # Standalone patches
 Patch20: linux-2.6-hotfixes.patch
 
+
 Patch21: linux-2.6-utrace.patch
 
 Patch30: linux-2.6-debug-dma-api.patch
@@ -619,6 +622,9 @@
 Patch570: linux-2.6-selinux-mprotect-checks.patch
 Patch580: linux-2.6-sparc-selinux-mprotect-checks.patch
 
+Patch590: linux-2.6-ext4-write-cyclic-fix.patch
+Patch591: linux-2.6-ext4-ENOSPC-debug.patch
+
 Patch600: linux-2.6-defaults-alsa-hda-beep-off.patch
 
 Patch670: linux-2.6-ata-quirk.patch
@@ -663,6 +669,9 @@
 
 Patch9001: revert-fix-modules_install-via-nfs.patch
 
+Patch9997: xen.pvops.pre.patch
+Patch9998: xen.pvops.patch
+Patch9999: xen.pvops.post.patch
 %endif
 
 BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root
@@ -1009,11 +1018,13 @@
 
 ApplyPatch linux-2.6-hotfixes.patch
 
+ApplyPatch linux-2.6-iommu-write-buf.patch
+
 # Roland's utrace ptrace replacement.
 ApplyPatch linux-2.6-utrace.patch
 
 # DMA API debugging
-ApplyPatch linux-2.6-debug-dma-api.patch
+#ApplyPatch linux-2.6-debug-dma-api.patch
 
 # enable sysrq-c on all kernels, not only kexec
 ApplyPatch linux-2.6-sysrq-c.patch
@@ -1043,13 +1054,15 @@
 #
 # Exec shield
 #
-ApplyPatch linux-2.6-execshield.patch
+#ApplyPatch linux-2.6-execshield.patch
 
 #
 # bugfixes to drivers and filesystems
 #
 
 # ext4
+ApplyPatch linux-2.6-ext4-write-cyclic-fix.patch
+ApplyPatch linux-2.6-ext4-ENOSPC-debug.patch
 
 # xfs
 
@@ -1166,6 +1179,9 @@
 
 ApplyPatch linux-2.6.28-lockd-svc-register.patch
 
+ApplyPatch xen.pvops.pre.patch
+ApplyPatch xen.pvops.patch
+ApplyPatch xen.pvops.post.patch
 # END OF PATCH APPLICATIONS
 
 %endif
@@ -1743,6 +1759,44 @@
 %kernel_variant_files -k vmlinux %{with_kdump} kdump
 
 %changelog
+* Mon Feb 16 2009 Michael Young <m.a.young at durham.ac.uk>
+- Add xen pvops patches to allow dom0 support
+- disable linux-2.6-debug-dma-api.patch patch (too tricky to merge)
+- disable linux-2.6-execshield.patch patch (merge issues)
+- set and reset several XEN configuration options
+- disable CONFIG_SCSI_AHA1542 and CONFIG_SCSI_ADVANSYS to allow to compile
+
+* Mon Feb 16 2009 Dennis Gilmore <dennis at ausil.us> 2.6.29-0.122.rc5
+- build kernel-headers on i586
+
+* Mon Feb 16 2009 Eric Sandeen <sandeen at redhat.com>
+- Add ext4 debug patch for ENOSPC issue
+
+* Mon Feb 16 2009 Kristian Høgsberg <krh at redhat.com>
+- Flip the switch on intel KMS.
+
+* Mon Feb 16 2009 Dave Jones <davej at redhat.com> 2.6.29-0.121.rc5
+- Disable CONFIG_SCSI_IPS on ppc/ppc64
+
+* Mon Feb 16 2009 Jeremy Katz <katzj at redhat.com>
+- Switch msr and cpuid to be built-in on x86 since there isn't anything to really autoload them (and if there
+  was, they'd just end up always being loaded)
+
+* Sat Feb 14 2009 Eric Sandeen <sandeen at redhat.com>
+- Fix ext4 hang on livecd-creator (#484522)
+
+* Sat Feb 14 2009 David Woodhouse <David.Woodhouse at intel.com>
+- Enable DMAR by default again now that it works
+
+* Fri Feb 13 2009 Dave Jones <davej at redhat.com> 2.6.29-0.117.rc5
+- 2.6.29-rc5
+
+* Fri Feb 13 2009 Kristian Høgsberg <krh at redhat.com>
+- Update drm-intel-next patch with more modesetting fixes.
+
+* Fri Feb 13 2009 David Woodhouse <David.Woodhouse at intel.com>
+- Apply IOMMU write-buffer quirk. (#479996)
+
 * Fri Feb 13 2009 Kyle McMartin <kyle at redhat.com>
 - Linux 2.6.29-rc4-git7
 


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/sources,v
retrieving revision 1.976
retrieving revision 1.976.2.1
diff -u -r1.976 -r1.976.2.1
--- sources	13 Feb 2009 19:10:25 -0000	1.976
+++ sources	17 Feb 2009 22:10:51 -0000	1.976.2.1
@@ -1,3 +1,2 @@
 d351e44709c9810b85e29b877f50968a  linux-2.6.28.tar.bz2
-c5daf3d0f43873d5c2b36ddaf8d77bab  patch-2.6.29-rc4.bz2
-2e2cef36efb682da6a4e0f003672a47a  patch-2.6.29-rc4-git7.bz2
+60193569887cb6fe98b9c0d483f911e7  patch-2.6.29-rc5.bz2




More information about the fedora-extras-commits mailing list