diff options
author | Tim Yamin <plasmaroo@gentoo.org> | 2004-06-15 16:54:18 +0000 |
---|---|---|
committer | Tim Yamin <plasmaroo@gentoo.org> | 2004-06-15 16:54:18 +0000 |
commit | 83da7745d5b517059e1542fb8cd42273318aa4b2 (patch) | |
tree | c30759ef241a558ce0bcde2c187d05b40c8f6fed /sys-kernel/uclinux-sources/files | |
parent | Version bumped. Closes 52955. (Manifest recommit) (diff) | |
download | gentoo-2-83da7745d5b517059e1542fb8cd42273318aa4b2.tar.gz gentoo-2-83da7745d5b517059e1542fb8cd42273318aa4b2.tar.bz2 gentoo-2-83da7745d5b517059e1542fb8cd42273318aa4b2.zip |
Added patches for the FPU-lockup issues; please see bug #58304 for details.
Diffstat (limited to 'sys-kernel/uclinux-sources/files')
-rw-r--r-- | sys-kernel/uclinux-sources/files/digest-uclinux-sources-2.4.26_p0-r1 (renamed from sys-kernel/uclinux-sources/files/digest-uclinux-sources-2.4.26_p0) | 0 | ||||
-rw-r--r-- | sys-kernel/uclinux-sources/files/digest-uclinux-sources-2.6.6_p0-r1 (renamed from sys-kernel/uclinux-sources/files/digest-uclinux-sources-2.6.6_p0) | 0 | ||||
-rw-r--r-- | sys-kernel/uclinux-sources/files/uclinux-sources-2.4.26_p0.FPULockup-53804.patch | 11 | ||||
-rw-r--r-- | sys-kernel/uclinux-sources/files/uclinux-sources-2.6.5_p0.CAN-2004-0109.patch | 88 | ||||
-rw-r--r-- | sys-kernel/uclinux-sources/files/uclinux-sources-2.6.6_p0.FPULockup-53804.patch | 24 |
5 files changed, 35 insertions, 88 deletions
diff --git a/sys-kernel/uclinux-sources/files/digest-uclinux-sources-2.4.26_p0 b/sys-kernel/uclinux-sources/files/digest-uclinux-sources-2.4.26_p0-r1 index 130b229c980e..130b229c980e 100644 --- a/sys-kernel/uclinux-sources/files/digest-uclinux-sources-2.4.26_p0 +++ b/sys-kernel/uclinux-sources/files/digest-uclinux-sources-2.4.26_p0-r1 diff --git a/sys-kernel/uclinux-sources/files/digest-uclinux-sources-2.6.6_p0 b/sys-kernel/uclinux-sources/files/digest-uclinux-sources-2.6.6_p0-r1 index 19f5d1d1ba26..19f5d1d1ba26 100644 --- a/sys-kernel/uclinux-sources/files/digest-uclinux-sources-2.6.6_p0 +++ b/sys-kernel/uclinux-sources/files/digest-uclinux-sources-2.6.6_p0-r1 diff --git a/sys-kernel/uclinux-sources/files/uclinux-sources-2.4.26_p0.FPULockup-53804.patch b/sys-kernel/uclinux-sources/files/uclinux-sources-2.4.26_p0.FPULockup-53804.patch new file mode 100644 index 000000000000..1dd5ed87b520 --- /dev/null +++ b/sys-kernel/uclinux-sources/files/uclinux-sources-2.4.26_p0.FPULockup-53804.patch @@ -0,0 +1,11 @@ +--- linux-2.4/include/asm-i386/i387.h 2004-06-13 20:06:05.044881328 +0100 ++++ linux-2.4/include/asm-i386/i387.h 2004-06-13 20:25:42.836829736 +0100 +@@ -34,7 +34,7 @@ + + #define clear_fpu( tsk ) do { \ + if ( tsk->flags & PF_USEDFPU ) { \ +- asm volatile("fwait"); \ ++ asm volatile("fnclex ; fwait"); \ + tsk->flags &= ~PF_USEDFPU; \ + stts(); \ + } \ diff --git a/sys-kernel/uclinux-sources/files/uclinux-sources-2.6.5_p0.CAN-2004-0109.patch b/sys-kernel/uclinux-sources/files/uclinux-sources-2.6.5_p0.CAN-2004-0109.patch deleted file mode 100644 index d7726c2e5aaf..000000000000 --- a/sys-kernel/uclinux-sources/files/uclinux-sources-2.6.5_p0.CAN-2004-0109.patch +++ /dev/null @@ -1,88 +0,0 @@ ---- linux/fs/isofs/rock.c.orig -+++ linux/fs/isofs/rock.c -@@ -14,6 +14,7 @@ - #include <linux/slab.h> - #include <linux/pagemap.h> - #include <linux/smp_lock.h> - #include <linux/buffer_head.h> -+#include <asm/page.h> - - #include "rock.h" -@@ -419,7 +420,7 @@ int parse_rock_ridge_inode_internal(stru - return 0; - } - --static char *get_symlink_chunk(char *rpnt, struct rock_ridge *rr) -+static char *get_symlink_chunk(char *rpnt, struct rock_ridge *rr, char *plimit) - { - int slen; - int rootflag; -@@ -431,16 +432,25 @@ static char *get_symlink_chunk(char *rpn - rootflag = 0; - switch (slp->flags & ~1) { - case 0: -+ if (slp->len > plimit - rpnt) -+ return NULL; - memcpy(rpnt, slp->text, slp->len); - rpnt+=slp->len; - break; -+ case 2: -+ if (rpnt >= plimit) -+ return NULL; -+ *rpnt++='.'; -+ break; - case 4: -+ if (2 > plimit - rpnt) -+ return NULL; - *rpnt++='.'; -- /* fallthru */ -- case 2: - *rpnt++='.'; - break; - case 8: -+ if (rpnt >= plimit) -+ return NULL; - rootflag = 1; - *rpnt++='/'; - break; -@@ -457,17 +467,23 @@ static char *get_symlink_chunk(char *rpn - * If there is another SL record, and this component - * record isn't continued, then add a slash. - */ -- if ((!rootflag) && (rr->u.SL.flags & 1) && !(oldslp->flags & 1)) -+ if ((!rootflag) && (rr->u.SL.flags & 1) && -+ !(oldslp->flags & 1)) { -+ if (rpnt >= plimit) -+ return NULL; - *rpnt++='/'; -+ } - break; - } - - /* - * If this component record isn't continued, then append a '/'. - */ -- if (!rootflag && !(oldslp->flags & 1)) -+ if (!rootflag && !(oldslp->flags & 1)) { -+ if (rpnt >= plimit) -+ return NULL; - *rpnt++='/'; -- -+ } - } - return rpnt; - } -@@ -548,7 +564,10 @@ static int rock_ridge_symlink_readpage(s - CHECK_SP(goto out); - break; - case SIG('S', 'L'): -- rpnt = get_symlink_chunk(rpnt, rr); -+ rpnt = get_symlink_chunk(rpnt, rr, -+ link + (PAGE_SIZE - 1)); -+ if (rpnt == NULL) -+ goto out; - break; - case SIG('C', 'E'): - /* This tells is if there is a continuation record */ - - diff --git a/sys-kernel/uclinux-sources/files/uclinux-sources-2.6.6_p0.FPULockup-53804.patch b/sys-kernel/uclinux-sources/files/uclinux-sources-2.6.6_p0.FPULockup-53804.patch new file mode 100644 index 000000000000..a813f48ec23b --- /dev/null +++ b/sys-kernel/uclinux-sources/files/uclinux-sources-2.6.6_p0.FPULockup-53804.patch @@ -0,0 +1,24 @@ +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(); \ + } \ |