summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Yamin <plasmaroo@gentoo.org>2004-10-21 18:15:54 +0000
committerTim Yamin <plasmaroo@gentoo.org>2004-10-21 18:15:54 +0000
commit6a4a800d2fe6c5092391b3cd89ac0a1cdba91c9c (patch)
tree50f4ed1c548e4f3b650491e151346c3d1f7649e1 /sys-kernel/usermode-sources
parentVersion bump. (Manifest recommit) (diff)
downloadgentoo-2-6a4a800d2fe6c5092391b3cd89ac0a1cdba91c9c.tar.gz
gentoo-2-6a4a800d2fe6c5092391b3cd89ac0a1cdba91c9c.tar.bz2
gentoo-2-6a4a800d2fe6c5092391b3cd89ac0a1cdba91c9c.zip
Version bump - closes bug #68278. Old version removed due to security issues, bug #68375.
Diffstat (limited to 'sys-kernel/usermode-sources')
-rw-r--r--sys-kernel/usermode-sources/ChangeLog14
-rw-r--r--sys-kernel/usermode-sources/Manifest37
-rw-r--r--sys-kernel/usermode-sources/files/digest-usermode-sources-2.6.6-r63
-rw-r--r--sys-kernel/usermode-sources/files/digest-usermode-sources-2.6.8.1-r12
-rw-r--r--sys-kernel/usermode-sources/files/usermode-sources-2.6.6.CAN-2004-0495-0496.patch911
-rw-r--r--sys-kernel/usermode-sources/files/usermode-sources-2.6.6.FPULockup-53804.patch24
-rw-r--r--sys-kernel/usermode-sources/files/usermode-sources-2.6.6.ProcPerms.patch49
-rw-r--r--sys-kernel/usermode-sources/files/usermode-sources-2.6.CAN-2004-0596.patch46
-rw-r--r--sys-kernel/usermode-sources/files/usermode-sources-2.6.IPTables-RDoS.patch11
-rw-r--r--sys-kernel/usermode-sources/usermode-sources-2.6.8.1-r1.ebuild (renamed from sys-kernel/usermode-sources/usermode-sources-2.6.6-r6.ebuild)16
10 files changed, 35 insertions, 1078 deletions
diff --git a/sys-kernel/usermode-sources/ChangeLog b/sys-kernel/usermode-sources/ChangeLog
index 3f994d323a5d..8817de59647f 100644
--- a/sys-kernel/usermode-sources/ChangeLog
+++ b/sys-kernel/usermode-sources/ChangeLog
@@ -1,6 +1,18 @@
# ChangeLog for sys-kernel/usermode-sources
# Copyright 2002-2004 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/usermode-sources/ChangeLog,v 1.47 2004/10/20 21:21:48 hansmi Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/usermode-sources/ChangeLog,v 1.48 2004/10/21 18:15:54 plasmaroo Exp $
+
+*usermode-sources-2.6.8.1-r1 (21 Oct 2004)
+
+ 21 Oct 2004; <plasmaroo@gentoo.org> -usermode-sources-2.6.6-r6.ebuild,
+ +usermode-sources-2.6.8.1-r1.ebuild,
+ -files/usermode-sources-2.6.6.CAN-2004-0495-0496.patch,
+ -files/usermode-sources-2.6.6.FPULockup-53804.patch,
+ -files/usermode-sources-2.6.6.ProcPerms.patch,
+ -files/usermode-sources-2.6.CAN-2004-0596.patch,
+ -files/usermode-sources-2.6.IPTables-RDoS.patch:
+ Version bump - closes bug #68278. Old version removed due to security issues,
+ bug #68375.
20 Oct 2004; Michael Hanselmann <hansmi@gentoo.org>
usermode-sources-2.6.6-r6.ebuild:
diff --git a/sys-kernel/usermode-sources/Manifest b/sys-kernel/usermode-sources/Manifest
index 6f3f09793d02..95f5a0f56ccf 100644
--- a/sys-kernel/usermode-sources/Manifest
+++ b/sys-kernel/usermode-sources/Manifest
@@ -1,29 +1,24 @@
-MD5 7a710225b7d53d08c4dca7162362b938 usermode-sources-2.4.26-r6.ebuild 2364
+MD5 141efdf526a9b2f09078f2687b91033e ChangeLog 12506
MD5 a76f13cb946fc2720c04b189616da2de metadata.xml 159
-MD5 ab0b376992a6aec9f7504a673c32e513 ChangeLog 11991
-MD5 99bf3dd3fb900685e801e52f1764c1d1 usermode-sources-2.6.6-r6.ebuild 1224
+MD5 90efbffee6d05b555af1756ade9d2258 usermode-sources-2.6.8.1-r1.ebuild 841
+MD5 7a710225b7d53d08c4dca7162362b938 usermode-sources-2.4.26-r6.ebuild 2364
MD5 b4107555322557e7b03f23f2ed852bf5 usermode-sources-2.4.24-r9.ebuild 3092
-MD5 2cb392a6f9f8724f6a40b85afac9d47f files/digest-usermode-sources-2.4.24-r9 210
-MD5 c9da1bc82b906f6abc648c056e7bf662 files/usermode-sources-2.4.FPULockup-53804.patch 354
-MD5 147fec50180ad91b6260fc7201dcb90f files/usermode-sources-2.4.24.CAN-2004-0010.patch 6050
-MD5 21f3a4f186017d925067335e24db36a1 files/usermode-sources-2.4.24.CAN-2004-0109.patch 1877
MD5 d1ccc2047be533c992f67270a150a210 files/usermode-sources-2.4.cmdlineLeak.patch 388
-MD5 02c062ec3a11a6a1498cdf0b1716c90a files/usermode-sources-2.6.6.FPULockup-53804.patch 895
+MD5 9c816c892d6e3d3f0b7b77d3d503ab10 files/usermode-sources-2.4.24.CAN-2004-0075.patch 634
+MD5 174438d215b70cad5ffb00ca8123c062 files/usermode-sources-2.4.24.munmap.patch 837
+MD5 c460ea130cb4ae84a5063ba044e3ce72 files/usermode-sources-2.4.24.CAN-2004-0427.patch 460
+MD5 147fec50180ad91b6260fc7201dcb90f files/usermode-sources-2.4.24.CAN-2004-0010.patch 6050
MD5 dc18e982f8149588a291956481885a8c files/usermode-sources-2.4.CAN-2004-0495.patch 17549
-MD5 b738cb0120a32aa92cfcfdbd564dd21f files/usermode-sources-2.6.6.ProcPerms.patch 1368
-MD5 c2510fe1891f5a9effb12c2196922206 files/usermode-sources-2.6.cmdlineLeak.patch 281
-MD5 95708646470a95668e8789cd415844ed files/usermode-sources.CAN-2004-0497.patch 846
-MD5 eb70acb35ba13daa4b1fda53cb61fc01 files/usermode-sources-2.6.6.CAN-2004-0495-0496.patch 23861
-MD5 eaeda68a619caaddd5b8fdc5e7c39932 files/usermode-sources-2.4.24.CAN-2004-0177.patch 384
+MD5 9a62b569225a94c0fdfa491097a1da4f files/digest-usermode-sources-2.6.8.1-r1 136
+MD5 de75cfa969ed092578d9ddda6c5be334 files/usermode-sources-2.4.24.CAN-2004-0181.patch 1233
+MD5 ac42024b6e6ee1e2165914db4b22a61c files/usermode-sources-2.4.24.CAN-2004-0178.patch 424
MD5 d4a740ae56c2049247083af387a22a85 files/usermode-sources-2.4.26.CAN-2004-0394.patch 350
-MD5 9c816c892d6e3d3f0b7b77d3d503ab10 files/usermode-sources-2.4.24.CAN-2004-0075.patch 634
MD5 60d25ff310fc6abfdce39ec9e47345af files/usermode-sources-2.4.CAN-2004-0685.patch 2809
-MD5 39361f8d16b1fe5891aab62e92f8cd30 files/usermode-sources-2.6.IPTables-RDoS.patch 390
MD5 0f66013f643c79c97fda489618a4e2fd files/usermode-sources-2.4.CAN-2004-0535.patch 476
-MD5 174438d215b70cad5ffb00ca8123c062 files/usermode-sources-2.4.24.munmap.patch 837
-MD5 df4521ac96bfad5fce730fda7300a611 files/digest-usermode-sources-2.6.6-r6 208
-MD5 ac42024b6e6ee1e2165914db4b22a61c files/usermode-sources-2.4.24.CAN-2004-0178.patch 424
-MD5 de75cfa969ed092578d9ddda6c5be334 files/usermode-sources-2.4.24.CAN-2004-0181.patch 1233
-MD5 c460ea130cb4ae84a5063ba044e3ce72 files/usermode-sources-2.4.24.CAN-2004-0427.patch 460
+MD5 2cb392a6f9f8724f6a40b85afac9d47f files/digest-usermode-sources-2.4.24-r9 210
+MD5 c2510fe1891f5a9effb12c2196922206 files/usermode-sources-2.6.cmdlineLeak.patch 281
+MD5 95708646470a95668e8789cd415844ed files/usermode-sources.CAN-2004-0497.patch 846
MD5 23a31ff55169c3f9a2c391af8cb91cd9 files/digest-usermode-sources-2.4.26-r6 210
-MD5 8204afea1d572b49a4a80d8da4eef0c9 files/usermode-sources-2.6.CAN-2004-0596.patch 1033
+MD5 c9da1bc82b906f6abc648c056e7bf662 files/usermode-sources-2.4.FPULockup-53804.patch 354
+MD5 eaeda68a619caaddd5b8fdc5e7c39932 files/usermode-sources-2.4.24.CAN-2004-0177.patch 384
+MD5 21f3a4f186017d925067335e24db36a1 files/usermode-sources-2.4.24.CAN-2004-0109.patch 1877
diff --git a/sys-kernel/usermode-sources/files/digest-usermode-sources-2.6.6-r6 b/sys-kernel/usermode-sources/files/digest-usermode-sources-2.6.6-r6
deleted file mode 100644
index 101ddaeed671..000000000000
--- a/sys-kernel/usermode-sources/files/digest-usermode-sources-2.6.6-r6
+++ /dev/null
@@ -1,3 +0,0 @@
-MD5 5218790bc3db41e77a7422969639a9ad linux-2.6.6.tar.bz2 34896138
-MD5 ac6131657b587aba2d306d3708142ec6 uml-patch-2.6.6-1.bz2 104357
-MD5 a2a7d84919dd8f11766166ff75e40ac9 linux-2.6.6-CAN-2004-0415.patch 113158
diff --git a/sys-kernel/usermode-sources/files/digest-usermode-sources-2.6.8.1-r1 b/sys-kernel/usermode-sources/files/digest-usermode-sources-2.6.8.1-r1
new file mode 100644
index 000000000000..0f69749aa81f
--- /dev/null
+++ b/sys-kernel/usermode-sources/files/digest-usermode-sources-2.6.8.1-r1
@@ -0,0 +1,2 @@
+MD5 9517ca999e822b898fbdc7e72796b1aa linux-2.6.8.1.tar.bz2 35628066
+MD5 71cbf81acbd2a4229024a5cf2f9a7119 uml-patch-2.6.8.1-1.bz2 142306
diff --git a/sys-kernel/usermode-sources/files/usermode-sources-2.6.6.CAN-2004-0495-0496.patch b/sys-kernel/usermode-sources/files/usermode-sources-2.6.6.CAN-2004-0495-0496.patch
deleted file mode 100644
index 6f67f9fdc912..000000000000
--- a/sys-kernel/usermode-sources/files/usermode-sources-2.6.6.CAN-2004-0495-0496.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/usermode-sources/files/usermode-sources-2.6.6.FPULockup-53804.patch b/sys-kernel/usermode-sources/files/usermode-sources-2.6.6.FPULockup-53804.patch
deleted file mode 100644
index a813f48ec23b..000000000000
--- a/sys-kernel/usermode-sources/files/usermode-sources-2.6.6.FPULockup-53804.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -Nru a/include/asm-i386/i387.h b/include/asm-i386/i387.h
---- a/include/asm-i386/i387.h 2004-05-06 12:26:10 -07:00
-+++ b/include/asm-i386/i387.h 2004-06-12 19:12:23 -07:00
-@@ -51,7 +51,7 @@
- #define __clear_fpu( tsk ) \
- do { \
- if ((tsk)->thread_info->status & TS_USEDFPU) { \
-- asm volatile("fwait"); \
-+ asm volatile("fnclex ; fwait"); \
- (tsk)->thread_info->status &= ~TS_USEDFPU; \
- stts(); \
- } \
-diff -Nru a/include/asm-x86_64/i387.h b/include/asm-x86_64/i387.h
---- a/include/asm-x86_64/i387.h 2004-06-13 20:43:56.742530792 +0100
-+++ a/include/asm-x86_64/i387.h 2004-06-13 20:42:59.200278544 +0100
-@@ -46,7 +46,7 @@
-
- #define clear_fpu(tsk) do { \
- if ((tsk)->thread_info->status & TS_USEDFPU) { \
-- asm volatile("fwait"); \
-+ asm volatile("fnclex; fwait"); \
- (tsk)->thread_info->status &= ~TS_USEDFPU; \
- stts(); \
- } \
diff --git a/sys-kernel/usermode-sources/files/usermode-sources-2.6.6.ProcPerms.patch b/sys-kernel/usermode-sources/files/usermode-sources-2.6.6.ProcPerms.patch
deleted file mode 100644
index d90b8d1815d4..000000000000
--- a/sys-kernel/usermode-sources/files/usermode-sources-2.6.6.ProcPerms.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-# This is a BitKeeper generated diff -Nru style patch.
-#
-# ChangeSet
-# 2004/07/02 18:48:26-07:00 chrisw@osdl.org
-# [PATCH] check attr updates in /proc
-#
-# Any proc entry with default proc_file_inode_operations allow unauthorized
-# attribute updates. This is very dangerous for proc entries that rely
-# solely on file permissions for open/read/write.
-#
-# Signed-off-by: Chris Wright <chrisw@osdl.org>
-# Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-#
-# fs/proc/generic.c
-# 2004/07/02 15:47:55-07:00 chrisw@osdl.org +14 -7
-# check attr updates in /proc
-#
-diff -Nru a/fs/proc/generic.c b/fs/proc/generic.c
---- a/fs/proc/generic.c 2004-07-08 17:03:20 -07:00
-+++ b/fs/proc/generic.c 2004-07-08 17:03:20 -07:00
-@@ -231,14 +231,21 @@
- static int proc_notify_change(struct dentry *dentry, struct iattr *iattr)
- {
- struct inode *inode = dentry->d_inode;
-- int error = inode_setattr(inode, iattr);
-- if (!error) {
-- struct proc_dir_entry *de = PDE(inode);
-- de->uid = inode->i_uid;
-- de->gid = inode->i_gid;
-- de->mode = inode->i_mode;
-- }
-+ struct proc_dir_entry *de = PDE(inode);
-+ int error;
-
-+ error = inode_change_ok(inode, iattr);
-+ if (error)
-+ goto out;
-+
-+ error = inode_setattr(inode, iattr);
-+ if (error)
-+ goto out;
-+
-+ de->uid = inode->i_uid;
-+ de->gid = inode->i_gid;
-+ de->mode = inode->i_mode;
-+out:
- return error;
- }
-
diff --git a/sys-kernel/usermode-sources/files/usermode-sources-2.6.CAN-2004-0596.patch b/sys-kernel/usermode-sources/files/usermode-sources-2.6.CAN-2004-0596.patch
deleted file mode 100644
index 3e20a2e41372..000000000000
--- a/sys-kernel/usermode-sources/files/usermode-sources-2.6.CAN-2004-0596.patch
+++ /dev/null
@@ -1,46 +0,0 @@
---- 1.13/drivers/net/eql.c 2004-07-21 03:13:40 -07:00
-+++ 1.14/drivers/net/eql.c 2004-07-21 03:13:40 -07:00
-@@ -495,6 +495,8 @@
- return -EFAULT;
-
- slave_dev = dev_get_by_name(sc.slave_name);
-+ if (!slave_dev)
-+ return -ENODEV;
-
- ret = -EINVAL;
-
-@@ -527,11 +529,13 @@
- if (copy_from_user(&sc, scp, sizeof (slave_config_t)))
- return -EFAULT;
-
-- eql = dev->priv;
- slave_dev = dev_get_by_name(sc.slave_name);
-+ if (!slave_dev)
-+ return -ENODEV;
-
- ret = -EINVAL;
-
-+ eql = dev->priv;
- spin_lock_bh(&eql->queue.lock);
- if (eql_is_slave(slave_dev)) {
- slave = __eql_find_slave_dev(&eql->queue, slave_dev);
---- 1.14/drivers/net/eql.c 2004-07-21 03:13:33 -07:00
-+++ 1.15/drivers/net/eql.c 2004-07-21 03:13:33 -07:00
-@@ -499,6 +499,8 @@
- return -ENODEV;
-
- ret = -EINVAL;
-+ if (!slave_dev)
-+ return ret;
-
- spin_lock_bh(&eql->queue.lock);
- if (eql_is_slave(slave_dev)) {
-@@ -534,6 +536,8 @@
- return -ENODEV;
-
- ret = -EINVAL;
-+ if (!slave_dev)
-+ return ret;
-
- eql = dev->priv;
- spin_lock_bh(&eql->queue.lock);
diff --git a/sys-kernel/usermode-sources/files/usermode-sources-2.6.IPTables-RDoS.patch b/sys-kernel/usermode-sources/files/usermode-sources-2.6.IPTables-RDoS.patch
deleted file mode 100644
index 8f89d1605c9a..000000000000
--- a/sys-kernel/usermode-sources/files/usermode-sources-2.6.IPTables-RDoS.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- net/ipv4/netfilter/ip_tables.c.orig 2004-04-04 05:36:47.000000000 +0200
-+++ net/ipv4/netfilter/ip_tables.c 2004-06-24 21:24:26.000000000 +0200
-@@ -1461,7 +1461,7 @@
- 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/usermode-sources/usermode-sources-2.6.6-r6.ebuild b/sys-kernel/usermode-sources/usermode-sources-2.6.8.1-r1.ebuild
index 00afbdadf363..4fe404a1db1e 100644
--- a/sys-kernel/usermode-sources/usermode-sources-2.6.6-r6.ebuild
+++ b/sys-kernel/usermode-sources/usermode-sources-2.6.8.1-r1.ebuild
@@ -1,12 +1,12 @@
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/usermode-sources/usermode-sources-2.6.6-r6.ebuild,v 1.2 2004/10/20 21:21:48 hansmi Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/usermode-sources/usermode-sources-2.6.8.1-r1.ebuild,v 1.1 2004/10/21 18:15:54 plasmaroo Exp $
K_NOUSENAME="yes"
ETYPE="sources"
inherit kernel-2
-UML_PATCH="uml-patch-2.6.6-1"
+UML_PATCH="uml-patch-2.6.8.1-1"
OKV="${PV}"
EXTRAVERSION="-${UML_PATCH//-*-/}-${PR}"
KV="${OKV}${EXTRAVERSION}"
@@ -14,20 +14,12 @@ S="${WORKDIR}/linux-${KV}"
IUSE=""
UNIPATCH_LIST="${DISTDIR}/${UML_PATCH}.bz2
- ${DISTDIR}/linux-${OKV}-CAN-2004-0415.patch
- ${FILESDIR}/${PN}.CAN-2004-0497.patch
- ${FILESDIR}/${P}.FPULockup-53804.patch
- ${FILESDIR}/${PN}-2.6.IPTables-RDoS.patch
- ${FILESDIR}/${P}.ProcPerms.patch
- ${FILESDIR}/${P}.CAN-2004-0495-0496.patch
- ${FILESDIR}/${PN}-2.6.CAN-2004-0596.patch
${FILESDIR}/${PN}-2.6.cmdlineLeak.patch"
DESCRIPTION="Full (vanilla) sources for the User Mode Linux kernel"
SRC_URI="mirror://kernel/linux/kernel/v2.6/linux-${PV}.tar.bz2
- mirror://sourceforge/user-mode-linux/${UML_PATCH}.bz2
- http://dev.gentoo.org/~plasmaroo/patches/kernel/misc/security/linux-${OKV}-CAN-2004-0415.patch"
+ mirror://sourceforge/user-mode-linux/${UML_PATCH}.bz2"
HOMEPAGE="http://www.kernel.org/ http://user-mode-linux.sourceforge.net"
SLOT="${KV}"
-KEYWORDS="~x86 -ppc"
+KEYWORDS="~x86"
RESTRICT="nomirror"