summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Kinard <kumba@gentoo.org>2004-07-01 23:39:04 +0000
committerJoshua Kinard <kumba@gentoo.org>2004-07-01 23:39:04 +0000
commitc0e9c194c6e0f522b901665f04a55f7fd46a4d27 (patch)
treeb4dc11415d004491b4ee26e64e6958fd74bf7fa8 /sys-kernel
parentvirtual/glibc -> virtual/libc (Manifest recommit) (diff)
downloadgentoo-2-c0e9c194c6e0f522b901665f04a55f7fd46a4d27.tar.gz
gentoo-2-c0e9c194c6e0f522b901665f04a55f7fd46a4d27.tar.bz2
gentoo-2-c0e9c194c6e0f522b901665f04a55f7fd46a4d27.zip
Security updates; Fixes for sparse/e1000 bugs for 2.4 and the packet of death for 2.6.
Diffstat (limited to 'sys-kernel')
-rw-r--r--sys-kernel/mips-sources/ChangeLog17
-rw-r--r--sys-kernel/mips-sources/Manifest62
-rw-r--r--sys-kernel/mips-sources/files/CAN-2004-0495-2.4-sparse.patch655
-rw-r--r--sys-kernel/mips-sources/files/CAN-2004-0535-2.4-e1000.patch12
-rw-r--r--sys-kernel/mips-sources/files/CAN-2004-0626-death_packet.patch11
-rw-r--r--sys-kernel/mips-sources/files/digest-mips-sources-2.4.25-r4 (renamed from sys-kernel/mips-sources/files/digest-mips-sources-2.4.25-r3)0
-rw-r--r--sys-kernel/mips-sources/files/digest-mips-sources-2.4.26-r3 (renamed from sys-kernel/mips-sources/files/digest-mips-sources-2.4.26-r2)0
-rw-r--r--sys-kernel/mips-sources/files/digest-mips-sources-2.6.4-r4 (renamed from sys-kernel/mips-sources/files/digest-mips-sources-2.6.4-r3)0
-rw-r--r--sys-kernel/mips-sources/files/digest-mips-sources-2.6.5-r3 (renamed from sys-kernel/mips-sources/files/digest-mips-sources-2.6.5-r2)0
-rw-r--r--sys-kernel/mips-sources/files/digest-mips-sources-2.6.64
-rw-r--r--sys-kernel/mips-sources/files/digest-mips-sources-2.6.6-r2 (renamed from sys-kernel/mips-sources/files/digest-mips-sources-2.6.6-r1)0
-rw-r--r--sys-kernel/mips-sources/files/digest-mips-sources-2.6.7-r1 (renamed from sys-kernel/mips-sources/files/digest-mips-sources-2.6.7)0
-rw-r--r--sys-kernel/mips-sources/files/misc-2.6-iptables_headers.patch62
-rw-r--r--sys-kernel/mips-sources/mips-sources-2.4.25-r4.ebuild (renamed from sys-kernel/mips-sources/mips-sources-2.4.25-r3.ebuild)4
-rw-r--r--sys-kernel/mips-sources/mips-sources-2.4.26-r3.ebuild (renamed from sys-kernel/mips-sources/mips-sources-2.4.26-r2.ebuild)4
-rw-r--r--sys-kernel/mips-sources/mips-sources-2.6.4-r4.ebuild (renamed from sys-kernel/mips-sources/mips-sources-2.6.4-r3.ebuild)31
-rw-r--r--sys-kernel/mips-sources/mips-sources-2.6.5-r3.ebuild (renamed from sys-kernel/mips-sources/mips-sources-2.6.5-r2.ebuild)34
-rw-r--r--sys-kernel/mips-sources/mips-sources-2.6.6-r2.ebuild (renamed from sys-kernel/mips-sources/mips-sources-2.6.6-r1.ebuild)14
-rw-r--r--sys-kernel/mips-sources/mips-sources-2.6.6.ebuild86
-rw-r--r--sys-kernel/mips-sources/mips-sources-2.6.7-r1.ebuild (renamed from sys-kernel/mips-sources/mips-sources-2.6.7.ebuild)16
20 files changed, 838 insertions, 174 deletions
diff --git a/sys-kernel/mips-sources/ChangeLog b/sys-kernel/mips-sources/ChangeLog
index bbf793a20894..b9cbf7e6eb05 100644
--- a/sys-kernel/mips-sources/ChangeLog
+++ b/sys-kernel/mips-sources/ChangeLog
@@ -1,6 +1,21 @@
# ChangeLog for sys-kernel/mips-sources
# Copyright 2002-2004 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/mips-sources/ChangeLog,v 1.46 2004/06/24 22:59:06 agriffis Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/mips-sources/ChangeLog,v 1.47 2004/07/01 23:39:04 kumba Exp $
+
+*mips-sources-2.6.4-r4 (01 Jul 2004)
+
+ 01 Jul 2004; Joshua Kinard <kumba@gentoo.org>
+ +files/CAN-2004-0495-2.4-sparse.patch, +files/CAN-2004-0535-2.4-e1000.patch,
+ +files/CAN-2004-0626-death_packet.patch,
+ +files/misc-2.6-iptables_headers.patch, -mips-sources-2.4.25-r3.ebuild,
+ +mips-sources-2.4.25-r4.ebuild, -mips-sources-2.4.26-r2.ebuild,
+ +mips-sources-2.4.26-r3.ebuild, -mips-sources-2.6.4-r3.ebuild,
+ +mips-sources-2.6.4-r4.ebuild, -mips-sources-2.6.5-r2.ebuild,
+ +mips-sources-2.6.5-r3.ebuild, -mips-sources-2.6.6-r1.ebuild,
+ +mips-sources-2.6.6-r2.ebuild, -mips-sources-2.6.6.ebuild,
+ +mips-sources-2.6.7-r1.ebuild, -mips-sources-2.6.7.ebuild:
+ Security updates; Fixes for sparse/e1000 bugs for 2.4 and the packet of death
+ for 2.6.
*mips-sources-2.6.7 (23 Jun 2004)
diff --git a/sys-kernel/mips-sources/Manifest b/sys-kernel/mips-sources/Manifest
index f3cfa4392a01..64926528911e 100644
--- a/sys-kernel/mips-sources/Manifest
+++ b/sys-kernel/mips-sources/Manifest
@@ -1,37 +1,39 @@
-MD5 cab57a369930197372d2bcfd1c723679 mips-sources-2.6.7.ebuild 2671
-MD5 ea575cbcff67def86ae248c2f31cb029 mips-sources-2.6.4-r3.ebuild 3926
-MD5 fe15553f4647ed2753e630126cf942f4 mips-sources-2.6.5-r2.ebuild 3993
-MD5 5a1a7883e2f823a13ec63bf4633d41c7 mips-sources-2.6.6.ebuild 2739
-MD5 689d46d68bd3f4cd553e3ac71ee0aaaf mips-sources-2.6.6-r1.ebuild 2742
-MD5 648ddee1288114943b47275c19f0cf6d mips-sources-2.4.25-r3.ebuild 2702
-MD5 250841250d3e45dd1acd31d4dc3b4c22 ChangeLog 16012
+MD5 5f38bd1e3adc66040f27ef84d2d6f766 ChangeLog 16767
MD5 ad25a2a0b6ade60c13ad8040f3c319c6 metadata.xml 378
-MD5 a8002bd847fd522f43880dfef2be1b3c mips-sources-2.4.26-r2.ebuild 2059
-MD5 5674421c7e2c7e50e2509bed7d96c4d4 files/CAN-2004-0427-2.6-do_fork.patch 332
+MD5 6f75c30d7c398ae55efba6c472057fd8 mips-sources-2.4.25-r4.ebuild 2805
+MD5 f89c6f22083f1ea1751460096bf921d0 mips-sources-2.4.26-r3.ebuild 2162
+MD5 e6c75ee3e8625bab87f35ffa3ca9e531 mips-sources-2.6.4-r4.ebuild 3298
+MD5 db5c2a29abad83ddccee91473c13fae2 mips-sources-2.6.5-r3.ebuild 3434
+MD5 6c36a5ff9a5df5684f136bc55d5a1df5 mips-sources-2.6.6-r2.ebuild 2921
+MD5 4ae09caba3cdb5aec79ad10f8faee6f3 mips-sources-2.6.7-r1.ebuild 2959
+MD5 6f4bba5dda7a99d77b1564f5489fef6e files/CAN-2004-0075-2.6-vicam_usb.patch 1129
+MD5 21f3a4f186017d925067335e24db36a1 files/CAN-2004-0109-2.4-iso9660.patch 1877
MD5 31ec7b4310dd7be3e34aab0204f9b1e8 files/CAN-2004-0109-2.6-iso9660.patch 2072
-MD5 c65ca9f967d25e79aadfe387f7ce6fa3 files/mipscvs-2.6.x-no-page-align.patch 483
-MD5 1dd59d14a720c0c23e47e28d0b4fd6f9 files/CAN-2004-0228-cpufreq.patch 437
-MD5 de75cfa969ed092578d9ddda6c5be334 files/CAN-2004-0181-2.4-jfs_ext3.patch 1233
-MD5 6be9a61a23f202281c721c3b85760efb files/digest-mips-sources-2.6.6 299
-MD5 5b7a4b7f8c4baea56b4cd1332cb0948b files/digest-mips-sources-2.6.7 299
MD5 5bf9836a632a861728d33f9736bb7431 files/CAN-2004-0133-xfs_ext3.patch 427
-MD5 d4a740ae56c2049247083af387a22a85 files/CAN-2004-0394-panic.patch 350
-MD5 95ba3093147f4188db0ea4949e4317cf files/mipscvs-2.4.25-makefile-inlinelimit.patch 1588
-MD5 5c6bf5770bf59976861382f45bdeb7ff files/digest-mips-sources-2.4.25-r3 217
-MD5 098807e58d4f8bc7efcaea114ba28fcd files/digest-mips-sources-2.4.26-r2 218
-MD5 db1aaa77e691906f3857e54e363c4ff4 files/mipscvs-2.6.5-unistd-linkage.patch 515
-MD5 a92712e41465c49670ef7a54c2d16040 files/CAN-2004-0229-fb_copy_cmap.patch 471
MD5 eaeda68a619caaddd5b8fdc5e7c39932 files/CAN-2004-0177-ext3_jbd.patch 384
-MD5 497365345d8a39da49a8bd2495a17d8c files/digest-mips-sources-2.6.4-r3 299
-MD5 eb9f26d678449f22ce5b7c00762eeb91 files/digest-mips-sources-2.6.5-r2 299
-MD5 ff47ec7e8b4282773743aa192d3a73b6 files/digest-mips-sources-2.6.6-r1 299
-MD5 fbb6766828584e454bf053286aad6207 files/mipscvs-2.4.25-makefile-fix.patch 428
-MD5 6f4bba5dda7a99d77b1564f5489fef6e files/CAN-2004-0075-2.6-vicam_usb.patch 1129
-MD5 008eff91c704bd23097666a1cd94ada3 files/mipscvs-2.6.5-swapbug-fix.patch 1329
+MD5 ac42024b6e6ee1e2165914db4b22a61c files/CAN-2004-0178-sbblaster.patch 424
+MD5 de75cfa969ed092578d9ddda6c5be334 files/CAN-2004-0181-2.4-jfs_ext3.patch 1233
MD5 c8b7be9ee0da1415fa0274da5859aa62 files/CAN-2004-0181-2.6-jfs_ext3.patch 1366
-MD5 fbb6766828584e454bf053286aad6207 files/mipscvs-2.4.26-makefile-fix.patch 428
+MD5 1dd59d14a720c0c23e47e28d0b4fd6f9 files/CAN-2004-0228-cpufreq.patch 437
+MD5 a92712e41465c49670ef7a54c2d16040 files/CAN-2004-0229-fb_copy_cmap.patch 471
+MD5 d4a740ae56c2049247083af387a22a85 files/CAN-2004-0394-panic.patch 350
MD5 c460ea130cb4ae84a5063ba044e3ce72 files/CAN-2004-0427-2.4-do_fork.patch 460
-MD5 21f3a4f186017d925067335e24db36a1 files/CAN-2004-0109-2.4-iso9660.patch 1877
-MD5 2802496e6b2dcc4e5ff19fac6826c7f7 files/mipscvs-2.6.7-maceisa_rtc_irq-fix.patch 339
-MD5 ac42024b6e6ee1e2165914db4b22a61c files/CAN-2004-0178-sbblaster.patch 424
+MD5 5674421c7e2c7e50e2509bed7d96c4d4 files/CAN-2004-0427-2.6-do_fork.patch 332
+MD5 5c6bf5770bf59976861382f45bdeb7ff files/digest-mips-sources-2.4.25-r4 217
+MD5 098807e58d4f8bc7efcaea114ba28fcd files/digest-mips-sources-2.4.26-r3 218
+MD5 497365345d8a39da49a8bd2495a17d8c files/digest-mips-sources-2.6.4-r4 299
+MD5 eb9f26d678449f22ce5b7c00762eeb91 files/digest-mips-sources-2.6.5-r3 299
+MD5 ff47ec7e8b4282773743aa192d3a73b6 files/digest-mips-sources-2.6.6-r2 299
+MD5 5b7a4b7f8c4baea56b4cd1332cb0948b files/digest-mips-sources-2.6.7-r1 299
+MD5 fbb6766828584e454bf053286aad6207 files/mipscvs-2.4.25-makefile-fix.patch 428
+MD5 95ba3093147f4188db0ea4949e4317cf files/mipscvs-2.4.25-makefile-inlinelimit.patch 1588
MD5 764740b749fd1f81313aa941c55000ac files/mipscvs-2.4.25-no-page-align.patch 1013
+MD5 fbb6766828584e454bf053286aad6207 files/mipscvs-2.4.26-makefile-fix.patch 428
+MD5 008eff91c704bd23097666a1cd94ada3 files/mipscvs-2.6.5-swapbug-fix.patch 1329
+MD5 db1aaa77e691906f3857e54e363c4ff4 files/mipscvs-2.6.5-unistd-linkage.patch 515
+MD5 2802496e6b2dcc4e5ff19fac6826c7f7 files/mipscvs-2.6.7-maceisa_rtc_irq-fix.patch 339
+MD5 c65ca9f967d25e79aadfe387f7ce6fa3 files/mipscvs-2.6.x-no-page-align.patch 483
+MD5 fd5b99bc2a9e4c7f9825c9aab6a76b52 files/misc-2.6-iptables_headers.patch 1786
+MD5 dc18e982f8149588a291956481885a8c files/CAN-2004-0495-2.4-sparse.patch 17549
+MD5 0f66013f643c79c97fda489618a4e2fd files/CAN-2004-0535-2.4-e1000.patch 476
+MD5 c91330cc5b4044b6f59696095c2dc0fb files/CAN-2004-0626-death_packet.patch 423
diff --git a/sys-kernel/mips-sources/files/CAN-2004-0495-2.4-sparse.patch b/sys-kernel/mips-sources/files/CAN-2004-0495-2.4-sparse.patch
new file mode 100644
index 000000000000..bea80eac69a9
--- /dev/null
+++ b/sys-kernel/mips-sources/files/CAN-2004-0495-2.4-sparse.patch
@@ -0,0 +1,655 @@
+--- linux/net/decnet/dn_dev.c.bak Wed Jun 16 14:42:24 2004
++++ linux/net/decnet/dn_dev.c Wed Jun 16 14:42:34 2004
+@@ -1070,31 +1070,39 @@ int dnet_gifconf(struct net_device *dev,
+ {
+ struct dn_dev *dn_db = (struct dn_dev *)dev->dn_ptr;
+ struct dn_ifaddr *ifa;
+- struct ifreq *ifr = (struct ifreq *)buf;
++ char buffer[DN_IFREQ_SIZE];
++ struct ifreq *ifr = (struct ifreq *)buffer;
++ struct sockaddr_dn *addr = (struct sockaddr_dn *)&ifr->ifr_addr;
+ int done = 0;
+
+ if ((dn_db == NULL) || ((ifa = dn_db->ifa_list) == NULL))
+ return 0;
+
+ for(; ifa; ifa = ifa->ifa_next) {
+- if (!ifr) {
++ if (!buf) {
+ done += sizeof(DN_IFREQ_SIZE);
+ continue;
+ }
+ if (len < DN_IFREQ_SIZE)
+ return done;
+- memset(ifr, 0, DN_IFREQ_SIZE);
++ memset(buffer, 0, DN_IFREQ_SIZE);
+
+ if (ifa->ifa_label)
+ strcpy(ifr->ifr_name, ifa->ifa_label);
+ else
+ strcpy(ifr->ifr_name, dev->name);
+
+- (*(struct sockaddr_dn *) &ifr->ifr_addr).sdn_family = AF_DECnet;
+- (*(struct sockaddr_dn *) &ifr->ifr_addr).sdn_add.a_len = 2;
+- (*(dn_address *)(*(struct sockaddr_dn *) &ifr->ifr_addr).sdn_add.a_addr) = ifa->ifa_local;
++ addr->sdn_family = AF_DECnet;
++ addr->sdn_add.a_len = 2;
++ memcpy(addr->sdn_add.a_addr, &ifa->ifa_local,
++ sizeof(dn_address));
+
+- ifr = (struct ifreq *)((char *)ifr + DN_IFREQ_SIZE);
++ if (copy_to_user(buf, buffer, DN_IFREQ_SIZE)) {
++ done = -EFAULT;
++ break;
++ }
++
++ buf += DN_IFREQ_SIZE;
+ len -= DN_IFREQ_SIZE;
+ done += DN_IFREQ_SIZE;
+ }
+--- linux-2.4.21/drivers/net/wireless/airo.c 2003-06-13 15:51:35.000000000 +0100
++++ linux-2.4.21/drivers/net/wireless/airo.c.plasmaroo 2004-06-24 11:09:08.260352168 +0100
+@@ -3012,19 +3012,22 @@
+ size_t len,
+ loff_t *offset )
+ {
+- int i;
+- int pos;
++ loff_t pos = *offset;
+ struct proc_data *priv = (struct proc_data*)file->private_data;
+
+- if( !priv->rbuffer ) return -EINVAL;
++ if (!priv->rbuffer)
++ return -EINVAL;
+
+- pos = *offset;
+- for( i = 0; i+pos < priv->readlen && i < len; i++ ) {
+- if (put_user( priv->rbuffer[i+pos], buffer+i ))
+- return -EFAULT;
+- }
+- *offset += i;
+- return i;
++ if (pos < 0)
++ return -EINVAL;
++ if (pos >= priv->readlen)
++ return 0;
++ if (len > priv->readlen - pos)
++ len = priv->readlen - pos;
++ if (copy_to_user(buffer, priv->rbuffer + pos, len))
++ return -EFAULT;
++ *offset = pos + len;
++ return len;
+ }
+
+ /*
+@@ -3036,24 +3039,24 @@
+ size_t len,
+ loff_t *offset )
+ {
+- int i;
+- int pos;
++ loff_t pos = *offset;
+ struct proc_data *priv = (struct proc_data*)file->private_data;
+
+- if ( !priv->wbuffer ) {
++ if (!priv->wbuffer)
+ return -EINVAL;
+- }
+-
+- pos = *offset;
+
+- for( i = 0; i + pos < priv->maxwritelen &&
+- i < len; i++ ) {
+- if (get_user( priv->wbuffer[i+pos], buffer + i ))
+- return -EFAULT;
+- }
+- if ( i+pos > priv->writelen ) priv->writelen = i+file->f_pos;
+- *offset += i;
+- return i;
++ if (pos < 0)
++ return -EINVAL;
++ if (pos >= priv->maxwritelen)
++ return 0;
++ if (len > priv->maxwritelen - pos)
++ len = priv->maxwritelen - pos;
++ if (copy_from_user(priv->wbuffer + pos, buffer, len))
++ return -EFAULT;
++ if (pos + len > priv->writelen)
++ priv->writelen = pos + len;
++ *offset = pos + len;
++ return len;
+ }
+
+ static int proc_status_open( struct inode *inode, struct file *file ) {
+--- linux/drivers/sound/mpu401.c.bak Wed Jun 16 14:42:24 2004
++++ linux/drivers/sound/mpu401.c Wed Jun 16 14:42:34 2004
+@@ -1493,14 +1493,16 @@ static unsigned long mpu_timer_get_time(
+ static int mpu_timer_ioctl(int dev, unsigned int command, caddr_t arg)
+ {
+ int midi_dev = sound_timer_devs[dev]->devlink;
++ int *p = (int *)arg;
+
+ switch (command)
+ {
+ case SNDCTL_TMR_SOURCE:
+ {
+ int parm;
+-
+- parm = *(int *) arg;
++
++ if (get_user(parm, p))
++ return -EFAULT;
+ parm &= timer_caps;
+
+ if (parm != 0)
+@@ -1512,7 +1514,9 @@ static int mpu_timer_ioctl(int dev, unsi
+ else if (timer_mode & TMR_MODE_SMPTE)
+ mpu_cmd(midi_dev, 0x3d, 0); /* Use SMPTE sync */
+ }
+- return (*(int *) arg = timer_mode);
++ if (put_user(timer_mode, p))
++ return -EFAULT;
++ return timer_mode;
+ }
+ break;
+
+@@ -1537,10 +1541,13 @@ static int mpu_timer_ioctl(int dev, unsi
+ {
+ int val;
+
+- val = *(int *) arg;
++ if (get_user(val, p))
++ return -EFAULT;
+ if (val)
+ set_timebase(midi_dev, val);
+- return (*(int *) arg = curr_timebase);
++ if (put_user(curr_timebase, p))
++ return -EFAULT;
++ return curr_timebase;
+ }
+ break;
+
+@@ -1549,7 +1556,8 @@ static int mpu_timer_ioctl(int dev, unsi
+ int val;
+ int ret;
+
+- val = *(int *) arg;
++ if (get_user(val, p))
++ return -EFAULT;
+
+ if (val)
+ {
+@@ -1564,7 +1572,9 @@ static int mpu_timer_ioctl(int dev, unsi
+ }
+ curr_tempo = val;
+ }
+- return (*(int *) arg = curr_tempo);
++ if (put_user(curr_tempo, p))
++ return -EFAULT;
++ return curr_tempo;
+ }
+ break;
+
+@@ -1572,18 +1582,25 @@ static int mpu_timer_ioctl(int dev, unsi
+ {
+ int val;
+
+- val = *(int *) arg;
++ if (get_user(val, p))
++ return -EFAULT;
+ if (val != 0) /* Can't change */
+ return -EINVAL;
+- return (*(int *) arg = ((curr_tempo * curr_timebase) + 30) / 60);
++ val = (curr_tempo * curr_timebase + 30) / 60;
++ if (put_user(val, p))
++ return -EFAULT;
++ return val;
+ }
+ break;
+
+ case SNDCTL_SEQ_GETTIME:
+- return (*(int *) arg = curr_ticks);
++ if (put_user(curr_ticks, p))
++ return -EFAULT;
++ return curr_ticks;
+
+ case SNDCTL_TMR_METRONOME:
+- metronome_mode = *(int *) arg;
++ if (get_user(metronome_mode, p))
++ return -EFAULT;
+ setup_metronome(midi_dev);
+ return 0;
+
+--- linux/drivers/sound/msnd.c.bak Wed Jun 16 14:42:24 2004
++++ linux/drivers/sound/msnd.c Wed Jun 16 14:42:34 2004
+@@ -155,13 +155,10 @@ void msnd_fifo_make_empty(msnd_fifo *f)
+ f->len = f->tail = f->head = 0;
+ }
+
+-int msnd_fifo_write(msnd_fifo *f, const char *buf, size_t len, int user)
++int msnd_fifo_write(msnd_fifo *f, const char *buf, size_t len)
+ {
+ int count = 0;
+
+- if (f->len == f->n)
+- return 0;
+-
+ while ((count < len) && (f->len != f->n)) {
+
+ int nwritten;
+@@ -177,11 +174,7 @@ int msnd_fifo_write(msnd_fifo *f, const
+ nwritten = len - count;
+ }
+
+- if (user) {
+- if (copy_from_user(f->data + f->tail, buf, nwritten))
+- return -EFAULT;
+- } else
+- isa_memcpy_fromio(f->data + f->tail, (unsigned long) buf, nwritten);
++ isa_memcpy_fromio(f->data + f->tail, (unsigned long) buf, nwritten);
+
+ count += nwritten;
+ buf += nwritten;
+@@ -193,13 +186,10 @@ int msnd_fifo_write(msnd_fifo *f, const
+ return count;
+ }
+
+-int msnd_fifo_read(msnd_fifo *f, char *buf, size_t len, int user)
++int msnd_fifo_read(msnd_fifo *f, char *buf, size_t len)
+ {
+ int count = 0;
+
+- if (f->len == 0)
+- return f->len;
+-
+ while ((count < len) && (f->len > 0)) {
+
+ int nread;
+@@ -215,11 +205,7 @@ int msnd_fifo_read(msnd_fifo *f, char *b
+ nread = len - count;
+ }
+
+- if (user) {
+- if (copy_to_user(buf, f->data + f->head, nread))
+- return -EFAULT;
+- } else
+- isa_memcpy_toio((unsigned long) buf, f->data + f->head, nread);
++ isa_memcpy_toio((unsigned long) buf, f->data + f->head, nread);
+
+ count += nread;
+ buf += nread;
+--- linux/drivers/sound/msnd.h.bak Wed Jun 16 14:42:24 2004
++++ linux/drivers/sound/msnd.h Wed Jun 16 14:42:34 2004
+@@ -266,8 +266,8 @@ void msnd_fifo_init(msnd_fifo *f);
+ void msnd_fifo_free(msnd_fifo *f);
+ int msnd_fifo_alloc(msnd_fifo *f, size_t n);
+ void msnd_fifo_make_empty(msnd_fifo *f);
+-int msnd_fifo_write(msnd_fifo *f, const char *buf, size_t len, int user);
+-int msnd_fifo_read(msnd_fifo *f, char *buf, size_t len, int user);
++int msnd_fifo_write(msnd_fifo *f, const char *buf, size_t len);
++int msnd_fifo_read(msnd_fifo *f, char *buf, size_t len);
+
+ int msnd_wait_TXDE(multisound_dev_t *dev);
+ int msnd_wait_HC0(multisound_dev_t *dev);
+--- linux/drivers/sound/msnd_pinnacle.c.bak Wed Jun 16 14:42:24 2004
++++ linux/drivers/sound/msnd_pinnacle.c Wed Jun 16 14:42:34 2004
+@@ -804,7 +804,7 @@ static int dev_release(struct inode *ino
+
+ static __inline__ int pack_DARQ_to_DARF(register int bank)
+ {
+- register int size, n, timeout = 3;
++ register int size, timeout = 3;
+ register WORD wTmp;
+ LPDAQD DAQD;
+
+@@ -825,13 +825,10 @@ static __inline__ int pack_DARQ_to_DARF(
+ /* Read data from the head (unprotected bank 1 access okay
+ since this is only called inside an interrupt) */
+ outb(HPBLKSEL_1, dev.io + HP_BLKS);
+- if ((n = msnd_fifo_write(
++ msnd_fifo_write(
+ &dev.DARF,
+ (char *)(dev.base + bank * DAR_BUFF_SIZE),
+- size, 0)) <= 0) {
+- outb(HPBLKSEL_0, dev.io + HP_BLKS);
+- return n;
+- }
++ size);
+ outb(HPBLKSEL_0, dev.io + HP_BLKS);
+
+ return 1;
+@@ -853,21 +850,16 @@ static __inline__ int pack_DAPF_to_DAPQ(
+ if (protect) {
+ /* Critical section: protect fifo in non-interrupt */
+ spin_lock_irqsave(&dev.lock, flags);
+- if ((n = msnd_fifo_read(
++ n = msnd_fifo_read(
+ &dev.DAPF,
+ (char *)(dev.base + bank_num * DAP_BUFF_SIZE),
+- DAP_BUFF_SIZE, 0)) < 0) {
+- spin_unlock_irqrestore(&dev.lock, flags);
+- return n;
+- }
++ DAP_BUFF_SIZE);
+ spin_unlock_irqrestore(&dev.lock, flags);
+ } else {
+- if ((n = msnd_fifo_read(
++ n = msnd_fifo_read(
+ &dev.DAPF,
+ (char *)(dev.base + bank_num * DAP_BUFF_SIZE),
+- DAP_BUFF_SIZE, 0)) < 0) {
+- return n;
+- }
++ DAP_BUFF_SIZE);
+ }
+ if (!n)
+ break;
+@@ -894,30 +886,43 @@ static __inline__ int pack_DAPF_to_DAPQ(
+ static int dsp_read(char *buf, size_t len)
+ {
+ int count = len;
++ char *page = (char *)__get_free_page(PAGE_SIZE);
++
++ if (!page)
++ return -ENOMEM;
+
+ while (count > 0) {
+- int n;
++ int n, k;
+ unsigned long flags;
+
++ k = PAGE_SIZE;
++ if (k > count)
++ k = count;
++
+ /* Critical section: protect fifo in non-interrupt */
+ spin_lock_irqsave(&dev.lock, flags);
+- if ((n = msnd_fifo_read(&dev.DARF, buf, count, 1)) < 0) {
+- printk(KERN_WARNING LOGNAME ": FIFO read error\n");
+- spin_unlock_irqrestore(&dev.lock, flags);
+- return n;
+- }
++ n = msnd_fifo_read(&dev.DARF, page, k);
+ spin_unlock_irqrestore(&dev.lock, flags);
++ if (copy_to_user(buf, page, n)) {
++ free_page((unsigned long)page);
++ return -EFAULT;
++ }
+ buf += n;
+ count -= n;
+
++ if (n == k && count)
++ continue;
++
+ if (!test_bit(F_READING, &dev.flags) && dev.mode & FMODE_READ) {
+ dev.last_recbank = -1;
+ if (chk_send_dsp_cmd(&dev, HDEX_RECORD_START) == 0)
+ set_bit(F_READING, &dev.flags);
+ }
+
+- if (dev.rec_ndelay)
++ if (dev.rec_ndelay) {
++ free_page((unsigned long)page);
+ return count == len ? -EAGAIN : len - count;
++ }
+
+ if (count > 0) {
+ set_bit(F_READBLOCK, &dev.flags);
+@@ -926,41 +931,57 @@ static int dsp_read(char *buf, size_t le
+ get_rec_delay_jiffies(DAR_BUFF_SIZE)))
+ clear_bit(F_READING, &dev.flags);
+ clear_bit(F_READBLOCK, &dev.flags);
+- if (signal_pending(current))
++ if (signal_pending(current)) {
++ free_page((unsigned long)page);
+ return -EINTR;
++ }
+ }
+ }
+-
++ free_page((unsigned long)page);
+ return len - count;
+ }
+
+ static int dsp_write(const char *buf, size_t len)
+ {
+ int count = len;
++ char *page = (char *)__get_free_page(GFP_KERNEL);
++
++ if (!page)
++ return -ENOMEM;
+
+ while (count > 0) {
+- int n;
++ int n, k;
+ unsigned long flags;
+
++ k = PAGE_SIZE;
++ if (k > count)
++ k = count;
++
++ if (copy_from_user(page, buf, k)) {
++ free_page((unsigned long)page);
++ return -EFAULT;
++ }
++
+ /* Critical section: protect fifo in non-interrupt */
+ spin_lock_irqsave(&dev.lock, flags);
+- if ((n = msnd_fifo_write(&dev.DAPF, buf, count, 1)) < 0) {
+- printk(KERN_WARNING LOGNAME ": FIFO write error\n");
+- spin_unlock_irqrestore(&dev.lock, flags);
+- return n;
+- }
++ n = msnd_fifo_write(&dev.DAPF, page, k);
+ spin_unlock_irqrestore(&dev.lock, flags);
+ buf += n;
+ count -= n;
+
++ if (count && n == k)
++ continue;
++
+ if (!test_bit(F_WRITING, &dev.flags) && (dev.mode & FMODE_WRITE)) {
+ dev.last_playbank = -1;
+ if (pack_DAPF_to_DAPQ(1) > 0)
+ set_bit(F_WRITING, &dev.flags);
+ }
+
+- if (dev.play_ndelay)
++ if (dev.play_ndelay) {
++ free_page((unsigned long)page);
+ return count == len ? -EAGAIN : len - count;
++ }
+
+ if (count > 0) {
+ set_bit(F_WRITEBLOCK, &dev.flags);
+@@ -968,11 +989,14 @@ static int dsp_write(const char *buf, si
+ &dev.writeblock,
+ get_play_delay_jiffies(DAP_BUFF_SIZE));
+ clear_bit(F_WRITEBLOCK, &dev.flags);
+- if (signal_pending(current))
++ if (signal_pending(current)) {
++ free_page((unsigned long)page);
+ return -EINTR;
++ }
+ }
+ }
+
++ free_page((unsigned long)page);
+ return len - count;
+ }
+
+--- linux/drivers/sound/pss.c.bak Wed Jun 16 14:42:24 2004
++++ linux/drivers/sound/pss.c Wed Jun 16 14:42:34 2004
+@@ -450,20 +450,36 @@ static void pss_mixer_reset(pss_confdata
+ }
+ }
+
+-static void arg_to_volume_mono(unsigned int volume, int *aleft)
++static int set_volume_mono(caddr_t p, int *aleft)
+ {
+ int left;
++ unsigned volume;
++ if (get_user(volume, (unsigned *)p))
++ return -EFAULT;
+
+- left = volume & 0x00ff;
++ left = volume & 0xff;
+ if (left > 100)
+ left = 100;
+ *aleft = left;
++ return 0;
+ }
+
+-static void arg_to_volume_stereo(unsigned int volume, int *aleft, int *aright)
++static int set_volume_stereo(caddr_t p, int *aleft, int *aright)
+ {
+- arg_to_volume_mono(volume, aleft);
+- arg_to_volume_mono(volume >> 8, aright);
++ int left, right;
++ unsigned volume;
++ if (get_user(volume, (unsigned *)p))
++ return -EFAULT;
++
++ left = volume & 0xff;
++ if (left > 100)
++ left = 100;
++ right = (volume >> 8) & 0xff;
++ if (right > 100)
++ right = 100;
++ *aleft = left;
++ *aright = right;
++ return 0;
+ }
+
+ static int ret_vol_mono(int left)
+@@ -510,33 +526,38 @@ static int pss_mixer_ioctl (int dev, uns
+ return call_ad_mixer(devc, cmd, arg);
+ else
+ {
+- if (*(int *)arg != 0)
++ int v;
++ if (get_user(v, (int *)arg))
++ return -EFAULT;
++ if (v != 0)
+ return -EINVAL;
+ return 0;
+ }
+ case SOUND_MIXER_VOLUME:
+- arg_to_volume_stereo(*(unsigned int *)arg, &devc->mixer.volume_l,
+- &devc->mixer.volume_r);
++ if (set_volume_stereo(arg,
++ &devc->mixer.volume_l,
++ &devc->mixer.volume_r))
++ return -EFAULT;
+ set_master_volume(devc, devc->mixer.volume_l,
+ devc->mixer.volume_r);
+ return ret_vol_stereo(devc->mixer.volume_l,
+ devc->mixer.volume_r);
+
+ case SOUND_MIXER_BASS:
+- arg_to_volume_mono(*(unsigned int *)arg,
+- &devc->mixer.bass);
++ if (set_volume_mono(arg, &devc->mixer.bass))
++ return -EFAULT;
+ set_bass(devc, devc->mixer.bass);
+ return ret_vol_mono(devc->mixer.bass);
+
+ case SOUND_MIXER_TREBLE:
+- arg_to_volume_mono(*(unsigned int *)arg,
+- &devc->mixer.treble);
++ if (set_volume_mono(arg, &devc->mixer.treble))
++ return -EFAULT;
+ set_treble(devc, devc->mixer.treble);
+ return ret_vol_mono(devc->mixer.treble);
+
+ case SOUND_MIXER_SYNTH:
+- arg_to_volume_mono(*(unsigned int *)arg,
+- &devc->mixer.synth);
++ if (set_volume_mono(arg, &devc->mixer.synth))
++ return -EFAULT;
+ set_synth_volume(devc, devc->mixer.synth);
+ return ret_vol_mono(devc->mixer.synth);
+
+@@ -546,54 +567,67 @@ static int pss_mixer_ioctl (int dev, uns
+ }
+ else
+ {
++ int val, and_mask = 0, or_mask = 0;
+ /*
+ * Return parameters
+ */
+ switch (cmdf)
+ {
+-
+ case SOUND_MIXER_DEVMASK:
+ if (call_ad_mixer(devc, cmd, arg) == -EINVAL)
+- *(int *)arg = 0; /* no mixer devices */
+- return (*(int *)arg |= SOUND_MASK_VOLUME | SOUND_MASK_BASS | SOUND_MASK_TREBLE | SOUND_MASK_SYNTH);
++ break;
++ and_mask = ~0;
++ or_mask = SOUND_MASK_VOLUME | SOUND_MASK_BASS | SOUND_MASK_TREBLE | SOUND_MASK_SYNTH;
++ break;
+
+ case SOUND_MIXER_STEREODEVS:
+ if (call_ad_mixer(devc, cmd, arg) == -EINVAL)
+- *(int *)arg = 0; /* no stereo devices */
+- return (*(int *)arg |= SOUND_MASK_VOLUME);
++ break;
++ and_mask = ~0;
++ or_mask = SOUND_MASK_VOLUME;
++ break;
+
+ case SOUND_MIXER_RECMASK:
+ if (devc->ad_mixer_dev != NO_WSS_MIXER)
+ return call_ad_mixer(devc, cmd, arg);
+- else
+- return (*(int *)arg = 0); /* no record devices */
++ break;
+
+ case SOUND_MIXER_CAPS:
+ if (devc->ad_mixer_dev != NO_WSS_MIXER)
+ return call_ad_mixer(devc, cmd, arg);
+- else
+- return (*(int *)arg = SOUND_CAP_EXCL_INPUT);
++ or_mask = SOUND_CAP_EXCL_INPUT;
++ break;
+
+ case SOUND_MIXER_RECSRC:
+ if (devc->ad_mixer_dev != NO_WSS_MIXER)
+ return call_ad_mixer(devc, cmd, arg);
+- else
+- return (*(int *)arg = 0); /* no record source */
++ break;
+
+ case SOUND_MIXER_VOLUME:
+- return (*(int *)arg = ret_vol_stereo(devc->mixer.volume_l, devc->mixer.volume_r));
++ or_mask = ret_vol_stereo(devc->mixer.volume_l, devc->mixer.volume_r);
++ break;
+
+ case SOUND_MIXER_BASS:
+- return (*(int *)arg = ret_vol_mono(devc->mixer.bass));
++ or_mask = ret_vol_mono(devc->mixer.bass);
++ break;
+
+ case SOUND_MIXER_TREBLE:
+- return (*(int *)arg = ret_vol_mono(devc->mixer.treble));
++ or_mask = ret_vol_mono(devc->mixer.treble);
++ break;
+
+ case SOUND_MIXER_SYNTH:
+- return (*(int *)arg = ret_vol_mono(devc->mixer.synth));
++ or_mask = ret_vol_mono(devc->mixer.synth);
++ break;
+ default:
+ return -EINVAL;
+ }
++ if (get_user(val, (int *)arg))
++ return -EFAULT;
++ val &= and_mask;
++ val |= or_mask;
++ if (put_user(val, (int *)arg))
++ return -EFAULT;
++ return val;
+ }
+ }
+
diff --git a/sys-kernel/mips-sources/files/CAN-2004-0535-2.4-e1000.patch b/sys-kernel/mips-sources/files/CAN-2004-0535-2.4-e1000.patch
new file mode 100644
index 000000000000..669fc5fd32fb
--- /dev/null
+++ b/sys-kernel/mips-sources/files/CAN-2004-0535-2.4-e1000.patch
@@ -0,0 +1,12 @@
+--- drivers/net/e1000/e1000_ethtool.c 2003-06-13 15:51:34.000000000 +0100
++++ drivers/net/e1000/e1000_ethtool.c.plasmaroo 2004-06-24 11:23:32.524963976 +0100
+@@ -468,6 +468,9 @@
+
+ if(copy_from_user(&regs, addr, sizeof(regs)))
+ return -EFAULT;
++ memset(regs_buff, 0, sizeof(regs_buff));
++ if (regs.len > E1000_REGS_LEN)
++ regs.len = E1000_REGS_LEN;
+ e1000_ethtool_gregs(adapter, &regs, regs_buff);
+ if(copy_to_user(addr, &regs, sizeof(regs)))
+ return -EFAULT;
diff --git a/sys-kernel/mips-sources/files/CAN-2004-0626-death_packet.patch b/sys-kernel/mips-sources/files/CAN-2004-0626-death_packet.patch
new file mode 100644
index 000000000000..f6eafac10930
--- /dev/null
+++ b/sys-kernel/mips-sources/files/CAN-2004-0626-death_packet.patch
@@ -0,0 +1,11 @@
+--- net/ipv4/netfilter/ip_tables.c.orig 2004-06-30 18:19:22.957763360 -0400
++++ net/ipv4/netfilter/ip_tables.c 2004-06-30 18:19:51.516421784 -0400
+@@ -1458,7 +1458,7 @@ tcp_find_option(u_int8_t option,
+ int *hotdrop)
+ {
+ /* tcp.doff is only 4 bits, ie. max 15 * 4 bytes */
+- char opt[60 - sizeof(struct tcphdr)];
++ u_int8_t opt[60 - sizeof(struct tcphdr)];
+ unsigned int i;
+
+ duprintf("tcp_match: finding option\n");
diff --git a/sys-kernel/mips-sources/files/digest-mips-sources-2.4.25-r3 b/sys-kernel/mips-sources/files/digest-mips-sources-2.4.25-r4
index bb37c137f1e2..bb37c137f1e2 100644
--- a/sys-kernel/mips-sources/files/digest-mips-sources-2.4.25-r3
+++ b/sys-kernel/mips-sources/files/digest-mips-sources-2.4.25-r4
diff --git a/sys-kernel/mips-sources/files/digest-mips-sources-2.4.26-r2 b/sys-kernel/mips-sources/files/digest-mips-sources-2.4.26-r3
index 6f818deaa2b8..6f818deaa2b8 100644
--- a/sys-kernel/mips-sources/files/digest-mips-sources-2.4.26-r2
+++ b/sys-kernel/mips-sources/files/digest-mips-sources-2.4.26-r3
diff --git a/sys-kernel/mips-sources/files/digest-mips-sources-2.6.4-r3 b/sys-kernel/mips-sources/files/digest-mips-sources-2.6.4-r4
index 1a5fc819e2ad..1a5fc819e2ad 100644
--- a/sys-kernel/mips-sources/files/digest-mips-sources-2.6.4-r3
+++ b/sys-kernel/mips-sources/files/digest-mips-sources-2.6.4-r4
diff --git a/sys-kernel/mips-sources/files/digest-mips-sources-2.6.5-r2 b/sys-kernel/mips-sources/files/digest-mips-sources-2.6.5-r3
index c1a0ce95b671..c1a0ce95b671 100644
--- a/sys-kernel/mips-sources/files/digest-mips-sources-2.6.5-r2
+++ b/sys-kernel/mips-sources/files/digest-mips-sources-2.6.5-r3
diff --git a/sys-kernel/mips-sources/files/digest-mips-sources-2.6.6 b/sys-kernel/mips-sources/files/digest-mips-sources-2.6.6
deleted file mode 100644
index 934a8f6c876c..000000000000
--- a/sys-kernel/mips-sources/files/digest-mips-sources-2.6.6
+++ /dev/null
@@ -1,4 +0,0 @@
-MD5 5218790bc3db41e77a7422969639a9ad linux-2.6.6.tar.bz2 34896138
-MD5 2281ab1f72c8a090ed87b9039d92e504 mipscvs-2.6.6-20040510.diff.bz2 368319
-MD5 62fa5bbee1bcb8b93e41a73abede8132 cobalt-patches-26xx-1.4.tar.bz2 7596
-MD5 99ae243d80acc8692115f58ab2210c25 ip32-iluxa-minpatchset-20040402.diff.bz2 2260
diff --git a/sys-kernel/mips-sources/files/digest-mips-sources-2.6.6-r1 b/sys-kernel/mips-sources/files/digest-mips-sources-2.6.6-r2
index bc73ffb0e7fa..bc73ffb0e7fa 100644
--- a/sys-kernel/mips-sources/files/digest-mips-sources-2.6.6-r1
+++ b/sys-kernel/mips-sources/files/digest-mips-sources-2.6.6-r2
diff --git a/sys-kernel/mips-sources/files/digest-mips-sources-2.6.7 b/sys-kernel/mips-sources/files/digest-mips-sources-2.6.7-r1
index 0b0e6e5494a9..0b0e6e5494a9 100644
--- a/sys-kernel/mips-sources/files/digest-mips-sources-2.6.7
+++ b/sys-kernel/mips-sources/files/digest-mips-sources-2.6.7-r1
diff --git a/sys-kernel/mips-sources/files/misc-2.6-iptables_headers.patch b/sys-kernel/mips-sources/files/misc-2.6-iptables_headers.patch
new file mode 100644
index 000000000000..a0e392e5ce85
--- /dev/null
+++ b/sys-kernel/mips-sources/files/misc-2.6-iptables_headers.patch
@@ -0,0 +1,62 @@
+--- include/linux/netfilter.h 2004-06-07 12:15:03 +09:00
++++ include/linux/netfilter.h 2004-06-19 02:10:55 +09:00
+@@ -10,6 +10,7 @@
+ #include <linux/wait.h>
+ #include <linux/list.h>
+ #endif
++#include <linux/compiler.h>
+
+ /* Responses from hook functions. */
+ #define NF_DROP 0
+--- include/linux/netfilter_arp/arp_tables.h 2004-06-04 09:52:00 +09:00
++++ include/linux/netfilter_arp/arp_tables.h 2004-06-19 02:08:09 +09:00
+@@ -16,7 +16,7 @@
+ #include <linux/if_arp.h>
+ #include <linux/skbuff.h>
+ #endif
+-
++#include <linux/compiler.h>
+ #include <linux/netfilter_arp.h>
+
+ #define ARPT_FUNCTION_MAXNAMELEN 30
+--- include/linux/netfilter_ipv4/ip_tables.h 2004-06-07 12:15:03 +09:00
++++ include/linux/netfilter_ipv4/ip_tables.h 2004-06-19 02:08:39 +09:00
+@@ -22,6 +22,7 @@
+ #include <linux/ip.h>
+ #include <linux/skbuff.h>
+ #endif
++#include <linux/compiler.h>
+ #include <linux/netfilter_ipv4.h>
+
+ #define IPT_FUNCTION_MAXNAMELEN 30
+@@ -336,8 +337,8 @@
+ /*
+ * Main firewall chains definitions and global var's definitions.
+ */
+-static DECLARE_MUTEX(ipt_mutex);
+ #ifdef __KERNEL__
++static DECLARE_MUTEX(ipt_mutex);
+
+ #include <linux/init.h>
+ extern void ipt_init(void) __init;
+--- include/linux/netfilter_ipv6/ip6_tables.h 2004-06-07 12:15:04 +09:00
++++ include/linux/netfilter_ipv6/ip6_tables.h 2004-06-19 02:09:29 +09:00
+@@ -22,6 +22,7 @@
+ #include <linux/ipv6.h>
+ #include <linux/skbuff.h>
+ #endif
++#include <linux/compiler.h>
+ #include <linux/netfilter_ipv6.h>
+
+ #define IP6T_FUNCTION_MAXNAMELEN 30
+@@ -106,7 +107,9 @@
+ u_int64_t pcnt, bcnt; /* Packet and byte counters */
+ };
+
++#ifdef __KERNEL__
+ static DECLARE_MUTEX(ip6t_mutex);
++#endif
+
+ /* Values for "flag" field in struct ip6t_ip6 (general ip6 structure). */
+ #define IP6T_F_PROTO 0x01 /* Set if rule cares about upper
+
diff --git a/sys-kernel/mips-sources/mips-sources-2.4.25-r3.ebuild b/sys-kernel/mips-sources/mips-sources-2.4.25-r4.ebuild
index 229391d0badb..03ab22eafada 100644
--- a/sys-kernel/mips-sources/mips-sources-2.4.25-r3.ebuild
+++ b/sys-kernel/mips-sources/mips-sources-2.4.25-r4.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/mips-sources/mips-sources-2.4.25-r3.ebuild,v 1.2 2004/06/24 22:59:06 agriffis Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/mips-sources/mips-sources-2.4.25-r4.ebuild,v 1.1 2004/07/01 23:39:04 kumba Exp $
# Version Data
@@ -66,6 +66,8 @@ src_unpack() {
epatch ${FILESDIR}/CAN-2004-0181-2.4-jfs_ext3.patch
epatch ${FILESDIR}/CAN-2004-0394-panic.patch
epatch ${FILESDIR}/CAN-2004-0427-2.4-do_fork.patch
+ epatch ${FILESDIR}/CAN-2004-0495-2.4-sparse.patch
+ epatch ${FILESDIR}/CAN-2004-0535-2.4-e1000.patch
eend
# Cobalt Patches
diff --git a/sys-kernel/mips-sources/mips-sources-2.4.26-r2.ebuild b/sys-kernel/mips-sources/mips-sources-2.4.26-r3.ebuild
index e35b99413676..9e7d91899385 100644
--- a/sys-kernel/mips-sources/mips-sources-2.4.26-r2.ebuild
+++ b/sys-kernel/mips-sources/mips-sources-2.4.26-r3.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/mips-sources/mips-sources-2.4.26-r2.ebuild,v 1.2 2004/06/24 22:59:06 agriffis Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/mips-sources/mips-sources-2.4.26-r3.ebuild,v 1.1 2004/07/01 23:39:04 kumba Exp $
# Version Data
@@ -53,6 +53,8 @@ src_unpack() {
echo -e ""
ebegin "Applying Security Fixes"
epatch ${FILESDIR}/CAN-2004-0394-panic.patch
+ epatch ${FILESDIR}/CAN-2004-0495-2.4-sparse.patch
+ epatch ${FILESDIR}/CAN-2004-0535-2.4-e1000.patch
eend
# Cobalt Patches
diff --git a/sys-kernel/mips-sources/mips-sources-2.6.4-r3.ebuild b/sys-kernel/mips-sources/mips-sources-2.6.4-r4.ebuild
index 72aa8b9eb773..3c0d190e6e3f 100644
--- a/sys-kernel/mips-sources/mips-sources-2.6.4-r3.ebuild
+++ b/sys-kernel/mips-sources/mips-sources-2.6.4-r4.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/mips-sources/mips-sources-2.6.4-r3.ebuild,v 1.2 2004/06/24 22:59:06 agriffis Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/mips-sources/mips-sources-2.6.4-r4.ebuild,v 1.1 2004/07/01 23:39:04 kumba Exp $
# Version Data
@@ -8,7 +8,7 @@ OKV=${PV/_/-}
CVSDATE="20040311"
COBALTPATCHVER="1.4"
IP32DIFFDATE="20040229"
-[ "${USE_IP32}" = "yes" ] && EXTRAVERSION="-mipscvs-${CVSDATE}-ip32" || EXTRAVERSION="-mipscvs-${CVSDATE}"
+EXTRAVERSION="-mipscvs-${CVSDATE}"
KV="${OKV}${EXTRAVERSION}"
# Miscellaneous stuff
@@ -53,16 +53,6 @@ pkg_setup() {
einfo "installed and setup."
echo -e ""
fi
-
- # See if we're building IP32 sources
- if [ "${USE_IP32}" = "yes" ]; then
- echo -e ""
- ewarn "SGI O2 (IP32) support is still a work in progress, and may or may"
- ewarn "not work properly. Any bugs encountered running these sources on"
- ewarn "an O2 should be reported to the gentoo-mips mailing list. Patches"
- ewarn "any bugs are also welcome."
- echo -e ""
- fi
}
src_unpack() {
@@ -73,6 +63,11 @@ src_unpack() {
# Update the vanilla sources with linux-mips CVS changes
epatch ${WORKDIR}/mipscvs-${OKV}-${CVSDATE}.diff
+ # iluxa's minpatchset for SGI O2
+ echo -e ""
+ einfo ">>> Patching kernel with iluxa's minimal IP32 patchset ..."
+ epatch ${WORKDIR}/ip32-iluxa-minpatchset-${IP32DIFFDATE}.diff
+
# Binutils-2.14.90.0.8 and up does some magic with page alignment
# that prevents the kernel from booting. This patch fixes it.
epatch ${FILESDIR}/mipscvs-2.6.x-no-page-align.patch
@@ -86,6 +81,7 @@ src_unpack() {
epatch ${FILESDIR}/CAN-2004-0228-cpufreq.patch
epatch ${FILESDIR}/CAN-2004-0229-fb_copy_cmap.patch
epatch ${FILESDIR}/CAN-2004-0427-2.6-do_fork.patch
+ epatch ${FILESDIR}/CAN-2004-0626-death_packet.patch
eend
# Cobalt Patches
@@ -101,16 +97,5 @@ src_unpack() {
S="${S}.cobalt"
fi
- # IP32 Support
- # The USE_IP32 variable below must be passed on the command line to the emerge call
- if [ "${USE_IP32}" = "yes" ]; then
- echo -e ""
- einfo ">>> Patching kernel with iluxa's minimal IP32 patchset ..."
- epatch ${WORKDIR}/ip32-iluxa-minpatchset-${IP32DIFFDATE}.diff
- KV="${KV}-ip32"
- cd ${WORKDIR}
- mv ${WORKDIR}/linux-${OKV}-${CVSDATE} ${WORKDIR}/linux-${OKV}-${CVSDATE}.ip32
- S="${S}.ip32"
- fi
kernel_universal_unpack
}
diff --git a/sys-kernel/mips-sources/mips-sources-2.6.5-r2.ebuild b/sys-kernel/mips-sources/mips-sources-2.6.5-r3.ebuild
index f1d26e473e8d..a3fcf439eb7b 100644
--- a/sys-kernel/mips-sources/mips-sources-2.6.5-r2.ebuild
+++ b/sys-kernel/mips-sources/mips-sources-2.6.5-r3.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/mips-sources/mips-sources-2.6.5-r2.ebuild,v 1.2 2004/06/24 22:59:06 agriffis Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/mips-sources/mips-sources-2.6.5-r3.ebuild,v 1.1 2004/07/01 23:39:04 kumba Exp $
# Version Data
@@ -8,7 +8,7 @@ OKV=${PV/_/-}
CVSDATE="20040412"
COBALTPATCHVER="1.4"
IP32DIFFDATE="20040402"
-[ "${USE_IP32}" = "yes" ] && EXTRAVERSION="-mipscvs-${CVSDATE}-ip32" || EXTRAVERSION="-mipscvs-${CVSDATE}"
+EXTRAVERSION="-mipscvs-${CVSDATE}"
KV="${OKV}${EXTRAVERSION}"
# Miscellaneous stuff
@@ -54,16 +54,6 @@ pkg_setup() {
einfo "installed and setup."
echo -e ""
fi
-
- # See if we're building IP32 sources
- if [ "${USE_IP32}" = "yes" ]; then
- echo -e ""
- ewarn "SGI O2 (IP32) support is still a work in progress, and may or may"
- ewarn "not work properly. Any bugs encountered running these sources on"
- ewarn "an O2 should be reported to the gentoo-mips mailing list. Patches"
- ewarn "any bugs are also welcome."
- echo -e ""
- fi
}
src_unpack() {
@@ -74,6 +64,11 @@ src_unpack() {
# Update the vanilla sources with linux-mips CVS changes
epatch ${WORKDIR}/mipscvs-${OKV}-${CVSDATE}.diff
+ # iluxa's minpatchset for SGI O2
+ echo -e ""
+ einfo ">>> Patching kernel with iluxa's minimal IP32 patchset ..."
+ epatch ${WORKDIR}/ip32-iluxa-minpatchset-${IP32DIFFDATE}.diff
+
# Bug in 2.6.5 that triggers a kernel oops when swap is activated
epatch ${FILESDIR}/mipscvs-${OKV}-swapbug-fix.patch
@@ -88,8 +83,12 @@ src_unpack() {
epatch ${FILESDIR}/CAN-2004-0228-cpufreq.patch
epatch ${FILESDIR}/CAN-2004-0229-fb_copy_cmap.patch
epatch ${FILESDIR}/CAN-2004-0427-2.6-do_fork.patch
+ epatch ${FILESDIR}/CAN-2004-0626-death_packet.patch
eend
+# # Misc Fixes
+# epatch ${FILESDIR}/misc-2.6-iptables_headers.patch
+
# Cobalt Patches
if [ "${PROFILE_ARCH}" = "cobalt" ]; then
echo -e ""
@@ -103,16 +102,5 @@ src_unpack() {
S="${S}.cobalt"
fi
- # IP32 Support
- # The USE_IP32 variable below must be passed on the command line to the emerge call
- if [ "${USE_IP32}" = "yes" ]; then
- echo -e ""
- einfo ">>> Patching kernel with iluxa's minimal IP32 patchset ..."
- epatch ${WORKDIR}/ip32-iluxa-minpatchset-${IP32DIFFDATE}.diff
- KV="${KV}-ip32"
- cd ${WORKDIR}
- mv ${WORKDIR}/linux-${OKV}-${CVSDATE} ${WORKDIR}/linux-${OKV}-${CVSDATE}.ip32
- S="${S}.ip32"
- fi
kernel_universal_unpack
}
diff --git a/sys-kernel/mips-sources/mips-sources-2.6.6-r1.ebuild b/sys-kernel/mips-sources/mips-sources-2.6.6-r2.ebuild
index 072db947e4e2..53f28aa39eca 100644
--- a/sys-kernel/mips-sources/mips-sources-2.6.6-r1.ebuild
+++ b/sys-kernel/mips-sources/mips-sources-2.6.6-r2.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/mips-sources/mips-sources-2.6.6-r1.ebuild,v 1.3 2004/06/24 22:59:06 agriffis Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/mips-sources/mips-sources-2.6.6-r2.ebuild,v 1.1 2004/07/01 23:39:04 kumba Exp $
# Version Data
@@ -21,10 +21,11 @@ inherit kernel eutils
# INCLUDED:
# 1) linux sources from kernel.org
-# 2) linux-mips.org CVS snapshot diff from 10 May 2004
+# 2) linux-mips.org CVS snapshot diff from 04 Jun 2004
# 3) Patch to fix the Swap issue in 2.6.5+ (Credit: Peter Horton <cobalt@colonel-panic.org>
# 4) Iluxa's minimal O2 Patchset
-# 5) Patches for Cobalt support
+# 5) Security Fixes
+# 6) Patches for Cobalt support
DESCRIPTION="Linux-Mips CVS sources for MIPS-based machines, dated ${CVSDATE}"
@@ -65,10 +66,17 @@ src_unpack() {
# Bug in 2.6.6 that triggers a kernel oops when swap is activated
epatch ${FILESDIR}/mipscvs-2.6.5-swapbug-fix.patch
+ # iluxa's minpatchset for SGI O2
echo -e ""
einfo ">>> Patching kernel with iluxa's minimal IP32 patchset ..."
epatch ${WORKDIR}/ip32-iluxa-minpatchset-${IP32DIFFDATE}.diff
+ # Security Fixes
+ echo -e ""
+ ebegin "Applying Security Fixes"
+ epatch ${FILESDIR}/CAN-2004-0626-death_packet.patch
+ eend
+
# Cobalt Patches
if [ "${PROFILE_ARCH}" = "cobalt" ]; then
echo -e ""
diff --git a/sys-kernel/mips-sources/mips-sources-2.6.6.ebuild b/sys-kernel/mips-sources/mips-sources-2.6.6.ebuild
deleted file mode 100644
index 97601079e8e4..000000000000
--- a/sys-kernel/mips-sources/mips-sources-2.6.6.ebuild
+++ /dev/null
@@ -1,86 +0,0 @@
-# Copyright 1999-2004 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/mips-sources/mips-sources-2.6.6.ebuild,v 1.2 2004/06/24 22:59:06 agriffis Exp $
-
-
-# Version Data
-OKV=${PV/_/-}
-CVSDATE="20040510"
-COBALTPATCHVER="1.4"
-IP32DIFFDATE="20040402"
-EXTRAVERSION="-mipscvs-${CVSDATE}"
-KV="${OKV}${EXTRAVERSION}"
-
-# Miscellaneous stuff
-S=${WORKDIR}/linux-${OKV}-${CVSDATE}
-
-# Eclass stuff
-ETYPE="sources"
-inherit kernel eutils
-
-
-# INCLUDED:
-# 1) linux sources from kernel.org
-# 2) linux-mips.org CVS snapshot diff from 10 May 2004
-# 3) Patch to fix the Swap issue in 2.6.5+ (Credit: Peter Horton <cobalt@colonel-panic.org>
-# 4) Iluxa's minimal O2 Patchset
-# 5) Patches for Cobalt support
-
-
-DESCRIPTION="Linux-Mips CVS sources for MIPS-based machines, dated ${CVSDATE}"
-SRC_URI="mirror://kernel/linux/kernel/v2.6/linux-${OKV}.tar.bz2
- mirror://gentoo/mipscvs-${OKV}-${CVSDATE}.diff.bz2
- mirror://gentoo/cobalt-patches-26xx-${COBALTPATCHVER}.tar.bz2
- mirror://gentoo/ip32-iluxa-minpatchset-${IP32DIFFDATE}.diff.bz2"
-
-HOMEPAGE="http://www.linux-mips.org/"
-SLOT="${OKV}"
-PROVIDE="virtual/linux-sources"
-KEYWORDS="-*"
-
-
-pkg_setup() {
- # See if we're on a cobalt system (must use the cobalt-mips profile)
- if [ "${PROFILE_ARCH}" = "cobalt" ]; then
- echo -e ""
- einfo "Please keep in mind that the 2.6 kernel will NOT boot on Cobalt"
- einfo "systems that are still using the old Cobalt bootloader. In"
- einfo "order to boot a 2.6 kernel on Cobalt systems, you must be using"
- einfo "Peter Horton's new bootloader, which does not have the kernel"
- einfo "size limitation that the older bootloader has. If you want"
- einfo "to use the newer bootloader, make sure you have sys-boot/colo"
- einfo "installed and setup."
- echo -e ""
- fi
-}
-
-src_unpack() {
- unpack ${A}
- mv ${WORKDIR}/linux-${OKV} ${WORKDIR}/linux-${OKV}-${CVSDATE}
- cd ${S}
-
- # Update the vanilla sources with linux-mips CVS changes
- epatch ${WORKDIR}/mipscvs-${OKV}-${CVSDATE}.diff
-
- # Bug in 2.6.6 that triggers a kernel oops when swap is activated
- epatch ${FILESDIR}/mipscvs-2.6.5-swapbug-fix.patch
-
- echo -e ""
- einfo ">>> Patching kernel with iluxa's minimal IP32 patchset ..."
- epatch ${WORKDIR}/ip32-iluxa-minpatchset-${IP32DIFFDATE}.diff
-
- # Cobalt Patches
- if [ "${PROFILE_ARCH}" = "cobalt" ]; then
- echo -e ""
- einfo ">>> Patching kernel for Cobalt support ..."
- for x in ${WORKDIR}/cobalt-patches-26xx-${COBALTPATCHVER}/*.patch; do
- epatch ${x}
- done
- cp ${WORKDIR}/cobalt-patches-26xx-${COBALTPATCHVER}/cobalt-patches.txt ${S}
- cd ${WORKDIR}
- mv ${WORKDIR}/linux-${OKV}-${CVSDATE} ${WORKDIR}/linux-${OKV}-${CVSDATE}.cobalt
- S="${S}.cobalt"
- fi
-
- kernel_universal_unpack
-}
diff --git a/sys-kernel/mips-sources/mips-sources-2.6.7.ebuild b/sys-kernel/mips-sources/mips-sources-2.6.7-r1.ebuild
index 3cca55c67281..ce1a41facdc3 100644
--- a/sys-kernel/mips-sources/mips-sources-2.6.7.ebuild
+++ b/sys-kernel/mips-sources/mips-sources-2.6.7-r1.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/mips-sources/mips-sources-2.6.7.ebuild,v 1.2 2004/06/24 22:59:06 agriffis Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/mips-sources/mips-sources-2.6.7-r1.ebuild,v 1.1 2004/07/01 23:39:04 kumba Exp $
# Version Data
@@ -24,7 +24,9 @@ inherit kernel eutils
# 2) linux-mips.org CVS snapshot diff from 21 Jun 2004
# 3) Patch to fix an O2 compile-time error
# 4) Iluxa's minimal O2 Patchset
-# 5) Patches for Cobalt support
+# 5) Security fixes
+# 6) patch to fix iptables build failures
+# 7) Patches for Cobalt support
DESCRIPTION="Linux-Mips CVS sources for MIPS-based machines, dated ${CVSDATE}"
@@ -62,6 +64,7 @@ src_unpack() {
# Update the vanilla sources with linux-mips CVS changes
epatch ${WORKDIR}/mipscvs-${OKV}-${CVSDATE}.diff
+ # iluxa's minpatchset for SGI O2
echo -e ""
einfo ">>> Patching kernel with iluxa's minimal IP32 patchset ..."
epatch ${WORKDIR}/ip32-iluxa-minpatchset-${IP32DIFFDATE}.diff
@@ -69,6 +72,15 @@ src_unpack() {
# Fix a compile glitch for SGI O2/IP32
epatch ${FILESDIR}/mipscvs-2.6.7-maceisa_rtc_irq-fix.patch
+ # Security Fixes
+ echo -e ""
+ ebegin "Applying Security Fixes"
+ epatch ${FILESDIR}/CAN-2004-0626-death_packet.patch
+ eend
+
+ # Misc Fixes
+ epatch ${FILESDIR}/misc-2.6-iptables_headers.patch
+
# Cobalt Patches
if [ "${PROFILE_ARCH}" = "cobalt" ]; then
echo -e ""