From: Greg Kroah-Hartman Date: Thu, 26 Apr 2007 16:50:10 +0000 (-0700) Subject: more 2.6.20 patches added X-Git-Tag: v2.6.20.10~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0cf030facff35771d43b90906bd678bcebe3824e;p=thirdparty%2Fkernel%2Fstable-queue.git more 2.6.20 patches added --- diff --git a/queue-2.6.20/agpgart-intel_agp-fix-g965-gtt-size-detect.patch b/queue-2.6.20/agpgart-intel_agp-fix-g965-gtt-size-detect.patch new file mode 100644 index 00000000000..de8e9372289 --- /dev/null +++ b/queue-2.6.20/agpgart-intel_agp-fix-g965-gtt-size-detect.patch @@ -0,0 +1,38 @@ +From stable-bounces@linux.kernel.org Wed Apr 25 12:09:01 2007 +From: Wang Zhenyu +Date: Wed, 25 Apr 2007 15:07:38 -0400 +Subject: AGPGART: intel_agp: fix G965 GTT size detect +To: linux-stable +Cc: Dave Jones +Message-ID: <462FA6FA.7090307@redhat.com> + +From: Wang Zhenyu + +[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 +Signed-off-by: Dave Jones +Cc: Chuck Ebbert +Signed-off-by: Greg Kroah-Hartman + +--- + 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. diff --git a/queue-2.6.20/alsa-intel8x0-fix-speaker-output-after-s2ram.patch b/queue-2.6.20/alsa-intel8x0-fix-speaker-output-after-s2ram.patch new file mode 100644 index 00000000000..08d6cd60b3e --- /dev/null +++ b/queue-2.6.20/alsa-intel8x0-fix-speaker-output-after-s2ram.patch @@ -0,0 +1,40 @@ +From stable-bounces@linux.kernel.org Wed Apr 25 12:07:10 2007 +From: Tommi Kyntola +Date: Wed, 25 Apr 2007 15:05:50 -0400 +Subject: ALSA: intel8x0 - Fix speaker output after S2RAM +To: linux-stable +Cc: Takashi Iwai +Message-ID: <462FA68E.8060909@redhat.com> + +From: Tommi Kyntola + +[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 +Signed-off-by: Takashi Iwai +Signed-off-by: Jaroslav Kysela +Cc: Chuck Ebbert +Signed-off-by: Greg Kroah-Hartman + + +--- + 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; + } + diff --git a/queue-2.6.20/cfq-iosched-fix-alias-front-merge-bug.patch b/queue-2.6.20/cfq-iosched-fix-alias-front-merge-bug.patch new file mode 100644 index 00000000000..3d5c2e68183 --- /dev/null +++ b/queue-2.6.20/cfq-iosched-fix-alias-front-merge-bug.patch @@ -0,0 +1,64 @@ +From stable-bounces@linux.kernel.org Wed Apr 25 04:44:56 2007 +From: Jens Axboe +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 + +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 +Signed-off-by: Greg Kroah-Hartman + +--- + 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 + */ diff --git a/queue-2.6.20/hwmon-w83627ehf-fix-the-fan5-clock-divider-write.patch b/queue-2.6.20/hwmon-w83627ehf-fix-the-fan5-clock-divider-write.patch new file mode 100644 index 00000000000..e4daf29714a --- /dev/null +++ b/queue-2.6.20/hwmon-w83627ehf-fix-the-fan5-clock-divider-write.patch @@ -0,0 +1,55 @@ +From stable-bounces@linux.kernel.org Wed Apr 25 00:51:47 2007 +From: Jean Delvare +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 + +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 +Signed-off-by: Greg Kroah-Hartman + +--- + 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); diff --git a/queue-2.6.20/revert-adjust-legacy-ide-resource-setting.patch b/queue-2.6.20/revert-adjust-legacy-ide-resource-setting.patch new file mode 100644 index 00000000000..a33321f9438 --- /dev/null +++ b/queue-2.6.20/revert-adjust-legacy-ide-resource-setting.patch @@ -0,0 +1,95 @@ +From stable-bounces@linux.kernel.org Wed Apr 25 13:20:44 2007 +From: Bartlomiej Zolnierkiewicz +Date: Wed, 25 Apr 2007 16:18:52 -0400 +Subject: Revert "adjust legacy IDE resource setting (v2)" +To: linux-stable +Cc: Bartlomiej Zolnierkiewicz +Message-ID: <462FB7AC.2000807@redhat.com> + +From: Bartlomiej Zolnierkiewicz + +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 +Cc: Chuck Ebbert +Signed-off-by: Greg Kroah-Hartman + +--- + 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; diff --git a/queue-2.6.20/series b/queue-2.6.20/series index 73a102ce49b..bf5fc623cce 100644 --- a/queue-2.6.20/series +++ b/queue-2.6.20/series @@ -26,3 +26,8 @@ fix-possible-null-pointer-access-in-8250-serial-driver.patch 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