--- /dev/null
+From stable-bounces@linux.kernel.org Wed Apr 25 12:09:01 2007
+From: Wang Zhenyu <zhenyu.z.wang@intel.com>
+Date: Wed, 25 Apr 2007 15:07:38 -0400
+Subject: AGPGART: intel_agp: fix G965 GTT size detect
+To: linux-stable <stable@kernel.org>
+Cc: Dave Jones <davej@redhat.com>
+Message-ID: <462FA6FA.7090307@redhat.com>
+
+From: Wang Zhenyu <zhenyu.z.wang@intel.com>
+
+[AGPGART] intel_agp: fix G965 GTT size detect
+
+On G965, I810_PGETBL_CTL is a mmio offset, but we wrongly take it
+as pci config space offset in detecting GTT size. This one line patch
+fixs this.
+
+Signed-off-by: Wang Zhenyu <zhenyu.z.wang@intel.com>
+Signed-off-by: Dave Jones <davej@redhat.com>
+Cc: Chuck Ebbert <cebbert@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/char/agp/intel-agp.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+--- a/drivers/char/agp/intel-agp.c
++++ b/drivers/char/agp/intel-agp.c
+@@ -405,9 +405,8 @@ static void intel_i830_init_gtt_entries(
+
+ if (IS_I965) {
+ u32 pgetbl_ctl;
++ pgetbl_ctl = readl(intel_i830_private.registers+I810_PGETBL_CTL);
+
+- pci_read_config_dword(agp_bridge->dev, I810_PGETBL_CTL,
+- &pgetbl_ctl);
+ /* The 965 has a field telling us the size of the GTT,
+ * which may be larger than what is necessary to map the
+ * aperture.
--- /dev/null
+From stable-bounces@linux.kernel.org Wed Apr 25 12:07:10 2007
+From: Tommi Kyntola <tommi.kyntola@ray.fi>
+Date: Wed, 25 Apr 2007 15:05:50 -0400
+Subject: ALSA: intel8x0 - Fix speaker output after S2RAM
+To: linux-stable <stable@kernel.org>
+Cc: Takashi Iwai <tiwai@suse.de>
+Message-ID: <462FA68E.8060909@redhat.com>
+
+From: Tommi Kyntola <tommi.kyntola@ray.fi>
+
+[ALSA] intel8x0 - Fix speaker output after S2RAM
+
+Fixed the mute speaker problem after S2RAM on some laptops:
+ http://bugme.osdl.org/show_bug.cgi?id=6181
+
+Signed-off-by: Tommi Kyntola <tommi.kyntola@ray.fi>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Jaroslav Kysela <perex@suse.cz>
+Cc: Chuck Ebbert <cebbert@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+
+---
+ sound/pci/intel8x0.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+--- a/sound/pci/intel8x0.c
++++ b/sound/pci/intel8x0.c
+@@ -2489,7 +2489,10 @@ static int intel8x0_suspend(struct pci_d
+ }
+ pci_disable_device(pci);
+ pci_save_state(pci);
+- pci_set_power_state(pci, pci_choose_state(pci, state));
++ /* The call below may disable built-in speaker on some laptops
++ * after S2RAM. So, don't touch it.
++ */
++ /* pci_set_power_state(pci, pci_choose_state(pci, state)); */
+ return 0;
+ }
+
--- /dev/null
+From stable-bounces@linux.kernel.org Wed Apr 25 04:44:56 2007
+From: Jens Axboe <jens.axboe@oracle.com>
+Date: Wed, 25 Apr 2007 13:42:27 +0200
+Subject: cfq-iosched: fix alias + front merge bug
+To: stable@kernel.org
+Message-ID: <20070425114227.GZ9715@kernel.dk>
+Content-Disposition: inline
+
+From: Jens Axboe <jens.axboe@oracle.com>
+
+There's a really rare and obscure bug in CFQ, that causes a crash in
+cfq_dispatch_insert() due to rq == NULL. One example of that is seen
+here:
+
+http://lkml.org/lkml/2007/4/15/41
+
+Neil correctly diagnosed the situation for how this can happen, read
+that analysis here:
+
+http://lkml.org/lkml/2007/4/25/57
+
+This looks like it requires md to trigger, even though it should
+potentially be possible to due with O_DIRECT (at least if you edit the
+kernel and doctor some of the unplug calls).
+
+The fix is to move the ->next_rq update to when we add a request to the
+rbtree. Then we remove the possibility for a request to exist in the
+rbtree code, but not have ->next_rq correctly updated.
+
+Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ block/cfq-iosched.c | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+--- a/block/cfq-iosched.c
++++ b/block/cfq-iosched.c
+@@ -462,6 +462,12 @@ static void cfq_add_rq_rb(struct request
+
+ if (!cfq_cfqq_on_rr(cfqq))
+ cfq_add_cfqq_rr(cfqd, cfqq);
++
++ /*
++ * check if this request is a better next-serve candidate
++ */
++ cfqq->next_rq = cfq_choose_req(cfqd, cfqq->next_rq, rq);
++ BUG_ON(!cfqq->next_rq);
+ }
+
+ static inline void
+@@ -1623,12 +1629,6 @@ cfq_rq_enqueued(struct cfq_data *cfqd, s
+ cfqq->meta_pending++;
+
+ /*
+- * check if this request is a better next-serve candidate)) {
+- */
+- cfqq->next_rq = cfq_choose_req(cfqd, cfqq->next_rq, rq);
+- BUG_ON(!cfqq->next_rq);
+-
+- /*
+ * we never wait for an async request and we don't allow preemption
+ * of an async request. so just return early
+ */
--- /dev/null
+From stable-bounces@linux.kernel.org Wed Apr 25 00:51:47 2007
+From: Jean Delvare <khali@linux-fr.org>
+Date: Wed, 25 Apr 2007 09:51:01 +0200
+Subject: hwmon/w83627ehf: Fix the fan5 clock divider write
+To: stable@kernel.org
+Message-ID: <20070425095101.0fdde04b@hyperion.delvare>
+
+From: Jean Delvare <khali@linux-fr.org>
+
+Users have been complaining about the w83627ehf driver flooding their
+logs with debug messages like:
+
+w83627ehf 9191-0a10: Increasing fan 4 clock divider from 64 to 128
+
+or:
+
+w83627ehf 9191-0290: Increasing fan 4 clock divider from 4 to 8
+
+The reason is that we failed to actually write the LSB of the encoded
+clock divider value for that fan, causing the next read to report the
+same old value again and again.
+
+Additionally, the fan number was improperly reported, making the bug
+harder to find.
+
+Signed-off-by: Jean Delvare <khali@linux-fr.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/hwmon/w83627ehf.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/drivers/hwmon/w83627ehf.c
++++ b/drivers/hwmon/w83627ehf.c
+@@ -389,7 +389,7 @@ static void w83627ehf_write_fan_div(stru
+ break;
+ case 4:
+ reg = (w83627ehf_read_value(client, W83627EHF_REG_DIODE) & 0x73)
+- | ((data->fan_div[4] & 0x03) << 3)
++ | ((data->fan_div[4] & 0x03) << 2)
+ | ((data->fan_div[4] & 0x04) << 5);
+ w83627ehf_write_value(client, W83627EHF_REG_DIODE, reg);
+ break;
+@@ -453,9 +453,9 @@ static struct w83627ehf_data *w83627ehf_
+ time */
+ if (data->fan[i] == 0xff
+ && data->fan_div[i] < 0x07) {
+- dev_dbg(&client->dev, "Increasing fan %d "
++ dev_dbg(&client->dev, "Increasing fan%d "
+ "clock divider from %u to %u\n",
+- i, div_from_reg(data->fan_div[i]),
++ i + 1, div_from_reg(data->fan_div[i]),
+ div_from_reg(data->fan_div[i] + 1));
+ data->fan_div[i]++;
+ w83627ehf_write_fan_div(client, i);
--- /dev/null
+From stable-bounces@linux.kernel.org Wed Apr 25 13:20:44 2007
+From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
+Date: Wed, 25 Apr 2007 16:18:52 -0400
+Subject: Revert "adjust legacy IDE resource setting (v2)"
+To: linux-stable <stable@kernel.org>
+Cc: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
+Message-ID: <462FB7AC.2000807@redhat.com>
+
+From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
+
+Revert "adjust legacy IDE resource setting (v2)"
+
+This reverts commit ed8ccee0918ad063a4741c0656fda783e02df627.
+
+It causes hang on boot for some users and we don't yet know why:
+
+http://bugzilla.kernel.org/show_bug.cgi?id=7562
+
+http://lkml.org/lkml/2007/4/20/404
+http://lkml.org/lkml/2007/3/25/113
+
+Just reverse it for 2.6.21-final, having broken X server is somehow
+better than unbootable system.
+
+Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
+Cc: Chuck Ebbert <cebbert@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/pci/probe.c | 45 +++++++++++++--------------------------------
+ 1 file changed, 13 insertions(+), 32 deletions(-)
+
+--- a/drivers/pci/probe.c
++++ b/drivers/pci/probe.c
+@@ -639,34 +639,7 @@ static void pci_read_irq(struct pci_dev
+ dev->irq = irq;
+ }
+
+-static void change_legacy_io_resource(struct pci_dev * dev, unsigned index,
+- unsigned start, unsigned end)
+-{
+- unsigned base = start & PCI_BASE_ADDRESS_IO_MASK;
+- unsigned len = (end | ~PCI_BASE_ADDRESS_IO_MASK) - base + 1;
+-
+- /*
+- * Some X versions get confused when the BARs reported through
+- * /sys or /proc differ from those seen in config space, thus
+- * try to update the config space values, too.
+- */
+- if (!(pci_resource_flags(dev, index) & IORESOURCE_IO))
+- printk(KERN_WARNING "%s: cannot adjust BAR%u (not I/O)\n",
+- pci_name(dev), index);
+- else if (pci_resource_len(dev, index) != len)
+- printk(KERN_WARNING "%s: cannot adjust BAR%u (size %04X)\n",
+- pci_name(dev), index, (unsigned)pci_resource_len(dev, index));
+- else {
+- printk(KERN_INFO "%s: trying to change BAR%u from %04X to %04X\n",
+- pci_name(dev), index,
+- (unsigned)pci_resource_start(dev, index), base);
+- pci_write_config_dword(dev, PCI_BASE_ADDRESS_0 + index * 4, base);
+- }
+- pci_resource_start(dev, index) = start;
+- pci_resource_end(dev, index) = end;
+- pci_resource_flags(dev, index) =
+- IORESOURCE_IO | IORESOURCE_PCI_FIXED | PCI_BASE_ADDRESS_SPACE_IO;
+-}
++#define LEGACY_IO_RESOURCE (IORESOURCE_IO | IORESOURCE_PCI_FIXED)
+
+ /**
+ * pci_setup_device - fill in class and map information of a device
+@@ -719,12 +692,20 @@ static int pci_setup_device(struct pci_d
+ u8 progif;
+ pci_read_config_byte(dev, PCI_CLASS_PROG, &progif);
+ if ((progif & 1) == 0) {
+- change_legacy_io_resource(dev, 0, 0x1F0, 0x1F7);
+- change_legacy_io_resource(dev, 1, 0x3F6, 0x3F6);
++ dev->resource[0].start = 0x1F0;
++ dev->resource[0].end = 0x1F7;
++ dev->resource[0].flags = LEGACY_IO_RESOURCE;
++ dev->resource[1].start = 0x3F6;
++ dev->resource[1].end = 0x3F6;
++ dev->resource[1].flags = LEGACY_IO_RESOURCE;
+ }
+ if ((progif & 4) == 0) {
+- change_legacy_io_resource(dev, 2, 0x170, 0x177);
+- change_legacy_io_resource(dev, 3, 0x376, 0x376);
++ dev->resource[2].start = 0x170;
++ dev->resource[2].end = 0x177;
++ dev->resource[2].flags = LEGACY_IO_RESOURCE;
++ dev->resource[3].start = 0x376;
++ dev->resource[3].end = 0x376;
++ dev->resource[3].flags = LEGACY_IO_RESOURCE;
+ }
+ }
+ break;
page-migration-fix-nr_file_pages-accounting.patch
taskstats-fix-the-structure-members-alignment-issue.patch
reiserfs-fix-xattr-root-locking-refcount-bug.patch
+hwmon-w83627ehf-fix-the-fan5-clock-divider-write.patch
+alsa-intel8x0-fix-speaker-output-after-s2ram.patch
+agpgart-intel_agp-fix-g965-gtt-size-detect.patch
+cfq-iosched-fix-alias-front-merge-bug.patch
+revert-adjust-legacy-ide-resource-setting.patch