We (the -stable team) are announcing the release of the 2.6.26.4
kernel.
It contains lots of bugfixes, all over the map. Any users of the 2.6.26
kernel series should upgrade to this version. For details on the fixes,
see the changelog entries and the diffstat below.
I'll also be replying to this message with a copy of the patch between
2.6.26.3 and 2.6.26.4
The updated 2.6.26.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6.26.y.git
and can be browsed at the normal kernel.org git web browser:
http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.26.y.git;a=summary
thanks,
greg k-h
------------
Makefile | 2
arch/sparc64/mm/init.c | 30 ++++++++---
arch/x86/kernel/cpu/cyrix.c | 18 ------
arch/x86/kernel/cpu/mtrr/generic.c | 20 ++++++-
arch/x86/kvm/paging_tmpl.h | 2
crypto/authenc.c | 10 ++-
drivers/ata/sata_mv.c | 34 +++----------
drivers/char/random.c | 19 +++----
drivers/misc/eeepc-laptop.c | 2
drivers/net/atlx/atl1.c | 1
drivers/net/forcedeth.c | 4 -
drivers/net/r8169.c | 2
drivers/net/tg3.c | 53 ++++++++++++++------
drivers/net/tg3.h | 3 +
drivers/pci/search.c | 2
drivers/rtc/rtc-lib.c | 5 +
drivers/s390/block/dasd_eckd.h | 2
drivers/serial/8250.c | 16 ++++--
drivers/serial/8250.h | 1
drivers/usb/class/cdc-acm.c | 2
drivers/video/fb_defio.c | 19 +++++++
drivers/video/fbmem.c | 4 +
fs/binfmt_misc.c | 4 -
fs/bio.c | 48 ++++++++++++------
fs/cifs/file.c | 4 +
fs/cramfs/inode.c | 84 ++++++++++++++------------------
fs/nfsd/nfs4acl.c | 2 ...diff --git a/Makefile b/Makefile
index e537896..63c96c6 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 26
-EXTRAVERSION = .3
+EXTRAVERSION = .4
NAME = Rotary Wombat
# *DOCUMENTATION*
diff --git a/arch/sparc64/mm/init.c b/arch/sparc64/mm/init.c
index e289a98..387d3f6 100644
--- a/arch/sparc64/mm/init.c
+++ b/arch/sparc64/mm/init.c
@@ -842,6 +842,9 @@ static unsigned long nid_range(unsigned long start, unsigned long end,
start += PAGE_SIZE;
}
+ if (start > end)
+ start = end;
+
return start;
}
#else
@@ -1769,8 +1772,7 @@ void __init paging_init(void)
find_ramdisk(phys_base);
- if (cmdline_memory_size)
- lmb_enforce_memory_limit(phys_base + cmdline_memory_size);
+ lmb_enforce_memory_limit(cmdline_memory_size);
lmb_analyze();
lmb_dump_all();
@@ -2007,6 +2009,15 @@ void __init mem_init(void)
void free_initmem(void)
{
unsigned long addr, initend;
+ int do_free = 1;
+
+ /* If the physical memory maps were trimmed by kernel command
+ * line options, don't even try freeing this initmem stuff up.
+ * The kernel image could have been in the trimmed out region
+ * and if so the freeing below will free invalid page structs.
+ */
+ if (cmdline_memory_size)
+ do_free = 0;
/*
* The init section is aligned to 8k in vmlinux.lds. Page align for >8k pagesizes.
@@ -2021,13 +2032,16 @@ void free_initmem(void)
((unsigned long) __va(kern_base)) -
((unsigned long) KERNBASE));
memset((void *)addr, POISON_FREE_INITMEM, PAGE_SIZE);
- p = virt_to_page(page);
- ClearPageReserved(p);
- init_page_count(p);
- __free_page(p);
- num_physpages++;
- totalram_pages++;
+ if (do_free) {
+ p = virt_to_page(page);
+
+ ClearPageReserved(p);
+ init_page_count(p);
+ __free_page(p);
+ num_physpages++;
+ totalram_pages++;
+ }
}
}
diff --git a/arch/x86/kernel/cpu/cyrix.c b/arch/x86/kernel/cpu/cyrix.c
index 3fd7a67..e710a21 100644
--- ...That file is still used by ./net/ipv6/ip6mr.c:#include <linux/pim.h> so there are build errors... net/ipv6/ip6mr.c:48:23: error: linux/pim.h: No such file or directory net/ipv6/ip6mr.c:354: error: dereferencing pointer to incomplete type net/ipv6/ip6mr.c:358: error: dereferencing pointer to incomplete type net/ipv6/ip6mr.c:358: error: 'PIM_VERSION' undeclared (first use in this function) net/ipv6/ip6mr.c:358: error: (Each undeclared identifier is reported only once net/ipv6/ip6mr.c:358: error: for each function it appears in.) net/ipv6/ip6mr.c:358: error: 'PIM_REGISTER' undeclared (first use in this function) net/ipv6/ip6mr.c:359: error: dereferencing pointer to incomplete type net/ipv6/ip6mr.c:359: error: 'PIM_NULL_REGISTER' undeclared (first use in this function) net/ipv6/ip6mr.c:360: error: dereferencing pointer to incomplete type net/ipv6/ip6mr.c:366: error: dereferencing pointer to incomplete type net/ipv6/ip6mr.c:370: error: dereferencing pointer to incomplete type make[2]: *** [net/ipv6/ip6mr.o] Error 1 --- ~Randy Linux Plumbers Conference, 17-19 September 2008, Portland, Oregon USA http://linuxplumbersconf.org/ --
Crap, I messed up, David sent me the fixed patch and I forgot it. I'll go do a new release in a few hours... thanks, greg k-h --
Randy, does the patch below fix the problem? It's an interdiff between
what I applied and what David sent me as the correct patch.
thanks,
greg k-h
-------------
diff -u b/include/linux/mroute.h b/include/linux/mroute.h
--- b/include/linux/mroute.h
+++ b/include/linux/mroute.h
@@ -2,7 +2,10 @@
#define __LINUX_MROUTE_H
#include <linux/sockios.h>
+#include <linux/types.h>
+#ifdef __KERNEL__
#include <linux/in.h>
+#endif
/*
* Based on the MROUTING 3.5 defines primarily to keep
@@ -126,6 +129,7 @@
*/
#ifdef __KERNEL__
+#include <linux/pim.h>
#include <net/sock.h>
#ifdef CONFIG_IP_MROUTE
@@ -210,27 +214,6 @@
#define IGMPMSG_WHOLEPKT 3 /* For PIM Register processing */
#ifdef __KERNEL__
-
-#define PIM_V1_VERSION __constant_htonl(0x10000000)
-#define PIM_V1_REGISTER 1
-
-#define PIM_VERSION 2
-#define PIM_REGISTER 1
-
-#define PIM_NULL_REGISTER __constant_htonl(0x40000000)
-
-/* PIMv2 register message header layout (ietf-draft-idmr-pimvsm-v2-00.ps */
-
-struct pimreghdr
-{
- __u8 type;
- __u8 reserved;
- __be16 csum;
- __be32 flags;
-};
-
-extern int pim_rcv_v1(struct sk_buff *);
-
struct rtmsg;
extern int ipmr_get_route(struct sk_buff *skb, struct rtmsg *rtm, int nowait);
#endif
diff -u /dev/null b/include/linux/pim.h
--- /dev/null
+++ b/include/linux/pim.h
@@ -0,0 +1,27 @@
+#ifndef __LINUX_PIM_H
+#define __LINUX_PIM_H
+
+#include <asm/byteorder.h>
+
+/* Message types - V1 */
+#define PIM_V1_VERSION __constant_htonl(0x10000000)
+#define PIM_V1_REGISTER 1
+
+/* Message types - V2 */
+#define PIM_VERSION 2
+#define PIM_REGISTER 1
+
+#define PIM_NULL_REGISTER __constant_htonl(0x40000000)
+
+/* PIMv2 register message header layout (ietf-draft-idmr-pimvsm-v2-00.ps */
+struct pimreghdr
+{
+ __u8 type;
+ __u8 reserved;
+ __be16 csum;
+ __be32 flags;
+};
+
+struct sk_buff;
+extern int pim_rcv_v1(struct sk_buff *);
+#endif
only in patch2:
unchanged:
--- a/include/linux/mroute6.h
+++ ...--- ~Randy Linux Plumbers Conference, 17-19 September 2008, Portland, Oregon USA http://linuxplumbersconf.org/ --
From: Randy Dunlap <randy.dunlap@oracle.com> Sorry for creating such a confusing situation Greg :) --
| Greg KH | Og dreams of kernels |
| Jens Axboe | [PATCH 31/33] Fusion: sg chaining support |
| Arnd Bergmann | Re: finding your own dead "CONFIG_" variables |
| Mark Brown | [PATCH 2/2] Subject: natsemi: Allow users to disable workaround for DspCfg reset |
| Tony Breeds | [LGUEST] Look in object dir for .config |
git: | |
| Brian Downing | Re: Git in a Nutshell guide |
| John Benes | Re: master has some toys |
| Matthias Lederhofer | [PATCH 4/7] introduce GIT_WORK_TREE to specify the work tree |
| Alexander Sulfrian | [RFC/PA |
