--- /dev/null
+From stable-bounces@linux.kernel.org Tue Oct 3 01:22:33 2006
+Message-Id: <200610030815.k938FB4V020043@shell0.pdx.osdl.net>
+To: torvalds@osdl.org
+From: Geert Uytterhoeven <geert@linux-m68k.org>
+Date: Tue, 03 Oct 2006 01:15:11 -0700
+Cc: akpm@osdl.org, stable@kernel.org, geert@linux-m68k.org, adaplas@pol.net,
+ w@1wt.eu, jurij@wooyd.org
+Subject: fbdev: correct buffer size limit in fbmem_read_proc()
+
+From: Geert Uytterhoeven <geert@linux-m68k.org>
+
+Address http://bugzilla.kernel.org/show_bug.cgi?id=7189
+
+It should check `clen', not `len'.
+
+Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
+Cc: <jurij@wooyd.org>
+Cc: "Antonino A. Daplas" <adaplas@pol.net>
+Cc: Willy Tarreau <w@1wt.eu>
+Signed-off-by: Andrew Morton <akpm@osdl.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+
+---
+ drivers/video/fbmem.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- linux-2.6.18.orig/drivers/video/fbmem.c
++++ linux-2.6.18/drivers/video/fbmem.c
+@@ -554,7 +554,8 @@ static int fbmem_read_proc(char *buf, ch
+ int clen;
+
+ clen = 0;
+- for (fi = registered_fb; fi < ®istered_fb[FB_MAX] && len < 4000; fi++)
++ for (fi = registered_fb; fi < ®istered_fb[FB_MAX] && clen < 4000;
++ fi++)
+ if (*fi)
+ clen += sprintf(buf + clen, "%d %s\n",
+ (*fi)->node,
--- /dev/null
+From stable-bounces@linux.kernel.org Thu Oct 5 14:40:23 2006
+Message-Id: <200610052139.k95LdQjP004460@shell0.pdx.osdl.net>
+From: Alan Cox <alan@lxorguk.ukuu.org.uk>
+To: mm-commits@vger.kernel.org
+Date: Thu, 05 Oct 2006 14:39:26 -0700
+Cc: stable@kernel.org, alan@lxorguk.ukuu.org.uk
+Subject: ide-generic: jmicron fix
+
+From: Alan Cox <alan@lxorguk.ukuu.org.uk>
+
+Some people find their Jmicron pata port reports its disabled even
+though it has devices on it and was boot probed. Fix this
+
+(Candidate for 2.6.18.*, less so for 2.6.19 as we've got a proper
+jmicron driver on the merge for that to replace ide-generic support)
+
+From: Alan Cox <alan@lxorguk.ukuu.org.uk>
+Signed-off-by: Andrew Morton <akpm@osdl.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+
+---
+ drivers/ide/pci/generic.c | 10 ++++++----
+ 1 file changed, 6 insertions(+), 4 deletions(-)
+
+--- linux-2.6.18.orig/drivers/ide/pci/generic.c
++++ linux-2.6.18/drivers/ide/pci/generic.c
+@@ -245,10 +245,12 @@ static int __devinit generic_init_one(st
+ if (dev->vendor == PCI_VENDOR_ID_JMICRON && PCI_FUNC(dev->devfn) != 1)
+ goto out;
+
+- pci_read_config_word(dev, PCI_COMMAND, &command);
+- if (!(command & PCI_COMMAND_IO)) {
+- printk(KERN_INFO "Skipping disabled %s IDE controller.\n", d->name);
+- goto out;
++ if (dev->vendor != PCI_VENDOR_ID_JMICRON) {
++ pci_read_config_word(dev, PCI_COMMAND, &command);
++ if (!(command & PCI_COMMAND_IO)) {
++ printk(KERN_INFO "Skipping disabled %s IDE controller.\n", d->name);
++ goto out;
++ }
+ }
+ ret = ide_setup_pci_device(dev, d);
+ out:
--- /dev/null
+From stable-bounces@linux.kernel.org Sat Sep 30 23:30:53 2006
+Message-Id: <200610010629.k916TTpF010835@shell0.pdx.osdl.net>
+To: torvalds@osdl.org
+From: Andrew Morton <akpm@osdl.org>
+Date: Sat, 30 Sep 2006 23:29:29 -0700
+Cc: akpm@osdl.org, nickpiggin@yahoo.com.au, stable@kernel.org,
+ a.p.zijlstra@chello.nl, cel@citi.umich.edu
+Subject: invalidate_inode_pages2(): ignore page refcounts
+
+From: Andrew Morton <akpm@osdl.org>
+
+The recent fix to invalidate_inode_pages() (git commit 016eb4a) managed to
+unfix invalidate_inode_pages2().
+
+The problem is that various bits of code in the kernel can take transient refs
+on pages: the page scanner will do this when inspecting a batch of pages, and
+the lru_cache_add() batching pagevecs also hold a ref.
+
+Net result is transient failures in invalidate_inode_pages2(). This affects
+NFS directory invalidation (observed) and presumably also block-backed
+direct-io (not yet reported).
+
+Fix it by reverting invalidate_inode_pages2() back to the old version which
+ignores the page refcounts.
+
+We may come up with something more clever later, but for now we need a 2.6.18
+fix for NFS.
+
+Cc: Chuck Lever <cel@citi.umich.edu>
+Cc: Nick Piggin <nickpiggin@yahoo.com.au>
+Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
+Signed-off-by: Andrew Morton <akpm@osdl.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ mm/truncate.c | 34 ++++++++++++++++++++++++++++++++--
+ 1 file changed, 32 insertions(+), 2 deletions(-)
+
+--- linux-2.6.18.orig/mm/truncate.c
++++ linux-2.6.18/mm/truncate.c
+@@ -270,9 +270,39 @@ unsigned long invalidate_inode_pages(str
+ {
+ return invalidate_mapping_pages(mapping, 0, ~0UL);
+ }
+-
+ EXPORT_SYMBOL(invalidate_inode_pages);
+
++/*
++ * This is like invalidate_complete_page(), except it ignores the page's
++ * refcount. We do this because invalidate_inode_pages2() needs stronger
++ * invalidation guarantees, and cannot afford to leave pages behind because
++ * shrink_list() has a temp ref on them, or because they're transiently sitting
++ * in the lru_cache_add() pagevecs.
++ */
++static int
++invalidate_complete_page2(struct address_space *mapping, struct page *page)
++{
++ if (page->mapping != mapping)
++ return 0;
++
++ if (PagePrivate(page) && !try_to_release_page(page, 0))
++ return 0;
++
++ write_lock_irq(&mapping->tree_lock);
++ if (PageDirty(page))
++ goto failed;
++
++ BUG_ON(PagePrivate(page));
++ __remove_from_page_cache(page);
++ write_unlock_irq(&mapping->tree_lock);
++ ClearPageUptodate(page);
++ page_cache_release(page); /* pagecache ref */
++ return 1;
++failed:
++ write_unlock_irq(&mapping->tree_lock);
++ return 0;
++}
++
+ /**
+ * invalidate_inode_pages2_range - remove range of pages from an address_space
+ * @mapping: the address_space
+@@ -339,7 +369,7 @@ int invalidate_inode_pages2_range(struct
+ }
+ }
+ was_dirty = test_clear_page_dirty(page);
+- if (!invalidate_complete_page(mapping, page)) {
++ if (!invalidate_complete_page2(mapping, page)) {
+ if (was_dirty)
+ set_page_dirty(page);
+ ret = -EIO;
--- /dev/null
+From stable-bounces@linux.kernel.org Sat Sep 30 23:50:48 2006
+Message-Id: <200610010628.k916SCLM010532@shell0.pdx.osdl.net>
+To: torvalds@osdl.org
+From: Jean-Baptiste Maneyrol <jean-baptiste.maneyrol@teamlog.com>
+Date: Sat, 30 Sep 2006 23:28:12 -0700
+Cc: akpm@osdl.org, jean-baptiste.maneyrol@teamlog.com, stable@kernel.org,
+ a.zummo@towertech.it
+Subject: rtc driver rtc-pcf8563 century bit inversed
+
+From: Jean-Baptiste Maneyrol <jean-baptiste.maneyrol@teamlog.com>
+
+The century bit PCF8563_MO_C in the month register is misinterpreted. It
+is set to 1 for the 20th century and 0 for 21th, and the driver is
+expecting the opposite behavior.
+
+Acked-by: Alessandro Zummo <a.zummo@towertech.it>
+Signed-off-by: Andrew Morton <akpm@osdl.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+
+---
+ drivers/rtc/rtc-pcf8563.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- linux-2.6.18.orig/drivers/rtc/rtc-pcf8563.c
++++ linux-2.6.18/drivers/rtc/rtc-pcf8563.c
+@@ -95,7 +95,7 @@ static int pcf8563_get_datetime(struct i
+ tm->tm_wday = buf[PCF8563_REG_DW] & 0x07;
+ tm->tm_mon = BCD2BIN(buf[PCF8563_REG_MO] & 0x1F) - 1; /* rtc mn 1-12 */
+ tm->tm_year = BCD2BIN(buf[PCF8563_REG_YR])
+- + (buf[PCF8563_REG_MO] & PCF8563_MO_C ? 100 : 0);
++ + (buf[PCF8563_REG_MO] & PCF8563_MO_C ? 0 : 100);
+
+ dev_dbg(&client->dev, "%s: tm is secs=%d, mins=%d, hours=%d, "
+ "mday=%d, mon=%d, year=%d, wday=%d\n",
+@@ -135,7 +135,7 @@ static int pcf8563_set_datetime(struct i
+
+ /* year and century */
+ buf[PCF8563_REG_YR] = BIN2BCD(tm->tm_year % 100);
+- if (tm->tm_year / 100)
++ if (tm->tm_year < 100)
+ buf[PCF8563_REG_MO] |= PCF8563_MO_C;
+
+ buf[PCF8563_REG_DW] = tm->tm_wday & 0x07;
--- /dev/null
+From stable-bounces@linux.kernel.org Wed Oct 4 02:17:45 2006
+Message-Id: <200610040915.k949FZY8031823@shell0.pdx.osdl.net>
+To: torvalds@osdl.org
+From: Jim Cromie <jim.cromie@gmail.com>
+Date: Wed, 04 Oct 2006 02:15:35 -0700
+Cc: akpm@osdl.org, jim.cromie@gmail.com, johnstul@us.ibm.com,
+ alexander.krause@erazor-zone.de, dzpost@dedekind.net,
+ phelps@mantara.com, stable@kernel.org
+Subject: scx200_hrt: fix precedence bug manifesting as 27x clock in 1 MHz mode
+
+From: Jim Cromie <jim.cromie@gmail.com>
+
+Fix paren-placement / precedence bug breaking initialization for 1 MHz
+clock mode.
+
+Also fix comment spelling error, and fence-post (off-by-one) error on
+symbol used in request_region.
+
+Addresses http://bugzilla.kernel.org/show_bug.cgi?id=7242
+
+Thanks alexander.krause@erazor-zone.de, dzpost@dedekind.net, for the
+reports and patch test, and phelps@mantara.com for the independent patch
+and verification.
+
+Signed-off-by: Jim Cromie <jim.cromie@gmail.com>
+Cc: <alexander.krause@erazor-zone.de>
+Cc: <dzpost@dedekind.net>
+Cc: <phelps@mantara.com>
+Acked-by: John Stultz <johnstul@us.ibm.com>
+Signed-off-by: Andrew Morton <akpm@osdl.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/clocksource/scx200_hrt.c | 4 ++--
+ include/linux/scx200.h | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+--- linux-2.6.18.orig/drivers/clocksource/scx200_hrt.c
++++ linux-2.6.18/drivers/clocksource/scx200_hrt.c
+@@ -63,7 +63,7 @@ static struct clocksource cs_hrt = {
+
+ static int __init init_hrt_clocksource(void)
+ {
+- /* Make sure scx200 has initializedd the configuration block */
++ /* Make sure scx200 has initialized the configuration block */
+ if (!scx200_cb_present())
+ return -ENODEV;
+
+@@ -76,7 +76,7 @@ static int __init init_hrt_clocksource(v
+ }
+
+ /* write timer config */
+- outb(HR_TMEN | (mhz27) ? HR_TMCLKSEL : 0,
++ outb(HR_TMEN | (mhz27 ? HR_TMCLKSEL : 0),
+ scx200_cb_base + SCx200_TMCNFG_OFFSET);
+
+ if (mhz27) {
+--- linux-2.6.18.orig/include/linux/scx200.h
++++ linux-2.6.18/include/linux/scx200.h
+@@ -32,7 +32,7 @@ extern unsigned scx200_cb_base;
+
+ /* High Resolution Timer */
+ #define SCx200_TIMER_OFFSET 0x08
+-#define SCx200_TIMER_SIZE 0x05
++#define SCx200_TIMER_SIZE 0x06
+
+ /* Clock Generators */
+ #define SCx200_CLOCKGEN_OFFSET 0x10
md-fix-problem-where-hot-added-drives-are-not-resynced.patch
tcp-fix-and-simplify-microsecond-rtt-sampling.patch
mm-bug-in-set_page_dirty_buffers.patch
+fbdev-correct-buffer-size-limit-in-fbmem_read_proc.patch
+rtc-driver-rtc-pcf8563-century-bit-inversed.patch
+invalidate_inode_pages2-ignore-page-refcounts.patch
+scx200_hrt-fix-precedence-bug-manifesting-as-27x-clock-in-1-mhz-mode.patch
+ide-generic-jmicron-fix.patch