summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Kinard <kumba@gentoo.org>2004-08-01 08:11:29 +0000
committerJoshua Kinard <kumba@gentoo.org>2004-08-01 08:11:29 +0000
commitad5f88ca2bb27a780a9786e2cc98583a854f71e7 (patch)
tree7b5aa11ed19bfacd2572c61c20f952ea897af918 /sys-kernel/mips-sources
parentMarking x11-plugins/wmfrog-0.16 stable on x86. Fixed dodoc, allowed use of Ge... (diff)
downloadgentoo-2-ad5f88ca2bb27a780a9786e2cc98583a854f71e7.tar.gz
gentoo-2-ad5f88ca2bb27a780a9786e2cc98583a854f71e7.tar.bz2
gentoo-2-ad5f88ca2bb27a780a9786e2cc98583a854f71e7.zip
bzipped two large patches to get under the 20KB size limit in the tree, and added CAN-2004-0497 to the 2.4.x ebuilds.
Diffstat (limited to 'sys-kernel/mips-sources')
-rw-r--r--sys-kernel/mips-sources/ChangeLog18
-rw-r--r--sys-kernel/mips-sources/Manifest26
-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-0495-2.4-sparse.patch.bz2bin0 -> 4392 bytes
-rw-r--r--sys-kernel/mips-sources/files/CAN-2004-0495_0496-2.6-sparse.patch911
-rw-r--r--sys-kernel/mips-sources/files/CAN-2004-0495_0496-2.6-sparse.patch.bz2bin0 -> 5880 bytes
-rw-r--r--sys-kernel/mips-sources/files/CAN-2004-0497-attr_gid.patch (renamed from sys-kernel/mips-sources/files/CAN-2004-0497-2.6-attr_gid.patch)0
-rw-r--r--sys-kernel/mips-sources/files/digest-mips-sources-2.4.25-r5 (renamed from sys-kernel/mips-sources/files/digest-mips-sources-2.4.25-r4)0
-rw-r--r--sys-kernel/mips-sources/files/digest-mips-sources-2.4.26-r33
-rw-r--r--sys-kernel/mips-sources/files/digest-mips-sources-2.4.26-r5 (renamed from sys-kernel/mips-sources/files/digest-mips-sources-2.4.26-r4)0
-rw-r--r--sys-kernel/mips-sources/mips-sources-2.4.25-r5.ebuild (renamed from sys-kernel/mips-sources/mips-sources-2.4.25-r4.ebuild)5
-rw-r--r--sys-kernel/mips-sources/mips-sources-2.4.26-r3.ebuild74
-rw-r--r--sys-kernel/mips-sources/mips-sources-2.4.26-r5.ebuild (renamed from sys-kernel/mips-sources/mips-sources-2.4.26-r4.ebuild)5
-rw-r--r--sys-kernel/mips-sources/mips-sources-2.6.4-r5.ebuild6
-rw-r--r--sys-kernel/mips-sources/mips-sources-2.6.5-r4.ebuild6
-rw-r--r--sys-kernel/mips-sources/mips-sources-2.6.6-r3.ebuild6
-rw-r--r--sys-kernel/mips-sources/mips-sources-2.6.7-r2.ebuild4
17 files changed, 46 insertions, 1673 deletions
diff --git a/sys-kernel/mips-sources/ChangeLog b/sys-kernel/mips-sources/ChangeLog
index a4361d289b58..09955aa9dfd9 100644
--- a/sys-kernel/mips-sources/ChangeLog
+++ b/sys-kernel/mips-sources/ChangeLog
@@ -1,6 +1,22 @@
# 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.49 2004/07/23 01:54:38 kumba Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/mips-sources/ChangeLog,v 1.50 2004/08/01 08:11:29 kumba Exp $
+
+*mips-sources-2.4.25-r5 (01 Aug 2004)
+
+ 01 Aug 2004; Joshua Kinard <kumba@gentoo.org>
+ -files/CAN-2004-0495-2.4-sparse.patch,
+ +files/CAN-2004-0495-2.4-sparse.patch.bz2,
+ -files/CAN-2004-0495_0496-2.6-sparse.patch,
+ +files/CAN-2004-0495_0496-2.6-sparse.patch.bz2,
+ -files/CAN-2004-0497-2.6-attr_gid.patch,
+ +files/CAN-2004-0497-attr_gid.patch, -mips-sources-2.4.25-r4.ebuild,
+ +mips-sources-2.4.25-r5.ebuild, -mips-sources-2.4.26-r3.ebuild,
+ -mips-sources-2.4.26-r4.ebuild, +mips-sources-2.4.26-r5.ebuild,
+ mips-sources-2.6.4-r5.ebuild, mips-sources-2.6.5-r4.ebuild,
+ mips-sources-2.6.6-r3.ebuild, mips-sources-2.6.7-r2.ebuild:
+ bzipped two large patches to get under the 20KB size limit in the tree, and
+ added CAN-2004-0497 to the 2.4.x ebuilds.
*mips-sources-2.6.5-r4 (22 Jul 2004)
diff --git a/sys-kernel/mips-sources/Manifest b/sys-kernel/mips-sources/Manifest
index 31ac62f5c693..87b555585d58 100644
--- a/sys-kernel/mips-sources/Manifest
+++ b/sys-kernel/mips-sources/Manifest
@@ -1,12 +1,11 @@
-MD5 1ecb6f1a34c40c2b40c85baa51d8c94d ChangeLog 17529
+MD5 f0bf5b5de2bd84fdac984e299ac2d3ff ChangeLog 18291
MD5 ad25a2a0b6ade60c13ad8040f3c319c6 metadata.xml 378
-MD5 45a85264645dca2b1b96dd9cea7214a4 mips-sources-2.4.25-r4.ebuild 2802
-MD5 9cc9e13952d9f6cb99ab8cc83bf7ca1a mips-sources-2.4.26-r3.ebuild 2159
-MD5 7f9f0b9a1286a82e3dfd6ba8bde1984c mips-sources-2.6.4-r5.ebuild 3463
-MD5 32ec4576d091948ffbc7486be647fe33 mips-sources-2.6.5-r4.ebuild 3531
-MD5 872553ec0758055e9c8cffd1e1fa4b99 mips-sources-2.6.6-r3.ebuild 3086
-MD5 40e0ddafb10021b4b65b7a24ab65fa09 mips-sources-2.6.7-r2.ebuild 3070
-MD5 e586436895900cdc5f9affe6a2a49659 mips-sources-2.4.26-r4.ebuild 2159
+MD5 ccd1c2c80758c58989f004764689f61d mips-sources-2.4.26-r5.ebuild 2213
+MD5 0d0c5dfca7c4409b98a670490ed52294 mips-sources-2.6.4-r5.ebuild 3463
+MD5 668c5857272685be8ad0d8aeacf67b2a mips-sources-2.6.5-r4.ebuild 3531
+MD5 e3b75d05891ed13993f3751ab8ad6f46 mips-sources-2.6.6-r3.ebuild 3086
+MD5 d536be8192716603b93e2a1d1d95deb5 mips-sources-2.6.7-r2.ebuild 3066
+MD5 fdc61693aa53f5ca92f44a8bdf5f9307 mips-sources-2.4.25-r5.ebuild 2856
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
@@ -20,10 +19,9 @@ 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 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 eb70acb35ba13daa4b1fda53cb61fc01 files/CAN-2004-0495_0496-2.6-sparse.patch 23861
-MD5 95708646470a95668e8789cd415844ed files/CAN-2004-0497-2.6-attr_gid.patch 846
+MD5 5c6bf5770bf59976861382f45bdeb7ff files/digest-mips-sources-2.4.25-r5 217
+MD5 1e86c5a6d88da0ee787ddda716a86502 files/digest-mips-sources-2.4.26-r5 218
+MD5 15a4113e4036cf81a9ff7e0ccedbccd8 files/CAN-2004-0495-2.4-sparse.patch.bz2 4392
MD5 8204afea1d572b49a4a80d8da4eef0c9 files/CAN-2004-0596-2.6-eql.patch 1033
MD5 497365345d8a39da49a8bd2495a17d8c files/digest-mips-sources-2.6.4-r5 299
MD5 fbb6766828584e454bf053286aad6207 files/mipscvs-2.4.25-makefile-fix.patch 428
@@ -35,10 +33,10 @@ MD5 db1aaa77e691906f3857e54e363c4ff4 files/mipscvs-2.6.5-unistd-linkage.patch 51
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 95708646470a95668e8789cd415844ed files/CAN-2004-0497-attr_gid.patch 846
MD5 0f66013f643c79c97fda489618a4e2fd files/CAN-2004-0535-2.4-e1000.patch 476
MD5 c91330cc5b4044b6f59696095c2dc0fb files/CAN-2004-0626-death_packet.patch 423
-MD5 1e86c5a6d88da0ee787ddda716a86502 files/digest-mips-sources-2.4.26-r4 218
MD5 eb9f26d678449f22ce5b7c00762eeb91 files/digest-mips-sources-2.6.5-r4 299
MD5 ff47ec7e8b4282773743aa192d3a73b6 files/digest-mips-sources-2.6.6-r3 299
MD5 5b7a4b7f8c4baea56b4cd1332cb0948b files/digest-mips-sources-2.6.7-r2 299
+MD5 301454f4e1998328b60ca75b5fb7b773 files/CAN-2004-0495_0496-2.6-sparse.patch.bz2 5880
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
deleted file mode 100644
index bea80eac69a9..000000000000
--- a/sys-kernel/mips-sources/files/CAN-2004-0495-2.4-sparse.patch
+++ /dev/null
@@ -1,655 +0,0 @@
---- 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-0495-2.4-sparse.patch.bz2 b/sys-kernel/mips-sources/files/CAN-2004-0495-2.4-sparse.patch.bz2
new file mode 100644
index 000000000000..df95ea20ecbe
--- /dev/null
+++ b/sys-kernel/mips-sources/files/CAN-2004-0495-2.4-sparse.patch.bz2
Binary files differ
diff --git a/sys-kernel/mips-sources/files/CAN-2004-0495_0496-2.6-sparse.patch b/sys-kernel/mips-sources/files/CAN-2004-0495_0496-2.6-sparse.patch
deleted file mode 100644
index 6f67f9fdc912..000000000000
--- a/sys-kernel/mips-sources/files/CAN-2004-0495_0496-2.6-sparse.patch
+++ /dev/null
@@ -1,911 +0,0 @@
-# <plasmaroo@gentoo.org>
-# This is a patch which should fix both CAN-2004-0495 and CAN-2004-0496 on 2.6...
-
-# * -0495 applies to 2.4 as well; use a separate patch for that.
-# * -0496 is a 2.6 only issue which this patch addresses.
-
---- 1.20/net/decnet/dn_dev.c 2004-07-21 14:50:27 -07:00
-+++ 1.21/net/decnet/dn_dev.c 2004-07-21 14:50:27 -07:00
-@@ -1294,35 +1294,43 @@
- * it as a compile time option. Probably you should use the
- * rtnetlink interface instead.
- */
--int dnet_gifconf(struct net_device *dev, char *buf, int len)
-+int dnet_gifconf(struct net_device *dev, char __user *buf, int len)
- {
- 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;
- }
---- 1.90/drivers/net/wireless/airo.c 2004-07-21 14:48:16 -07:00
-+++ 1.91/drivers/net/wireless/airo.c 2004-07-21 14:48:16 -07:00
-@@ -4272,12 +4272,12 @@
- */
-
- static ssize_t proc_read( struct file *file,
-- char *buffer,
-+ char __user *buffer,
- size_t len,
- loff_t *offset);
-
- static ssize_t proc_write( struct file *file,
-- const char *buffer,
-+ const char __user *buffer,
- size_t len,
- loff_t *offset );
- static int proc_close( struct inode *inode, struct file *file );
-@@ -4482,23 +4482,26 @@
- * to supply the data.
- */
- static ssize_t proc_read( struct file *file,
-- char *buffer,
-+ char __user *buffer,
- 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;
- }
-
- /*
-@@ -4506,28 +4509,26 @@
- * to supply the data.
- */
- static ssize_t proc_write( struct file *file,
-- const char *buffer,
-+ const char __user *buffer,
- 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;
-+ *offset = pos + len;
-+ return len;
- }
-
- static int proc_status_open( struct inode *inode, struct file *file ) {
---- 1.14/sound/oss/mpu401.c 2004-07-21 14:44:27 -07:00
-+++ 1.15/sound/oss/mpu401.c 2004-07-21 14:44:27 -07:00
-@@ -728,7 +728,7 @@
- return 0;
- }
-
--static int mpu401_ioctl(int dev, unsigned cmd, caddr_t arg)
-+static int mpu401_ioctl(int dev, unsigned cmd, void __user *arg)
- {
- struct mpu_config *devc;
- mpu_command_rec rec;
-@@ -742,7 +742,7 @@
- printk(KERN_WARNING "mpu401: Intelligent mode not supported by the HW\n");
- return -EINVAL;
- }
-- if (get_user(val, (int *)arg))
-+ if (get_user(val, (int __user *)arg))
- return -EFAULT;
- set_uart_mode(dev, devc, !val);
- return 0;
-@@ -772,8 +772,7 @@
- */
- }
-
--static int mpu_synth_ioctl(int dev,
-- unsigned int cmd, caddr_t arg)
-+static int mpu_synth_ioctl(int dev, unsigned int cmd, void __user *arg)
- {
- int midi_dev;
- struct mpu_config *devc;
-@@ -789,8 +788,7 @@
- {
-
- case SNDCTL_SYNTH_INFO:
-- if (copy_to_user((&((char *) arg)[0]),
-- (char *) &mpu_synth_info[midi_dev],
-+ if (copy_to_user(arg, &mpu_synth_info[midi_dev],
- sizeof(struct synth_info)))
- return -EFAULT;
- return 0;
-@@ -1508,17 +1506,19 @@
- return curr_ticks;
- }
-
--static int mpu_timer_ioctl(int dev, unsigned int command, caddr_t arg)
-+static int mpu_timer_ioctl(int dev, unsigned int command, void __user *arg)
- {
- int midi_dev = sound_timer_devs[dev]->devlink;
-+ int __user *p = (int __user *)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)
-@@ -1530,7 +1530,9 @@
- 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;
-
-@@ -1554,11 +1556,13 @@
- case SNDCTL_TMR_TIMEBASE:
- {
- 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;
-
-@@ -1567,7 +1571,8 @@
- int val;
- int ret;
-
-- val = *(int *) arg;
-+ if (get_user(val, p))
-+ return -EFAULT;
-
- if (val)
- {
-@@ -1582,26 +1587,35 @@
- }
- curr_tempo = val;
- }
-- return (*(int *) arg = curr_tempo);
-+ if (put_user(curr_tempo, p))
-+ return -EFAULT;
-+ return curr_tempo;
- }
- break;
-
- case SNDCTL_SEQ_CTRLRATE:
- {
- int val;
-+ if (get_user(val, p))
-+ return -EFAULT;
-
-- val = *(int *) arg;
- 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;
-
---- 1.11/drivers/acpi/asus_acpi.c 2004-07-21 14:16:19 -07:00
-+++ 1.12/drivers/acpi/asus_acpi.c 2004-07-21 14:16:19 -07:00
-@@ -40,6 +40,7 @@
- #include <linux/proc_fs.h>
- #include <acpi/acpi_drivers.h>
- #include <acpi/acpi_bus.h>
-+#include <asm/uaccess.h>
-
- #define ASUS_ACPI_VERSION "0.28"
-
-@@ -480,16 +481,31 @@
- return (hotk->status & ledmask) ? 1 : 0;
- }
-
-+static int parse_arg(const char __user *buf, unsigned long count, int *val)
-+{
-+ char s[32];
-+ if (!count)
-+ return 0;
-+ if (count > 31)
-+ return -EINVAL;
-+ if (copy_from_user(s, buf, count))
-+ return -EFAULT;
-+ s[count] = 0;
-+ if (sscanf(s, "%i", val) != 1)
-+ return -EINVAL;
-+ return count;
-+}
-
- /* FIXME: kill extraneous args so it can be called independently */
- static int
--write_led(const char *buffer, unsigned long count, struct asus_hotk *hotk,
-+write_led(const char __user *buffer, unsigned long count, struct asus_hotk *hotk,
- char *ledname, int ledmask, int invert)
- {
- int value;
- int led_out = 0;
-
-- if (sscanf(buffer, "%i", &value) == 1)
-+ count = parse_arg(buffer, count, &value);
-+ if (count > 0)
- led_out = value ? 1 : 0;
-
- hotk->status =
-@@ -518,7 +534,7 @@
-
-
- static int
--proc_write_mled(struct file *file, const char *buffer,
-+proc_write_mled(struct file *file, const char __user *buffer,
- unsigned long count, void *data)
- {
- struct asus_hotk *hotk = (struct asus_hotk *) data;
-@@ -537,7 +553,7 @@
- }
-
- static int
--proc_write_wled(struct file *file, const char *buffer,
-+proc_write_wled(struct file *file, const char __user *buffer,
- unsigned long count, void *data)
- {
- struct asus_hotk *hotk = (struct asus_hotk *) data;
-@@ -556,7 +572,7 @@
- }
-
- static int
--proc_write_tled(struct file *file, const char *buffer,
-+proc_write_tled(struct file *file, const char __user *buffer,
- unsigned long count, void *data)
- {
- struct asus_hotk *hotk = (struct asus_hotk *) data;
-@@ -640,13 +656,14 @@
-
-
- static int
--proc_write_lcd(struct file *file, const char *buffer,
-+proc_write_lcd(struct file *file, const char __user *buffer,
- unsigned long count, void *data)
- {
- int value;
- struct asus_hotk *hotk = (struct asus_hotk *) data;
-
-- if (sscanf(buffer, "%i", &value) == 1)
-+ count = parse_arg(buffer, count, &value);
-+ if (count > 0)
- set_lcd_state(hotk, value);
- return count;
- }
-@@ -707,17 +724,18 @@
- }
-
- static int
--proc_write_brn(struct file *file, const char *buffer,
-+proc_write_brn(struct file *file, const char __user *buffer,
- unsigned long count, void *data)
- {
- int value;
- struct asus_hotk *hotk = (struct asus_hotk *) data;
-
-- if (sscanf(buffer, "%d", &value) == 1) {
-+ count = parse_arg(buffer, count, &value);
-+ if (count > 0) {
- value = (0 < value) ? ((15 < value) ? 15 : value) : 0;
- /* 0 <= value <= 15 */
- set_brightness(value, hotk);
-- } else {
-+ } else if (count < 0) {
- printk(KERN_WARNING "Asus ACPI: Error reading user input\n");
- }
-
-@@ -756,17 +774,17 @@
- * simultaneously, so be warned. See the acpi4asus README for more info.
- */
- static int
--proc_write_disp(struct file *file, const char *buffer,
-+proc_write_disp(struct file *file, const char __user *buffer,
- unsigned long count, void *data)
- {
- int value;
- struct asus_hotk *hotk = (struct asus_hotk *) data;
-
-- if (sscanf(buffer, "%d", &value) == 1)
-+ count = parse_arg(buffer, count, &value);
-+ if (count > 0)
- set_display(value, hotk);
-- else {
-+ else if (count < 0)
- printk(KERN_WARNING "Asus ACPI: Error reading user input\n");
-- }
-
- return count;
- }
-@@ -774,7 +792,7 @@
-
- typedef int (proc_readfunc)(char *page, char **start, off_t off, int count,
- int *eof, void *data);
--typedef int (proc_writefunc)(struct file *file, const char *buffer,
-+typedef int (proc_writefunc)(struct file *file, const char __user *buffer,
- unsigned long count, void *data);
-
- static int
---- 1.30/sound/core/timer.c 2004-07-21 14:22:06 -07:00
-+++ 1.31/sound/core/timer.c 2004-07-21 14:22:06 -07:00
-@@ -1437,7 +1437,7 @@
- err = -ENODEV;
- }
- up(&register_mutex);
-- if (err >= 0 && copy_from_user(_gstatus, &gstatus, sizeof(gstatus)))
-+ if (err >= 0 && copy_to_user(_gstatus, &gstatus, sizeof(gstatus)))
- err = -EFAULT;
- return err;
- }
---- 1.11/sound/oss/pss.c 2004-07-21 14:25:23 -07:00
-+++ 1.12/sound/oss/pss.c 2004-07-21 14:25:23 -07:00
-@@ -453,20 +453,36 @@
- }
- }
-
--static void arg_to_volume_mono(unsigned int volume, int *aleft)
-+static int set_volume_mono(unsigned __user *p, int *aleft)
- {
- int left;
-+ unsigned volume;
-+ if (get_user(volume, 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(unsigned __user *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, 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)
-@@ -479,7 +495,7 @@
- return ((right << 8) | left);
- }
-
--static int call_ad_mixer(pss_confdata *devc,unsigned int cmd, caddr_t arg)
-+static int call_ad_mixer(pss_confdata *devc,unsigned int cmd, void __user *arg)
- {
- if (devc->ad_mixer_dev != NO_WSS_MIXER)
- return mixer_devs[devc->ad_mixer_dev]->ioctl(devc->ad_mixer_dev, cmd, arg);
-@@ -487,7 +503,7 @@
- return -EINVAL;
- }
-
--static int pss_mixer_ioctl (int dev, unsigned int cmd, caddr_t arg)
-+static int pss_mixer_ioctl (int dev, unsigned int cmd, void __user *arg)
- {
- pss_confdata *devc = mixer_devs[dev]->devc;
- int cmdf = cmd & 0xff;
-@@ -513,33 +529,38 @@
- return call_ad_mixer(devc, cmd, arg);
- else
- {
-- if (*(int *)arg != 0)
-+ int v;
-+ if (get_user(v, (int __user *)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);
-
-@@ -549,54 +570,67 @@
- }
- 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 __user *)arg))
-+ return -EFAULT;
-+ val &= and_mask;
-+ val |= or_mask;
-+ if (put_user(val, (int __user *)arg))
-+ return -EFAULT;
-+ return val;
- }
- }
-
-@@ -803,7 +837,7 @@
- return 0;
- }
-
--static int pss_coproc_ioctl(void *dev_info, unsigned int cmd, caddr_t arg, int local)
-+static int pss_coproc_ioctl(void *dev_info, unsigned int cmd, void __user *arg, int local)
- {
- copr_buffer *buf;
- copr_msg *mbuf;
---- 1.15/sound/oss/msnd_pinnacle.c 2004-07-21 14:51:56 -07:00
-+++ 1.16/sound/oss/msnd_pinnacle.c 2004-07-21 14:51:56 -07:00
-@@ -809,7 +809,7 @@
-
- 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;
-
-@@ -830,13 +830,10 @@
- /* 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;
-@@ -858,21 +855,16 @@
- 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;
-@@ -899,30 +891,43 @@
- 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);
-@@ -931,41 +936,57 @@
- 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);
-@@ -973,11 +994,14 @@
- &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;
- }
-
---- 1.2/sound/oss/msnd.h 2004-07-21 14:52:24 -07:00
-+++ 1.3/sound/oss/msnd.h 2004-07-21 14:52:24 -07:00
-@@ -266,8 +266,8 @@
- 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);
---- 1.8/sound/oss/msnd.c 2004-07-21 14:52:37 -07:00
-+++ 1.9/sound/oss/msnd.c 2004-07-21 14:52:37 -07:00
-@@ -139,13 +139,10 @@
- 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;
-@@ -161,11 +158,7 @@
- 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;
-@@ -177,13 +170,10 @@
- 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;
-@@ -199,11 +189,7 @@
- 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;
diff --git a/sys-kernel/mips-sources/files/CAN-2004-0495_0496-2.6-sparse.patch.bz2 b/sys-kernel/mips-sources/files/CAN-2004-0495_0496-2.6-sparse.patch.bz2
new file mode 100644
index 000000000000..b626020ec6af
--- /dev/null
+++ b/sys-kernel/mips-sources/files/CAN-2004-0495_0496-2.6-sparse.patch.bz2
Binary files differ
diff --git a/sys-kernel/mips-sources/files/CAN-2004-0497-2.6-attr_gid.patch b/sys-kernel/mips-sources/files/CAN-2004-0497-attr_gid.patch
index 41b3196f84ea..41b3196f84ea 100644
--- a/sys-kernel/mips-sources/files/CAN-2004-0497-2.6-attr_gid.patch
+++ b/sys-kernel/mips-sources/files/CAN-2004-0497-attr_gid.patch
diff --git a/sys-kernel/mips-sources/files/digest-mips-sources-2.4.25-r4 b/sys-kernel/mips-sources/files/digest-mips-sources-2.4.25-r5
index bb37c137f1e2..bb37c137f1e2 100644
--- a/sys-kernel/mips-sources/files/digest-mips-sources-2.4.25-r4
+++ b/sys-kernel/mips-sources/files/digest-mips-sources-2.4.25-r5
diff --git a/sys-kernel/mips-sources/files/digest-mips-sources-2.4.26-r3 b/sys-kernel/mips-sources/files/digest-mips-sources-2.4.26-r3
deleted file mode 100644
index 6f818deaa2b8..000000000000
--- a/sys-kernel/mips-sources/files/digest-mips-sources-2.4.26-r3
+++ /dev/null
@@ -1,3 +0,0 @@
-MD5 88d7aefa03c92739cb70298a0b486e2c linux-2.4.26.tar.bz2 30772389
-MD5 020f2e4ce6cf97c40365440b7a9de0bf mipscvs-2.4.26-20040415.diff.bz2 194397
-MD5 18ad839cec259e123f743432dca994e3 cobalt-patches-24xx-1.4.tar.bz2 5809
diff --git a/sys-kernel/mips-sources/files/digest-mips-sources-2.4.26-r4 b/sys-kernel/mips-sources/files/digest-mips-sources-2.4.26-r5
index da6d2d913f2f..da6d2d913f2f 100644
--- a/sys-kernel/mips-sources/files/digest-mips-sources-2.4.26-r4
+++ b/sys-kernel/mips-sources/files/digest-mips-sources-2.4.26-r5
diff --git a/sys-kernel/mips-sources/mips-sources-2.4.25-r4.ebuild b/sys-kernel/mips-sources/mips-sources-2.4.25-r5.ebuild
index 1884114be253..911fa91093bb 100644
--- a/sys-kernel/mips-sources/mips-sources-2.4.25-r4.ebuild
+++ b/sys-kernel/mips-sources/mips-sources-2.4.25-r5.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-r4.ebuild,v 1.2 2004/07/13 09:28:43 kumba Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/mips-sources/mips-sources-2.4.25-r5.ebuild,v 1.1 2004/08/01 08:11:29 kumba Exp $
# Version Data
@@ -66,7 +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-0495-2.4-sparse.patch.bz2
+ epatch ${FILESDIR}/CAN-2004-0497-attr_gid.patch
epatch ${FILESDIR}/CAN-2004-0535-2.4-e1000.patch
eend
diff --git a/sys-kernel/mips-sources/mips-sources-2.4.26-r3.ebuild b/sys-kernel/mips-sources/mips-sources-2.4.26-r3.ebuild
deleted file mode 100644
index 1bd22d846803..000000000000
--- a/sys-kernel/mips-sources/mips-sources-2.4.26-r3.ebuild
+++ /dev/null
@@ -1,74 +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.4.26-r3.ebuild,v 1.2 2004/07/13 09:28:43 kumba Exp $
-
-
-# Version Data
-OKV=${PV/_/-}
-CVSDATE="20040415"
-EXTRAVERSION="-mipscvs-${CVSDATE}"
-KV="${OKV}${EXTRAVERSION}"
-COBALTPATCHVER="1.4"
-
-# Miscellaneous stuff
-S=${WORKDIR}/linux-${OKV}-${CVSDATE}
-IUSE=""
-
-# Eclass stuff
-ETYPE="sources"
-inherit kernel eutils
-
-
-# INCLUDED:
-# 1) linux sources from kernel.org
-# 2) linux-mips.org CVS snapshot diff from 15 Apr 2004
-# 3) patch to fix arch/mips[64]/Makefile to pass appropriate CFLAGS
-# 4) patch to fix the mips64 Makefile to allow building of mips64 kernels
-# 5) iso9660 fix
-# 6) Patches for Cobalt support
-
-
-DESCRIPTION="Linux-Mips CVS sources for MIPS-based machines, dated ${CVSDATE}"
-SRC_URI="mirror://kernel/linux/kernel/v2.4/linux-${OKV}.tar.bz2
- mirror://gentoo/mipscvs-${OKV}-${CVSDATE}.diff.bz2
- mirror://gentoo/cobalt-patches-24xx-${COBALTPATCHVER}.tar.bz2"
-HOMEPAGE="http://www.linux-mips.org/"
-SLOT="${OKV}"
-PROVIDE="virtual/linux-sources"
-KEYWORDS="-* mips"
-
-
-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
-
- # Patch arch/mips/Makefile for gcc (Pass -mips3/-mips4 for r4k/r5k cpus)
- epatch ${FILESDIR}/mipscvs-${OKV}-makefile-fix.patch
-
- # Security Fixes
- 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
- if [ "${PROFILE_ARCH}" = "cobalt" ]; then
- echo -e ""
- einfo ">>> Patching kernel for Cobalt support ..."
- for x in ${WORKDIR}/cobalt-patches-24xx-${COBALTPATCHVER}/*.patch; do
- epatch ${x}
- done
- cp ${WORKDIR}/cobalt-patches-24xx-${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.4.26-r4.ebuild b/sys-kernel/mips-sources/mips-sources-2.4.26-r5.ebuild
index 30e8b28d6eb2..a1c306e62655 100644
--- a/sys-kernel/mips-sources/mips-sources-2.4.26-r4.ebuild
+++ b/sys-kernel/mips-sources/mips-sources-2.4.26-r5.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-r4.ebuild,v 1.1 2004/07/13 09:28:43 kumba Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/mips-sources/mips-sources-2.4.26-r5.ebuild,v 1.1 2004/08/01 08:11:29 kumba Exp $
# Version Data
@@ -53,7 +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-0495-2.4-sparse.patch.bz2
+ epatch ${FILESDIR}/CAN-2004-0497-attr_gid.patch
epatch ${FILESDIR}/CAN-2004-0535-2.4-e1000.patch
eend
diff --git a/sys-kernel/mips-sources/mips-sources-2.6.4-r5.ebuild b/sys-kernel/mips-sources/mips-sources-2.6.4-r5.ebuild
index f2e7ded37be0..368c290756d8 100644
--- a/sys-kernel/mips-sources/mips-sources-2.6.4-r5.ebuild
+++ b/sys-kernel/mips-sources/mips-sources-2.6.4-r5.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-r5.ebuild,v 1.1 2004/07/23 01:54:38 kumba Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/mips-sources/mips-sources-2.6.4-r5.ebuild,v 1.2 2004/08/01 08:11:29 kumba Exp $
# Version Data
@@ -82,8 +82,8 @@ 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-0495_0496-2.6-sparse.patch
- epatch ${FILESDIR}/CAN-2004-0497-2.6-attr_gid.patch
+ epatch ${FILESDIR}/CAN-2004-0495_0496-2.6-sparse.patch.bz2
+ epatch ${FILESDIR}/CAN-2004-0497-attr_gid.patch
epatch ${FILESDIR}/CAN-2004-0596-2.6-eql.patch
epatch ${FILESDIR}/CAN-2004-0626-death_packet.patch
eend
diff --git a/sys-kernel/mips-sources/mips-sources-2.6.5-r4.ebuild b/sys-kernel/mips-sources/mips-sources-2.6.5-r4.ebuild
index 45f3b695cfba..60eaa19fedf5 100644
--- a/sys-kernel/mips-sources/mips-sources-2.6.5-r4.ebuild
+++ b/sys-kernel/mips-sources/mips-sources-2.6.5-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.5-r4.ebuild,v 1.1 2004/07/23 01:54:38 kumba Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/mips-sources/mips-sources-2.6.5-r4.ebuild,v 1.2 2004/08/01 08:11:29 kumba Exp $
# Version Data
@@ -84,8 +84,8 @@ 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-0495_0496-2.6-sparse.patch
- epatch ${FILESDIR}/CAN-2004-0497-2.6-attr_gid.patch
+ epatch ${FILESDIR}/CAN-2004-0495_0496-2.6-sparse.patch.bz2
+ epatch ${FILESDIR}/CAN-2004-0497-attr_gid.patch
epatch ${FILESDIR}/CAN-2004-0596-2.6-eql.patch
epatch ${FILESDIR}/CAN-2004-0626-death_packet.patch
eend
diff --git a/sys-kernel/mips-sources/mips-sources-2.6.6-r3.ebuild b/sys-kernel/mips-sources/mips-sources-2.6.6-r3.ebuild
index b499cb204c18..edaaf9c29961 100644
--- a/sys-kernel/mips-sources/mips-sources-2.6.6-r3.ebuild
+++ b/sys-kernel/mips-sources/mips-sources-2.6.6-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.6-r3.ebuild,v 1.1 2004/07/23 01:54:38 kumba Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/mips-sources/mips-sources-2.6.6-r3.ebuild,v 1.2 2004/08/01 08:11:29 kumba Exp $
# Version Data
@@ -75,8 +75,8 @@ src_unpack() {
# Security Fixes
echo -e ""
ebegin "Applying Security Fixes"
- epatch ${FILESDIR}/CAN-2004-0495_0496-2.6-sparse.patch
- epatch ${FILESDIR}/CAN-2004-0497-2.6-attr_gid.patch
+ epatch ${FILESDIR}/CAN-2004-0495_0496-2.6-sparse.patch.bz2
+ epatch ${FILESDIR}/CAN-2004-0497-attr_gid.patch
epatch ${FILESDIR}/CAN-2004-0596-2.6-eql.patch
epatch ${FILESDIR}/CAN-2004-0626-death_packet.patch
eend
diff --git a/sys-kernel/mips-sources/mips-sources-2.6.7-r2.ebuild b/sys-kernel/mips-sources/mips-sources-2.6.7-r2.ebuild
index 830598846e59..d6f8f82b6e39 100644
--- a/sys-kernel/mips-sources/mips-sources-2.6.7-r2.ebuild
+++ b/sys-kernel/mips-sources/mips-sources-2.6.7-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.7-r2.ebuild,v 1.1 2004/07/23 01:54:38 kumba Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/mips-sources/mips-sources-2.6.7-r2.ebuild,v 1.2 2004/08/01 08:11:29 kumba Exp $
# Version Data
@@ -76,7 +76,7 @@ src_unpack() {
# Security Fixes
echo -e ""
ebegin "Applying Security Fixes"
- epatch ${FILESDIR}/CAN-2004-0497-2.6-attr_gid.patch
+ epatch ${FILESDIR}/CAN-2004-0497-attr_gid.patch
epatch ${FILESDIR}/CAN-2004-0596-2.6-eql.patch
epatch ${FILESDIR}/CAN-2004-0626-death_packet.patch
eend