since it just went out in a security release).
drivers/scsi/aacraid/sa.c | 9 ++++++++-
3 files changed, 10 insertions(+), 2 deletions(-)
---- a/drivers/scsi/aacraid/aacraid.h
-+++ b/drivers/scsi/aacraid/aacraid.h
+--- linux-2.6.21.4.orig/drivers/scsi/aacraid/aacraid.h
++++ linux-2.6.21.4/drivers/scsi/aacraid/aacraid.h
@@ -1840,6 +1840,7 @@ struct aac_driver_ident* aac_get_driver_
int aac_get_adapter_info(struct aac_dev* dev);
int aac_send_shutdown(struct aac_dev *dev);
extern int numacb;
extern int acbsize;
extern char aac_driver_version[];
---- a/drivers/scsi/aacraid/rx.c
-+++ b/drivers/scsi/aacraid/rx.c
+--- linux-2.6.21.4.orig/drivers/scsi/aacraid/rx.c
++++ linux-2.6.21.4/drivers/scsi/aacraid/rx.c
@@ -378,7 +378,7 @@ static int aac_rx_check_health(struct aa
*
* Will send a fib, returning 0 if successful.
{
struct aac_dev *dev = fib->dev;
struct aac_queue *q = &dev->queues->queue[AdapNormCmdQueue];
---- a/drivers/scsi/aacraid/sa.c
-+++ b/drivers/scsi/aacraid/sa.c
+--- linux-2.6.21.4.orig/drivers/scsi/aacraid/sa.c
++++ linux-2.6.21.4/drivers/scsi/aacraid/sa.c
@@ -5,7 +5,7 @@
* based on the old aacraid driver that is..
* Adaptec aacraid device driver for Linux.
include/acpi/acpi_numa.h | 7 ++-----
2 files changed, 6 insertions(+), 9 deletions(-)
---- a/drivers/acpi/numa.c
-+++ b/drivers/acpi/numa.c
+--- linux-2.6.21.4.orig/drivers/acpi/numa.c
++++ linux-2.6.21.4/drivers/acpi/numa.c
@@ -40,19 +40,19 @@ static nodemask_t nodes_found_map = NODE
#define NID_INVAL -1
{
if (node < 0)
return PXM_INVAL;
---- a/include/acpi/acpi_numa.h
-+++ b/include/acpi/acpi_numa.h
+--- linux-2.6.21.4.orig/include/acpi/acpi_numa.h
++++ linux-2.6.21.4/include/acpi/acpi_numa.h
@@ -11,11 +11,8 @@
#define MAX_PXM_DOMAINS (256) /* Old pxm spec is defined 8 bit */
#endif
drivers/ata/ahci.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
---- linux-2.6.21.3.orig/drivers/ata/ahci.c
-+++ linux-2.6.21.3/drivers/ata/ahci.c
+--- linux-2.6.21.4.orig/drivers/ata/ahci.c
++++ linux-2.6.21.4/drivers/ata/ahci.c
@@ -170,6 +170,7 @@ enum {
AHCI_FLAG_IGN_IRQ_IF_ERR = (1 << 25), /* ignore IRQ_IF_ERR */
AHCI_FLAG_HONOR_PI = (1 << 26), /* honor PORTS_IMPL */
sound/pci/hda/hda_intel.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
---- linux-2.6.21.3.orig/sound/pci/hda/hda_intel.c
-+++ linux-2.6.21.3/sound/pci/hda/hda_intel.c
+--- linux-2.6.21.4.orig/sound/pci/hda/hda_intel.c
++++ linux-2.6.21.4/sound/pci/hda/hda_intel.c
@@ -979,7 +979,7 @@ static unsigned int azx_max_codecs[] __d
static int __devinit azx_codec_create(struct azx *chip, const char *model)
{
sound/pci/hda/hda_intel.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
---- linux-2.6.21.3.orig/sound/pci/hda/hda_intel.c
-+++ linux-2.6.21.3/sound/pci/hda/hda_intel.c
+--- linux-2.6.21.4.orig/sound/pci/hda/hda_intel.c
++++ linux-2.6.21.4/sound/pci/hda/hda_intel.c
@@ -198,6 +198,7 @@ enum { SDI0, SDI1, SDI2, SDI3, SDO0, SDO
#define RIRB_INT_MASK 0x05
sound/usb/usbquirks.h | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
---- linux-2.6.21.3.orig/sound/usb/usbquirks.h
-+++ linux-2.6.21.3/sound/usb/usbquirks.h
+--- linux-2.6.21.4.orig/sound/usb/usbquirks.h
++++ linux-2.6.21.4/sound/usb/usbquirks.h
@@ -40,6 +40,29 @@
.bInterfaceClass = USB_CLASS_VENDOR_SPEC
sound/soc/codecs/wm8750.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
---- linux-2.6.21.3.orig/sound/soc/codecs/wm8750.c
-+++ linux-2.6.21.3/sound/soc/codecs/wm8750.c
+--- linux-2.6.21.4.orig/sound/soc/codecs/wm8750.c
++++ linux-2.6.21.4/sound/soc/codecs/wm8750.c
@@ -808,7 +808,7 @@ static int wm8750_init(struct snd_soc_de
codec->dai = &wm8750_dai;
codec->num_dai = 1;
net/bluetooth/hci_sock.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
---- linux-2.6.21.3.orig/net/bluetooth/hci_sock.c
-+++ linux-2.6.21.3/net/bluetooth/hci_sock.c
+--- linux-2.6.21.4.orig/net/bluetooth/hci_sock.c
++++ linux-2.6.21.4/net/bluetooth/hci_sock.c
@@ -656,7 +656,8 @@ static int hci_sock_dev_event(struct not
/* Detach sockets from device */
read_lock(&hci_sk_list.lock);
drivers/block/cciss.c | 45 ++++++++++++++++++++++++++++++---------------
1 file changed, 30 insertions(+), 15 deletions(-)
---- a/drivers/block/cciss.c
-+++ b/drivers/block/cciss.c
+--- linux-2.6.21.4.orig/drivers/block/cciss.c
++++ linux-2.6.21.4/drivers/block/cciss.c
@@ -3405,13 +3405,39 @@ static int __devinit cciss_init_one(stru
return -1;
}
drivers/char/cyclades.c | 1 +
1 file changed, 1 insertion(+)
---- linux-2.6.21.3.orig/drivers/char/cyclades.c
-+++ linux-2.6.21.3/drivers/char/cyclades.c
+--- linux-2.6.21.4.orig/drivers/char/cyclades.c
++++ linux-2.6.21.4/drivers/char/cyclades.c
@@ -1103,6 +1103,7 @@ static void cyy_intr_chip(struct cyclade
if (data & info->ignore_status_mask) {
drivers/net/e1000/e1000_main.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
---- linux-2.6.21.3.orig/drivers/net/e1000/e1000_main.c
-+++ linux-2.6.21.3/drivers/net/e1000/e1000_main.c
+--- linux-2.6.21.4.orig/drivers/net/e1000/e1000_main.c
++++ linux-2.6.21.4/drivers/net/e1000/e1000_main.c
@@ -1153,13 +1153,16 @@ e1000_probe(struct pci_dev *pdev,
!e1000_check_mng_mode(&adapter->hw))
e1000_get_hw_control(adapter);
net/unix/af_unix.c | 127 +++++++++++++++++++++++++++++++-------------------
2 files changed, 83 insertions(+), 52 deletions(-)
---- linux-2.6.21.3.orig/include/net/af_unix.h
-+++ linux-2.6.21.3/include/net/af_unix.h
+--- linux-2.6.21.4.orig/include/net/af_unix.h
++++ linux-2.6.21.4/include/net/af_unix.h
@@ -62,13 +62,11 @@ struct unix_skb_parms {
#define UNIXCREDS(skb) (&UNIXCB((skb)).creds)
#define UNIXSID(skb) (&UNIXCB((skb)).secid)
#ifdef __KERNEL__
/* The AF_UNIX socket */
---- linux-2.6.21.3.orig/net/unix/af_unix.c
-+++ linux-2.6.21.3/net/unix/af_unix.c
+--- linux-2.6.21.4.orig/net/unix/af_unix.c
++++ linux-2.6.21.4/net/unix/af_unix.c
@@ -175,11 +175,11 @@ static struct sock *unix_peer_get(struct
{
struct sock *peer;
fs/compat_ioctl.c | 33 +++++++++++++++++++++++++--------
1 file changed, 25 insertions(+), 8 deletions(-)
---- linux-2.6.21.3.orig/fs/compat_ioctl.c
-+++ linux-2.6.21.3/fs/compat_ioctl.c
+--- linux-2.6.21.4.orig/fs/compat_ioctl.c
++++ linux-2.6.21.4/fs/compat_ioctl.c
@@ -1178,6 +1178,7 @@ static int vt_check(struct file *file)
{
struct tty_struct *tty;
include/linux/log2.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
---- linux-2.6.21.3.orig/include/linux/log2.h
-+++ linux-2.6.21.3/include/linux/log2.h
+--- linux-2.6.21.4.orig/include/linux/log2.h
++++ linux-2.6.21.4/include/linux/log2.h
@@ -159,7 +159,7 @@ unsigned long __roundup_pow_of_two(unsig
#define roundup_pow_of_two(n) \
( \
fs/fuse/dir.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
---- linux-2.6.21.3.orig/fs/fuse/dir.c
-+++ linux-2.6.21.3/fs/fuse/dir.c
+--- linux-2.6.21.4.orig/fs/fuse/dir.c
++++ linux-2.6.21.4/fs/fuse/dir.c
@@ -485,7 +485,7 @@ static int fuse_mknod(struct inode *dir,
static int fuse_create(struct inode *dir, struct dentry *entry, int mode,
struct nameidata *nd)
drivers/ide/pci/hpt366.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
---- linux-2.6.21.3.orig/drivers/ide/pci/hpt366.c
-+++ linux-2.6.21.3/drivers/ide/pci/hpt366.c
+--- linux-2.6.21.4.orig/drivers/ide/pci/hpt366.c
++++ linux-2.6.21.4/drivers/ide/pci/hpt366.c
@@ -1,5 +1,5 @@
/*
- * linux/drivers/ide/pci/hpt366.c Version 1.02 Apr 18, 2007
arch/i386/oprofile/nmi_int.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
---- linux-2.6.21.3.orig/arch/i386/oprofile/nmi_int.c
-+++ linux-2.6.21.3/arch/i386/oprofile/nmi_int.c
+--- linux-2.6.21.4.orig/arch/i386/oprofile/nmi_int.c
++++ linux-2.6.21.4/arch/i386/oprofile/nmi_int.c
@@ -131,7 +131,6 @@ static void nmi_save_registers(void * du
{
int cpu = smp_processor_id();
arch/i386/kernel/hpet.c | 24 +++++++++++++++++++++++-
1 file changed, 23 insertions(+), 1 deletion(-)
---- linux-2.6.21.3.orig/arch/i386/kernel/hpet.c
-+++ linux-2.6.21.3/arch/i386/kernel/hpet.c
+--- linux-2.6.21.4.orig/arch/i386/kernel/hpet.c
++++ linux-2.6.21.4/arch/i386/kernel/hpet.c
@@ -226,7 +226,8 @@ int __init hpet_enable(void)
{
unsigned long id;
net/ipv4/icmp.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
---- linux-2.6.21.3.orig/net/ipv4/icmp.c
-+++ linux-2.6.21.3/net/ipv4/icmp.c
+--- linux-2.6.21.4.orig/net/ipv4/icmp.c
++++ linux-2.6.21.4/net/ipv4/icmp.c
@@ -513,9 +513,15 @@ void icmp_send(struct sk_buff *skb_in, i
saddr = iph->daddr;
drivers/ieee1394/eth1394.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
---- linux-2.6.21.3.orig/drivers/ieee1394/eth1394.c
-+++ linux-2.6.21.3/drivers/ieee1394/eth1394.c
+--- linux-2.6.21.4.orig/drivers/ieee1394/eth1394.c
++++ linux-2.6.21.4/drivers/ieee1394/eth1394.c
@@ -584,10 +584,9 @@ static void ether1394_add_host (struct h
}
kernel/time/tick-broadcast.c | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)
---- linux-2.6.21.3.orig/kernel/time/tick-broadcast.c
-+++ linux-2.6.21.3/kernel/time/tick-broadcast.c
+--- linux-2.6.21.4.orig/kernel/time/tick-broadcast.c
++++ linux-2.6.21.4/kernel/time/tick-broadcast.c
@@ -243,11 +243,18 @@ void tick_broadcast_on_off(unsigned long
{
int cpu = get_cpu();
drivers/input/serio/i8042.c | 35 +++++++++++++++++++++++++++++------
1 file changed, 29 insertions(+), 6 deletions(-)
---- linux-2.6.21.3.orig/drivers/input/serio/i8042.c
-+++ linux-2.6.21.3/drivers/input/serio/i8042.c
+--- linux-2.6.21.4.orig/drivers/input/serio/i8042.c
++++ linux-2.6.21.4/drivers/input/serio/i8042.c
@@ -526,6 +526,33 @@ static irqreturn_t __devinit i8042_aux_t
return IRQ_HANDLED;
}
net/ipv6/xfrm6_mode_tunnel.c | 1 +
4 files changed, 7 insertions(+), 8 deletions(-)
---- linux-2.6.21.3.orig/net/ipv4/xfrm4_input.c
-+++ linux-2.6.21.3/net/ipv4/xfrm4_input.c
+--- linux-2.6.21.4.orig/net/ipv4/xfrm4_input.c
++++ linux-2.6.21.4/net/ipv4/xfrm4_input.c
@@ -138,10 +138,8 @@ int xfrm4_rcv_encap(struct sk_buff *skb,
nf_reset(skb);
netif_rx(skb);
return 0;
} else {
---- linux-2.6.21.3.orig/net/ipv4/xfrm4_mode_tunnel.c
-+++ linux-2.6.21.3/net/ipv4/xfrm4_mode_tunnel.c
+--- linux-2.6.21.4.orig/net/ipv4/xfrm4_mode_tunnel.c
++++ linux-2.6.21.4/net/ipv4/xfrm4_mode_tunnel.c
@@ -84,6 +84,8 @@ static int xfrm4_tunnel_output(struct xf
top_iph->saddr = x->props.saddr.a4;
top_iph->daddr = x->id.daddr.a4;
memset(&(IPCB(skb)->opt), 0, sizeof(struct ip_options));
return 0;
}
---- linux-2.6.21.3.orig/net/ipv6/xfrm6_input.c
-+++ linux-2.6.21.3/net/ipv6/xfrm6_input.c
+--- linux-2.6.21.4.orig/net/ipv6/xfrm6_input.c
++++ linux-2.6.21.4/net/ipv6/xfrm6_input.c
@@ -104,10 +104,8 @@ int xfrm6_rcv_spi(struct sk_buff *skb, _
nf_reset(skb);
netif_rx(skb);
return -1;
} else {
---- linux-2.6.21.3.orig/net/ipv6/xfrm6_mode_tunnel.c
-+++ linux-2.6.21.3/net/ipv6/xfrm6_mode_tunnel.c
+--- linux-2.6.21.4.orig/net/ipv6/xfrm6_mode_tunnel.c
++++ linux-2.6.21.4/net/ipv6/xfrm6_mode_tunnel.c
@@ -80,6 +80,7 @@ static int xfrm6_tunnel_output(struct xf
top_iph->hop_limit = dst_metric(dst->child, RTAX_HOPLIMIT);
ipv6_addr_copy(&top_iph->saddr, (struct in6_addr *)&x->props.saddr);
net/ipv4/Kconfig | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
---- linux-2.6.21.3.orig/net/ipv4/Kconfig
-+++ linux-2.6.21.3/net/ipv4/Kconfig
+--- linux-2.6.21.4.orig/net/ipv4/Kconfig
++++ linux-2.6.21.4/net/ipv4/Kconfig
@@ -43,11 +43,11 @@ config IP_ADVANCED_ROUTER
asymmetric routing (packets from you to a host take a different path
than packets from that host to you) or if you operate a non-routing
net/ipv6/ip6_fib.c | 8 --------
1 file changed, 8 deletions(-)
---- linux-2.6.21.3.orig/net/ipv6/ip6_fib.c
-+++ linux-2.6.21.3/net/ipv6/ip6_fib.c
+--- linux-2.6.21.4.orig/net/ipv6/ip6_fib.c
++++ linux-2.6.21.4/net/ipv6/ip6_fib.c
@@ -619,14 +619,6 @@ static int fib6_add_rt2node(struct fib6_
ins = &fn->leaf;
include/linux/workqueue.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
---- linux-2.6.21.3.orig/include/linux/workqueue.h
-+++ linux-2.6.21.3/include/linux/workqueue.h
+--- linux-2.6.21.4.orig/include/linux/workqueue.h
++++ linux-2.6.21.4/include/linux/workqueue.h
@@ -162,7 +162,7 @@ extern struct workqueue_struct *__create
int singlethread,
int freezeable);
1 file changed, 1 insertion(+), 2 deletions(-)
diff .prev/drivers/md/raid0.c ./drivers/md/raid0.c
---- linux-2.6.21.3.orig/drivers/md/raid0.c
-+++ linux-2.6.21.3/drivers/md/raid0.c
+--- linux-2.6.21.4.orig/drivers/md/raid0.c
++++ linux-2.6.21.4/drivers/md/raid0.c
@@ -415,7 +415,7 @@ static int raid0_make_request (request_q
raid0_conf_t *conf = mddev_to_conf(mddev);
struct strip_zone *zone;
2 files changed, 13 insertions(+), 5 deletions(-)
diff .prev/drivers/md/bitmap.c ./drivers/md/bitmap.c
---- linux-2.6.21.3.orig/drivers/md/bitmap.c
-+++ linux-2.6.21.3/drivers/md/bitmap.c
+--- linux-2.6.21.4.orig/drivers/md/bitmap.c
++++ linux-2.6.21.4/drivers/md/bitmap.c
@@ -255,19 +255,25 @@ static struct page *read_sb_page(mddev_t
}
}
paddr = kmap_atomic(page, KM_USER0);
if (bitmap->flags & BITMAP_HOSTENDIAN)
---- linux-2.6.21.3.orig/include/linux/raid/bitmap.h
-+++ linux-2.6.21.3/include/linux/raid/bitmap.h
+--- linux-2.6.21.4.orig/include/linux/raid/bitmap.h
++++ linux-2.6.21.4/include/linux/raid/bitmap.h
@@ -232,6 +232,7 @@ struct bitmap {
struct page **filemap; /* list of cache pages for the file */
unsigned long *filemap_attr; /* attributes associated w/ filemap pages */
drivers/video/neofb.c | 30 ++++++++++++++++--------------
1 file changed, 16 insertions(+), 14 deletions(-)
---- linux-2.6.21.3.orig/drivers/video/neofb.c
-+++ linux-2.6.21.3/drivers/video/neofb.c
+--- linux-2.6.21.4.orig/drivers/video/neofb.c
++++ linux-2.6.21.4/drivers/video/neofb.c
@@ -1285,34 +1285,36 @@ static int neofb_setcolreg(u_int regno,
if (regno >= fb->cmap.len || regno > 255)
return -EINVAL;
include/linux/mii.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
---- linux-2.6.21.3.orig/include/linux/mii.h
-+++ linux-2.6.21.3/include/linux/mii.h
+--- linux-2.6.21.4.orig/include/linux/mii.h
++++ linux-2.6.21.4/include/linux/mii.h
@@ -56,8 +56,8 @@
#define BMSR_ANEGCOMPLETE 0x0020 /* Auto-negotiation complete */
#define BMSR_RESV 0x00c0 /* Unused... */
net/core/net-sysfs.c | 8 +++++++-
2 files changed, 13 insertions(+), 5 deletions(-)
---- linux-2.6.21.3.orig/net/core/dev.c
-+++ linux-2.6.21.3/net/core/dev.c
+--- linux-2.6.21.4.orig/net/core/dev.c
++++ linux-2.6.21.4/net/core/dev.c
@@ -3135,7 +3135,6 @@ void netdev_run_todo(void)
continue;
}
/* Finish processing unregister after unlock */
net_set_todo(dev);
---- linux-2.6.21.3.orig/net/core/net-sysfs.c
-+++ linux-2.6.21.3/net/core/net-sysfs.c
+--- linux-2.6.21.4.orig/net/core/net-sysfs.c
++++ linux-2.6.21.4/net/core/net-sysfs.c
@@ -451,9 +451,15 @@ static struct class net_class = {
#endif
};
net/core/utils.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
---- linux-2.6.21.3.orig/net/core/utils.c
-+++ linux-2.6.21.3/net/core/utils.c
+--- linux-2.6.21.4.orig/net/core/utils.c
++++ linux-2.6.21.4/net/core/utils.c
@@ -137,16 +137,16 @@ int in4_pton(const char *src, int srclen
while(1) {
int c;
net/core/sock.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
---- linux-2.6.21.3.orig/net/core/sock.c
-+++ linux-2.6.21.3/net/core/sock.c
+--- linux-2.6.21.4.orig/net/core/sock.c
++++ linux-2.6.21.4/net/core/sock.c
@@ -204,7 +204,19 @@ static int sock_set_timeout(long *timeo_
return -EINVAL;
if (copy_from_user(&tv, optval, sizeof(tv)))
+++ /dev/null
-From stable-bounces@linux.kernel.org Tue Jun 5 05:17:17 2007
-From: Patrick McHardy <kaber@trash.net>
-Date: Tue, 05 Jun 2007 14:14:22 +0200
-Subject: NETFILTER: {ip, nf}_conntrack_sctp: fix remotely triggerable NULL ptr dereference (CVE-2007-2876)
-To: "David S. Miller" <davem@davemloft.net>
-Cc: security@kernel.org, Adrian Bunk <bunk@stusta.de>, Kiran Kumar Immidi <immidi_kiran@yahoo.com>, stable@kernel.org, Vilmos Nebehaj <vilmos.nebehaj@ramsys.hu>
-Message-ID: <4665539E.9040005@trash.net>
-
-From: Patrick McHardy <kaber@trash.net>
-
-When creating a new connection by sending an unknown chunk type, we
-don't transition to a valid state, causing a NULL pointer dereference in
-sctp_packet when accessing sctp_timeouts[SCTP_CONNTRACK_NONE].
-
-Fix by don't creating new conntrack entry if initial state is invalid.
-
-Noticed by Vilmos Nebehaj <vilmos.nebehaj@ramsys.hu>
-
-CC: Kiran Kumar Immidi <immidi_kiran@yahoo.com>
-Cc: David Miller <davem@davemloft.net>
-Signed-off-by: Patrick McHardy <kaber@trash.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- net/ipv4/netfilter/ip_conntrack_proto_sctp.c | 3 ++-
- net/netfilter/nf_conntrack_proto_sctp.c | 3 ++-
- 2 files changed, 4 insertions(+), 2 deletions(-)
-
---- a/net/ipv4/netfilter/ip_conntrack_proto_sctp.c
-+++ b/net/ipv4/netfilter/ip_conntrack_proto_sctp.c
-@@ -460,7 +460,8 @@ static int sctp_new(struct ip_conntrack
- SCTP_CONNTRACK_NONE, sch->type);
-
- /* Invalid: delete conntrack */
-- if (newconntrack == SCTP_CONNTRACK_MAX) {
-+ if (newconntrack == SCTP_CONNTRACK_NONE ||
-+ newconntrack == SCTP_CONNTRACK_MAX) {
- DEBUGP("ip_conntrack_sctp: invalid new deleting.\n");
- return 0;
- }
---- a/net/netfilter/nf_conntrack_proto_sctp.c
-+++ b/net/netfilter/nf_conntrack_proto_sctp.c
-@@ -469,7 +469,8 @@ static int sctp_new(struct nf_conn *conn
- SCTP_CONNTRACK_NONE, sch->type);
-
- /* Invalid: delete conntrack */
-- if (newconntrack == SCTP_CONNTRACK_MAX) {
-+ if (newconntrack == SCTP_CONNTRACK_NONE ||
-+ newconntrack == SCTP_CONNTRACK_MAX) {
- DEBUGP("nf_conntrack_sctp: invalid new deleting.\n");
- return 0;
- }
kernel/time/tick-sched.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
---- linux-2.6.21.3.orig/kernel/time/tick-sched.c
-+++ linux-2.6.21.3/kernel/time/tick-sched.c
+--- linux-2.6.21.4.orig/kernel/time/tick-sched.c
++++ linux-2.6.21.4/kernel/time/tick-sched.c
@@ -167,9 +167,15 @@ void tick_nohz_stop_sched_tick(void)
goto end;
fs/ntfs/inode.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
---- linux-2.6.21.3.orig/fs/ntfs/inode.c
-+++ linux-2.6.21.3/fs/ntfs/inode.c
+--- linux-2.6.21.4.orig/fs/ntfs/inode.c
++++ linux-2.6.21.4/fs/ntfs/inode.c
@@ -141,7 +141,7 @@ static int ntfs_init_locked_inode(struct
if (!ni->name)
return -ENOMEM;
include/linux/pci_ids.h | 1 +
2 files changed, 2 insertions(+)
---- linux-2.6.21.3.orig/drivers/pci/quirks.c
-+++ linux-2.6.21.3/drivers/pci/quirks.c
+--- linux-2.6.21.4.orig/drivers/pci/quirks.c
++++ linux-2.6.21.4/drivers/pci/quirks.c
@@ -1751,6 +1751,7 @@ static void __init quirk_disable_all_msi
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_GCNB_LE, quirk_disable_all_msi);
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS400_200, quirk_disable_all_msi);
/* Disable MSI on chipsets that are known to not support it */
static void __devinit quirk_disable_msi(struct pci_dev *dev)
---- linux-2.6.21.3.orig/include/linux/pci_ids.h
-+++ linux-2.6.21.3/include/linux/pci_ids.h
+--- linux-2.6.21.4.orig/include/linux/pci_ids.h
++++ linux-2.6.21.4/include/linux/pci_ids.h
@@ -1287,6 +1287,7 @@
#define PCI_DEVICE_ID_VIA_P4M800CE 0x0314
#define PCI_DEVICE_ID_VIA_P4M890 0x0327
include/linux/pci_ids.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
---- linux-2.6.21.3.orig/include/linux/pci_ids.h
-+++ linux-2.6.21.3/include/linux/pci_ids.h
+--- linux-2.6.21.4.orig/include/linux/pci_ids.h
++++ linux-2.6.21.4/include/linux/pci_ids.h
@@ -2260,11 +2260,11 @@
#define PCI_DEVICE_ID_INTEL_ICH8_5 0x283e
#define PCI_DEVICE_ID_INTEL_ICH8_6 0x2850
kernel/sched.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
---- linux-2.6.21.3.orig/kernel/sched.c
-+++ linux-2.6.21.3/kernel/sched.c
+--- linux-2.6.21.4.orig/kernel/sched.c
++++ linux-2.6.21.4/kernel/sched.c
@@ -4545,9 +4545,7 @@ int __sched cond_resched_softirq(void)
BUG_ON(!in_softirq());
aacraid-correct-sa-platform-support.patch
cciss-fix-pci_driver.shutdown-while-device-is-still-active.patch
work-around-dell-e520-bios-reboot-bug.patch
-netfilter-ip-nf-_conntrack_sctp-fix-remotely-triggerable-null-ptr-dereference.patch
fix-af_unix-oops.patch
icmp-fix-icmp_errors_use_inbound_ifaddr-sysctl.patch
net-parse-ip-port-strings-correctly-in-in4_pton.patch
drivers/serial/suncore.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
---- linux-2.6.21.3.orig/drivers/serial/suncore.c
-+++ linux-2.6.21.3/drivers/serial/suncore.c
+--- linux-2.6.21.4.orig/drivers/serial/suncore.c
++++ linux-2.6.21.4/drivers/serial/suncore.c
@@ -30,9 +30,9 @@ void
sunserial_console_termios(struct console *con)
{
arch/sparc64/kernel/pci_sun4v.c | 36 ++++++++++--------------------------
1 file changed, 10 insertions(+), 26 deletions(-)
---- linux-2.6.21.3.orig/arch/sparc64/kernel/pci_sun4v.c
-+++ linux-2.6.21.3/arch/sparc64/kernel/pci_sun4v.c
+--- linux-2.6.21.4.orig/arch/sparc64/kernel/pci_sun4v.c
++++ linux-2.6.21.4/arch/sparc64/kernel/pci_sun4v.c
@@ -12,6 +12,7 @@
#include <linux/percpu.h>
#include <linux/irq.h>
arch/sparc64/kernel/itlb_miss.S | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
---- linux-2.6.21.3.orig/arch/sparc64/kernel/itlb_miss.S
-+++ linux-2.6.21.3/arch/sparc64/kernel/itlb_miss.S
+--- linux-2.6.21.4.orig/arch/sparc64/kernel/itlb_miss.S
++++ linux-2.6.21.4/arch/sparc64/kernel/itlb_miss.S
@@ -11,12 +11,12 @@
/* ITLB ** ICACHE line 2: TSB compare and TLB load */
bne,pn %xcc, tsb_miss_itlb ! Miss
include/asm-sparc64/tsb.h | 2 +-
3 files changed, 32 insertions(+), 8 deletions(-)
---- linux-2.6.21.3.orig/arch/sparc64/kernel/head.S
-+++ linux-2.6.21.3/arch/sparc64/kernel/head.S
+--- linux-2.6.21.4.orig/arch/sparc64/kernel/head.S
++++ linux-2.6.21.4/arch/sparc64/kernel/head.S
@@ -653,33 +653,54 @@ setup_tba:
restore
sparc64_boot_end:
#include "systbls.S"
.data
---- linux-2.6.21.3.orig/arch/sparc64/mm/init.c
-+++ linux-2.6.21.3/arch/sparc64/mm/init.c
+--- linux-2.6.21.4.orig/arch/sparc64/mm/init.c
++++ linux-2.6.21.4/arch/sparc64/mm/init.c
@@ -60,8 +60,11 @@ unsigned long kern_linear_pte_xor[2] __r
unsigned long kpte_linear_bitmap[KPTE_BITMAP_BYTES / sizeof(unsigned long)];
#endif
#define MAX_BANKS 32
---- linux-2.6.21.3.orig/include/asm-sparc64/tsb.h
-+++ linux-2.6.21.3/include/asm-sparc64/tsb.h
+--- linux-2.6.21.4.orig/include/asm-sparc64/tsb.h
++++ linux-2.6.21.4/include/asm-sparc64/tsb.h
@@ -271,7 +271,7 @@ extern struct tsb_phys_patch_entry __tsb
#define KERN_TSB4M_LOOKUP_TL1(TAG, REG1, REG2, REG3, REG4, OK_LABEL) \
sethi %hi(swapper_4m_tsb), REG1; \
net/ipv4/tcp.c | 3 ---
2 files changed, 1 insertion(+), 6 deletions(-)
---- linux-2.6.21.3.orig/net/ipv4/inet_connection_sock.c
-+++ linux-2.6.21.3/net/ipv4/inet_connection_sock.c
+--- linux-2.6.21.4.orig/net/ipv4/inet_connection_sock.c
++++ linux-2.6.21.4/net/ipv4/inet_connection_sock.c
@@ -31,10 +31,8 @@ EXPORT_SYMBOL(inet_csk_timer_bug_msg);
/*
int inet_csk_bind_conflict(const struct sock *sk,
const struct inet_bind_bucket *tb)
---- linux-2.6.21.3.orig/net/ipv4/tcp.c
-+++ linux-2.6.21.3/net/ipv4/tcp.c
+--- linux-2.6.21.4.orig/net/ipv4/tcp.c
++++ linux-2.6.21.4/net/ipv4/tcp.c
@@ -2445,13 +2445,10 @@ void __init tcp_init(void)
order++)
;
drivers/net/tg3.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
---- linux-2.6.21.3.orig/drivers/net/tg3.c
-+++ linux-2.6.21.3/drivers/net/tg3.c
+--- linux-2.6.21.4.orig/drivers/net/tg3.c
++++ linux-2.6.21.4/drivers/net/tg3.c
@@ -64,8 +64,8 @@
#define DRV_MODULE_NAME "tg3"
kernel/time/timer_stats.c | 37 +++++++++++++++++++++----------------
1 file changed, 21 insertions(+), 16 deletions(-)
---- linux-2.6.21.3.orig/kernel/time/timer_stats.c
-+++ linux-2.6.21.3/kernel/time/timer_stats.c
+--- linux-2.6.21.4.orig/kernel/time/timer_stats.c
++++ linux-2.6.21.4/kernel/time/timer_stats.c
@@ -117,21 +117,6 @@ static struct entry entries[MAX_ENTRIES]
static atomic_t overflow_count;
lib/Kconfig.debug | 5 ++++-
3 files changed, 14 insertions(+), 5 deletions(-)
---- linux-2.6.21.3.orig/Documentation/hrtimer/timer_stats.txt
-+++ linux-2.6.21.3/Documentation/hrtimer/timer_stats.txt
+--- linux-2.6.21.4.orig/Documentation/hrtimer/timer_stats.txt
++++ linux-2.6.21.4/Documentation/hrtimer/timer_stats.txt
@@ -2,9 +2,10 @@ timer_stats - timer usage statistics
------------------------------------
timer_stats should be used by kernel and userspace developers to verify that
their code does not make unduly use of timers. This helps to avoid unnecessary
---- linux-2.6.21.3.orig/kernel/time/timer_stats.c
-+++ linux-2.6.21.3/kernel/time/timer_stats.c
+--- linux-2.6.21.4.orig/kernel/time/timer_stats.c
++++ linux-2.6.21.4/kernel/time/timer_stats.c
@@ -236,10 +236,15 @@ void timer_stats_update_stats(void *time
/*
* It doesnt matter which lock we take:
input.timer = timer;
input.start_func = startf;
input.expire_func = timerf;
---- linux-2.6.21.3.orig/lib/Kconfig.debug
-+++ linux-2.6.21.3/lib/Kconfig.debug
+--- linux-2.6.21.4.orig/lib/Kconfig.debug
++++ linux-2.6.21.4/lib/Kconfig.debug
@@ -143,7 +143,10 @@ config TIMER_STATS
reprogrammed. The statistics can be read from /proc/timer_stats.
The statistics collection is started by writing 1 to /proc/timer_stats,
drivers/char/tty_io.c | 3 ++-
2 files changed, 3 insertions(+), 1 deletion(-)
---- linux-2.6.21.3.orig/drivers/char/n_tty.c
-+++ linux-2.6.21.3/drivers/char/n_tty.c
+--- linux-2.6.21.4.orig/drivers/char/n_tty.c
++++ linux-2.6.21.4/drivers/char/n_tty.c
@@ -1191,6 +1191,7 @@ static int job_control(struct tty_struct
is_current_pgrp_orphaned())
return -EIO;
return -ERESTARTSYS;
}
}
---- linux-2.6.21.3.orig/drivers/char/tty_io.c
-+++ linux-2.6.21.3/drivers/char/tty_io.c
+--- linux-2.6.21.4.orig/drivers/char/tty_io.c
++++ linux-2.6.21.4/drivers/char/tty_io.c
@@ -1121,7 +1121,8 @@ int tty_check_change(struct tty_struct *
return 0;
if (is_current_pgrp_orphaned())
arch/um/os-Linux/start_up.c | 24 ++++++++++++++++--------
1 file changed, 16 insertions(+), 8 deletions(-)
---- linux-2.6.21.3.orig/arch/um/os-Linux/start_up.c
-+++ linux-2.6.21.3/arch/um/os-Linux/start_up.c
+--- linux-2.6.21.4.orig/arch/um/os-Linux/start_up.c
++++ linux-2.6.21.4/arch/um/os-Linux/start_up.c
@@ -144,9 +144,7 @@ static int stop_ptraced_child(int pid, v
int exit_with = WEXITSTATUS(status);
if (exit_with == 2)
drivers/usb/core/message.c | 9 ++-------
1 file changed, 2 insertions(+), 7 deletions(-)
---- a/drivers/usb/core/message.c
-+++ b/drivers/usb/core/message.c
+--- linux-2.6.21.4.orig/drivers/usb/core/message.c
++++ linux-2.6.21.4/drivers/usb/core/message.c
@@ -221,15 +221,10 @@ int usb_bulk_msg(struct usb_device *usb_
if ((ep->desc.bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) ==
drivers/media/dvb/ttpci/budget-ci.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
---- linux-2.6.21.3.orig/drivers/media/dvb/ttpci/budget-ci.c
-+++ linux-2.6.21.3/drivers/media/dvb/ttpci/budget-ci.c
+--- linux-2.6.21.4.orig/drivers/media/dvb/ttpci/budget-ci.c
++++ linux-2.6.21.4/drivers/media/dvb/ttpci/budget-ci.c
@@ -926,7 +926,7 @@ static int dvbc_philips_tdm1316l_tuner_s
band = 1;
} else if (tuner_frequency < 200000000) {
arch/i386/kernel/reboot.c | 8 ++++++++
1 file changed, 8 insertions(+)
---- a/arch/i386/kernel/reboot.c
-+++ b/arch/i386/kernel/reboot.c
+--- linux-2.6.21.4.orig/arch/i386/kernel/reboot.c
++++ linux-2.6.21.4/arch/i386/kernel/reboot.c
@@ -88,6 +88,14 @@ static int __init set_bios_reboot(struct
}
arch/i386/oprofile/nmi_int.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
---- linux-2.6.21.3.orig/arch/i386/oprofile/nmi_int.c
-+++ linux-2.6.21.3/arch/i386/oprofile/nmi_int.c
+--- linux-2.6.21.4.orig/arch/i386/oprofile/nmi_int.c
++++ linux-2.6.21.4/arch/i386/oprofile/nmi_int.c
@@ -154,7 +154,7 @@ static int allocate_msrs(void)
size_t counters_size = sizeof(struct op_msr) * model->num_counters;
mm/sparse.c | 11 +++++++++++
3 files changed, 18 insertions(+)
---- linux-2.6.21.3.orig/arch/x86_64/mm/init.c
-+++ linux-2.6.21.3/arch/x86_64/mm/init.c
+--- linux-2.6.21.4.orig/arch/x86_64/mm/init.c
++++ linux-2.6.21.4/arch/x86_64/mm/init.c
@@ -776,3 +776,9 @@ int in_gate_area_no_task(unsigned long a
{
return (addr >= VSYSCALL_START) && (addr < VSYSCALL_END);
+ return __alloc_bootmem_core(pgdat->bdata, size,
+ SMP_CACHE_BYTES, (4UL*1024*1024*1024), 0);
+}
---- linux-2.6.21.3.orig/include/linux/bootmem.h
-+++ linux-2.6.21.3/include/linux/bootmem.h
+--- linux-2.6.21.4.orig/include/linux/bootmem.h
++++ linux-2.6.21.4/include/linux/bootmem.h
@@ -59,6 +59,7 @@ extern void *__alloc_bootmem_core(struct
unsigned long align,
unsigned long goal,
#ifndef CONFIG_HAVE_ARCH_BOOTMEM_NODE
extern void reserve_bootmem(unsigned long addr, unsigned long size);
---- linux-2.6.21.3.orig/mm/sparse.c
-+++ linux-2.6.21.3/mm/sparse.c
+--- linux-2.6.21.4.orig/mm/sparse.c
++++ linux-2.6.21.4/mm/sparse.c
@@ -209,6 +209,12 @@ static int sparse_init_one_section(struc
return 1;
}
drivers/net/wireless/zd1211rw/zd_rf_al2230.c | 89 ++++++++++++++++++++++-----
4 files changed, 78 insertions(+), 20 deletions(-)
---- linux-2.6.21.3.orig/drivers/net/wireless/zd1211rw/zd_chip.c
-+++ linux-2.6.21.3/drivers/net/wireless/zd1211rw/zd_chip.c
+--- linux-2.6.21.4.orig/drivers/net/wireless/zd1211rw/zd_chip.c
++++ linux-2.6.21.4/drivers/net/wireless/zd1211rw/zd_chip.c
@@ -67,11 +67,12 @@ static int scnprint_id(struct zd_chip *c
i += scnprint_mac_oui(chip->e2p_mac, buffer+i, size-i);
i += scnprintf(buffer+i, size-i, " ");
return i;
}
---- linux-2.6.21.3.orig/drivers/net/wireless/zd1211rw/zd_rf.c
-+++ linux-2.6.21.3/drivers/net/wireless/zd1211rw/zd_rf.c
+--- linux-2.6.21.4.orig/drivers/net/wireless/zd1211rw/zd_rf.c
++++ linux-2.6.21.4/drivers/net/wireless/zd1211rw/zd_rf.c
@@ -34,7 +34,7 @@ static const char *rfs[] = {
[AL2210_RF] = "AL2210_RF",
[MAXIM_NEW_RF] = "MAXIM_NEW_RF",
[RALINK_RF] = "RALINK_RF",
[INTERSIL_RF] = "INTERSIL_RF",
[RF2959_RF] = "RF2959_RF",
---- linux-2.6.21.3.orig/drivers/net/wireless/zd1211rw/zd_rf.h
-+++ linux-2.6.21.3/drivers/net/wireless/zd1211rw/zd_rf.h
+--- linux-2.6.21.4.orig/drivers/net/wireless/zd1211rw/zd_rf.h
++++ linux-2.6.21.4/drivers/net/wireless/zd1211rw/zd_rf.h
@@ -26,7 +26,7 @@
#define AL2210_RF 0x7
#define MAXIM_NEW_RF 0x8
#define RALINK_RF 0xb
#define INTERSIL_RF 0xc
#define RF2959_RF 0xd
---- linux-2.6.21.3.orig/drivers/net/wireless/zd1211rw/zd_rf_al2230.c
-+++ linux-2.6.21.3/drivers/net/wireless/zd1211rw/zd_rf_al2230.c
+--- linux-2.6.21.4.orig/drivers/net/wireless/zd1211rw/zd_rf_al2230.c
++++ linux-2.6.21.4/drivers/net/wireless/zd1211rw/zd_rf_al2230.c
@@ -59,6 +59,18 @@ static const struct zd_ioreq16 zd1211b_i
{ CR240, 0x57 }, { CR9, 0xe0 },
};