diff options
author | 2004-11-09 22:23:54 +0000 | |
---|---|---|
committer | 2004-11-09 22:23:54 +0000 | |
commit | 7dc0dededa8f29a0757a1afc7e01e47b400406e2 (patch) | |
tree | 6431542d70f01c4002b940bae7c8735499816d74 /sys-kernel | |
parent | LICENSE fix (diff) | |
download | historical-7dc0dededa8f29a0757a1afc7e01e47b400406e2.tar.gz historical-7dc0dededa8f29a0757a1afc7e01e47b400406e2.tar.bz2 historical-7dc0dededa8f29a0757a1afc7e01e47b400406e2.zip |
Adding a fix for the 2.4 kNFSd security vulnerability, bug #62524. Also fixed CAN-2004-0814, bug #68421. Obsoleting 2.4.19.
Diffstat (limited to 'sys-kernel')
24 files changed, 174 insertions, 2212 deletions
diff --git a/sys-kernel/gentoo-sources/ChangeLog b/sys-kernel/gentoo-sources/ChangeLog index 0a18cb6afe4a..452853583ade 100644 --- a/sys-kernel/gentoo-sources/ChangeLog +++ b/sys-kernel/gentoo-sources/ChangeLog @@ -1,6 +1,23 @@ # ChangeLog for sys-kernel/gentoo-sources # Copyright 2002-2004 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-kernel/gentoo-sources/ChangeLog,v 1.90 2004/09/03 18:54:23 pvdabeel Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/gentoo-sources/ChangeLog,v 1.91 2004/11/09 22:23:54 plasmaroo Exp $ + +*gentoo-sources-2.4.26-r10 (09 Nov 2004) + + 09 Nov 2004; <plasmaroo@gentoo.org> -gentoo-sources-2.4.19-r22.ebuild, + -gentoo-sources-2.4.20-r25.ebuild, +gentoo-sources-2.4.20-r26.ebuild, + -gentoo-sources-2.4.22-r16.ebuild, +gentoo-sources-2.4.22-r17.ebuild, + +gentoo-sources-2.4.25-r10.ebuild, -gentoo-sources-2.4.25-r9.ebuild, + +gentoo-sources-2.4.26-r10.ebuild, -gentoo-sources-2.4.26-r9.ebuild, + -gentoo-sources-2.4.27-r1.ebuild, +gentoo-sources-2.4.27-r2.ebuild, + -files/gentoo-sources-2.4.19-CAN-2004-0181.patch, + -files/gentoo-sources-2.4.19-gcc33.patch, + -files/gentoo-sources-2.4.19-munmap.patch, + -files/gentoo-sources-2.4.19-rtc_fix.patch, + +files/gentoo-sources-2.4.XDRWrapFix.patch, -files/i810_drm.patch, + -files/lcall-DoS.patch, -files/security.patch5: + Adding a fix for the 2.4 kNFSd security vulnerability, bug #62524. + Also fixed CAN-2004-0814, bug #68421. Obsoleting 2.4.19. 03 Sep 2004; Pieter Van den Abeele <pvdabeel@gentoo.org> gentoo-sources-2.4.26-r9.ebuild, gentoo-sources-2.4.27-r1.ebuild: diff --git a/sys-kernel/gentoo-sources/Manifest b/sys-kernel/gentoo-sources/Manifest index 93b0996ac1cc..52449ad7aef6 100644 --- a/sys-kernel/gentoo-sources/Manifest +++ b/sys-kernel/gentoo-sources/Manifest @@ -1,63 +1,54 @@ -MD5 4354920b3af22a4e4c40ec28b170a074 ChangeLog 23103 -MD5 5f09a875cefa9e51717ad32ec2473277 gentoo-sources-2.4.19-r22.ebuild 4511 -MD5 9bfed9d1b655f1c44c334eec8f12daf9 gentoo-sources-2.4.20-r25.ebuild 7171 -MD5 f1e086a782500890dc04ad00bd7944e8 gentoo-sources-2.4.22-r16.ebuild 1844 -MD5 6fffe862e04c9966186eb349d97f6384 gentoo-sources-2.4.25-r9.ebuild 1237 -MD5 f8013764a156375e586863e4e0049459 gentoo-sources-2.4.26-r9.ebuild 1019 -MD5 9f558dc476e2e87992d0b0559432c20f gentoo-sources-2.4.27-r1.ebuild 605 +MD5 90baaecbcb43ecd3ea10734736a1f8ac ChangeLog 24010 +MD5 b2bcd4caa818e176f0390dd5cea83833 gentoo-sources-2.4.26-r10.ebuild 1233 MD5 91ea2908f17a4069774ffce01264df0c metadata.xml 354 -MD5 857ff623313f874e811763a2db96e831 files/lcall-DoS.patch 885 -MD5 bdc383e4317a9021331a10c4db4e4eb7 files/digest-gentoo-sources-2.4.19-r22 222 -MD5 2ac4fd77e067652901ccf234c9687bb1 files/i810_drm.patch 1247 -MD5 7cc7f3f118c9d9a680719a28cc153900 files/digest-gentoo-sources-2.4.20-r25 231 -MD5 3bf2f78421fe7eb5babc154d4ad4dbbd files/security.patch1 14328 -MD5 d2621671130d63518828122ac9bc3bf5 files/digest-gentoo-sources-2.4.22-r16 223 -MD5 f308aef282ea75ea55d5c6035dafa100 files/security.patch2 4014 -MD5 a69691970ab5b5d89cd64341330d38ed files/digest-gentoo-sources-2.4.25-r9 220 -MD5 0d1cdff97252338dc5acc37c5f84d7c6 files/security.patch3 3333 -MD5 faa37fac65a03d0c962b636e20d8b729 files/digest-gentoo-sources-2.4.26-r9 221 -MD5 b40c150e8529876064e1ec409a47984e files/security.patch4 783 -MD5 dadfbefa3d709270f35294e23961a813 files/digest-gentoo-sources-2.4.27-r1 144 -MD5 86bcf459b0f6407a854c3523cf151dff files/security.patch5 21100 -MD5 a580e6b8c602c2e13fb5de7cc2de65a0 files/do_brk_fix.patch 242 -MD5 39af009b63a2f2042ac251fa801044d9 files/gentoo-sources-2.4.19-CAN-2004-0181.patch 1180 -MD5 152e60bd6e74485e08c4f0bd8f98250a files/gentoo-sources-2.4.19-gcc33.patch 8526 -MD5 032ff70c5895cc1a2dfbe2a58ebde1f7 files/gentoo-sources-2.4.19-munmap.patch 819 -MD5 df40eece807d039cba79f477e80ebda2 files/gentoo-sources-2.4.19-rtc_fix.patch 4974 -MD5 92f1b3aa68de326081b75653a77d64cf files/gentoo-sources-2.4.20-CAN-2004-0685.patch 2881 +MD5 7564443558ed094dafc099fb6e3ab748 gentoo-sources-2.4.27-r2.ebuild 827 +MD5 047cbeb168fd0a81fa88dafce514b41b gentoo-sources-2.4.25-r10.ebuild 1448 +MD5 d1c381df8f350577a9184f5bfdbc1f48 gentoo-sources-2.4.22-r17.ebuild 2034 +MD5 1e04151e26bff0a1cfa50c81ab4f4c34 gentoo-sources-2.4.20-r26.ebuild 7420 MD5 6450fd1b19f30aa33866e5e467c0d828 files/gentoo-sources-2.4.20-cs46xx-gcc33.patch 374 -MD5 6bd1b3d66aca4f2ae0cfd964caa28cc9 files/gentoo-sources-2.4.20-devfs-snd-fix.patch 1973 +MD5 a1ea0b29ae36f749e1d26f5ceef9c0b7 files/digest-gentoo-sources-2.4.25-r10 305 +MD5 c460ea130cb4ae84a5063ba044e3ce72 files/gentoo-sources-2.4.CAN-2004-0427.patch 460 +MD5 b40c150e8529876064e1ec409a47984e files/security.patch4 783 MD5 2f4db0083c0ed762c0af63f26812a68b files/gentoo-sources-2.4.20-fix-proc-mm.patch 1300 +MD5 e77a93fdf26f06cf3ea5080b27211725 files/gentoo-sources-2.4.CAN-2003-0985.patch 414 +MD5 d1ccc2047be533c992f67270a150a210 files/gentoo-sources-2.4.cmdlineLeak.patch 388 MD5 9601c35f96d297ed0d13753875fb3068 files/gentoo-sources-2.4.20-gcc33.patch 13455 -MD5 d96fe98630a0a160723a67e4ca93dcff files/gentoo-sources-2.4.20-grsec-datasize_fix.patch 1421 -MD5 cbd2a33f15a8d2e7ab700a0b45fac377 files/gentoo-sources-2.4.20-grsec-disabled.patch 562 -MD5 7b306c2be9db38aeb8e0dbfea6dea17a files/gentoo-sources-2.4.20-hpt372.patch 31675 -MD5 9f412f3083cdd87db058dd2f5fbcd103 files/gentoo-sources-2.4.20-ipt-realm.patch 1028 -MD5 012e8ba5d18dbb8d508ac4955e143e3a files/gentoo-sources-2.4.20-ipt-route.patch 13307 -MD5 02b1f745c441693b1558b2b6d3f28c45 files/gentoo-sources-2.4.20-mdcount.patch 1345 +MD5 174438d215b70cad5ffb00ca8123c062 files/gentoo-sources-2.4.munmap.patch 837 +MD5 bfbc5f4ed0be1eded1f0985dd2266872 files/digest-gentoo-sources-2.4.20-r26 316 +MD5 ac42024b6e6ee1e2165914db4b22a61c files/gentoo-sources-2.4.CAN-2004-0178.patch 424 +MD5 3bdf00d5f80fe9dfbfe8220e076cd04c files/gentoo-sources-2.4.CAN-2004-0497.patch 707 MD5 21ebf0ddc4b8ec4013470c4d243cd03b files/gentoo-sources-2.4.20-munmap.patch 826 -MD5 a61e57d5483a06f20da339d91f98fbb8 files/gentoo-sources-2.4.20-rtc_fix.patch 6769 -MD5 1326d31d343f60512dfb1376bfe134a2 files/gentoo-sources-2.4.20-sched-interrupt.patch 400 -MD5 9c816c892d6e3d3f0b7b77d3d503ab10 files/gentoo-sources-2.4.22-CAN-2004-0075.patch 634 -MD5 394bae02a20af95fc9d320f6cea3834e files/gentoo-sources-2.4.22-kmsgdump.patch 887 -MD5 e2e2b545b6fcdcecf49e33798efa5b84 files/gentoo-sources-2.4.22-rtc_fix.patch 7073 -MD5 751d36c76691a7cab7c5bb48ca2ac092 files/gentoo-sources-2.4.26-OpenSWAN-CompileFix.patch 1447 +MD5 d1561fff7fcca1dd43d5bb8fe2fed05a files/digest-gentoo-sources-2.4.26-r10 306 +MD5 d4a740ae56c2049247083af387a22a85 files/gentoo-sources-2.4.CAN-2004-0394.patch 350 +MD5 9f412f3083cdd87db058dd2f5fbcd103 files/gentoo-sources-2.4.20-ipt-realm.patch 1028 +MD5 dc18e982f8149588a291956481885a8c files/gentoo-sources-2.4.CAN-2004-0495.patch 17549 MD5 528da73c9e4a6fb017561e51dc0ab815 files/gentoo-sources-2.4.CAN-2003-0643.patch 747 -MD5 e77a93fdf26f06cf3ea5080b27211725 files/gentoo-sources-2.4.CAN-2003-0985.patch 414 -MD5 bf2b609e8cab6460d220b1267db09826 files/gentoo-sources-2.4.CAN-2004-0001.patch 982 +MD5 751d36c76691a7cab7c5bb48ca2ac092 files/gentoo-sources-2.4.26-OpenSWAN-CompileFix.patch 1447 +MD5 d96fe98630a0a160723a67e4ca93dcff files/gentoo-sources-2.4.20-grsec-datasize_fix.patch 1421 +MD5 de75cfa969ed092578d9ddda6c5be334 files/gentoo-sources-2.4.CAN-2004-0181.patch 1233 +MD5 f308aef282ea75ea55d5c6035dafa100 files/security.patch2 4014 +MD5 1326d31d343f60512dfb1376bfe134a2 files/gentoo-sources-2.4.20-sched-interrupt.patch 400 +MD5 a61e57d5483a06f20da339d91f98fbb8 files/gentoo-sources-2.4.20-rtc_fix.patch 6769 +MD5 2b3ddb8b8b15f8da35ade38544b57857 files/gentoo-sources-2.4.XDRWrapFix.patch 1499 MD5 147fec50180ad91b6260fc7201dcb90f files/gentoo-sources-2.4.CAN-2004-0010.patch 6050 -MD5 21f3a4f186017d925067335e24db36a1 files/gentoo-sources-2.4.CAN-2004-0109.patch 1877 +MD5 60d25ff310fc6abfdce39ec9e47345af files/gentoo-sources-2.4.CAN-2004-0685.patch 2809 +MD5 6bd1b3d66aca4f2ae0cfd964caa28cc9 files/gentoo-sources-2.4.20-devfs-snd-fix.patch 1973 MD5 5bf9836a632a861728d33f9736bb7431 files/gentoo-sources-2.4.CAN-2004-0133.patch 427 -MD5 eaeda68a619caaddd5b8fdc5e7c39932 files/gentoo-sources-2.4.CAN-2004-0177.patch 384 -MD5 ac42024b6e6ee1e2165914db4b22a61c files/gentoo-sources-2.4.CAN-2004-0178.patch 424 -MD5 de75cfa969ed092578d9ddda6c5be334 files/gentoo-sources-2.4.CAN-2004-0181.patch 1233 -MD5 d4a740ae56c2049247083af387a22a85 files/gentoo-sources-2.4.CAN-2004-0394.patch 350 -MD5 c460ea130cb4ae84a5063ba044e3ce72 files/gentoo-sources-2.4.CAN-2004-0427.patch 460 -MD5 dc18e982f8149588a291956481885a8c files/gentoo-sources-2.4.CAN-2004-0495.patch 17549 -MD5 3bdf00d5f80fe9dfbfe8220e076cd04c files/gentoo-sources-2.4.CAN-2004-0497.patch 707 +MD5 82d1f62153165d59f018e37f19a25d64 files/digest-gentoo-sources-2.4.27-r2 229 +MD5 e2e2b545b6fcdcecf49e33798efa5b84 files/gentoo-sources-2.4.22-rtc_fix.patch 7073 MD5 0f66013f643c79c97fda489618a4e2fd files/gentoo-sources-2.4.CAN-2004-0535.patch 476 -MD5 60d25ff310fc6abfdce39ec9e47345af files/gentoo-sources-2.4.CAN-2004-0685.patch 2809 -MD5 c9da1bc82b906f6abc648c056e7bf662 files/gentoo-sources-2.4.FPULockup-53804.patch 354 +MD5 3bf2f78421fe7eb5babc154d4ad4dbbd files/security.patch1 14328 +MD5 012e8ba5d18dbb8d508ac4955e143e3a files/gentoo-sources-2.4.20-ipt-route.patch 13307 MD5 e30386f1121b1197396ed9082eae7dcb files/gentoo-sources-2.4.I2C_Limits.patch 1037 -MD5 d1ccc2047be533c992f67270a150a210 files/gentoo-sources-2.4.cmdlineLeak.patch 388 -MD5 174438d215b70cad5ffb00ca8123c062 files/gentoo-sources-2.4.munmap.patch 837 +MD5 c9da1bc82b906f6abc648c056e7bf662 files/gentoo-sources-2.4.FPULockup-53804.patch 354 +MD5 cbd2a33f15a8d2e7ab700a0b45fac377 files/gentoo-sources-2.4.20-grsec-disabled.patch 562 +MD5 0d1cdff97252338dc5acc37c5f84d7c6 files/security.patch3 3333 +MD5 394bae02a20af95fc9d320f6cea3834e files/gentoo-sources-2.4.22-kmsgdump.patch 887 +MD5 3bf139832981003e66e2b702515b2f1b files/digest-gentoo-sources-2.4.22-r17 308 +MD5 eaeda68a619caaddd5b8fdc5e7c39932 files/gentoo-sources-2.4.CAN-2004-0177.patch 384 +MD5 9c816c892d6e3d3f0b7b77d3d503ab10 files/gentoo-sources-2.4.22-CAN-2004-0075.patch 634 +MD5 92f1b3aa68de326081b75653a77d64cf files/gentoo-sources-2.4.20-CAN-2004-0685.patch 2881 +MD5 a580e6b8c602c2e13fb5de7cc2de65a0 files/do_brk_fix.patch 242 +MD5 bf2b609e8cab6460d220b1267db09826 files/gentoo-sources-2.4.CAN-2004-0001.patch 982 +MD5 02b1f745c441693b1558b2b6d3f28c45 files/gentoo-sources-2.4.20-mdcount.patch 1345 +MD5 21f3a4f186017d925067335e24db36a1 files/gentoo-sources-2.4.CAN-2004-0109.patch 1877 diff --git a/sys-kernel/gentoo-sources/files/digest-gentoo-sources-2.4.19-r22 b/sys-kernel/gentoo-sources/files/digest-gentoo-sources-2.4.19-r22 deleted file mode 100644 index b708cb670aa9..000000000000 --- a/sys-kernel/gentoo-sources/files/digest-gentoo-sources-2.4.19-r22 +++ /dev/null @@ -1,3 +0,0 @@ -MD5 2bb60b7594a416f2c593923ce446160b linux-2.4.19.tar.bz2 26042494 -MD5 59ff0f443bed8cadb01addda59f51922 patches-2.4.19-gentoo-r10.tar.bz2 2665464 -MD5 6f2c5bc1f4aff3b223533a9900fc665c linux-2.4.19-CAN-2004-0415.patch 74696 diff --git a/sys-kernel/gentoo-sources/files/digest-gentoo-sources-2.4.20-r25 b/sys-kernel/gentoo-sources/files/digest-gentoo-sources-2.4.20-r26 index 3cf440f6d20e..bfe00db50fae 100644 --- a/sys-kernel/gentoo-sources/files/digest-gentoo-sources-2.4.20-r25 +++ b/sys-kernel/gentoo-sources/files/digest-gentoo-sources-2.4.20-r26 @@ -1,3 +1,4 @@ MD5 c439d5c93d7fc9a1480a90842465bb97 linux-2.4.20.tar.bz2 27421046 MD5 7b49804685bb54be619c8ca117dd129c patches-2.4.20-gentoo-r14.tar.bz2 4388716 MD5 cfc6815222d154bcf3aa9144903a2bba gentoo-sources-2.4.20-CAN-2004-0415.patch 82999 +MD5 5f7602c85170565535c87cd7d6705254 gentoo-sources-2.4.20-CAN-2004-0814.patch 81528 diff --git a/sys-kernel/gentoo-sources/files/digest-gentoo-sources-2.4.22-r16 b/sys-kernel/gentoo-sources/files/digest-gentoo-sources-2.4.22-r17 index 9ee5ce3b934c..ae62b02192ec 100644 --- a/sys-kernel/gentoo-sources/files/digest-gentoo-sources-2.4.22-r16 +++ b/sys-kernel/gentoo-sources/files/digest-gentoo-sources-2.4.22-r17 @@ -1,3 +1,4 @@ MD5 75dc85149b06ac9432106b8941eb9f7b linux-2.4.22.tar.bz2 29528612 MD5 7f4a97d9c29f7dfc959a7a7efb077e29 gentoo-sources-2.4.22-r5.patch.bz2 3766950 MD5 a4851f4a8922fcaecfbd995a73b59e77 linux-2.4.22-CAN-2004-0415.patch 90192 +MD5 225e809802a992bf9ca10caae34edb25 gentoo-sources-2.4.22-CAN-2004-0814.patch 82260 diff --git a/sys-kernel/gentoo-sources/files/digest-gentoo-sources-2.4.25-r9 b/sys-kernel/gentoo-sources/files/digest-gentoo-sources-2.4.25-r10 index 4e797f96694e..ddf72226d1b3 100644 --- a/sys-kernel/gentoo-sources/files/digest-gentoo-sources-2.4.25-r9 +++ b/sys-kernel/gentoo-sources/files/digest-gentoo-sources-2.4.25-r10 @@ -1,3 +1,4 @@ MD5 5fc8e9f43fa44ac29ddf9a9980af57d8 linux-2.4.25.tar.bz2 30626548 MD5 221b18b5bcc2ede8a1d3616fda8e7ace gentoo-sources-2.4.25.patch.bz2 1617350 MD5 8f8f2412aacf9a01b5549bf2a9a3bff8 linux-2.4.26-CAN-2004-0415.patch 90145 +MD5 225e809802a992bf9ca10caae34edb25 gentoo-sources-2.4.22-CAN-2004-0814.patch 82260 diff --git a/sys-kernel/gentoo-sources/files/digest-gentoo-sources-2.4.26-r9 b/sys-kernel/gentoo-sources/files/digest-gentoo-sources-2.4.26-r10 index 925972bf56cc..33596a1b91ba 100644 --- a/sys-kernel/gentoo-sources/files/digest-gentoo-sources-2.4.26-r9 +++ b/sys-kernel/gentoo-sources/files/digest-gentoo-sources-2.4.26-r10 @@ -1,3 +1,4 @@ MD5 88d7aefa03c92739cb70298a0b486e2c linux-2.4.26.tar.bz2 30772389 MD5 5da46eea9886f6943477d98b40648b4c gentoo-sources-2.4.26-r6.tar.bz2 1041792 MD5 8f8f2412aacf9a01b5549bf2a9a3bff8 linux-2.4.26-CAN-2004-0415.patch 90145 +MD5 225e809802a992bf9ca10caae34edb25 gentoo-sources-2.4.22-CAN-2004-0814.patch 82260 diff --git a/sys-kernel/gentoo-sources/files/digest-gentoo-sources-2.4.27-r1 b/sys-kernel/gentoo-sources/files/digest-gentoo-sources-2.4.27-r2 index 31628398f62e..cb0002e288c5 100644 --- a/sys-kernel/gentoo-sources/files/digest-gentoo-sources-2.4.27-r1 +++ b/sys-kernel/gentoo-sources/files/digest-gentoo-sources-2.4.27-r2 @@ -1,2 +1,3 @@ MD5 59a2e6fde1d110e2ffa20351ac8b4d9e linux-2.4.27.tar.bz2 30898453 MD5 da80fba431153a1f6706d7acf96adfbe gentoo-sources-2.4.27-r1.tar.bz2 984265 +MD5 225e809802a992bf9ca10caae34edb25 gentoo-sources-2.4.22-CAN-2004-0814.patch 82260 diff --git a/sys-kernel/gentoo-sources/files/gentoo-sources-2.4.19-CAN-2004-0181.patch b/sys-kernel/gentoo-sources/files/gentoo-sources-2.4.19-CAN-2004-0181.patch deleted file mode 100644 index 3d44c0fd0880..000000000000 --- a/sys-kernel/gentoo-sources/files/gentoo-sources-2.4.19-CAN-2004-0181.patch +++ /dev/null @@ -1,34 +0,0 @@ ---- linux-2.4.22/fs/jfs/jfs_logmgr.c.jfs-sec 2004-03-23 12:30:35.000000000 -0700 -+++ linux-2.4.22/fs/jfs/jfs_logmgr.c 2004-03-23 13:01:51.000000000 -0700 -@@ -1693,7 +1693,7 @@ - if (lbuf == 0) - goto error; - lbuf->l_bh.b_data = lbuf->l_ldata = -- (char *) __get_free_page(GFP_KERNEL); -+ (char *) get_zeroed_page(GFP_KERNEL); - if (lbuf->l_ldata == 0) { - kfree(lbuf); - goto error; ---- linux-2.4.20/fs/jfs/jfs_metapage.c 2002-11-28 23:53:15.000000000 +0000 -+++ linux-2.4.20/fs/jfs/jfs_metapage.c.plasmaroo 2004-05-29 13:36:44.575503152 +0100 -@@ -379,6 +379,10 @@ - } - mp->data = kmap(mp->page) + page_offset; - } -+ -+ if(new) -+ memset(mp->data, 0, PSIZE); -+ - jFYI(1, ("__get_metapage: returning = 0x%p\n", mp)); - return mp; - ---- linux-2.4.20/fs/jfs/super.c 2002-11-28 23:53:15.000000000 +0000 -+++ linux-2.4.20/fs/jfs/super.c.plasmaroo 2004-05-29 13:39:36.898306104 +0100 -@@ -373,6 +373,7 @@ - - if ((flags & (SLAB_CTOR_VERIFY | SLAB_CTOR_CONSTRUCTOR)) == - SLAB_CTOR_CONSTRUCTOR) { -+ memset(jfs_ip, 0, sizeof(struct jfs_inode_info)); - INIT_LIST_HEAD(&jfs_ip->anon_inode_list); - INIT_LIST_HEAD(&jfs_ip->mp_list); - init_rwsem(&jfs_ip->rdwrlock); diff --git a/sys-kernel/gentoo-sources/files/gentoo-sources-2.4.19-gcc33.patch b/sys-kernel/gentoo-sources/files/gentoo-sources-2.4.19-gcc33.patch deleted file mode 100644 index 56c5f504af23..000000000000 --- a/sys-kernel/gentoo-sources/files/gentoo-sources-2.4.19-gcc33.patch +++ /dev/null @@ -1,191 +0,0 @@ -diff -u -r linux-2.4.20-gentoo-r6/arch/arm/mach-integrator/pci_v3.c linux-2.4.20-gentoo-r7/arch/arm/mach-integrator/pci_v3.c ---- linux-2.4.20-gentoo-r6/arch/arm/mach-integrator/pci_v3.c 2003-09-10 23:36:03.000000000 +0100 -+++ linux-2.4.20-gentoo-r7/arch/arm/mach-integrator/pci_v3.c 2003-09-11 17:32:50.000000000 +0100 -@@ -629,7 +629,6 @@ - #if 0 - ret = request_irq(IRQ_LBUSTIMEOUT, lb_timeout, 0, "bus timeout", NULL); - if (ret) -- printk(KERN_ERR "PCI: unable to grab local bus timeout ". -- "interrupt: %d\n", ret); -+ printk(KERN_ERR "PCI: unable to grab local bus timeout interrupt: %d\n", ret); - #endif - } -diff -u -r linux-2.4.20-gentoo-r6/drivers/atm/zatm.c linux-2.4.20-gentoo-r7/drivers/atm/zatm.c ---- linux-2.4.20-gentoo-r6/drivers/atm/zatm.c 2003-09-10 23:36:03.000000000 +0100 -+++ linux-2.4.20-gentoo-r7/drivers/atm/zatm.c 2003-09-11 17:32:50.000000000 +0100 -@@ -1430,8 +1430,7 @@ - zout(uPD98401_GMR_ONE | uPD98401_BURST8 | uPD98401_BURST4 | - uPD98401_BURST2 | uPD98401_GMR_PM | uPD98401_GMR_DR,GMR); - /* TODO: should shrink allocation now */ -- printk("mem=%dkB,%s (",zatm_dev->mem >> 10,zatm_dev->copper ? "UTP" : -- "MMF"); -+ printk("mem=%dkB,%s (",zatm_dev->mem >> 10,zatm_dev->copper ? "UTP" : "MMF"); - for (i = 0; i < ESI_LEN; i++) - printk("%02X%s",dev->esi[i],i == ESI_LEN-1 ? ")\n" : "-"); - do { -diff -u -r linux-2.4.20-gentoo-r6/drivers/char/h8.c linux-2.4.20-gentoo-r7/drivers/char/h8.c ---- linux-2.4.20-gentoo-r6/drivers/char/h8.c 2003-09-10 23:36:03.000000000 +0100 -+++ linux-2.4.20-gentoo-r7/drivers/char/h8.c 2003-09-11 17:32:50.000000000 +0100 -@@ -574,8 +574,7 @@ - } - - if (intrbuf.word & H8_POWER_BUTTON) { -- printk(KERN_CRIT "Power switch pressed - please wait - preparing to power --off\n"); -+ printk(KERN_CRIT "Power switch pressed - please wait - preparing to power off\n"); - h8_set_event_mask(H8_POWER_BUTTON); - wake_up(&h8_monitor_wait); - } -diff -u -r linux-2.4.20-gentoo-r6/drivers/ide/ide-cd.h linux-2.4.20-gentoo-r7/drivers/ide/ide-cd.h ---- linux-2.4.20-gentoo-r6/drivers/ide/ide-cd.h 2003-09-10 23:36:03.000000000 +0100 -+++ linux-2.4.20-gentoo-r7/drivers/ide/ide-cd.h 2003-09-11 17:32:50.000000000 +0100 -@@ -437,7 +437,7 @@ - - byte curlba[3]; - byte nslots; -- __u8 short slot_tablelen; -+ __u16 slot_tablelen; - }; - - -diff -u -r linux-2.4.20-gentoo-r6/drivers/scsi/sun3_NCR5380.c linux-2.4.20-gentoo-r7/drivers/scsi/sun3_NCR5380.c ---- linux-2.4.20-gentoo-r6/drivers/scsi/sun3_NCR5380.c 2003-09-10 23:36:03.000000000 +0100 -+++ linux-2.4.20-gentoo-r7/drivers/scsi/sun3_NCR5380.c 2003-09-11 17:32:50.000000000 +0100 -@@ -1226,8 +1226,7 @@ - BASR_ACK)) == - (BASR_PHASE_MATCH | BASR_ACK)) { - printk("scsi%d: BASR %02x\n", HOSTNO, NCR5380_read(BUS_AND_STATUS_REG)); -- printk("scsi%d: bus stuck in data phase -- probably a -- single byte overrun!\n", HOSTNO); -+ printk("scsi%d: bus stuck in data phase -- probably a single byte overrun!\n", HOSTNO); - printk("not prepared for this error!\n"); - printk("please e-mail sammy@sammy.net with a description of how this\n"); - printk("error was produced.\n"); -diff -u -r linux-2.4.20-gentoo-r6/fs/imon/imon.c linux-2.4.20-gentoo-r7/fs/imon/imon.c ---- linux-2.4.20-gentoo-r6/fs/imon/imon.c 2003-09-10 23:36:03.000000000 +0100 -+++ linux-2.4.20-gentoo-r7/fs/imon/imon.c 2003-09-11 17:32:50.000000000 +0100 -@@ -1310,8 +1310,7 @@ - wr += sprintf(bf + wr, "\tdprobes:\t%lu\n", m.im_dprobes); - wr += sprintf(bf + wr, "\tdmoves:\t\t%lu\n", m.im_dmoves); - #else -- wr += sprintf(bf + wr, "no metering data; rebuild imon.o with METER_ON s --et.\n"); -+ wr += sprintf(bf + wr, "no metering data; rebuild imon.o with METER_ON set.\n"); - #endif /* METER_ON */ - - return wr; -diff -u -r linux-2.4.20-gentoo-r6/net/core/rtnetlink.c linux-2.4.20-gentoo-r7/net/core/rtnetlink.c ---- linux-2.4.20-gentoo-r6/net/core/rtnetlink.c 2003-09-10 23:36:03.000000000 +0100 -+++ linux-2.4.20-gentoo-r7/net/core/rtnetlink.c 2003-09-11 17:32:50.000000000 +0100 -@@ -394,7 +394,7 @@ - * Malformed skbs with wrong lengths of messages are discarded silently. - */ - --extern __inline__ int rtnetlink_rcv_skb(struct sk_buff *skb) -+__inline__ int rtnetlink_rcv_skb(struct sk_buff *skb) - { - int err; - struct nlmsghdr * nlh; -diff -u -r linux-2.4.20-gentoo-r6/net/decnet/dn_table.c linux-2.4.20-gentoo-r7/net/decnet/dn_table.c ---- linux-2.4.20-gentoo-r6/net/decnet/dn_table.c 2003-09-10 23:36:03.000000000 +0100 -+++ linux-2.4.20-gentoo-r7/net/decnet/dn_table.c 2003-09-11 17:32:50.000000000 +0100 -@@ -836,8 +836,7 @@ - return NULL; - - if (in_interrupt() && net_ratelimit()) { -- printk(KERN_DEBUG "DECnet: BUG! Attempt to create routing table --from interrupt\n"); -+ printk(KERN_DEBUG "DECnet: BUG! Attempt to create routing table from interrupt\n"); - return NULL; - } - if ((t = kmalloc(sizeof(struct dn_fib_table), GFP_KERNEL)) == NULL) - -diff -u -r linux-2.4.20-gentoo-r6/drivers/net/fealnx.c linux-2.4.20-gentoo-r7/drivers/net/fealnx.c ---- linux-2.4.20-gentoo-r6/drivers/net/fealnx.c 2003-09-08 19:50:27.000000000 -0700 -+++ linux-2.4.20-gentoo-r7/drivers/net/fealnx.c 2003-06-13 07:51:34.000000000 -0700 -@@ -937,7 +937,7 @@ - // 89/9/1 modify, - // np->bcrvalue=0x38; - np->bcrvalue = 0x10; -- np->cralue = 0xe00; /* rx 128 burst length */ -+ np->crvalue = 0xe00; /* rx 128 burst length */ - #warning Processor architecture undefined! - #endif - // 89/12/29 add, -@@ -1198,7 +1198,6 @@ - printk("\n"); - } - -- + dev->if_port = np->default_port; - /* Reinit. Gross */ - - /* Reset the chip's Tx and Rx processes. */ -diff -u -r linux-2.4.20-gentoo-r6/arch/i386/math-emu/poly.h linux-2.4.20-gentoo-r7/arch/i386/math-emu/poly.h ---- linux-2.4.20-gentoo-r6/arch/i386/math-emu/poly.h 2003-09-08 19:52:14.000000000 -0700 -+++ linux-2.4.20-gentoo-r7/arch/i386/math-emu/poly.h 2003-09-08 19:45:38.000000000 -0700 -@@ -75,11 +75,11 @@ - /* Add the 12 byte Xsig x2 to Xsig dest, with no checks for overflow. */ - static inline void add_Xsig_Xsig(Xsig *dest, const Xsig *x2) - { -- asm volatile ("movl %1,%%edi; movl %2,%%esi; -- movl (%%esi),%%eax; addl %%eax,(%%edi); -- movl 4(%%esi),%%eax; adcl %%eax,4(%%edi); -- movl 8(%%esi),%%eax; adcl %%eax,8(%%edi);" -- :"=g" (*dest):"g" (dest), "g" (x2) -+ asm volatile ("movl %1,%%edi; movl %2,%%esi; " \ -+ "movl (%%esi),%%eax; addl %%eax,(%%edi); " \ -+ "movl 4(%%esi),%%eax; adcl %%eax,4(%%edi); " \ -+ "movl 8(%%esi),%%eax; adcl %%eax,8(%%edi); " \ -+ :"=g" (*dest):"g" (dest), "g" (x2) \ - :"ax","si","di"); - } - -@@ -90,18 +90,18 @@ - problem, but keep fingers crossed! */ - static inline void add_two_Xsig(Xsig *dest, const Xsig *x2, long int *exp) - { -- asm volatile ("movl %2,%%ecx; movl %3,%%esi; -- movl (%%esi),%%eax; addl %%eax,(%%ecx); -- movl 4(%%esi),%%eax; adcl %%eax,4(%%ecx); -- movl 8(%%esi),%%eax; adcl %%eax,8(%%ecx); -- jnc 0f; -- rcrl 8(%%ecx); rcrl 4(%%ecx); rcrl (%%ecx) -- movl %4,%%ecx; incl (%%ecx) -- movl $1,%%eax; jmp 1f; -- 0: xorl %%eax,%%eax; -- 1:" -- :"=g" (*exp), "=g" (*dest) -- :"g" (dest), "g" (x2), "g" (exp) -+ asm volatile ("movl %2,%%ecx; movl %3,%%esi; " \ -+ "movl (%%esi),%%eax; addl %%eax,(%%ecx); " \ -+ "movl 4(%%esi),%%eax; adcl %%eax,4(%%ecx); " \ -+ "movl 8(%%esi),%%eax; adcl %%eax,8(%%ecx); " \ -+ "jnc 0f; " \ -+ "rcrl 8(%%ecx); rcrl 4(%%ecx); rcrl (%%ecx); " \ -+ "movl %4,%%ecx; incl (%%ecx); " \ -+ "movl $1,%%eax; jmp 1f; " \ -+ "0: xorl %%eax,%%eax; " \ -+ "1: " \ -+ :"=g" (*exp), "=g" (*dest) \ -+ :"g" (dest), "g" (x2), "g" (exp) \ - :"cx","si","ax"); - } - -diff -u -r linux-2.4.19/arch/i386/kernel/semaphore.c linux-2.4.19-gentoo-r19/i386/kernel/semaphore.c ---- linux-2.4.19/arch/i386/kernel/semaphore.c 2004-06-24 14:53:47.874139392 +0100 -+++ linux-2.4.19-gentoo-r19/i386/kernel/semaphore.c 2004-06-24 14:52:36.694960272 +0100 -@@ -262,7 +262,6 @@ - */ - #if defined(CONFIG_SMP) - asm( --" - .align 4 - .globl __write_lock_failed - __write_lock_failed: -@@ -287,6 +286,5 @@ - lock ; decl (%eax) - js __read_lock_failed - ret --" - ); - #endif diff --git a/sys-kernel/gentoo-sources/files/gentoo-sources-2.4.19-munmap.patch b/sys-kernel/gentoo-sources/files/gentoo-sources-2.4.19-munmap.patch deleted file mode 100644 index d2cf4f4303f4..000000000000 --- a/sys-kernel/gentoo-sources/files/gentoo-sources-2.4.19-munmap.patch +++ /dev/null @@ -1,27 +0,0 @@ ---- linux-2.4.20-openmosix-r8/mm/mremap.c~ 2004-02-18 22:33:57.000000000 +0000 -+++ linux-2.4.20-openmosix-r8/mm/mremap.c 2004-02-18 22:35:01.000000000 +0000 -@@ -266,7 +266,9 @@ - if ((addr <= new_addr) && (addr+old_len) > new_addr) - goto out; - -- do_munmap(current->mm, new_addr, new_len, 1); -+ ret = do_munmap(current->mm, new_addr, new_len, 1); -+ if (ret && new_len) -+ goto out; - } - - /* -@@ -274,9 +276,11 @@ - * the unnecessary pages.. - * do_munmap does all the needed commit accounting - */ -- ret = addr; - if (old_len >= new_len) { -- do_munmap(current->mm, addr+new_len, old_len - new_len, 1); -+ ret = do_munmap(current->mm, addr+new_len, old_len - new_len, 1); -+ if (ret && old_len != new_len) -+ goto out; -+ ret = addr; - if (!(flags & MREMAP_FIXED) || (new_addr == addr)) - goto out; - } diff --git a/sys-kernel/gentoo-sources/files/gentoo-sources-2.4.19-rtc_fix.patch b/sys-kernel/gentoo-sources/files/gentoo-sources-2.4.19-rtc_fix.patch deleted file mode 100644 index 00937f83623f..000000000000 --- a/sys-kernel/gentoo-sources/files/gentoo-sources-2.4.19-rtc_fix.patch +++ /dev/null @@ -1,115 +0,0 @@ -diff -ur linux-2.4.20-wolk4.9s/arch/cris/drivers/ds1302.c linux-2.4.20-wolk4.9s.plasmaroo/arch/cris/drivers/ds1302.c ---- linux-2.4.20-wolk4.9s/arch/cris/drivers/ds1302.c 2004-01-05 23:33:45.000000000 +0000 -+++ linux-2.4.20-wolk4.9s.plasmaroo/arch/cris/drivers/ds1302.c 2004-01-05 23:41:44.000000000 +0000 -@@ -315,6 +315,7 @@ - { - struct rtc_time rtc_tm; - -+ memset(&rtc_tm, 0, sizeof (struct rtc_time)); - get_rtc_time(&rtc_tm); - if (copy_to_user((struct rtc_time*)arg, &rtc_tm, sizeof(struct rtc_time))) - return -EFAULT; -diff -ur linux-2.4.20-wolk4.9s/arch/m68k/bvme6000/rtc.c linux-2.4.20-wolk4.9s.plasmaroo/arch/m68k/bvme6000/rtc.c ---- linux-2.4.20-wolk4.9s/arch/m68k/bvme6000/rtc.c 2004-01-05 23:33:45.000000000 +0000 -+++ linux-2.4.20-wolk4.9s.plasmaroo/arch/m68k/bvme6000/rtc.c 2004-01-05 23:43:15.000000000 +0000 -@@ -54,6 +54,7 @@ - /* Ensure clock and real-time-mode-register are accessible */ - msr = rtc->msr & 0xc0; - rtc->msr = 0x40; -+ memset(&wtime, 0, sizeof (struct rtc_time)); - do { - wtime.tm_sec = BCD2BIN(rtc->bcd_sec); - wtime.tm_min = BCD2BIN(rtc->bcd_min); -diff -ur linux-2.4.20-wolk4.9s/arch/m68k/mvme16x/rtc.c linux-2.4.20-wolk4.9s.plasmaroo/arch/m68k/mvme16x/rtc.c ---- linux-2.4.20-wolk4.9s/arch/m68k/mvme16x/rtc.c 2004-01-05 23:33:45.000000000 +0000 -+++ linux-2.4.20-wolk4.9s.plasmaroo/arch/m68k/mvme16x/rtc.c 2004-01-05 23:44:02.000000000 +0000 -@@ -52,6 +52,7 @@ - cli(); - /* Ensure clock and real-time-mode-register are accessible */ - rtc->ctrl = RTC_READ; -+ memset(&wtime, 0, sizeof (struct rtc_time)); - wtime.tm_sec = BCD2BIN(rtc->bcd_sec); - wtime.tm_min = BCD2BIN(rtc->bcd_min); - wtime.tm_hour = BCD2BIN(rtc->bcd_hr); -diff -ur linux-2.4.20-wolk4.9s/arch/ppc64/kernel/rtc.c linux-2.4.20-wolk4.9s.plasmaroo/arch/ppc64/kernel/rtc.c ---- linux-2.4.20-wolk4.9s/arch/ppc64/kernel/rtc.c 2004-01-05 23:33:45.000000000 +0000 -+++ linux-2.4.20-wolk4.9s.plasmaroo/arch/ppc64/kernel/rtc.c 2004-01-05 23:44:34.000000000 +0000 -@@ -96,6 +96,7 @@ - switch (cmd) { - case RTC_RD_TIME: /* Read the time/date from RTC */ - { -+ memset(&wtime, 0, sizeof(struct rtc_time)); - ppc_md.get_rtc_time(&wtime); - break; - } -diff -ur linux-2.4.20-wolk4.9s/drivers/char/efirtc.c linux-2.4.20-wolk4.9s.plasmaroo/drivers/char/efirtc.c ---- linux-2.4.20-wolk4.9s/drivers/char/efirtc.c 2004-01-05 23:33:45.000000000 +0000 -+++ linux-2.4.20-wolk4.9s.plasmaroo/drivers/char/efirtc.c 2004-01-05 23:47:53.000000000 +0000 -@@ -118,6 +118,7 @@ - static void - convert_from_efi_time(efi_time_t *eft, struct rtc_time *wtime) - { -+ memset(wtime, 0, sizeof(struct rtc_time)); - wtime->tm_sec = eft->second; - wtime->tm_min = eft->minute; - wtime->tm_hour = eft->hour; -diff -ur linux-2.4.20-wolk4.9s/drivers/char/rtc.c linux-2.4.20-wolk4.9s.plasmaroo/drivers/char/rtc.c ---- linux-2.4.20-wolk4.9s/drivers/char/rtc.c 2004-01-05 23:33:45.000000000 +0000 -+++ linux-2.4.20-wolk4.9s.plasmaroo/drivers/char/rtc.c 2004-01-05 23:52:43.000000000 +0000 -@@ -370,6 +370,7 @@ - * tm_min, and tm_sec values are filled in. - */ - -+ memset(&wtime, 0, sizeof(struct rtc_time)); - get_rtc_alm_time(&wtime); - break; - } -@@ -417,6 +418,7 @@ - } - case RTC_RD_TIME: /* Read the time/date from RTC */ - { -+ memset(&wtime, 0, sizeof(struct rtc_time)); - get_rtc_time(&wtime); - break; - } -diff -ur linux-2.4.20-wolk4.9s/drivers/macintosh/rtc.c linux-2.4.20-wolk4.9s.plasmaroo/drivers/macintosh/rtc.c ---- linux-2.4.20-wolk4.9s/drivers/macintosh/rtc.c 2004-01-05 23:33:45.000000000 +0000 -+++ linux-2.4.20-wolk4.9s.plasmaroo/drivers/macintosh/rtc.c 2004-01-05 23:54:15.000000000 +0000 -@@ -64,6 +64,7 @@ - case RTC_RD_TIME: - if (ppc_md.get_rtc_time) - { -+ memset(&rtc_tm, 0, sizeof(struct rtc_time)); - get_rtc_time(&rtc_tm); - - if (copy_to_user((struct rtc_time*)arg, &rtc_tm, sizeof(struct rtc_time))) -diff -ur linux-2.4.20-wolk4.9s/drivers/sbus/char/rtc.c linux-2.4.20-wolk4.9s.plasmaroo/drivers/sbus/char/rtc.c ---- linux-2.4.20-wolk4.9s/drivers/sbus/char/rtc.c 2004-01-05 23:33:45.000000000 +0000 -+++ linux-2.4.20-wolk4.9s.plasmaroo/drivers/sbus/char/rtc.c 2004-01-05 23:54:43.000000000 +0000 -@@ -89,6 +89,7 @@ - switch (cmd) - { - case RTCGET: -+ memset(&rtc_tm, 0, sizeof(struct rtc_time)); - get_rtc_time(&rtc_tm); - - if (copy_to_user((struct rtc_time*)arg, &rtc_tm, sizeof(struct rtc_time))) -diff -ur linux-2.4.20-wolk4.9s/drivers/sgi/char/ds1286.c linux-2.4.20-wolk4.9s.plasmaroo/drivers/sgi/char/ds1286.c ---- linux-2.4.20-wolk4.9s/drivers/sgi/char/ds1286.c 2004-01-05 23:33:45.000000000 +0000 -+++ linux-2.4.20-wolk4.9s.plasmaroo/drivers/sgi/char/ds1286.c 2004-01-05 23:47:25.000000000 +0000 -@@ -174,6 +174,7 @@ - * tm_min, and tm_sec values are filled in. - */ - -+ memset(&wtime, 0, sizeof(struct rtc_time)); - ds1286_get_alm_time(&wtime); - break; - } -@@ -216,6 +217,7 @@ - } - case RTC_RD_TIME: /* Read the time/date from RTC */ - { -+ memset(&wtime, 0, sizeof(struct rtc_time)); - ds1286_get_time(&wtime); - break; - } diff --git a/sys-kernel/gentoo-sources/files/gentoo-sources-2.4.20-hpt372.patch b/sys-kernel/gentoo-sources/files/gentoo-sources-2.4.20-hpt372.patch deleted file mode 100644 index 9eb8440bfa1e..000000000000 --- a/sys-kernel/gentoo-sources/files/gentoo-sources-2.4.20-hpt372.patch +++ /dev/null @@ -1,1026 +0,0 @@ ---- linux-2.4.20-gentoo-r5/drivers/ide/ide-pci.c.original 2003-05-13 18:29:31.000000000 -0400 -+++ linux-2.4.20-gentoo-r5/drivers/ide/ide-pci.c 2003-05-14 00:14:36.000000000 -0400 -@@ -79,6 +79,8 @@ - #define DEVID_UM8886BF ((ide_pci_devid_t){PCI_VENDOR_ID_UMC, PCI_DEVICE_ID_UMC_UM8886BF}) - #define DEVID_HPT34X ((ide_pci_devid_t){PCI_VENDOR_ID_TTI, PCI_DEVICE_ID_TTI_HPT343}) - #define DEVID_HPT366 ((ide_pci_devid_t){PCI_VENDOR_ID_TTI, PCI_DEVICE_ID_TTI_HPT366}) -+#define DEVID_HPT372 ((ide_pci_devid_t){PCI_VENDOR_ID_TTI, PCI_DEVICE_ID_TTI_HPT372}) -+#define DEVID_HPT374 ((ide_pci_devid_t){PCI_VENDOR_ID_TTI, PCI_DEVICE_ID_TTI_HPT374}) - #define DEVID_ALI15X3 ((ide_pci_devid_t){PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M5229}) - #define DEVID_CY82C693 ((ide_pci_devid_t){PCI_VENDOR_ID_CONTAQ, PCI_DEVICE_ID_CONTAQ_82C693}) - #define DEVID_HINT ((ide_pci_devid_t){0x3388, 0x8013}) -@@ -452,6 +454,8 @@ - {DEVID_UM8886BF,"UM8886BF", NULL, NULL, NULL, NULL, {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, ON_BOARD, 0 }, - {DEVID_HPT34X, "HPT34X", PCI_HPT34X, NULL, INIT_HPT34X, NULL, {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, NEVER_BOARD, 16 }, - {DEVID_HPT366, "HPT366", PCI_HPT366, ATA66_HPT366, INIT_HPT366, DMA_HPT366, {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, OFF_BOARD, 240 }, -+ {DEVID_HPT372, "HPT372", PCI_HPT366, ATA66_HPT366, INIT_HPT366, DMA_HPT366, {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, OFF_BOARD, 240 }, -+ {DEVID_HPT374, "HPT374", PCI_HPT366, ATA66_HPT366, INIT_HPT366, DMA_HPT366, {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, OFF_BOARD, 240 }, - {DEVID_ALI15X3, "ALI15X3", PCI_ALI15X3, ATA66_ALI15X3, INIT_ALI15X3, DMA_ALI15X3, {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, ON_BOARD, 0 }, - {DEVID_CY82C693,"CY82C693", PCI_CY82C693, NULL, INIT_CY82C693, NULL, {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, ON_BOARD, 0 }, - {DEVID_HINT, "HINT_IDE", NULL, NULL, NULL, NULL, {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, ON_BOARD, 0 }, -@@ -478,6 +482,7 @@ - { - switch(dev->device) { - case PCI_DEVICE_ID_TTI_HPT366: -+ case PCI_DEVICE_ID_TTI_HPT374: - case PCI_DEVICE_ID_PROMISE_20246: - case PCI_DEVICE_ID_PROMISE_20262: - case PCI_DEVICE_ID_PROMISE_20265: -@@ -828,6 +833,7 @@ - IDE_PCI_DEVID_EQ(d->devid, DEVID_AEC6260R) || - IDE_PCI_DEVID_EQ(d->devid, DEVID_HPT34X) || - IDE_PCI_DEVID_EQ(d->devid, DEVID_HPT366) || -+ IDE_PCI_DEVID_EQ(d->devid, DEVID_HPT374) || - IDE_PCI_DEVID_EQ(d->devid, DEVID_CS5530) || - IDE_PCI_DEVID_EQ(d->devid, DEVID_CY82C693) || - IDE_PCI_DEVID_EQ(d->devid, DEVID_CMD646) || -@@ -910,6 +916,44 @@ - ide_setup_pci_device(dev2, d2); - } - -+static void __init hpt374_device_order_fixup (struct pci_dev *dev, ide_pci_device_t *d) -+{ -+ struct pci_dev *dev2 = NULL, *findev; -+ ide_pci_device_t *d2; -+ -+ if (PCI_FUNC(dev->devfn) & 1) -+ return; -+ -+ pci_for_each_dev(findev) { -+ if ((findev->vendor == dev->vendor) && -+ (findev->device == dev->device) && -+ ((findev->devfn - dev->devfn) == 1) && -+ (PCI_FUNC(findev->devfn) & 1)) { -+ dev2 = findev; -+ break; -+ } -+ } -+ -+ printk("%s: IDE controller on PCI bus %02x dev %02x\n", d->name, dev->bus->number, dev->devfn); -+ ide_setup_pci_device(dev, d); -+ if (!dev2) { -+ return; -+ } else { -+ byte irq = 0, irq2 = 0; -+ pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &irq); -+ pci_read_config_byte(dev2, PCI_INTERRUPT_LINE, &irq2); -+ if (irq != irq2) { -+ pci_write_config_byte(dev2, PCI_INTERRUPT_LINE, irq); -+ dev2->irq = dev->irq; -+ printk("%s: pci-config space interrupt fixed.\n", d->name); -+ } -+ } -+ d2 = d; -+ printk("%s: IDE controller on PCI bus %02x dev %02x\n", d2->name, dev2->bus->number, dev2->devfn); -+ ide_setup_pci_device(dev2, d2); -+ -+} -+ - static void __init hpt366_device_order_fixup (struct pci_dev *dev, ide_pci_device_t *d) - { - struct pci_dev *dev2 = NULL, *findev; -@@ -992,6 +1036,8 @@ - return; /* UM8886A/BF pair */ - else if (IDE_PCI_DEVID_EQ(d->devid, DEVID_HPT366)) - hpt366_device_order_fixup(dev, d); -+ else if (IDE_PCI_DEVID_EQ(d->devid, DEVID_HPT374)) -+ hpt374_device_order_fixup(dev, d); - else if (IDE_PCI_DEVID_EQ(d->devid, DEVID_PDC20270)) - pdc20270_device_order_fixup(dev, d); - else if (!IDE_PCI_DEVID_EQ(d->devid, IDE_PCI_DEVID_NULL) || (dev->class >> 8) == PCI_CLASS_STORAGE_IDE) { ---- linux-2.4.20-gentoo-r5/drivers/ide/hpt366.c.original 2003-05-13 18:29:31.000000000 -0400 -+++ linux-2.4.20-gentoo-r5/drivers/ide/hpt366.c 2003-03-22 14:30:06.000000000 -0500 -@@ -67,8 +67,8 @@ - - /* various tuning parameters */ - #define HPT_RESET_STATE_ENGINE --/*#define HPT_DELAY_INTERRUPT*/ --/*#define HPT_SERIALIZE_IO*/ -+#undef HPT_DELAY_INTERRUPT -+#undef HPT_SERIALIZE_IO - - #if defined(DISPLAY_HPT366_TIMINGS) && defined(CONFIG_PROC_FS) - #include <linux/stat.h> -@@ -166,8 +166,7 @@ - * PIO. - * 31 FIFO enable. - */ --struct chipset_bus_clock_list_entry forty_base [] = { -- -+struct chipset_bus_clock_list_entry forty_base_hpt366[] = { - { XFER_UDMA_4, 0x900fd943 }, - { XFER_UDMA_3, 0x900ad943 }, - { XFER_UDMA_2, 0x900bd943 }, -@@ -186,7 +185,7 @@ - { 0, 0x0120d9d9 } - }; - --struct chipset_bus_clock_list_entry thirty_three_base [] = { -+struct chipset_bus_clock_list_entry thirty_three_base_hpt366[] = { - - { XFER_UDMA_4, 0x90c9a731 }, - { XFER_UDMA_3, 0x90cfa731 }, -@@ -206,8 +205,7 @@ - { 0, 0x0120a7a7 } - }; - --struct chipset_bus_clock_list_entry twenty_five_base [] = { -- -+struct chipset_bus_clock_list_entry twenty_five_base_hpt366[] = { - { XFER_UDMA_4, 0x90c98521 }, - { XFER_UDMA_3, 0x90cf8521 }, - { XFER_UDMA_2, 0x90cf8521 }, -@@ -226,7 +224,6 @@ - { 0, 0x01208585 } - }; - --#if 1 - /* these are the current (4 sep 2001) timings from highpoint */ - struct chipset_bus_clock_list_entry thirty_three_base_hpt370[] = { - { XFER_UDMA_5, 0x12446231 }, -@@ -268,9 +265,9 @@ - { XFER_PIO_0, 0x0d02bf5f }, - { 0, 0x0d02bf5f } - }; --#else -+ - /* from highpoint documentation. these are old values */ --struct chipset_bus_clock_list_entry thirty_three_base_hpt370[] = { -+struct chipset_bus_clock_list_entry thirty_three_base_old_hpt370[] = { - { XFER_UDMA_5, 0x16454e31 }, - { XFER_UDMA_4, 0x16454e31 }, - { XFER_UDMA_3, 0x166d4e31 }, -@@ -290,7 +287,7 @@ - { 0, 0x06514e57 } - }; - --struct chipset_bus_clock_list_entry sixty_six_base_hpt370[] = { -+struct chipset_bus_clock_list_entry sixty_six_base_old_hpt370[] = { - { XFER_UDMA_5, 0x14846231 }, - { XFER_UDMA_4, 0x14886231 }, - { XFER_UDMA_3, 0x148c6231 }, -@@ -309,7 +306,6 @@ - { XFER_PIO_0, 0x06914e57 }, - { 0, 0x06514e57 } - }; --#endif - - struct chipset_bus_clock_list_entry fifty_base_hpt370[] = { - { XFER_UDMA_5, 0x12848242 }, -@@ -331,6 +327,144 @@ - { 0, 0x0ac1f48a } - }; - -+struct chipset_bus_clock_list_entry thirty_three_base_hpt372[] = { -+ { XFER_UDMA_6, 0x1c81dc62 }, -+ { XFER_UDMA_5, 0x1c6ddc62 }, -+ { XFER_UDMA_4, 0x1c8ddc62 }, -+ { XFER_UDMA_3, 0x1c8edc62 }, /* checkme */ -+ { XFER_UDMA_2, 0x1c91dc62 }, -+ { XFER_UDMA_1, 0x1c9adc62 }, /* checkme */ -+ { XFER_UDMA_0, 0x1c82dc62 }, /* checkme */ -+ -+ { XFER_MW_DMA_2, 0x2c829262 }, -+ { XFER_MW_DMA_1, 0x2c829266 }, /* checkme */ -+ { XFER_MW_DMA_0, 0x2c82922e }, /* checkme */ -+ -+ { XFER_PIO_4, 0x0c829c62 }, -+ { XFER_PIO_3, 0x0c829c84 }, -+ { XFER_PIO_2, 0x0c829ca6 }, -+ { XFER_PIO_1, 0x0d029d26 }, -+ { XFER_PIO_0, 0x0d029d5e }, -+ { 0, 0x0d029d5e } -+}; -+ -+struct chipset_bus_clock_list_entry fifty_base_hpt372[] = { -+ { XFER_UDMA_5, 0x12848242 }, -+ { XFER_UDMA_4, 0x12ac8242 }, -+ { XFER_UDMA_3, 0x128c8242 }, -+ { XFER_UDMA_2, 0x120c8242 }, -+ { XFER_UDMA_1, 0x12148254 }, -+ { XFER_UDMA_0, 0x121882ea }, -+ -+ { XFER_MW_DMA_2, 0x22808242 }, -+ { XFER_MW_DMA_1, 0x22808254 }, -+ { XFER_MW_DMA_0, 0x228082ea }, -+ -+ { XFER_PIO_4, 0x0a81f442 }, -+ { XFER_PIO_3, 0x0a81f443 }, -+ { XFER_PIO_2, 0x0a81f454 }, -+ { XFER_PIO_1, 0x0ac1f465 }, -+ { XFER_PIO_0, 0x0ac1f48a }, -+ { 0, 0x0a81f443 } -+}; -+ -+struct chipset_bus_clock_list_entry sixty_six_base_hpt372[] = { -+ { XFER_UDMA_6, 0x1c869c62 }, -+ { XFER_UDMA_5, 0x1cae9c62 }, -+ { XFER_UDMA_4, 0x1c8a9c62 }, -+ { XFER_UDMA_3, 0x1c8e9c62 }, -+ { XFER_UDMA_2, 0x1c929c62 }, -+ { XFER_UDMA_1, 0x1c9a9c62 }, -+ { XFER_UDMA_0, 0x1c829c62 }, -+ -+ { XFER_MW_DMA_2, 0x2c829c62 }, -+ { XFER_MW_DMA_1, 0x2c829c66 }, -+ { XFER_MW_DMA_0, 0x2c829d2e }, -+ -+ { XFER_PIO_4, 0x0c829c62 }, -+ { XFER_PIO_3, 0x0c829c84 }, -+ { XFER_PIO_2, 0x0c829ca6 }, -+ { XFER_PIO_1, 0x0d029d26 }, -+ { XFER_PIO_0, 0x0d029d5e }, -+ { 0, 0x0d029d26 } -+}; -+ -+struct chipset_bus_clock_list_entry thirty_three_base_hpt374[] = { -+ { XFER_UDMA_6, 0x12808242 }, -+ { XFER_UDMA_5, 0x12848242 }, -+ { XFER_UDMA_4, 0x12ac8242 }, -+ { XFER_UDMA_3, 0x128c8242 }, -+ { XFER_UDMA_2, 0x120c8242 }, -+ { XFER_UDMA_1, 0x12148254 }, -+ { XFER_UDMA_0, 0x121882ea }, -+ -+ { XFER_MW_DMA_2, 0x22808242 }, -+ { XFER_MW_DMA_1, 0x22808254 }, -+ { XFER_MW_DMA_0, 0x228082ea }, -+ -+ { XFER_PIO_4, 0x0a81f442 }, -+ { XFER_PIO_3, 0x0a81f443 }, -+ { XFER_PIO_2, 0x0a81f454 }, -+ { XFER_PIO_1, 0x0ac1f465 }, -+ { XFER_PIO_0, 0x0ac1f48a }, -+ { 0, 0x06814e93 } -+}; -+ -+#if 0 -+struct chipset_bus_clock_list_entry fifty_base_hpt374[] = { -+ { XFER_UDMA_6, }, -+ { XFER_UDMA_5, }, -+ { XFER_UDMA_4, }, -+ { XFER_UDMA_3, }, -+ { XFER_UDMA_2, }, -+ { XFER_UDMA_1, }, -+ { XFER_UDMA_0, }, -+ { XFER_MW_DMA_2, }, -+ { XFER_MW_DMA_1, }, -+ { XFER_MW_DMA_0, }, -+ { XFER_PIO_4, }, -+ { XFER_PIO_3, }, -+ { XFER_PIO_2, }, -+ { XFER_PIO_1, }, -+ { XFER_PIO_0, }, -+ { 0, } -+}; -+#endif -+#if 0 -+struct chipset_bus_clock_list_entry sixty_six_base_hpt374[] = { -+ { XFER_UDMA_6, 0x12406231 }, /* checkme */ -+ { XFER_UDMA_5, 0x12446231 }, -+ 0x14846231 -+ { XFER_UDMA_4, 0x16814ea7 }, -+ 0x14886231 -+ { XFER_UDMA_3, 0x16814ea7 }, -+ 0x148c6231 -+ { XFER_UDMA_2, 0x16814ea7 }, -+ 0x148c6231 -+ { XFER_UDMA_1, 0x16814ea7 }, -+ 0x14906231 -+ { XFER_UDMA_0, 0x16814ea7 }, -+ 0x14986231 -+ { XFER_MW_DMA_2, 0x16814ea7 }, -+ 0x26514e21 -+ { XFER_MW_DMA_1, 0x16814ea7 }, -+ 0x26514e97 -+ { XFER_MW_DMA_0, 0x16814ea7 }, -+ 0x26514e97 -+ { XFER_PIO_4, 0x06814ea7 }, -+ 0x06514e21 -+ { XFER_PIO_3, 0x06814ea7 }, -+ 0x06514e22 -+ { XFER_PIO_2, 0x06814ea7 }, -+ 0x06514e33 -+ { XFER_PIO_1, 0x06814ea7 }, -+ 0x06914e43 -+ { XFER_PIO_0, 0x06814ea7 }, -+ 0x06914e57 -+ { 0, 0x06814ea7 } -+}; -+#endif -+ - #define HPT366_DEBUG_DRIVE_INFO 0 - #define HPT370_ALLOW_ATA100_5 1 - #define HPT366_ALLOW_ATA66_4 1 -@@ -345,8 +479,11 @@ - static struct pci_dev *hpt_devs[HPT366_MAX_DEVS]; - static int n_hpt_devs; - --static unsigned int pci_rev_check_hpt3xx(struct pci_dev *dev); - static unsigned int pci_rev2_check_hpt3xx(struct pci_dev *dev); -+static unsigned int pci_rev3_check_hpt3xx(struct pci_dev *dev); -+static unsigned int pci_rev5_check_hpt3xx(struct pci_dev *dev); -+static unsigned int pci_rev7_check_hpt3xx(struct pci_dev *dev); -+ - byte hpt366_proc = 0; - byte hpt363_shared_irq; - byte hpt363_shared_pin; -@@ -360,11 +497,13 @@ - static int hpt366_get_info (char *buffer, char **addr, off_t offset, int count) - { - char *p = buffer; -- char *chipset_nums[] = {"366", "366", "368", "370", "370A"}; -+ char *chipset_nums[] = {"366", "366", "368", -+ "370", "370A", "372", -+ "??", "374" }; - int i; - - p += sprintf(p, "\n " -- "HighPoint HPT366/368/370\n"); -+ "HighPoint HPT366/368/370/372/374\n"); - for (i = 0; i < n_hpt_devs; i++) { - struct pci_dev *dev = hpt_devs[i]; - unsigned long iobase = dev->resource[4].start; -@@ -373,9 +512,14 @@ - - pci_read_config_dword(dev, PCI_CLASS_REVISION, &class_rev); - class_rev &= 0xff; -+ -+ if(class_rev >= sizeof(chipset_nums)/sizeof(char *)) - - p += sprintf(p, "\nController: %d\n", i); -- p += sprintf(p, "Chipset: HPT%s\n", chipset_nums[class_rev]); -+ if(class_rev >= sizeof(chipset_nums)/sizeof(char *)) -+ p += sprintf(p, "Chipset: UNKNOWN\n"); -+ else -+ p += sprintf(p, "Chipset: HPT%s\n", chipset_nums[class_rev]); - p += sprintf(p, "--------------- Primary Channel " - "--------------- Secondary Channel " - "--------------\n"); -@@ -388,7 +532,7 @@ - (c0 & 0x80) ? "no" : "yes", - (c1 & 0x80) ? "no" : "yes"); - -- if (pci_rev_check_hpt3xx(dev)) { -+ if (pci_rev3_check_hpt3xx(dev)) { - u8 cbl; - cbl = inb_p(iobase + 0x7b); - outb_p(cbl | 1, iobase + 0x7b); -@@ -437,7 +581,19 @@ - } - #endif /* defined(DISPLAY_HPT366_TIMINGS) && defined(CONFIG_PROC_FS) */ - --static unsigned int pci_rev_check_hpt3xx (struct pci_dev *dev) -+/* -+ * fixme: it really needs to be a switch. -+ */ -+ -+static unsigned int pci_rev2_check_hpt3xx (struct pci_dev *dev) -+{ -+ unsigned int class_rev; -+ pci_read_config_dword(dev, PCI_CLASS_REVISION, &class_rev); -+ class_rev &= 0xff; -+ return ((int) (class_rev > 0x01) ? 1 : 0); -+} -+ -+static unsigned int pci_rev3_check_hpt3xx (struct pci_dev *dev) - { - unsigned int class_rev; - pci_read_config_dword(dev, PCI_CLASS_REVISION, &class_rev); -@@ -445,12 +601,20 @@ - return ((int) (class_rev > 0x02) ? 1 : 0); - } - --static unsigned int pci_rev2_check_hpt3xx (struct pci_dev *dev) -+static unsigned int pci_rev5_check_hpt3xx (struct pci_dev *dev) - { - unsigned int class_rev; - pci_read_config_dword(dev, PCI_CLASS_REVISION, &class_rev); - class_rev &= 0xff; -- return ((int) (class_rev > 0x01) ? 1 : 0); -+ return ((int) (class_rev > 0x04) ? 1 : 0); -+} -+ -+static unsigned int pci_rev7_check_hpt3xx (struct pci_dev *dev) -+{ -+ unsigned int class_rev; -+ pci_read_config_dword(dev, PCI_CLASS_REVISION, &class_rev); -+ class_rev &= 0xff; -+ return ((int) (class_rev > 0x06) ? 1 : 0); - } - - static int check_in_drive_lists (ide_drive_t *drive, const char **list) -@@ -484,54 +648,31 @@ - - static void hpt366_tune_chipset (ide_drive_t *drive, byte speed) - { -- byte regtime = (drive->select.b.unit & 0x01) ? 0x44 : 0x40; -+ struct pci_dev *dev = HWIF(drive)->pci_dev; -+ byte drive_pci = (drive->select.b.unit & 0x01) ? 0x44 : 0x40; - byte regfast = (HWIF(drive)->channel) ? 0x55 : 0x51; -- /* -- * since the channel is always 0 it does not matter. -- */ -- -- unsigned int reg1 = 0; -- unsigned int reg2 = 0; - byte drive_fast = 0; -- -- /* -- * Disable the "fast interrupt" prediction. -- */ -- pci_read_config_byte(HWIF(drive)->pci_dev, regfast, &drive_fast); -+ unsigned int list_conf = 0; -+ unsigned int drive_conf = 0; -+ unsigned int conf_mask = (speed >= XFER_MW_DMA_0) ? 0xc0000000 : 0x30070000; -+ -+ /* Disable the "fast interrupt" prediction. */ -+ pci_read_config_byte(dev, regfast, &drive_fast); - if (drive_fast & 0x02) -- pci_write_config_byte(HWIF(drive)->pci_dev, regfast, drive_fast & ~0x20); -- -- pci_read_config_dword(HWIF(drive)->pci_dev, regtime, ®1); -- /* detect bus speed by looking at control reg timing: */ -- switch((reg1 >> 8) & 7) { -- case 5: -- reg2 = pci_bus_clock_list(speed, forty_base); -- break; -- case 9: -- reg2 = pci_bus_clock_list(speed, twenty_five_base); -- break; -- default: -- case 7: -- reg2 = pci_bus_clock_list(speed, thirty_three_base); -- break; -- } --#if 0 -- /* this is a nice idea ... */ -+ pci_write_config_byte(dev, regfast, drive_fast & ~0x20); - list_conf = pci_bus_clock_list(speed, - (struct chipset_bus_clock_list_entry *) - dev->sysdata); --#endif -- /* -- * Disable on-chip PIO FIFO/buffer (to avoid problems handling I/O errors later) -- */ -- if (speed >= XFER_MW_DMA_0) { -- reg2 = (reg2 & ~0xc0000000) | (reg1 & 0xc0000000); -- } else { -- reg2 = (reg2 & ~0x30070000) | (reg1 & 0x30070000); -- } -- reg2 &= ~0x80000000; -+ pci_read_config_dword(dev, drive_pci, &drive_conf); -+ list_conf = (list_conf & ~conf_mask) | (drive_conf & conf_mask); -+ if (speed < XFER_MW_DMA_0) -+ list_conf &= ~0x80000000; /* Disable on-chip PIO FIFO/buffer */ -+ pci_write_config_dword(dev, drive_pci, list_conf); -+} - -- pci_write_config_dword(HWIF(drive)->pci_dev, regtime, reg2); -+static void hpt368_tune_chipset (ide_drive_t *drive, byte speed) -+{ -+ hpt366_tune_chipset(drive, speed); - } - - static void hpt370_tune_chipset (ide_drive_t *drive, byte speed) -@@ -577,6 +718,39 @@ - pci_write_config_dword(dev, drive_pci, list_conf); - } - -+static void hpt372_tune_chipset (ide_drive_t *drive, byte speed) -+{ -+ byte regfast = (HWIF(drive)->channel) ? 0x55 : 0x51; -+ unsigned int list_conf = 0; -+ unsigned int drive_conf = 0; -+ unsigned int conf_mask = (speed >= XFER_MW_DMA_0) ? 0xc0000000 : 0x30070000; -+ byte drive_pci = 0x40 + (drive->dn * 4); -+ byte drive_fast = 0; -+ struct pci_dev *dev = HWIF(drive)->pci_dev; -+ -+ /* -+ * Disable the "fast interrupt" prediction. -+ * don't holdoff on interrupts. (== 0x01 despite what the docs say) -+ */ -+ pci_read_config_byte(dev, regfast, &drive_fast); -+ drive_fast &= ~0x07; -+ pci_write_config_byte(HWIF(drive)->pci_dev, regfast, drive_fast); -+ -+ list_conf = pci_bus_clock_list(speed, -+ (struct chipset_bus_clock_list_entry *) -+ dev->sysdata); -+ pci_read_config_dword(dev, drive_pci, &drive_conf); -+ list_conf = (list_conf & ~conf_mask) | (drive_conf & conf_mask); -+ if (speed < XFER_MW_DMA_0) -+ list_conf &= ~0x80000000; /* Disable on-chip PIO FIFO/buffer */ -+ pci_write_config_dword(dev, drive_pci, list_conf); -+} -+ -+static void hpt374_tune_chipset (ide_drive_t *drive, byte speed) -+{ -+ hpt372_tune_chipset(drive, speed); -+} -+ - static int hpt3xx_tune_chipset (ide_drive_t *drive, byte speed) - { - if ((drive->media != ide_disk) && (speed < XFER_SW_DMA_0)) -@@ -585,9 +759,15 @@ - if (!drive->init_speed) - drive->init_speed = speed; - -- if (pci_rev_check_hpt3xx(HWIF(drive)->pci_dev)) { -+ if (pci_rev7_check_hpt3xx(HWIF(drive)->pci_dev)) { -+ hpt374_tune_chipset(drive, speed); -+ } else if (pci_rev5_check_hpt3xx(HWIF(drive)->pci_dev)) { -+ hpt372_tune_chipset(drive, speed); -+ } else if (pci_rev3_check_hpt3xx(HWIF(drive)->pci_dev)) { - hpt370_tune_chipset(drive, speed); -- } else { -+ } else if (pci_rev2_check_hpt3xx(HWIF(drive)->pci_dev)) { -+ hpt368_tune_chipset(drive, speed); -+ } else { - hpt366_tune_chipset(drive, speed); - } - drive->current_speed = speed; -@@ -664,13 +844,19 @@ - byte ultra66 = eighty_ninty_three(drive); - int rval; - -+ config_chipset_for_pio(drive); -+ - if ((drive->media != ide_disk) && (speed < XFER_SW_DMA_0)) - return ((int) ide_dma_off_quietly); - -- if ((id->dma_ultra & 0x0020) && -+ if ((id->dma_ultra & 0x0040) && -+ (pci_rev5_check_hpt3xx(HWIF(drive)->pci_dev)) && -+ (ultra66)) { -+ speed = XFER_UDMA_6; -+ } else if ((id->dma_ultra & 0x0020) && - (!check_in_drive_lists(drive, bad_ata100_5)) && - (HPT370_ALLOW_ATA100_5) && -- (pci_rev_check_hpt3xx(HWIF(drive)->pci_dev)) && -+ (pci_rev3_check_hpt3xx(HWIF(drive)->pci_dev)) && - (ultra66)) { - speed = XFER_UDMA_5; - } else if ((id->dma_ultra & 0x0010) && -@@ -703,7 +889,8 @@ - - (void) hpt3xx_tune_chipset(drive, speed); - -- rval = (int)( ((id->dma_ultra >> 11) & 7) ? ide_dma_on : -+ rval = (int)( ((id->dma_ultra >> 14) & 3) ? ide_dma_on : -+ ((id->dma_ultra >> 11) & 7) ? ide_dma_on : - ((id->dma_ultra >> 8) & 7) ? ide_dma_on : - ((id->dma_mword >> 8) & 7) ? ide_dma_on : - ide_dma_off_quietly); -@@ -717,17 +904,16 @@ - - void hpt3xx_intrproc (ide_drive_t *drive) - { -- if (drive->quirk_list) { -- /* drives in the quirk_list may not like intr setups/cleanups */ -- } else { -- OUT_BYTE((drive)->ctl|2, HWIF(drive)->io_ports[IDE_CONTROL_OFFSET]); -- } -+ /* drives in the quirk_list may not like intr setups/cleanups */ -+ if (drive->quirk_list) -+ return; -+ OUT_BYTE((drive)->ctl|2, HWIF(drive)->io_ports[IDE_CONTROL_OFFSET]); - } - - void hpt3xx_maskproc (ide_drive_t *drive, int mask) - { - if (drive->quirk_list) { -- if (pci_rev_check_hpt3xx(HWIF(drive)->pci_dev)) { -+ if (pci_rev3_check_hpt3xx(HWIF(drive)->pci_dev)) { - byte reg5a = 0; - pci_read_config_byte(HWIF(drive)->pci_dev, 0x5a, ®5a); - if (((reg5a & 0x10) >> 4) != mask) -@@ -758,7 +944,7 @@ - } - dma_func = ide_dma_off_quietly; - if (id->field_valid & 4) { -- if (id->dma_ultra & 0x002F) { -+ if (id->dma_ultra & 0x007F) { - /* Force if Capable UltraDMA */ - dma_func = config_chipset_for_dma(drive); - if ((id->field_valid & 2) && -@@ -821,8 +1007,10 @@ - reg50h, reg52h, reg5ah); - if (reg5ah & 0x10) - pci_write_config_byte(HWIF(drive)->pci_dev, 0x5a, reg5ah & ~0x10); -+#if 1 -+ /* how about we flush and reset, mmmkay? */ -+ pci_write_config_byte(HWIF(drive)->pci_dev, 0x51, 0x1F); - /* fall through to a reset */ --#if 0 - case ide_dma_begin: - case ide_dma_end: - /* reset the chips state over and over.. */ -@@ -889,6 +1077,44 @@ - } - return ide_dmaproc(func, drive); /* use standard DMA stuff */ - } -+ -+int hpt374_dmaproc (ide_dma_action_t func, ide_drive_t *drive) -+{ -+ ide_hwif_t *hwif = HWIF(drive); -+ unsigned long dma_base = hwif->dma_base; -+ byte mscreg = hwif->channel ? 0x54 : 0x50; -+// byte reginfo = hwif->channel ? 0x56 : 0x52; -+ byte dma_stat; -+ -+ switch (func) { -+ case ide_dma_check: -+ return config_drive_xfer_rate(drive); -+ case ide_dma_test_irq: /* returns 1 if dma irq issued, 0 otherwise */ -+ dma_stat = inb(dma_base+2); -+#if 0 /* do not set unless you know what you are doing */ -+ if (dma_stat & 4) { -+ byte stat = GET_STAT(); -+ outb(dma_base+2, dma_stat & 0xE4); -+ } -+#endif -+ /* return 1 if INTR asserted */ -+ return (dma_stat & 4) == 4; -+ case ide_dma_end: -+ { -+ byte bwsr_mask = hwif->channel ? 0x02 : 0x01; -+ byte bwsr_stat, msc_stat; -+ pci_read_config_byte(hwif->pci_dev, 0x6a, &bwsr_stat); -+ pci_read_config_byte(hwif->pci_dev, mscreg, &msc_stat); -+ if ((bwsr_stat & bwsr_mask) == bwsr_mask) -+ pci_write_config_byte(hwif->pci_dev, mscreg, msc_stat|0x30); -+ } -+ default: -+ break; -+ } -+ return ide_dmaproc(func, drive); /* use standard DMA stuff */ -+} -+ -+ - #endif /* CONFIG_BLK_DEV_IDEDMA */ - - /* -@@ -1006,6 +1232,184 @@ - return 0; - } - -+static void __init init_hpt374(struct pci_dev *dev) -+{ -+ int adjust, i; -+ u16 freq; -+ u32 pll; -+ byte reg5bh; -+ -+ /* -+ * default to pci clock. make sure MA15/16 are set to output -+ * to prevent drives having problems with 40-pin cables. -+ */ -+ pci_write_config_byte(dev, 0x5b, 0x23); -+ -+ /* -+ * set up the PLL. we need to adjust it so that it's stable. -+ * freq = Tpll * 192 / Tpci -+ */ -+ pci_read_config_word(dev, 0x78, &freq); -+ freq &= 0x1FF; -+ if (freq < 0x9c) { -+ pll = F_LOW_PCI_33; -+ dev->sysdata = (void *) thirty_three_base_hpt374; -+ printk("HPT374: using 33MHz PCI clock\n"); -+ } else if (freq < 0xb0) { -+ pll = F_LOW_PCI_40; -+ } else if (freq < 0xc8) { -+ pll = F_LOW_PCI_50; -+// dev->sysdata = (void *) fifty_base_hpt374; -+ printk("HPT374: using 50MHz PCI clock\n"); -+ } else { -+ pll = F_LOW_PCI_66; -+// dev->sysdata = (void *) sixty_six_base_hpt374; -+ printk("HPT374: using 66MHz PCI clock\n"); -+ } -+ -+ /* -+ * only try the pll if we don't have a table for the clock -+ * speed that we're running at. NOTE: the internal PLL will -+ * result in slow reads when using a 33MHz PCI clock. we also -+ * don't like to use the PLL because it will cause glitches -+ * on PRST/SRST when the HPT state engine gets reset. -+ */ -+ if (dev->sysdata) -+ goto init_hpt374_done; -+ -+ /* -+ * adjust PLL based upon PCI clock, enable it, and wait for -+ * stabilization. -+ */ -+ adjust = 0; -+ freq = (pll < F_LOW_PCI_50) ? 2 : 4; -+ while (adjust++ < 6) { -+ pci_write_config_dword(dev, 0x5c, (freq + pll) << 16 | -+ pll | 0x100); -+ -+ /* wait for clock stabilization */ -+ for (i = 0; i < 0x50000; i++) { -+ pci_read_config_byte(dev, 0x5b, ®5bh); -+ if (reg5bh & 0x80) { -+ /* spin looking for the clock to destabilize */ -+ for (i = 0; i < 0x1000; ++i) { -+ pci_read_config_byte(dev, 0x5b, -+ ®5bh); -+ if ((reg5bh & 0x80) == 0) -+ goto pll_recal; -+ } -+ pci_read_config_dword(dev, 0x5c, &pll); -+ pci_write_config_dword(dev, 0x5c, -+ pll & ~0x100); -+ pci_write_config_byte(dev, 0x5b, 0x21); -+// dev->sysdata = (void *) fifty_base_hpt374; -+ printk("HPT374: using 50MHz internal PLL\n"); -+ goto init_hpt374_done; -+ } -+ } -+pll_recal: -+ if (adjust & 1) -+ pll -= (adjust >> 1); -+ else -+ pll += (adjust >> 1); -+ } -+ -+init_hpt374_done: -+ /* reset state engine */ -+ pci_write_config_byte(dev, 0x50, 0x36); -+ pci_write_config_byte(dev, 0x54, 0x36); -+ udelay(100); -+} -+ -+static void __init init_hpt372(struct pci_dev *dev) -+{ -+ int adjust, i; -+ u16 freq; -+ u32 pll; -+ byte reg5bh; -+ -+ /* -+ * default to pci clock. make sure MA15/16 are set to output -+ * to prevent drives having problems with 40-pin cables. -+ */ -+ pci_write_config_byte(dev, 0x5b, 0x23); -+ -+ /* -+ * set up the PLL. we need to adjust it so that it's stable. -+ * freq = Tpll * 192 / Tpci -+ */ -+ pci_read_config_word(dev, 0x78, &freq); -+ freq &= 0x1FF; -+ if (freq < 0x9c) { -+ pll = F_LOW_PCI_33; -+ dev->sysdata = (void *) thirty_three_base_hpt372; -+ printk("HPT372: using 33MHz PCI clock\n"); -+ } else if (freq < 0xb0) { -+ pll = F_LOW_PCI_40; -+ } else if (freq < 0xc8) { -+ pll = F_LOW_PCI_50; -+ dev->sysdata = (void *) fifty_base_hpt372; -+ printk("HPT372: using 50MHz PCI clock\n"); -+ } else { -+ pll = F_LOW_PCI_66; -+ dev->sysdata = (void *) sixty_six_base_hpt372; -+ printk("HPT372: using 66MHz PCI clock\n"); -+ } -+ -+ /* -+ * only try the pll if we don't have a table for the clock -+ * speed that we're running at. NOTE: the internal PLL will -+ * result in slow reads when using a 33MHz PCI clock. we also -+ * don't like to use the PLL because it will cause glitches -+ * on PRST/SRST when the HPT state engine gets reset. -+ */ -+ if (dev->sysdata) -+ goto init_hpt372_done; -+ -+ /* -+ * adjust PLL based upon PCI clock, enable it, and wait for -+ * stabilization. -+ */ -+ adjust = 0; -+ freq = (pll < F_LOW_PCI_50) ? 2 : 4; -+ while (adjust++ < 6) { -+ pci_write_config_dword(dev, 0x5c, (freq + pll) << 16 | -+ pll | 0x100); -+ -+ /* wait for clock stabilization */ -+ for (i = 0; i < 0x50000; i++) { -+ pci_read_config_byte(dev, 0x5b, ®5bh); -+ if (reg5bh & 0x80) { -+ /* spin looking for the clock to destabilize */ -+ for (i = 0; i < 0x1000; ++i) { -+ pci_read_config_byte(dev, 0x5b, -+ ®5bh); -+ if ((reg5bh & 0x80) == 0) -+ goto pll_recal; -+ } -+ pci_read_config_dword(dev, 0x5c, &pll); -+ pci_write_config_dword(dev, 0x5c, -+ pll & ~0x100); -+ pci_write_config_byte(dev, 0x5b, 0x21); -+ dev->sysdata = (void *) fifty_base_hpt372; -+ printk("HPT372: using 50MHz internal PLL\n"); -+ goto init_hpt372_done; -+ } -+ } -+pll_recal: -+ if (adjust & 1) -+ pll -= (adjust >> 1); -+ else -+ pll += (adjust >> 1); -+ } -+ -+init_hpt372_done: -+ /* reset state engine */ -+ pci_write_config_byte(dev, 0x50, 0x37); -+ pci_write_config_byte(dev, 0x54, 0x37); -+ udelay(100); -+} -+ - static void __init init_hpt370(struct pci_dev *dev) - { - int adjust, i; -@@ -1095,6 +1499,34 @@ - udelay(100); - } - -+static void __init init_hpt366 (struct pci_dev *dev) -+{ -+ unsigned int reg1 = 0; -+ byte drive_fast = 0; -+ -+ /* -+ * Disable the "fast interrupt" prediction. -+ */ -+ pci_read_config_byte(dev, 0x51, &drive_fast); -+ if (drive_fast & 0x02) -+ pci_write_config_byte(dev, 0x51, drive_fast & ~0x20); -+ pci_read_config_dword(dev, 0x40, ®1); -+ -+ /* detect bus speed by looking at control reg timing: */ -+ switch((reg1 >> 8) & 7) { -+ case 5: -+ dev->sysdata = (void *) forty_base_hpt366; -+ break; -+ case 9: -+ dev->sysdata = (void *) twenty_five_base_hpt366; -+ break; -+ case 7: -+ default: -+ dev->sysdata = (void *) thirty_three_base_hpt366; -+ break; -+ } -+} -+ - unsigned int __init pci_init_hpt366 (struct pci_dev *dev, const char *name) - { - byte test = 0; -@@ -1118,13 +1550,29 @@ - if (test != 0x08) - pci_write_config_byte(dev, PCI_MAX_LAT, 0x08); - -- if (pci_rev_check_hpt3xx(dev)) { -- init_hpt370(dev); -- hpt_devs[n_hpt_devs++] = dev; -- } else { -- hpt_devs[n_hpt_devs++] = dev; -+ if(n_hpt_devs < HPT366_MAX_DEVS) -+ { -+ if (pci_rev7_check_hpt3xx(dev)) { -+ init_hpt374(dev); -+ hpt_devs[n_hpt_devs++] = dev; -+ } else if (pci_rev5_check_hpt3xx(dev)) { -+ init_hpt372(dev); -+ hpt_devs[n_hpt_devs++] = dev; -+ } else if (pci_rev3_check_hpt3xx(dev)) { -+ init_hpt370(dev); -+ hpt_devs[n_hpt_devs++] = dev; -+ } else { -+ if (dev->device == PCI_DEVICE_ID_TTI_HPT372) { -+ init_hpt372(dev); -+ hpt_devs[n_hpt_devs++] = dev; -+ } else { -+ init_hpt366(dev); -+ hpt_devs[n_hpt_devs++] = dev; -+ } -+ } - } -- -+ else printk(KERN_ERR "hpt366: Too many highpoint controllers.\n"); -+ - #if defined(DISPLAY_HPT366_TIMINGS) && defined(CONFIG_PROC_FS) - if (!hpt366_proc) { - hpt366_proc = 1; -@@ -1151,8 +1599,6 @@ - - void __init ide_init_hpt366 (ide_hwif_t *hwif) - { -- int hpt_rev; -- - hwif->tuneproc = &hpt3xx_tune_drive; - hwif->speedproc = &hpt3xx_tune_chipset; - hwif->quirkproc = &hpt3xx_quirkproc; -@@ -1165,47 +1611,61 @@ - hwif->serialized = hwif->mate->serialized = 1; - #endif - -- hpt_rev = pci_rev_check_hpt3xx(hwif->pci_dev); -- if (hpt_rev) { -- /* set up ioctl for power status. note: power affects both -- * drives on each channel */ -- hwif->busproc = &hpt370_busproc; -- } -- -- if (pci_rev2_check_hpt3xx(hwif->pci_dev)) { -- /* do nothing now but will split device types */ -- hwif->resetproc = &hpt3xx_reset; --/* -- * don't do until we can parse out the cobalt box argh ... -- * hwif->busproc = &hpt3xx_tristate; -- */ -- } -- - #ifdef CONFIG_BLK_DEV_IDEDMA -- if (hwif->dma_base) { -- if (hpt_rev) { -+ if ((pci_rev3_check_hpt3xx(hwif->pci_dev)) || -+ (hwif->pci_dev->device == PCI_DEVICE_ID_TTI_HPT372)) { -+ if (hwif->dma_base) { - byte reg5ah = 0; - pci_read_config_byte(hwif->pci_dev, 0x5a, ®5ah); -- if (reg5ah & 0x10) /* interrupt force enable */ -- pci_write_config_byte(hwif->pci_dev, 0x5a, reg5ah & ~0x10); -- hwif->dmaproc = &hpt370_dmaproc; -- } else { -- hwif->dmaproc = &hpt366_dmaproc; -+ reg5ah &= ~0x10; -+ pci_write_config_byte(hwif->pci_dev, 0x5a, reg5ah); - } -- if (!noautodma) -- hwif->autodma = 1; -- else -- hwif->autodma = 0; -+ } -+#endif /* CONFIG_BLK_DEV_IDEDMA */ -+ -+ if (pci_rev7_check_hpt3xx(hwif->pci_dev)) { -+ hwif->resetproc = &hpt3xx_reset; -+ hwif->busproc = &hpt370_busproc; -+#ifdef CONFIG_BLK_DEV_IDEDMA -+ if (hwif->dma_base) -+ hwif->dmaproc = &hpt374_dmaproc; -+#endif /* CONFIG_BLK_DEV_IDEDMA */ -+ } else if (pci_rev5_check_hpt3xx(hwif->pci_dev)) { -+ hwif->resetproc = &hpt3xx_reset; -+ hwif->busproc = &hpt370_busproc; -+#ifdef CONFIG_BLK_DEV_IDEDMA -+ if (hwif->dma_base) -+ hwif->dmaproc = &hpt374_dmaproc; -+#endif /* CONFIG_BLK_DEV_IDEDMA */ -+ } else if (pci_rev3_check_hpt3xx(hwif->pci_dev)) { -+ /* -+ * set up ioctl for power status. note: power affects both -+ * drives on each channel -+ */ -+ hwif->resetproc = &hpt3xx_reset; -+ hwif->busproc = &hpt370_busproc; -+#ifdef CONFIG_BLK_DEV_IDEDMA -+ if (hwif->dma_base) -+ hwif->dmaproc = &hpt370_dmaproc; -+#endif /* CONFIG_BLK_DEV_IDEDMA */ -+ } else if (hwif->pci_dev->device == PCI_DEVICE_ID_TTI_HPT372) { -+ hwif->resetproc = &hpt3xx_reset; -+ hwif->busproc = &hpt370_busproc; -+#ifdef CONFIG_BLK_DEV_IDEDMA -+ if (hwif->dma_base) -+ hwif->dmaproc = &hpt370_dmaproc; -+#endif /* CONFIG_BLK_DEV_IDEDMA */ - } else { -- hwif->autodma = 0; -- hwif->drives[0].autotune = 1; -- hwif->drives[1].autotune = 1; -- } --#else /* !CONFIG_BLK_DEV_IDEDMA */ -- hwif->drives[0].autotune = 1; -- hwif->drives[1].autotune = 1; -- hwif->autodma = 0; -+ /* do nothing now but will split device types */ -+ hwif->resetproc = &hpt3xx_reset; -+ hwif->busproc = &hpt3xx_tristate; -+#ifdef CONFIG_BLK_DEV_IDEDMA -+ if (hwif->dma_base) -+ hwif->dmaproc = &hpt366_dmaproc; - #endif /* CONFIG_BLK_DEV_IDEDMA */ -+ } -+ hwif->drives[0].autotune = (hwif->autodma) ? 0 : 1; -+ hwif->drives[1].autotune = (hwif->autodma) ? 0 : 1; - } - - void __init ide_dmacapable_hpt366 (ide_hwif_t *hwif, unsigned long dmabase) diff --git a/sys-kernel/gentoo-sources/files/gentoo-sources-2.4.XDRWrapFix.patch b/sys-kernel/gentoo-sources/files/gentoo-sources-2.4.XDRWrapFix.patch new file mode 100644 index 000000000000..9a336ab7876a --- /dev/null +++ b/sys-kernel/gentoo-sources/files/gentoo-sources-2.4.XDRWrapFix.patch @@ -0,0 +1,48 @@ +# This is a BitKeeper generated diff -Nru style patch. +# +# ChangeSet +# 2004/08/16 14:50:04-03:00 neilb@cse.unsw.edu.au +# [PATCH] Fixed possibly xdr parsing error if write size exceed 2^31 +# +# xdr_argsize_check needs to cope with the possibility that the +# pointer has wrapped and could be below buf->base. +# +# Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> +# +# ### Diffstat output +# ./fs/nfsd/nfs3xdr.c | 2 +- +# ./include/linux/nfsd/xdr3.h | 2 +- +# 2 files changed, 2 insertions(+), 2 deletions(-) +# +# fs/nfsd/nfs3xdr.c +# 2004/08/14 00:23:06-03:00 neilb@cse.unsw.edu.au +1 -1 +# Fixed possibly xdr parsing error if write size exceed 2^31 +# +# include/linux/nfsd/xdr3.h +# 2004/08/15 20:48:43-03:00 neilb@cse.unsw.edu.au +1 -1 +# Fixed possibly xdr parsing error if write size exceed 2^31 +# +diff -Nru a/fs/nfsd/nfs3xdr.c b/fs/nfsd/nfs3xdr.c +--- a/fs/nfsd/nfs3xdr.c 2004-09-06 11:20:28 -07:00 ++++ b/fs/nfsd/nfs3xdr.c 2004-09-06 11:20:28 -07:00 +@@ -273,7 +273,7 @@ + { + struct svc_buf *buf = &rqstp->rq_argbuf; + +- return p - buf->base <= buf->buflen; ++ return p >= buf->base && p <= buf->base + buf->buflen ; + } + + static inline int +diff -Nru a/include/linux/nfsd/xdr3.h b/include/linux/nfsd/xdr3.h +--- a/include/linux/nfsd/xdr3.h 2004-09-06 11:20:28 -07:00 ++++ b/include/linux/nfsd/xdr3.h 2004-09-06 11:20:28 -07:00 +@@ -41,7 +41,7 @@ + __u32 count; + int stable; + __u8 * data; +- int len; ++ __u32 len; + }; + + struct nfsd3_createargs { diff --git a/sys-kernel/gentoo-sources/files/i810_drm.patch b/sys-kernel/gentoo-sources/files/i810_drm.patch deleted file mode 100644 index 785b18a2879b..000000000000 --- a/sys-kernel/gentoo-sources/files/i810_drm.patch +++ /dev/null @@ -1,32 +0,0 @@ ---- linux-2.4.19-gentoo-r10/drivers/char/drm/i810_dma.c 2002-11-16 01:41:14.000000000 -0600 -+++ linux-2.4.19-gentoo-r10/drivers/char/drm/i810_dma.c.new 2002-12-08 16:13:53.000000000 -0600 -@@ -229,11 +229,11 @@ - #endif - #if LINUX_VERSION_CODE < 0x020399 - retcode = do_munmap((unsigned long)buf_priv->virtual, -- (size_t) buf->total); -+ (size_t) buf->total,1); - #else - retcode = do_munmap(current->mm, - (unsigned long)buf_priv->virtual, -- (size_t) buf->total); -+ (size_t) buf->total,1); - #endif - #if LINUX_VERSION_CODE <= 0x020402 - up( ¤t->mm->mmap_sem ); ---- linux-2.4.19-gentoo-r10/drivers/char/drm-4.0/i810_dma.c 2002-11-16 01:41:14.000000000 -0600 -+++ linux-2.4.19-gentoo-r10/drivers/char/drm-4.0/i810_dma.c.new 2002-12-08 16:14:18.000000000 -0600 -@@ -227,11 +227,11 @@ - down_write(¤t->mm->mmap_sem); - #if LINUX_VERSION_CODE < 0x020399 - retcode = do_munmap((unsigned long)buf_priv->virtual, -- (size_t) buf->total); -+ (size_t) buf->total,1); - #else - retcode = do_munmap(current->mm, - (unsigned long)buf_priv->virtual, -- (size_t) buf->total); -+ (size_t) buf->total,1); - #endif - up_write(¤t->mm->mmap_sem); - } diff --git a/sys-kernel/gentoo-sources/files/lcall-DoS.patch b/sys-kernel/gentoo-sources/files/lcall-DoS.patch deleted file mode 100644 index dea58ed342d3..000000000000 --- a/sys-kernel/gentoo-sources/files/lcall-DoS.patch +++ /dev/null @@ -1,32 +0,0 @@ ---- 1.15/arch/i386/kernel/entry.S Wed Sep 11 15:39:07 2002 -+++ 1.16/arch/i386/kernel/entry.S Wed Nov 13 13:40:19 2002 -@@ -63,7 +63,9 @@ - OLDSS = 0x38 - - CF_MASK = 0x00000001 -+TF_MASK = 0x00000100 - IF_MASK = 0x00000200 -+DF_MASK = 0x00000400 - NT_MASK = 0x00004000 - VM_MASK = 0x00020000 - -@@ -140,6 +142,9 @@ - movl CS(%esp),%edx # this is eip.. - movl EFLAGS(%esp),%ecx # and this is cs.. - movl %eax,EFLAGS(%esp) # -+ andl $~(NT_MASK|TF_MASK|DF_MASK), %eax -+ pushl %eax -+ popfl - movl %edx,EIP(%esp) # Now we move them to their "normal" places - movl %ecx,CS(%esp) # - movl %esp,%ebx -@@ -161,6 +166,9 @@ - movl CS(%esp),%edx # this is eip.. - movl EFLAGS(%esp),%ecx # and this is cs.. - movl %eax,EFLAGS(%esp) # -+ andl $~(NT_MASK|TF_MASK|DF_MASK), %eax -+ pushl %eax -+ popfl - movl %edx,EIP(%esp) # Now we move them to their "normal" places - movl %ecx,CS(%esp) # - movl %esp,%ebx diff --git a/sys-kernel/gentoo-sources/files/security.patch5 b/sys-kernel/gentoo-sources/files/security.patch5 deleted file mode 100644 index 197d255e2463..000000000000 --- a/sys-kernel/gentoo-sources/files/security.patch5 +++ /dev/null @@ -1,571 +0,0 @@ -diff -Nru a/arch/alpha/kernel/entry.S b/arch/alpha/kernel/entry.S ---- a/arch/alpha/kernel/entry.S 2004-08-05 12:52:10 -07:00 -+++ b/arch/alpha/kernel/entry.S 2004-08-05 12:52:10 -07:00 -@@ -231,12 +231,12 @@ - .end kernel_clone - - /* -- * kernel_thread(fn, arg, clone_flags) -+ * arch_kernel_thread(fn, arg, clone_flags) - */ - .align 3 - .globl kernel_thread - .ent kernel_thread --kernel_thread: -+arch_kernel_thread: - ldgp $29,0($27) /* we can be called from a module */ - .frame $30, 4*8, $26 - subq $30,4*8,$30 -diff -Nru a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c ---- a/arch/arm/kernel/process.c 2004-08-05 12:52:10 -07:00 -+++ b/arch/arm/kernel/process.c 2004-08-05 12:52:10 -07:00 -@@ -366,7 +366,7 @@ - * a system call from a "real" process, but the process memory space will - * not be free'd until both the parent and the child have exited. - */ --pid_t kernel_thread(int (*fn)(void *), void *arg, unsigned long flags) -+pid_t arch_kernel_thread(int (*fn)(void *), void *arg, unsigned long flags) - { - pid_t __ret; - -diff -Nru a/arch/cris/kernel/entry.S b/arch/cris/kernel/entry.S ---- a/arch/cris/kernel/entry.S 2004-08-05 12:52:10 -07:00 -+++ b/arch/cris/kernel/entry.S 2004-08-05 12:52:10 -07:00 -@@ -739,12 +739,12 @@ - * the grosser the code, at least with the gcc version in cris-dist-1.13. - */ - --/* int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) */ -+/* int arch_kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) */ - /* r10 r11 r12 */ - - .text -- .global kernel_thread --kernel_thread: -+ .global arch_kernel_thread -+arch_kernel_thread: - - /* Save ARG for later. */ - move.d $r11, $r13 -diff -Nru a/arch/i386/kernel/process.c b/arch/i386/kernel/process.c ---- a/arch/i386/kernel/process.c 2004-08-05 12:52:10 -07:00 -+++ b/arch/i386/kernel/process.c 2004-08-05 12:52:10 -07:00 -@@ -485,7 +485,7 @@ - /* - * Create a kernel thread - */ --int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) -+int arch_kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) - { - long retval, d0; - -@@ -508,6 +508,7 @@ - "r" (arg), "r" (fn), - "b" (flags | CLONE_VM) - : "memory"); -+ - return retval; - } - -diff -Nru a/arch/ia64/kernel/process.c b/arch/ia64/kernel/process.c ---- a/arch/ia64/kernel/process.c 2004-08-05 12:52:10 -07:00 -+++ b/arch/ia64/kernel/process.c 2004-08-05 12:52:10 -07:00 -@@ -230,7 +230,7 @@ - * | | <-- sp (lowest addr) - * +---------------------+ - * -- * Note: if we get called through kernel_thread() then the memory -+ * Note: if we get called through arch_kernel_thread() then the memory - * above "(highest addr)" is valid kernel stack memory that needs to - * be copied as well. - * -@@ -485,7 +485,7 @@ - } - - pid_t --kernel_thread (int (*fn)(void *), void *arg, unsigned long flags) -+arch_kernel_thread (int (*fn)(void *), void *arg, unsigned long flags) - { - struct task_struct *parent = current; - int result, tid; -diff -Nru a/arch/m68k/kernel/process.c b/arch/m68k/kernel/process.c ---- a/arch/m68k/kernel/process.c 2004-08-05 12:52:10 -07:00 -+++ b/arch/m68k/kernel/process.c 2004-08-05 12:52:10 -07:00 -@@ -124,7 +124,7 @@ - /* - * Create a kernel thread - */ --int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) -+int arch_kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) - { - int pid; - mm_segment_t fs; -diff -Nru a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c ---- a/arch/mips/kernel/process.c 2004-08-05 12:52:10 -07:00 -+++ b/arch/mips/kernel/process.c 2004-08-05 12:52:10 -07:00 -@@ -152,7 +152,7 @@ - /* - * Create a kernel thread - */ --int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) -+int arch_kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) - { - long retval; - -diff -Nru a/arch/mips64/kernel/process.c b/arch/mips64/kernel/process.c ---- a/arch/mips64/kernel/process.c 2004-08-05 12:52:10 -07:00 -+++ b/arch/mips64/kernel/process.c 2004-08-05 12:52:10 -07:00 -@@ -151,7 +151,7 @@ - /* - * Create a kernel thread - */ --int kernel_thread(int (*fn)(void *), void *arg, unsigned long flags) -+int arch_kernel_thread(int (*fn)(void *), void *arg, unsigned long flags) - { - int retval; - -diff -Nru a/arch/parisc/kernel/process.c b/arch/parisc/kernel/process.c ---- a/arch/parisc/kernel/process.c 2004-08-05 12:52:10 -07:00 -+++ b/arch/parisc/kernel/process.c 2004-08-05 12:52:10 -07:00 -@@ -169,7 +169,7 @@ - */ - - extern pid_t __kernel_thread(int (*fn)(void *), void *arg, unsigned long flags); --pid_t kernel_thread(int (*fn)(void *), void *arg, unsigned long flags) -+pid_t arch_kernel_thread(int (*fn)(void *), void *arg, unsigned long flags) - { - - /* -diff -Nru a/arch/ppc/kernel/misc.S b/arch/ppc/kernel/misc.S ---- a/arch/ppc/kernel/misc.S 2004-08-05 12:52:10 -07:00 -+++ b/arch/ppc/kernel/misc.S 2004-08-05 12:52:10 -07:00 -@@ -899,9 +899,9 @@ - - /* - * Create a kernel thread -- * kernel_thread(fn, arg, flags) -+ * arch_kernel_thread(fn, arg, flags) - */ --_GLOBAL(kernel_thread) -+_GLOBAL(arch_kernel_thread) - mr r6,r3 /* function */ - ori r3,r5,CLONE_VM /* flags */ - li r0,__NR_clone -diff -Nru a/arch/ppc64/kernel/misc.S b/arch/ppc64/kernel/misc.S ---- a/arch/ppc64/kernel/misc.S 2004-08-05 12:52:10 -07:00 -+++ b/arch/ppc64/kernel/misc.S 2004-08-05 12:52:10 -07:00 -@@ -481,9 +481,9 @@ - - /* - * Create a kernel thread -- * kernel_thread(fn, arg, flags) -+ * arch_kernel_thread(fn, arg, flags) - */ --_GLOBAL(kernel_thread) -+_GLOBAL(arch_kernel_thread) - mr r6,r3 /* function */ - ori r3,r5,CLONE_VM /* flags */ - li r0,__NR_clone -diff -Nru a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c ---- a/arch/s390/kernel/process.c 2004-08-05 12:52:10 -07:00 -+++ b/arch/s390/kernel/process.c 2004-08-05 12:52:10 -07:00 -@@ -105,7 +105,7 @@ - show_trace((unsigned long *) regs->gprs[15]); - } - --int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) -+int arch_kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) - { - int clone_arg = flags | CLONE_VM; - int retval; -diff -Nru a/arch/s390x/kernel/process.c b/arch/s390x/kernel/process.c ---- a/arch/s390x/kernel/process.c 2004-08-05 12:52:10 -07:00 -+++ b/arch/s390x/kernel/process.c 2004-08-05 12:52:10 -07:00 -@@ -102,7 +102,7 @@ - show_trace((unsigned long *) regs->gprs[15]); - } - --int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) -+int arch_kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) - { - int clone_arg = flags | CLONE_VM; - int retval; -diff -Nru a/arch/sh/kernel/process.c b/arch/sh/kernel/process.c ---- a/arch/sh/kernel/process.c 2004-08-05 12:52:10 -07:00 -+++ b/arch/sh/kernel/process.c 2004-08-05 12:52:10 -07:00 -@@ -118,7 +118,7 @@ - * This is the mechanism for creating a new kernel thread. - * - */ --int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) -+int arch_kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) - { /* Don't use this in BL=1(cli). Or else, CPU resets! */ - register unsigned long __sc0 __asm__ ("r0"); - register unsigned long __sc3 __asm__ ("r3") = __NR_clone; -diff -Nru a/arch/sparc/kernel/process.c b/arch/sparc/kernel/process.c ---- a/arch/sparc/kernel/process.c 2004-08-05 12:52:10 -07:00 -+++ b/arch/sparc/kernel/process.c 2004-08-05 12:52:10 -07:00 -@@ -676,7 +676,7 @@ - * a system call from a "real" process, but the process memory space will - * not be free'd until both the parent and the child have exited. - */ --pid_t kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) -+pid_t arch_kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) - { - long retval; - -diff -Nru a/arch/sparc64/kernel/process.c b/arch/sparc64/kernel/process.c ---- a/arch/sparc64/kernel/process.c 2004-08-05 12:52:10 -07:00 -+++ b/arch/sparc64/kernel/process.c 2004-08-05 12:52:10 -07:00 -@@ -673,7 +673,7 @@ - * a system call from a "real" process, but the process memory space will - * not be free'd until both the parent and the child have exited. - */ --pid_t kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) -+pid_t arch_kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) - { - long retval; - -diff -Nru a/fs/exec.c b/fs/exec.c ---- a/fs/exec.c 2004-08-05 12:52:10 -07:00 -+++ b/fs/exec.c 2004-08-05 12:52:10 -07:00 -@@ -576,8 +576,10 @@ - - current->sas_ss_sp = current->sas_ss_size = 0; - -- if (current->euid == current->uid && current->egid == current->gid) -+ if (current->euid == current->uid && current->egid == current->gid) { - current->mm->dumpable = 1; -+ current->task_dumpable = 1; -+ } - name = bprm->filename; - for (i=0; (ch = *(name++)) != '\0';) { - if (ch == '/') -@@ -1085,7 +1087,7 @@ - binfmt = current->binfmt; - if (!binfmt || !binfmt->core_dump) - goto fail; -- if (!current->mm->dumpable) -+ if (!is_dumpable(current)) - goto fail; - current->mm->dumpable = 0; - if (current->rlim[RLIMIT_CORE].rlim_cur < binfmt->min_coredump) -diff -Nru a/include/asm-alpha/processor.h b/include/asm-alpha/processor.h ---- a/include/asm-alpha/processor.h 2004-08-05 12:52:10 -07:00 -+++ b/include/asm-alpha/processor.h 2004-08-05 12:52:10 -07:00 -@@ -119,7 +119,7 @@ - extern void release_thread(struct task_struct *); - - /* Create a kernel thread without removing it from tasklists. */ --extern long kernel_thread(int (*fn)(void *), void *arg, unsigned long flags); -+extern long arch_kernel_thread(int (*fn)(void *), void *arg, unsigned long flags); - - #define copy_segments(tsk, mm) do { } while (0) - #define release_segments(mm) do { } while (0) -diff -Nru a/include/asm-arm/processor.h b/include/asm-arm/processor.h ---- a/include/asm-arm/processor.h 2004-08-05 12:52:10 -07:00 -+++ b/include/asm-arm/processor.h 2004-08-05 12:52:10 -07:00 -@@ -117,7 +117,7 @@ - /* - * Create a new kernel thread - */ --extern int kernel_thread(int (*fn)(void *), void *arg, unsigned long flags); -+extern int arch_kernel_thread(int (*fn)(void *), void *arg, unsigned long flags); - - #endif - -diff -Nru a/include/asm-cris/processor.h b/include/asm-cris/processor.h ---- a/include/asm-cris/processor.h 2004-08-05 12:52:10 -07:00 -+++ b/include/asm-cris/processor.h 2004-08-05 12:52:10 -07:00 -@@ -81,7 +81,7 @@ - #define INIT_THREAD { \ - 0, 0, 0x20 } /* ccr = int enable, nothing else */ - --extern int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags); -+extern int arch_kernel_thread(int (*fn)(void *), void * arg, unsigned long flags); - - /* give the thread a program location - * set user-mode (The 'U' flag (User mode flag) is CCR/DCCR bit 8) -diff -Nru a/include/asm-i386/processor.h b/include/asm-i386/processor.h ---- a/include/asm-i386/processor.h 2004-08-05 12:52:10 -07:00 -+++ b/include/asm-i386/processor.h 2004-08-05 12:52:10 -07:00 -@@ -433,7 +433,7 @@ - /* - * create a kernel thread without removing it from tasklists - */ --extern int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags); -+extern int arch_kernel_thread(int (*fn)(void *), void * arg, unsigned long flags); - - /* Copy and release all segment info associated with a VM */ - extern void copy_segments(struct task_struct *p, struct mm_struct * mm); -diff -Nru a/include/asm-ia64/processor.h b/include/asm-ia64/processor.h ---- a/include/asm-ia64/processor.h 2004-08-05 12:52:10 -07:00 -+++ b/include/asm-ia64/processor.h 2004-08-05 12:52:10 -07:00 -@@ -372,7 +372,7 @@ - * do_basic_setup() and the timing is such that free_initmem() has - * been called already. - */ --extern int kernel_thread (int (*fn)(void *), void *arg, unsigned long flags); -+extern int arch_kernel_thread (int (*fn)(void *), void *arg, unsigned long flags); - - /* Copy and release all segment info associated with a VM */ - #define copy_segments(tsk, mm) do { } while (0) -diff -Nru a/include/asm-m68k/processor.h b/include/asm-m68k/processor.h ---- a/include/asm-m68k/processor.h 2004-08-05 12:52:10 -07:00 -+++ b/include/asm-m68k/processor.h 2004-08-05 12:52:10 -07:00 -@@ -105,7 +105,7 @@ - { - } - --extern int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags); -+extern int arch_kernel_thread(int (*fn)(void *), void * arg, unsigned long flags); - - #define copy_segments(tsk, mm) do { } while (0) - #define release_segments(mm) do { } while (0) -diff -Nru a/include/asm-mips/processor.h b/include/asm-mips/processor.h ---- a/include/asm-mips/processor.h 2004-08-05 12:52:10 -07:00 -+++ b/include/asm-mips/processor.h 2004-08-05 12:52:10 -07:00 -@@ -188,7 +188,7 @@ - /* Free all resources held by a thread. */ - #define release_thread(thread) do { } while(0) - --extern int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags); -+extern int arch_kernel_thread(int (*fn)(void *), void * arg, unsigned long flags); - - /* Copy and release all segment info associated with a VM */ - #define copy_segments(p, mm) do { } while(0) -diff -Nru a/include/asm-mips64/processor.h b/include/asm-mips64/processor.h ---- a/include/asm-mips64/processor.h 2004-08-05 12:52:10 -07:00 -+++ b/include/asm-mips64/processor.h 2004-08-05 12:52:10 -07:00 -@@ -231,7 +231,7 @@ - /* Free all resources held by a thread. */ - #define release_thread(thread) do { } while(0) - --extern int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags); -+extern int arch_kernel_thread(int (*fn)(void *), void * arg, unsigned long flags); - - /* Copy and release all segment info associated with a VM */ - #define copy_segments(p, mm) do { } while(0) -diff -Nru a/include/asm-parisc/processor.h b/include/asm-parisc/processor.h ---- a/include/asm-parisc/processor.h 2004-08-05 12:52:10 -07:00 -+++ b/include/asm-parisc/processor.h 2004-08-05 12:52:10 -07:00 -@@ -292,7 +292,7 @@ - - /* Free all resources held by a thread. */ - extern void release_thread(struct task_struct *); --extern int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags); -+extern int arch_kernel_thread(int (*fn)(void *), void * arg, unsigned long flags); - - extern void map_hpux_gateway_page(struct task_struct *tsk, struct mm_struct *mm); - -diff -Nru a/include/asm-ppc/processor.h b/include/asm-ppc/processor.h ---- a/include/asm-ppc/processor.h 2004-08-05 12:52:10 -07:00 -+++ b/include/asm-ppc/processor.h 2004-08-05 12:52:10 -07:00 -@@ -622,7 +622,7 @@ - /* - * Create a new kernel thread. - */ --extern long kernel_thread(int (*fn)(void *), void *arg, unsigned long flags); -+extern long arch_kernel_thread(int (*fn)(void *), void *arg, unsigned long flags); - - /* - * Bus types -diff -Nru a/include/asm-ppc64/processor.h b/include/asm-ppc64/processor.h ---- a/include/asm-ppc64/processor.h 2004-08-05 12:52:10 -07:00 -+++ b/include/asm-ppc64/processor.h 2004-08-05 12:52:10 -07:00 -@@ -602,7 +602,7 @@ - /* - * Create a new kernel thread. - */ --extern long kernel_thread(int (*fn)(void *), void *arg, unsigned long flags); -+extern long arch_kernel_thread(int (*fn)(void *), void *arg, unsigned long flags); - - /* - * Bus types -diff -Nru a/include/asm-s390/processor.h b/include/asm-s390/processor.h ---- a/include/asm-s390/processor.h 2004-08-05 12:52:10 -07:00 -+++ b/include/asm-s390/processor.h 2004-08-05 12:52:10 -07:00 -@@ -113,7 +113,7 @@ - - /* Free all resources held by a thread. */ - extern void release_thread(struct task_struct *); --extern int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags); -+extern int arch_kernel_thread(int (*fn)(void *), void * arg, unsigned long flags); - - /* Copy and release all segment info associated with a VM */ - #define copy_segments(nr, mm) do { } while (0) -diff -Nru a/include/asm-s390x/processor.h b/include/asm-s390x/processor.h ---- a/include/asm-s390x/processor.h 2004-08-05 12:52:10 -07:00 -+++ b/include/asm-s390x/processor.h 2004-08-05 12:52:10 -07:00 -@@ -128,7 +128,7 @@ - - /* Free all resources held by a thread. */ - extern void release_thread(struct task_struct *); --extern int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags); -+extern int arch_kernel_thread(int (*fn)(void *), void * arg, unsigned long flags); - - /* Copy and release all segment info associated with a VM */ - #define copy_segments(nr, mm) do { } while (0) -diff -Nru a/include/asm-sh/processor.h b/include/asm-sh/processor.h ---- a/include/asm-sh/processor.h 2004-08-05 12:52:10 -07:00 -+++ b/include/asm-sh/processor.h 2004-08-05 12:52:10 -07:00 -@@ -137,7 +137,7 @@ - /* - * create a kernel thread without removing it from tasklists - */ --extern int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags); -+extern int arch_kernel_thread(int (*fn)(void *), void * arg, unsigned long flags); - - /* - * Bus types -diff -Nru a/include/asm-sparc/processor.h b/include/asm-sparc/processor.h ---- a/include/asm-sparc/processor.h 2004-08-05 12:52:10 -07:00 -+++ b/include/asm-sparc/processor.h 2004-08-05 12:52:10 -07:00 -@@ -146,7 +146,7 @@ - - /* Free all resources held by a thread. */ - #define release_thread(tsk) do { } while(0) --extern pid_t kernel_thread(int (*fn)(void *), void * arg, unsigned long flags); -+extern pid_t arch_kernel_thread(int (*fn)(void *), void * arg, unsigned long flags); - - - #define copy_segments(tsk, mm) do { } while (0) -diff -Nru a/include/asm-sparc64/processor.h b/include/asm-sparc64/processor.h ---- a/include/asm-sparc64/processor.h 2004-08-05 12:52:10 -07:00 -+++ b/include/asm-sparc64/processor.h 2004-08-05 12:52:10 -07:00 -@@ -270,7 +270,7 @@ - /* Free all resources held by a thread. */ - #define release_thread(tsk) do { } while(0) - --extern pid_t kernel_thread(int (*fn)(void *), void * arg, unsigned long flags); -+extern pid_t arch_kernel_thread(int (*fn)(void *), void * arg, unsigned long flags); - - #define copy_segments(tsk, mm) do { } while (0) - #define release_segments(mm) do { } while (0) -diff -Nru a/include/linux/sched.h b/include/linux/sched.h ---- a/include/linux/sched.h 2004-08-05 12:52:10 -07:00 -+++ b/include/linux/sched.h 2004-08-05 12:52:10 -07:00 -@@ -345,6 +345,7 @@ - /* ??? */ - unsigned long personality; - int did_exec:1; -+ unsigned task_dumpable:1; - pid_t pid; - pid_t pgrp; - pid_t tty_old_pgrp; -@@ -454,6 +455,8 @@ - #define PT_TRACESYSGOOD 0x00000008 - #define PT_PTRACE_CAP 0x00000010 /* ptracer can follow suid-exec */ - -+#define is_dumpable(tsk) ((tsk)->task_dumpable && (tsk)->mm && (tsk)->mm->dumpable) -+ - /* - * Limit the stack by to some sane default: root can always - * increase this limit if needed.. 8MB seems reasonable. -@@ -808,6 +811,8 @@ - extern void FASTCALL(add_wait_queue(wait_queue_head_t *q, wait_queue_t * wait)); - extern void FASTCALL(add_wait_queue_exclusive(wait_queue_head_t *q, wait_queue_t * wait)); - extern void FASTCALL(remove_wait_queue(wait_queue_head_t *q, wait_queue_t * wait)); -+ -+extern long kernel_thread(int (*fn)(void *), void * arg, unsigned long flags); - - #define __wait_event(wq, condition) \ - do { \ -diff -Nru a/kernel/fork.c b/kernel/fork.c ---- a/kernel/fork.c 2004-08-05 12:52:10 -07:00 -+++ b/kernel/fork.c 2004-08-05 12:52:10 -07:00 -@@ -27,6 +27,7 @@ - #include <asm/pgalloc.h> - #include <asm/uaccess.h> - #include <asm/mmu_context.h> -+#include <asm/processor.h> - - /* The idle threads do not count.. */ - int nr_threads; -@@ -563,6 +564,31 @@ - if (!(clone_flags & CLONE_PTRACE)) - p->ptrace = 0; - p->flags = new_flags; -+} -+ -+long kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) -+{ -+ struct task_struct *task = current; -+ unsigned old_task_dumpable; -+ long ret; -+ -+ /* lock out any potential ptracer */ -+ task_lock(task); -+ if (task->ptrace) { -+ task_unlock(task); -+ return -EPERM; -+ } -+ -+ old_task_dumpable = task->task_dumpable; -+ task->task_dumpable = 0; -+ task_unlock(task); -+ -+ ret = arch_kernel_thread(fn, arg, flags); -+ -+ /* never reached in child process, only in parent */ -+ current->task_dumpable = old_task_dumpable; -+ -+ return ret; - } - - /* -diff -Nru a/kernel/ptrace.c b/kernel/ptrace.c ---- a/kernel/ptrace.c 2004-08-05 12:52:10 -07:00 -+++ b/kernel/ptrace.c 2004-08-05 12:52:10 -07:00 -@@ -21,6 +21,10 @@ - */ - int ptrace_check_attach(struct task_struct *child, int kill) - { -+ mb(); -+ if (!is_dumpable(child)) -+ return -EPERM; -+ - if (!(child->ptrace & PT_PTRACED)) - return -ESRCH; - -@@ -70,7 +74,7 @@ - (current->gid != task->gid)) && !capable(CAP_SYS_PTRACE)) - goto bad; - rmb(); -- if (!task->mm->dumpable && !capable(CAP_SYS_PTRACE)) -+ if (!is_dumpable(task) && !capable(CAP_SYS_PTRACE)) - goto bad; - /* the same process cannot be attached many times */ - if (task->ptrace & PT_PTRACED) -@@ -136,6 +140,8 @@ - /* Worry about races with exit() */ - task_lock(tsk); - mm = tsk->mm; -+ if (!is_dumpable(tsk) || (&init_mm == mm)) -+ mm = NULL; - if (mm) - atomic_inc(&mm->mm_users); - task_unlock(tsk); -diff -Nru a/kernel/sys.c b/kernel/sys.c ---- a/kernel/sys.c 2004-08-05 12:52:10 -07:00 -+++ b/kernel/sys.c 2004-08-05 12:52:10 -07:00 -@@ -1238,7 +1238,7 @@ - error = put_user(current->pdeath_signal, (int *)arg2); - break; - case PR_GET_DUMPABLE: -- if (current->mm->dumpable) -+ if (is_dumpable(current)) - error = 1; - break; - case PR_SET_DUMPABLE: -@@ -1246,7 +1246,8 @@ - error = -EINVAL; - break; - } -- current->mm->dumpable = arg2; -+ if (is_dumpable(current)) -+ current->mm->dumpable = arg2; - break; - - case PR_SET_UNALIGN: - diff --git a/sys-kernel/gentoo-sources/gentoo-sources-2.4.19-r22.ebuild b/sys-kernel/gentoo-sources/gentoo-sources-2.4.19-r22.ebuild deleted file mode 100644 index fa10a9b03321..000000000000 --- a/sys-kernel/gentoo-sources/gentoo-sources-2.4.19-r22.ebuild +++ /dev/null @@ -1,93 +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/gentoo-sources/gentoo-sources-2.4.19-r22.ebuild,v 1.1 2004/08/14 14:35:32 plasmaroo Exp $ - -IUSE="acpi4linux crypt xfs" - -# OKV=original kernel version, KV=patched kernel version. They can be the same. - -# Kernel ebuilds using the kernel.eclass can remove any patch that you -# do not want to apply by simply setting the KERNEL_EXCLUDE shell -# variable to the string you want to exclude (for instance -# KERNEL_EXCLUDE="evms" would not patch any patches whose names match -# *evms*). Kernels are only tested in the default configuration, but -# this may be useful if you know that a particular patch is causing a -# conflict with a patch you personally want to apply, or some other -# similar situation. - -# This kernel also has support for the local USE flag acpi4linux which -# activates the latest code from acpi.sourceforge.net instead of the -# very out of date vanilla version - -ETYPE="sources" - -inherit kernel eutils - -OKV="`echo ${PV}|sed -e 's:^\([0-9]\+\.[0-9]\+\.[0-9]\+\).*:\1:'`" -EXTRAVERSION="-${PN/-*/}" -[ ! "${PR}" == "r0" ] && EXTRAVERSION="${EXTRAVERSION}-${PR}" -KV="${OKV}${EXTRAVERSION}" - -S=${WORKDIR}/linux-${KV} - -# Documentation on the patches contained in this kernel will be installed -# to /usr/share/doc/gentoo-sources-${PV}/patches.txt.gz - -DESCRIPTION="Full sources for the Gentoo Linux kernel" -SRC_URI="mirror://kernel/linux/kernel/v2.4/linux-${OKV}.tar.bz2 - http://gentoo.lostlogicx.com/patches-${KV/-r22/-r10}.tar.bz2 - http://dev.gentoo.org/~plasmaroo/patches/kernel/misc/security/linux-${OKV}-CAN-2004-0415.patch" -KEYWORDS="x86 -ppc -sparc -amd64 -ia64" -SLOT="${KV}" - -src_unpack() { - unpack ${A} - mv linux-${OKV} linux-${KV} || die - - cd ${KV/-r22/-r10} - # Kill patches we aren't suppposed to use, don't worry about - # failures, if they aren't there that is a good thing! - - # This is the ratified crypt USE flag, enables IPSEC and patch-int - use crypt || rm 8* - - # This is the XFS filesystem from SGI, use at your own risk ;) - use xfs || rm *xfs* - - # This is the latest release of ACPI from - # http://www.sourceforge.net/projects/acpi - use acpi4linux || rm 70* - - kernel_src_unpack - - cd ${S} - epatch ${FILESDIR}/${P}-gcc33.patch || die "GCC 3.3 patch failed!" - epatch ${FILESDIR}/${PN}-2.4.20-cs46xx-gcc33.patch || die "GCC 3.3 patch failed!" - - epatch ${FILESDIR}/security.patch2 - epatch ${FILESDIR}/security.patch3 - epatch ${FILESDIR}/security.patch4 - epatch ${FILESDIR}/security.patch5 - - epatch ${FILESDIR}/lcall-DoS.patch || die "lcall-DoS patch failed" - epatch ${FILESDIR}/i810_drm.patch || die "i810_drm patch failed" - epatch ${FILESDIR}/do_brk_fix.patch || die "Failed to apply do_brk() patch!" - epatch ${FILESDIR}/${P}-munmap.patch || die "Failed to apply munmap patch!" - epatch ${FILESDIR}/${P}-rtc_fix.patch || die "Failed to apply the RTC fixes!" - epatch ${FILESDIR}/${PN}-2.4.CAN-2003-0643.patch || die "Failed to add the CAN-2003-0643 patch!" - epatch ${FILESDIR}/${PN}-2.4.CAN-2003-0985.patch || die "Failed to add the CAN-2003-0985 patch!" - epatch ${FILESDIR}/${PN}-2.4.CAN-2004-0010.patch || die "Failed to add the CAN-2004-0010 patch!" - epatch ${FILESDIR}/${PN}-2.4.CAN-2004-0109.patch || die "Failed to add the CAN-2004-0109 patch!" - use xfs && { epatch ${FILESDIR}/${PN}-2.4.CAN-2004-0133.patch || die "Failed to add the CAN-2004-0133 patch!"; } - epatch ${FILESDIR}/${PN}-2.4.CAN-2004-0177.patch || die "Failed to add the CAN-2004-0177 patch!" - epatch ${FILESDIR}/${PN}-2.4.CAN-2004-0178.patch || die "Failed to add the CAN-2004-0178 patch!" - epatch ${FILESDIR}/${P}-CAN-2004-0181.patch || die "Failed to add the CAN-2004-0181 patch!" - epatch ${FILESDIR}/${PN}-2.4.CAN-2004-0394.patch || die "Failed to add the CAN-2004-0394 patch!" - epatch ${DISTDIR}/linux-${OKV}-CAN-2004-0415.patch || die "Failed to add the CAN-2004-0415 patch!" - epatch ${FILESDIR}/${PN}-2.4.CAN-2004-0427.patch || die "Failed to add the CAN-2004-0427 patch!" - epatch ${FILESDIR}/${PN}-2.4.CAN-2004-0495.patch || die "Failed to add the CAN-2004-0495 patch!" - epatch ${FILESDIR}/${PN}-2.4.CAN-2004-0497.patch || die "Failed to add the CAN-2004-0497 patch!" - epatch ${FILESDIR}/${PN}-2.4.20-CAN-2004-0685.patch || die "Failed to add the CAN-2004-0685 patch!" - epatch ${FILESDIR}/${PN}-2.4.FPULockup-53804.patch || die "Failed to apply FPU-lockup patch!" - epatch ${FILESDIR}/${PN}-2.4.cmdlineLeak.patch || die "Failed to apply the /proc/cmdline patch!" -} diff --git a/sys-kernel/gentoo-sources/gentoo-sources-2.4.20-r25.ebuild b/sys-kernel/gentoo-sources/gentoo-sources-2.4.20-r26.ebuild index 495c8f2859d9..a1ca235c5449 100644 --- a/sys-kernel/gentoo-sources/gentoo-sources-2.4.20-r25.ebuild +++ b/sys-kernel/gentoo-sources/gentoo-sources-2.4.20-r26.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/gentoo-sources/gentoo-sources-2.4.20-r25.ebuild,v 1.1 2004/08/14 14:35:32 plasmaroo Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/gentoo-sources/gentoo-sources-2.4.20-r26.ebuild,v 1.1 2004/11/09 22:23:54 plasmaroo Exp $ IUSE="aavm crypt evms2 usagi" @@ -30,8 +30,9 @@ S=${WORKDIR}/linux-${KV} DESCRIPTION="Full sources for the Gentoo Kernel." SRC_URI="mirror://kernel/linux/kernel/v2.4/linux-${OKV}.tar.bz2 - http://dev.gentoo.org/~plasmaroo/patches/kernel/gentoo-sources/patches-${KV/r25/r14}.tar.bz2 - http://dev.gentoo.org/~plasmaroo/patches/kernel/misc/security/gentoo-sources-${OKV}-CAN-2004-0415.patch" + http://dev.gentoo.org/~plasmaroo/patches/kernel/gentoo-sources/patches-${KV/r26/r14}.tar.bz2 + http://dev.gentoo.org/~plasmaroo/patches/kernel/misc/security/${P}-CAN-2004-0415.patch + http://dev.gentoo.org/~plasmaroo/patches/kernel/misc/security/${P}-CAN-2004-0814.patch" HOMEPAGE="http://www.gentoo.org/ http://www.kernel.org/" LICENSE="GPL-2" KEYWORDS="x86 -ppc -sparc -alpha -hppa -mips" @@ -41,7 +42,7 @@ src_unpack() { unpack ${A} mv linux-${OKV} linux-${KV} || die "Error moving kernel source tree to linux-${KV}" - cd ${WORKDIR}/${KV/r25/r14} + cd ${WORKDIR}/${KV/r26/r14} # This is the *ratified* aavm USE flag, enables aavm support in this kernel if ! use aavm; then @@ -137,15 +138,17 @@ src_unpack() { epatch ${FILESDIR}/${PN}-2.4.CAN-2004-0178.patch || die "Failed to add the CAN-2004-0178 patch!" epatch ${FILESDIR}/${PN}-2.4.CAN-2004-0181.patch || die "Failed to add the CAN-2004-0181 patch!" epatch ${FILESDIR}/${PN}-2.4.CAN-2004-0394.patch || die "Failed to add the CAN-2004-0394 patch!" - epatch ${DISTDIR}/${PN}-${OKV}-CAN-2004-0415.patch || die "Failed to add the CAN-2004-0415 patch!" + epatch ${DISTDIR}/${P}-CAN-2004-0415.patch || die "Failed to add the CAN-2004-0415 patch!" epatch ${FILESDIR}/${PN}-2.4.CAN-2004-0427.patch || die "Failed to add the CAN-2004-0427 patch!" epatch ${FILESDIR}/${PN}-2.4.CAN-2004-0495.patch || die "Failed to add the CAN-2004-0495 patch!" epatch ${FILESDIR}/${PN}-2.4.CAN-2004-0497.patch || die "Failed to add the CAN-2004-0497 patch!" epatch ${FILESDIR}/${PN}-2.4.CAN-2004-0535.patch || die "Failed to add the CAN-2004-0535 patch!" epatch ${FILESDIR}/${P}-CAN-2004-0685.patch || die "Failed to add the CAN-2004-0685 patch!" + epatch ${DISTDIR}/${P}-CAN-2004-0814.patch || die "Failed to add the CAN-2004-0814 patch!" epatch ${FILESDIR}/${PN}-2.4.I2C_Limits.patch || die "Failed to patch the I2C i2cdev_ioctl() kmalloc() bug!" epatch ${FILESDIR}/${PN}-2.4.FPULockup-53804.patch || die "Failed to apply FPU-lockup patch!" epatch ${FILESDIR}/${PN}-2.4.cmdlineLeak.patch || die "Failed to apply the /proc/cmdline patch!" + epatch ${FILESDIR}/${PN}-2.4.XDRWrapFix.patch || die "Failed to apply the kNFSd XDR patch!" } pkg_postinst() { diff --git a/sys-kernel/gentoo-sources/gentoo-sources-2.4.22-r16.ebuild b/sys-kernel/gentoo-sources/gentoo-sources-2.4.22-r17.ebuild index 985cd0d8b09c..2ff35f7e535c 100644 --- a/sys-kernel/gentoo-sources/gentoo-sources-2.4.22-r16.ebuild +++ b/sys-kernel/gentoo-sources/gentoo-sources-2.4.22-r17.ebuild @@ -1,13 +1,15 @@ # Copyright 1999-2004 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-kernel/gentoo-sources/gentoo-sources-2.4.22-r16.ebuild,v 1.1 2004/08/14 14:35:32 plasmaroo Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/gentoo-sources/gentoo-sources-2.4.22-r17.ebuild,v 1.1 2004/11/09 22:23:54 plasmaroo Exp $ ETYPE="sources" inherit kernel-2 detect_version +UNIPATCH_STRICTORDER='Y' UNIPATCH_LIST=" + ${DISTDIR}/gentoo-sources-${PVR/17/5}.patch.bz2 ${FILESDIR}/${PN}-2.4.munmap.patch ${FILESDIR}/${PN}-2.4.CAN-2004-0001.patch ${FILESDIR}/${PN}-2.4.CAN-2004-0010.patch @@ -24,16 +26,18 @@ UNIPATCH_LIST=" ${FILESDIR}/${PN}-2.4.CAN-2004-0497.patch ${FILESDIR}/${PN}-2.4.CAN-2004-0535.patch ${FILESDIR}/${PN}-2.4.CAN-2004-0685.patch + ${DISTDIR}/${P}-CAN-2004-0814.patch ${FILESDIR}/${PN}-2.4.FPULockup-53804.patch ${FILESDIR}/${PN}-2.4.cmdlineLeak.patch - ${DISTDIR}/gentoo-sources-${PVR/16/5}.patch.bz2" + ${FILESDIR}/${PN}-2.4.XDRWrapFix.patch" S=${WORKDIR}/linux-${KV} DESCRIPTION="Full sources for the Gentoo Kernel." SRC_URI="mirror://kernel/linux/kernel/v2.4/linux-${OKV}.tar.bz2 - http://dev.gentoo.org/~iggy/gentoo-sources-${PVR/16/5}.patch.bz2 - http://dev.gentoo.org/~plasmaroo/patches/kernel/misc/security/linux-${OKV}-CAN-2004-0415.patch" + http://dev.gentoo.org/~iggy/gentoo-sources-${PVR/17/5}.patch.bz2 + http://dev.gentoo.org/~plasmaroo/patches/kernel/misc/security/linux-${OKV}-CAN-2004-0415.patch + http://dev.gentoo.org/~plasmaroo/patches/kernel/misc/security/${P}-CAN-2004-0814.patch" KEYWORDS="x86 -*" IUSE="" SLOT="${KV}" diff --git a/sys-kernel/gentoo-sources/gentoo-sources-2.4.25-r9.ebuild b/sys-kernel/gentoo-sources/gentoo-sources-2.4.25-r10.ebuild index e7ee4a070357..5ed98b8ac43b 100644 --- a/sys-kernel/gentoo-sources/gentoo-sources-2.4.25-r9.ebuild +++ b/sys-kernel/gentoo-sources/gentoo-sources-2.4.25-r10.ebuild @@ -1,14 +1,17 @@ # Copyright 1999-2004 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-kernel/gentoo-sources/gentoo-sources-2.4.25-r9.ebuild,v 1.1 2004/08/14 14:35:32 plasmaroo Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/gentoo-sources/gentoo-sources-2.4.25-r10.ebuild,v 1.1 2004/11/09 22:23:54 plasmaroo Exp $ ETYPE="sources" inherit kernel-2 detect_version KEYWORDS="x86 -ppc" -IUSE="" +IUSE='' + +UNIPATCH_STRICTORDER='Y' UNIPATCH_LIST=" + ${DISTDIR}/${P}.patch.bz2 ${FILESDIR}/${PN}-2.4.CAN-2004-0109.patch ${FILESDIR}/${PN}-2.4.CAN-2004-0133.patch ${FILESDIR}/${PN}-2.4.CAN-2004-0177.patch @@ -22,9 +25,12 @@ UNIPATCH_LIST=" ${FILESDIR}/${PN}-2.4.CAN-2004-0685.patch ${FILESDIR}/${PN}-2.4.FPULockup-53804.patch ${FILESDIR}/${PN}-2.4.cmdlineLeak.patch + ${FILESDIR}/${PN}-2.4.XDRWrapFix.patch ${DISTDIR}/linux-2.4.26-CAN-2004-0415.patch - ${DISTDIR}/${P}.patch.bz2" + ${DISTDIR}/${PN}-2.4.22-CAN-2004-0814.patch" DESCRIPTION="Full sources including the gentoo patchset for the ${KV_MAJOR}.${KV_MINOR} kernel tree" SRC_URI="${KERNEL_URI} http://dev.gentoo.org/~livewire/${P}.patch.bz2 - http://dev.gentoo.org/~plasmaroo/patches/kernel/misc/security/linux-2.4.26-CAN-2004-0415.patch" + http://dev.gentoo.org/~plasmaroo/patches/kernel/misc/security/linux-2.4.26-CAN-2004-0415.patch + http://dev.gentoo.org/~plasmaroo/patches/kernel/misc/security/${PN}-2.4.22-CAN-2004-0814.patch" + diff --git a/sys-kernel/gentoo-sources/gentoo-sources-2.4.26-r9.ebuild b/sys-kernel/gentoo-sources/gentoo-sources-2.4.26-r10.ebuild index f95e8c805959..2e0fdb8181af 100644 --- a/sys-kernel/gentoo-sources/gentoo-sources-2.4.26-r9.ebuild +++ b/sys-kernel/gentoo-sources/gentoo-sources-2.4.26-r10.ebuild @@ -1,23 +1,29 @@ # Copyright 1999-2004 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-kernel/gentoo-sources/gentoo-sources-2.4.26-r9.ebuild,v 1.2 2004/09/03 18:54:23 pvdabeel Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/gentoo-sources/gentoo-sources-2.4.26-r10.ebuild,v 1.1 2004/11/09 22:23:54 plasmaroo Exp $ ETYPE="sources" inherit kernel-2 detect_version KEYWORDS="x86 -ppc" -IUSE="" -UNIPATCH_LIST="${FILESDIR}/${PN}-2.4.CAN-2004-0495.patch +IUSE='' + +UNIPATCH_STRICTORDER='Y' +UNIPATCH_LIST=" + ${DISTDIR}/${PF/r10/r6}.tar.bz2 + ${FILESDIR}/${PN}-2.4.CAN-2004-0495.patch ${FILESDIR}/${PN}-2.4.CAN-2004-0497.patch ${FILESDIR}/${PN}-2.4.CAN-2004-0535.patch ${FILESDIR}/${PN}-2.4.CAN-2004-0685.patch ${FILESDIR}/${PN}-2.4.FPULockup-53804.patch ${FILESDIR}/${P}-OpenSWAN-CompileFix.patch ${FILESDIR}/${PN}-2.4.cmdlineLeak.patch + ${FILESDIR}/${PN}-2.4.XDRWrapFix.patch ${DISTDIR}/linux-${OKV}-CAN-2004-0415.patch - ${DISTDIR}/${PF/r9/r6}.tar.bz2" + ${DISTDIR}/${PN}-2.4.22-CAN-2004-0814.patch" DESCRIPTION="Full sources including the Gentoo patchset for the ${KV_MAJOR}.${KV_MINOR} kernel tree" -SRC_URI="${KERNEL_URI} http://dev.gentoo.org/~plasmaroo/patches/kernel/gentoo-sources/${PF/r9/r6}.tar.bz2 - http://dev.gentoo.org/~plasmaroo/patches/kernel/misc/security/linux-${OKV}-CAN-2004-0415.patch" +SRC_URI="${KERNEL_URI} http://dev.gentoo.org/~plasmaroo/patches/kernel/gentoo-sources/${PF/r10/r6}.tar.bz2 + http://dev.gentoo.org/~plasmaroo/patches/kernel/misc/security/linux-${OKV}-CAN-2004-0415.patch + http://dev.gentoo.org/~plasmaroo/patches/kernel/misc/security/${PN}-2.4.22-CAN-2004-0814.patch" diff --git a/sys-kernel/gentoo-sources/gentoo-sources-2.4.27-r1.ebuild b/sys-kernel/gentoo-sources/gentoo-sources-2.4.27-r1.ebuild deleted file mode 100644 index 411a2ea02b1b..000000000000 --- a/sys-kernel/gentoo-sources/gentoo-sources-2.4.27-r1.ebuild +++ /dev/null @@ -1,15 +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/gentoo-sources/gentoo-sources-2.4.27-r1.ebuild,v 1.3 2004/09/03 18:54:23 pvdabeel Exp $ - -ETYPE="sources" -inherit kernel-2 -detect_version - -KEYWORDS="~x86 -ppc" -IUSE="" -UNIPATCH_LIST="${DISTDIR}/${PF}.tar.bz2 - ${FILESDIR}/${PN}-2.4.cmdlineLeak.patch" - -DESCRIPTION="Full sources including the Gentoo patchset for the ${KV_MAJOR}.${KV_MINOR} kernel tree" -SRC_URI="${KERNEL_URI} http://dev.gentoo.org/~plasmaroo/patches/kernel/gentoo-sources/${PF}.tar.bz2" diff --git a/sys-kernel/gentoo-sources/gentoo-sources-2.4.27-r2.ebuild b/sys-kernel/gentoo-sources/gentoo-sources-2.4.27-r2.ebuild new file mode 100644 index 000000000000..e25149303373 --- /dev/null +++ b/sys-kernel/gentoo-sources/gentoo-sources-2.4.27-r2.ebuild @@ -0,0 +1,21 @@ +# Copyright 1999-2004 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/gentoo-sources/gentoo-sources-2.4.27-r2.ebuild,v 1.1 2004/11/09 22:23:54 plasmaroo Exp $ + +ETYPE="sources" +inherit kernel-2 +detect_version + +KEYWORDS="~x86 -ppc" +IUSE='' + +UNIPATCH_STRICTORDER='Y' +UNIPATCH_LIST="${DISTDIR}/${PF/r2/r1}.tar.bz2 + ${DISTDIR}/${PN}-2.4.22-CAN-2004-0814.patch + ${FILESDIR}/${PN}-2.4.cmdlineLeak.patch + ${FILESDIR}/${PN}-2.4.XDRWrapFix.patch" + +DESCRIPTION="Full sources including the Gentoo patchset for the ${KV_MAJOR}.${KV_MINOR} kernel tree" +SRC_URI="${KERNEL_URI} http://dev.gentoo.org/~plasmaroo/patches/kernel/gentoo-sources/${PF/r2/r1}.tar.bz2 + http://dev.gentoo.org/~plasmaroo/patches/kernel/misc/security/${PN}-2.4.22-CAN-2004-0814.patch" + |