1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
<title>Current patches</title>
</head>
<body alink="#FF0000" vlink="#55188A" link="#0000EF" bgcolor="#FFFFFF" text="#000099">
<table border="0">
<tr align="left">
<td valign="top">
<table border="0">
<tr align="left"><td valign="top" >
<img src="http://user-mode-linux.sourceforge.net/uml-small.png" height="171" width="120"/>
</td></tr>
<tr align="left"><td valign="top" bgcolor="#e0e0e0">
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/index.html">Site Home Page</a></font>
<br>
<font size="-1"><a href="http://uml.harlowhill.com">The UML Wiki</a></font>
<br>
<font size="-1"><a href="http://usermodelinux.org">UML Community Site</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/roadmap.html">The UML roadmap</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/uses.html">What it's good for</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/case-studies.html">Case Studies</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/kernel.html">Kernel Capabilities</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/dl-sf.html">Downloading it</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/run.html">Running it</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/compile.html">Compiling</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/install.html">Installation</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/skas.html">Skas Mode</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/patches.html">Incremental Patches</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/tests.html">Test Suite</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/devanon.html">Host memory use</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/fs_making.html">Building filesystems</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/faq.html">Troubles</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/contrib.html">User Contributions</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/links.html">Related Links</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/todo.html">The ToDo list</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/projects.html">Projects</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/diary.html">Diary</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/thanks.html">Thanks</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/contacts.html">Contacts</a></font>
</td></tr>
<tr align="left"><td valign="top" bgcolor="#e0e0e0">Tutorials<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/UserModeLinux-HOWTO.html">The HOWTO (html)</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/UserModeLinux-HOWTO.txt">The HOWTO (text)</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/hostfs.html">Host file access</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/input.html">Device inputs</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/shared_fs.html">Sharing filesystems</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/fs.html">Creating filesystems</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/resize.html">Resizing filesystems</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/networking.html">Virtual Networking</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/mconsole.html">Management Console</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/debugging.html">Kernel Debugging</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/honeypots.html">UML Honeypots</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/gprof.html">gprof and gcov</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/xtut.html">Running X</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/trouble.html">Diagnosing problems</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/config.html">Configuration</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/slack_readme.html">Installing Slackware</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/arch-port.html">Porting UML</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/iomem.html">IO memory emulation</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/2G-2G.html">UML on 2G/2G hosts</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/lksct/index.html">Adding a UML system call</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/nesting.html">Running nested UMLs</a></font>
</td></tr>
<tr align="left"><td valign="top" bgcolor="#e0e0e0">How you can help<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/help-gen.html">Overview</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/help-doc.html">Documentation</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/help-userspace.html">Utilities</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/help-kernel-v1.html">Kernel bugs</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/projects.html">Kernel projects</a></font>
</td></tr>
<tr align="left"><td valign="top" bgcolor="#e0e0e0">Screenshots<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/net.html">A virtual network</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/x.html">An X session</a></font>
</td></tr>
<tr align="left"><td valign="top" bgcolor="#e0e0e0">Transcripts<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/login.html">A login session</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/debug-session.html">A debugging session</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/slackinst.html">Slackware installation</a></font>
</td></tr>
<tr align="left"><td valign="top" bgcolor="#e0e0e0">Reference<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/switches.html">Kernel switches</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/slack_readme.html">Slackware README</a></font>
</td></tr>
<tr align="left"><td valign="top" bgcolor="#e0e0e0">Papers<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/als2000/index.html">ALS 2000 paper (html)</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/als2000.tex">ALS 2000 paper (TeX)</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/slides/als2000/slides.html">ALS 2000 slides</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/slides/lca2001/lca.html">LCA 2001 slides</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/slides/ols2001/index.html">OLS 2001 paper (html)</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/ols2001.tex">OLS 2001 paper (TeX)</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/als2001/index.html">ALS 2001 paper (html)</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/als2001.tex">ALS 2001 paper (TeX)</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/slides/ists2002/umlsec.htm">UML security (html)</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/slides/lca2002/lca2002.htm">LCA 2002 (html)</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/slides/wvu2002/wvu2002.htm">WVU 2002 (html)</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/slides/ists_rt/ists_rt.htm">Security Roundtable (html)</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/slides/ols2002/ols2002.html">OLS 2002 slides</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/slides/lwe2005/LWE2005.html">LWE 2005 slides</a></font>
</td></tr>
<tr align="left"><td valign="top" bgcolor="#e0e0e0">Fun and Games<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/cgi-bin/hangman">Kernel Hangman</a></font>
<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/sdotm.html">Disaster of the Month</a></font>
</td></tr>
</table>
</td>
<td valign="top" align="left">
<center>
<h3>Current patches</h3>
</center>
The purpose of this page is to keep people better informed about
ongoing work between UML releases by making the patches currently in
my working pool visible to the public. This should alleviate several
issues with UML development:
<ul>
<li>
Not infrequently, someone finds a bug in UML, chases it down, and
submits a patch, not knowing that the bug has already been fixed in my
tree. Since my working tree isn't public until a release, there was
no way for anyone to know that the bug was already fixed.
</li>
<li>
Also not infrequently, the fixes in my tree are incomplete or wrong in
some other way. Having those patches available before the release
gives UML developers a way to test and sanity-check the patches before
they are released to the public.
</li>
<li>
Having the patches in a release split out makes it easier to fix new
bugs by allowing users to back out patches until the bug disappears.
Then we know which patch was responsible and can probably figure out
the problem quickly. This also allows non-expert users to help track
things down since the only expertise needed is the ability to run
patch and build UML from source.
</li>
</ul>
To this end, I've started using <a href="http://savannah.nongnu.org/projects/quilt/">quilt</a> to
manage patches, and will publish the unreleased patches in my current
tree here. It will be updated frequently so that there will only be a
short window between me putting a patch in my tree and it appearing
here.
<p>
So, here are the patches pending in my 2.4 and 2.6 trees. The version
is the last public release of UML to which these are applied. They apply in
order.
<p><a name="2.4.27-3um"/><table width="100%" bgcolor="#e0e0e0">
<tr>
<td>
<b>
<font color="black">2.4.27-3um</font>
</b>
</td>
</tr>
</table>
<blockquote head="2.4.27-3um">
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.4/2.4.27-3um/patches.tar">Patches tarball </a> : last modified - Wed Apr 26 17:56:03 EDT 2006</td> </tr>
</table>
<p>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.4/2.4.27-3um/patches/notes">notes</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Thu Oct 13 18:19:23 EDT 2005</td> </tr>
</table>
<blockquote>
This removes some useless ioctls from the ubd driver.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.4/2.4.27-3um/patches/ifup-flush">ifup-flush</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Thu Oct 13 18:19:23 EDT 2005</td> </tr>
</table>
<blockquote>
From Gerd Knorr - this avoids a network deadlock that can happen when the<br>
host side of an interface is full when the UML interface is brought up.<br>
In this case, SIGIOs will never be delivered since no new data is ever<br>
queued to the host side.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.4/2.4.27-3um/patches/build-cleanups">build-cleanups</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Thu Oct 13 18:19:23 EDT 2005</td> </tr>
</table>
<blockquote>
Keeping 2.4 in sync with 2.6 - this moves the linker scripts and main.c from<br>
arch/um to arch/um/kernel.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.4/2.4.27-3um/patches/sysemu">sysemu</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Thu Oct 13 18:19:23 EDT 2005</td> </tr>
</table>
<blockquote>
This is Blaisorblade's sysemu patch for UML, cleaned up some, and with<br>
support added for tt mode. This adds support to UML for Laurent Vivier's<br>
context-switch-reducing sysemu patch.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.4/2.4.27-3um/patches/crypto">crypto</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Thu Oct 13 18:19:23 EDT 2005</td> </tr>
</table>
<blockquote>
This pulls the crypto stuff into the UML config.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.4/2.4.27-3um/patches/scheduler">scheduler</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Thu Oct 13 18:19:23 EDT 2005</td> </tr>
</table>
<blockquote>
This fixes a use-after-free bug in the context switching. A process going<br>
out of context after exiting wakes up the next process and then kills<br>
itself. The problem is that when it gets around to killing itself is up to<br>
the host and can happen a long time later, including after the incoming<br>
process has freed its stack, and that memory is possibly being used for<br>
something else.<br>
The fix is to have the incoming process kill the exiting process just to<br>
make sure it can't be running at the point that its stack is freed.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.4/2.4.27-3um/patches/eintr">eintr</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Thu Oct 13 18:19:23 EDT 2005</td> </tr>
</table>
<blockquote>
Add some more EINTR safety with some more uses of CATCH_EINTR.<br>
<br>
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade_spam@yahoo.it><br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.4/2.4.27-3um/patches/no-mo-ghash">no-mo-ghash</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Thu Oct 13 18:19:23 EDT 2005</td> </tr>
</table>
<blockquote>
This removes the much-hated ghash.h. physmem now makes do with an rbtree<br>
instead.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.4/2.4.27-3um/patches/need-bash">need-bash</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Thu Oct 13 18:19:23 EDT 2005</td> </tr>
</table>
<blockquote>
This forces make to use bash rather than whatever /bin/sh is linked to.<br>
There are some bash extensions used in the build (and maybe this needs<br>
fixing) and when /bin/sh isn't bash, then the build fails mysteriously.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.4/2.4.27-3um/patches/skas-flush-tlb">skas-flush-tlb</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Thu Oct 13 18:19:23 EDT 2005</td> </tr>
</table>
<blockquote>
Do not flush the whole kernel page table instead of flushing only a range <br>
in SKAS mode:<br>
loop from start to end instead than to start_vm to end_vm. To test a lot, <br>
since it could well be wrong, or some callers could be passing wrong <br>
parameters (they were ignored!). Anyway, it seems that this is safe and <br>
that most callers are in arch-independent code (i.e. correct one). <br>
But actually I did not test modules well.<br>
<br>
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade_spam@yahoo.it><br>
<br>
I eyeballed all the callers, and they seem to be doing the right <br>
thing - jdike<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.4/2.4.27-3um/patches/tmp-exec">tmp-exec</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Thu Oct 13 18:19:23 EDT 2005</td> </tr>
</table>
<blockquote>
This adds a check that /tmp is not mounted noexec. UML needs to be able<br>
to do PROT_EXEC mmaps of temp files. Previously, a noexec /tmp would<br>
cause an early mysterious UML crash.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.4/2.4.27-3um/patches/2.4.27">2.4.27</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Thu Oct 13 18:19:23 EDT 2005</td> </tr>
</table>
<blockquote>
This is the update to 2.4.27.<br>
Upgrading to 2.4.27 is probably better done by applying uml-patch-2.4.27-1.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.4/2.4.27-3um/patches/no-unit-at-a-time">no-unit-at-a-time</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Thu Oct 13 18:19:23 EDT 2005</td> </tr>
</table>
<blockquote>
<br>
From: <blaisorblade_spam@yahoo.it><br>
<br>
Avoid that gcc breaks UML with "unit at a time" compilation mode.<br>
<br>
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade_spam@yahoo.it><br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.4/2.4.27-3um/patches/move-hostfs">move-hostfs</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Thu Oct 13 18:19:23 EDT 2005</td> </tr>
</table>
<blockquote>
To make patch backports from 2.6 easier, this patch moves hostfs to fs,<br>
where it is in 2.6, from arch/um/fs.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.4/2.4.27-3um/patches/kill-warnings">kill-warnings</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Thu Oct 13 18:19:23 EDT 2005</td> </tr>
</table>
<blockquote>
From: <blaisorblade_spam@yahoo.it><br>
<br>
Fixes some little warnings about "Defined but not used ..." by #ifdef'ing<br>
things<br>
<br>
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade_spam@yahoo.it><br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.4/2.4.27-3um/patches/tkill">tkill</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Thu Oct 13 18:19:23 EDT 2005</td> </tr>
</table>
<blockquote>
From: <blaisorblade_spam@yahoo.it><br>
<br>
Avoids compile failure when host misses tkill(), by simply using kill() in<br>
that case.<br>
<br>
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade_spam@yahoo.it><br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.4/2.4.27-3um/patches/disable-sysemu">disable-sysemu</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Thu Oct 13 18:19:23 EDT 2005</td> </tr>
</table>
<blockquote>
From: <blaisorblade_spam@yahoo.it><br>
<br>
Adds the "nosysemu" command line parameter to disable SYSEMU<br>
<br>
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade_spam@yahoo.it><br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.4/2.4.27-3um/patches/proc-sysemu">proc-sysemu</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Thu Oct 13 18:19:23 EDT 2005</td> </tr>
</table>
<blockquote>
From: <blaisorblade_spam@yahoo.it><br>
<br>
Adds /proc/sysemu to toggle SYSEMU usage.<br>
<br>
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade_spam@yahoo.it><br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.4/2.4.27-3um/patches/sysemu-fixes">sysemu-fixes</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Thu Oct 13 18:19:23 EDT 2005</td> </tr>
</table>
<blockquote>
From: <blaisorblade_spam@yahoo.it><br>
<br>
- Correct some silly errors (dereferencing a pointer before checking if it's<br>
!= NULL when creating /proc/sysemu, some error messages)<br>
<br>
- separate using_sysemu from sysemu_supported (so to refuse to activate<br>
sysemu if it is not supported, avoiding panics)<br>
<br>
- not probe sysemu if in tt mode.<br>
<br>
Signed-off-by: <blaisorblade_spam@yahoo.it><br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.4/2.4.27-3um/patches/stack-overflow">stack-overflow</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Thu Oct 13 18:19:23 EDT 2005</td> </tr>
</table>
<blockquote>
Remove the stack overflow check in the page fault handler, which was just<br>
wrong, and could be triggered by a process.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.4/2.4.27-3um/patches/bh-update">bh-update</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Thu Oct 13 18:19:23 EDT 2005</td> </tr>
</table>
<blockquote>
</blockquote>
</blockquote> <p><a name="2.6.17-rc2"/><table width="100%" bgcolor="#e0e0e0">
<tr>
<td>
<b>
<font color="black">2.6.17-rc2</font>
</b>
</td>
</tr>
</table>
<blockquote head="2.6.17-rc2">
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches.tar">Patches tarball </a> : last modified - Wed Apr 26 17:56:03 EDT 2006</td> </tr>
</table>
<p>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/fix-iomem">fix-iomem</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Thu Apr 13 13:25:07 EDT 2006</td> </tr>
</table>
<blockquote>
From "Victor V. Vengerov" <Victor.Vengerov@oktetlabs.ru><br>
We need to walk the region list properly.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/jmpbuf">jmpbuf</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Tue Mar 21 11:55:01 EST 2006</td> </tr>
</table>
<blockquote>
Newer libcs don't define the JB_* jmp_buf access macros. If this is<br>
the case, we provide values ourselves.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/devshm">devshm</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Tue Apr 25 12:00:07 EDT 2006</td> </tr>
</table>
<blockquote>
UML really wants shared memory semantics form its physical memory map file,<br>
and the place for that is /dev/shm. So move the default, and fix the error<br>
messages to recognize that this value can be overridden.<br>
<br>
Signed-off-by: Rob Landley <rob@landley.net><br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/fix-ubd-lock1">fix-ubd-lock1</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Mon Apr 3 08:54:12 EDT 2006</td> </tr>
</table>
<blockquote>
I noticed ubd_lock being used to protect crazy amounts of code. This patch<br>
gets rid of the worst offenders.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/punctuation-fixes">punctuation-fixes</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Tue Mar 21 11:56:32 EST 2006</td> </tr>
</table>
<blockquote>
I'm inconsistent enough about using dashes or underscores for punctuation<br>
within filenames. However, sometimes I use both within the same name, and<br>
I got sick of this. So, this fixes those cases.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/ubd-release-akpm">ubd-release-akpm</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Mon Apr 3 08:55:44 EDT 2006</td> </tr>
</table>
<blockquote>
Define a release method for the ubd driver so that sysfs doesn't complain<br>
when one is removed.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/o-direct-field">o-direct-field</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Mon Apr 3 08:56:21 EDT 2006</td> </tr>
</table>
<blockquote>
This patch pulls the addition of the openflags.d field from externfs.<br>
This will be merged with the o_direct patch when it is sent to mainline.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/externfs-aio">externfs-aio</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Wed Mar 22 15:20:24 EST 2006</td> </tr>
</table>
<blockquote>
These are the AIO changes needed by the ubd driver and humfs.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/externfs">externfs</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Tue Apr 25 12:00:20 EDT 2006</td> </tr>
</table>
<blockquote>
This is the externfs/new hostfs/humfs patch. hostfs now seems to be stable.<br>
The old hostfs will continue to exist until this one is as functional and <br>
stable as it.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/delete-hostfs">delete-hostfs</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Tue Apr 25 12:00:22 EDT 2006</td> </tr>
</table>
<blockquote>
This deletes the old hostfs. This will be sent to mainline when the<br>
externfs-based hostfs seems stable.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/switch-pipe">switch-pipe</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Mon Apr 3 09:01:40 EDT 2006</td> </tr>
</table>
<blockquote>
This fixes the interface of make_pipe, which doesn't need to initialize<br>
filehandles. Instead, it is just a wrapper around pipe which just reclaims<br>
descriptors if the initial call to pipe failes with -EMFILE.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/fork-not-clone">fork-not-clone</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Mon Apr 3 09:01:44 EDT 2006</td> </tr>
</table>
<blockquote>
Convert the boot-time host ptrace testing from clone to fork. They were<br>
essentially doing fork anyway. This cleans up the code a bit, and makes<br>
valgrind a bit happier about grinding it.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/fp-state">fp-state</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Mon Apr 3 09:28:26 EDT 2006</td> </tr>
</table>
<blockquote>
From: Bodo Stroesser <bstroesser@fujitsu-siemens.com><br>
<br>
This patch is for testing only!<br>
<br>
It's a quick and dirty patch to verify, that wrong fp-context<br>
saving and restore really are the cause of errors in "memtest.c"<br>
It fixes the problem by:<br>
- making have_fpx_regs accessible for other modules instead of<br>
declaring it "static" in arch/um/os-Linux/sys-i386/registers.c<br>
- Adding 1 to HOST_FP_SIZE to have room for the "status" (and magic)<br>
field. Now skas.fp + skas.xfp combined have the size of<br>
struct _fpstatus<br>
- in arch/um/sys-i386/signal.c adding some code, that handles<br>
the _fpstatus in sigcontext differently, depending on have_fpx_regs.<br>
For (have_fpx_regs == 0), the _fpstatus simply is copied to/from<br>
user from/to skas.fp. When writing to user, the status field is<br>
created also.<br>
For (have_fpx_regs == 1), when writing to user, the full _fpstatus<br>
is created in skas.fp and skas.xfp, from the data found in skas.xfp.<br>
Then it is copied to user. When reading, the full _fpstatus is read<br>
to skas.fp and skas.xfp. Then, skas.xfp is reconstructed from this<br>
data.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/x11-fb">x11-fb</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Tue Apr 25 12:00:28 EDT 2006</td> </tr>
</table>
<blockquote>
X11 framebuffer driver from Gerd Knorr.<br>
You have to enable CONFIG_FB (UML-specific options/Graphics support/<br>
Support for frabe buffer devices), disable CONFIG_VGA_CONSOLE<br>
(UML-specific options/Graphics support/Console display driver support/<br>
VGA text console), and enable Framebuffer Console support (in the same <br>
place), plus some fonts. You also seem to have to put 'x11=<width>x<height><br>
on the command line.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/logging">logging</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Mon Apr 3 09:05:12 EDT 2006</td> </tr>
</table>
<blockquote>
This is a little logger which dumps stuff out to a host file. Used for <br>
tracking down otherwise intractable bugs.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/fix-get_user_pages">fix-get_user_pages</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Mon Apr 10 23:00:54 EDT 2006</td> </tr>
</table>
<blockquote>
From: Bodo Stroesser <bstroesser@fujitsu-siemens.com><br>
<br>
Fix of a wrong condition.<br>
<br>
Signed-off-by: Bodo Stroesser <bstroesser@fujitsu-siemens.com><br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/add-stub-vmas.patch">add-stub-vmas.patch</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Mon Apr 10 23:02:17 EDT 2006</td> </tr>
</table>
<blockquote>
From: Bodo Stroesser <bstroesser@fujitsu-siemens.com><br>
<br>
This patch adds vm_area structs for stub-code and stub-data.<br>
So, stub-area is displayed in /proc/XXX/maps. Also, stub-pages<br>
are accessible for debuggers via ptrace now.<br>
<br>
Linux has a gate-vma concept, that unfortunately supports one<br>
gate-vma only. Thus, there need to be done some changes in<br>
mm/memory.c and fs/proc/task_mmu.c.<br>
This patch avoids the mainline changes by using some dirty tricks. <br>
So, the patch is for testing only, mainline should be changed<br>
to support more than one gate-vma.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/fix-jiffies.patch">fix-jiffies.patch</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Mon Apr 3 15:00:12 EDT 2006</td> </tr>
</table>
<blockquote>
From: Bodo Stroesser <bstroesser@fujitsu-siemens.com><br>
<br>
To support different subarches, UML must not use the same<br>
address for jiffies and jiffies_64 in a hardcoded way.<br>
I added JIFFIES_OFFSET to handle different arches. For<br>
current arches, it is set to 0, for s390 it will be set to 4.<br>
<br>
Signed-off-by: Bodo Stroesser <bstroesser@fujitsu-siemens.com><br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/insert-TIF_RESTART_SVC">insert-TIF_RESTART_SVC</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Tue Mar 21 11:57:39 EST 2006</td> </tr>
</table>
<blockquote>
From: Bodo Stroesser <bstroesser@fujitsu-siemens.com><br>
<br>
s390 syscalls might be done by a "svc X" instruction (2 bytes<br>
in size) or a "exec X,Y" instruction (4 bytes in size).<br>
There is no way to read the size of the instruction via ptrace,<br>
so UML/s390 can't do syscall-restarting by resetting instruction<br>
pointer to the value before the syscall.<br>
Also, in most cases syscall number is hardcoded in the "SVC X"<br>
instruction, so there is no way to handle ERESTART_RESTARTBLOCK<br>
correctly by *really* restarting the syscall.<br>
s390 host has implemented TIF_RESTART_SVC-flag to handle the<br>
latter case.<br>
In UML we have to use TIF_RESTART_SVC for both cases.<br>
This patch implements TIF_RESTART_SVC in UML.<br>
<br>
Signed-off-by: Bodo Stroesser <bstroesser@fujitsu-siemens.com><br>
From: Bodo Stroesser <bstroesser@fujitsu-siemens.com><br>
<br>
s390 syscalls might be done by a "svc X" instruction (2 bytes<br>
in size) or a "exec X,Y" instruction (4 bytes in size).<br>
There is no way to read the size of the instruction via ptrace,<br>
so UML/s390 can't do syscall-restarting by resetting instruction<br>
pointer to the value before the syscall.<br>
Also, in most cases syscall number is hardcoded in the "SVC X"<br>
instruction, so there is no way to handle ERESTART_RESTARTBLOCK<br>
correctly by *really* restarting the syscall.<br>
s390 host has implemented TIF_RESTART_SVC-flag to handle the<br>
latter case.<br>
In UML we have to use TIF_RESTART_SVC for both cases.<br>
This patch implements TIF_RESTART_SVC in UML.<br>
<br>
Signed-off-by: Bodo Stroesser <bstroesser@fujitsu-siemens.com><br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/390-syscall-restart">390-syscall-restart</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Mon Apr 3 09:07:25 EDT 2006</td> </tr>
</table>
<blockquote>
From: Bodo Stroesser <bstroesser@fujitsu-siemens.com><br>
<br>
s390 normally doesn't support a method, that allows us to force<br>
the host to skip its syscall restart handling.<br>
I implemented a new method in the host, which also is posted to<br>
LKML to hopefully be inserted in s390 mainline.<br>
To check availability of this change, I added a new check, which<br>
is done in a slightly different way for the other arches, too.<br>
Success in check_ptrace() and success in the new check are<br>
absolutely necessary for UML to run in any mode.<br>
So I changed the sequence of checks to:<br>
1) check_ptrace() being called at startup very early<br>
2) check_ptrace() calls the new check, too<br>
3) can_do_skas() is called after check_ptrace()<br>
check_ptrace() will never return, if it fails, but it now uses<br>
printf() and exit() instead of panic().<br>
<br>
Signed-off-by: Bodo Stroesser <bstroesser@fujitsu-siemens.com><br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/fix-tt-USR1-handlers">fix-tt-USR1-handlers</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Mon Apr 3 09:07:28 EDT 2006</td> </tr>
</table>
<blockquote>
From: Bodo Stroesser <bstroesser@fujitsu-siemens.com><br>
<br>
UML: change tt-mode's USR1 handlers to be subarch independent<br>
<br>
Signed-off-by: Bodo Stroesser <bstroesser@fujitsu-siemens.com><br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/add-PTRACE_AREA">add-PTRACE_AREA</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Mon Apr 3 09:09:43 EDT 2006</td> </tr>
</table>
<blockquote>
From: Bodo Stroesser <bstroesser@fujitsu-siemens.com><br>
<br>
s390 doesn't have PTRACE_GETREGS and friends, but has<br>
PTRACE_[PEEK|POKE]USR_AREA to let user of ptrace() read or write<br>
struct user as he wants.<br>
So we need to support this operation conditionally.<br>
<br>
Signed-off-by: Bodo Stroesser <bstroesser@fujitsu-siemens.com><br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/execve1-add-SUBARCH_EXECVE1">execve1-add-SUBARCH_EXECVE1</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Mon Apr 3 14:05:01 EDT 2006</td> </tr>
</table>
<blockquote>
From: Bodo Stroesser <bstroesser@fujitsu-siemens.com><br>
<br>
UML/s390 needs to reset FP control register in execve1, as<br>
Linux s390 does.<br>
I choose the way to use a macro, as this doesn't need any<br>
changes in the other subarches.<br>
<br>
Signed-off-by: Bodo Stroesser <bstroesser@fujitsu-siemens.com><br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/boot_timer_handler-no-prototye">boot_timer_handler-no-prototye</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Tue Mar 21 11:57:44 EST 2006</td> </tr>
</table>
<blockquote>
From: Bodo Stroesser <bstroesser@fujitsu-siemens.com><br>
<br>
On UML/s390, signal-handlers are defined to have 4 parameters,<br>
while the standard definition for signal-handlers only has one.<br>
So we must not have prototypes of the handlers using one param<br>
only in headers, that are included in the source, that defines<br>
the handlers.<br>
Just that conflict occurs with the incremental patches for<br>
2.6.12-rc3. arch/um/os-Linux/signal.c defines boot_timer_handler<br>
to have 4 parameters (ARCH_SIGHDLR_PARAM), while <br>
arch/um/include/kern_util.h holds a prototype with one int as<br>
param only.<br>
With the latest patches, signal.c includes kern_util.h<br>
indirectly via os.h: build fails.<br>
So, I simply remove the prototype from kern_util.h and give each<br>
modules calling it a separate prototype.<br>
<br>
Signed-off-by: Bodo Stroesser <bstroesser@fujitsu-siemens.com><br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/factor-handler-param">factor-handler-param</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Mon Apr 3 09:09:53 EDT 2006</td> </tr>
</table>
<blockquote>
This puts the int sig back in the signal handler declarations. Before, <br>
with it in ARCH_SIGHDLR_PARAM, there was a use of sig, but no visible<br>
declaration.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/stub-arch-optimization">stub-arch-optimization</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Tue Mar 21 11:57:45 EST 2006</td> </tr>
</table>
<blockquote>
From: Bodo Stroesser <bstroesser@fujitsu-siemens.com><br>
<br>
In s390, fpregs are not reset in signal handlers.<br>
Thus we may stop stub_segv_handler on s390 with a breakpoint instruction<br>
instead of calling getpid, kill and sigreturn.<br>
To make this run, we must not mask any signals in stub_segv_handler.<br>
<br>
So I added conditional execution of set_handler in userspace_tramp<br>
depending on ARCH_STUB_NO_SIGRETURN. If this macro isn't defined,<br>
the code remains unchanged, else no signals for sa_mask are defined<br>
and SA_NODEFER is added to flags.<br>
<br>
Using the change, we also no longer need to care about correct stack<br>
pointer for sigreturn, which would cause some nasty code on s390.<br>
<br>
Signed-off-by: Bodo Stroesser <bstroesser@fujitsu-siemens.com><br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/test_stub_kill">test_stub_kill</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Tue Mar 21 11:57:46 EST 2006</td> </tr>
</table>
<blockquote>
A small stub optimization. I forget what the reasoning was, needs<br>
more thought.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/s390">s390</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Tue Mar 21 11:57:46 EST 2006</td> </tr>
</table>
<blockquote>
This patch adds s390 (31-bit) to UML.<br>
<br>
SKAS0 and SKAS3 are tested a bit at least system boots and<br>
shuts down correctly, network (tun/tap) works and we even could<br>
start YaST on it.<br>
<br>
Note:s<br>
We use a host running SuSE SLES8 with a "private" kernel named<br>
2.4.21-fsc.11, that contains special adaptions and drivers for<br>
Fujitsu-Siemens mainframes. This means, our current SKAS3-patch<br>
doesn't fit to vanilla kernels. We will create a reworked patch for<br>
vanilla later (2.4 and 2.6).<br>
Our 2.4 kernel also contains two fixes and one enhancement, that all<br>
are essential to make UML run, even in SKAS0. The enhancement is to<br>
support PT_TRACESYSGOOD, that generally is available in 2.6 kernels<br>
but not in 2.4 for s390. So I would suggest to use 2.6 host for the<br>
moment.<br>
The fixes meanwhile are included into mainline. I don't know precisely<br>
the first version containing them, in 2.6.13-rc5 they are present.<br>
As those two patches are very small, they are inserted here as as<br>
comment (AFAICS, its easy to do the changes by hand on older kernel<br>
versions):<br>
<br>
First patch to fix signal stack handling:<br>
--- a/arch/s390/kernel/signal.c 2005-03-22 11:07:39.000000000 +0100<br>
+++ b/arch/s390/kernel/signal.c 2005-03-22 11:08:44.000000000 +0100<br>
@@ -285,7 +285,7 @@<br>
<br>
/* This is the X/Open sanctioned signal stack switching. */<br>
if (ka->sa.sa_flags & SA_ONSTACK) {<br>
- if (! on_sig_stack(sp))<br>
+ if (! sas_ss_flags(sp))<br>
sp = current->sas_ss_sp + current->sas_ss_size;<br>
}<br>
<br>
Second patch to allow skipping of syscall restart:<br>
--- a/arch/s390/kernel/ptrace.c 2005-05-07 07:20:31.000000000 +0200<br>
+++ b/arch/s390/kernel/ptrace.c 2005-08-02 06:45:48.000000000 +0200<br>
@@ -723,6 +761,13 @@<br>
? 0x80 : 0));<br>
<br>
/*<br>
+ * If the debugger has set an invalid system call number,<br>
+ * we prepare to skip the system call restart handling.<br>
+ */<br>
+ if (!entryexit && regs->gprs[2] >= NR_syscalls)<br>
+ regs->trap = -1;<br>
+<br>
+ /*<br>
* this isn't the same as continuing with a signal, but it will do<br>
* for normal use. strace only continues with a signal if the<br>
* stopping signal is not SIGTRAP. -brl<br>
<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/ubd-aio">ubd-aio</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Mon Apr 3 13:40:46 EDT 2006</td> </tr>
</table>
<blockquote>
This adds AIO support to the ubd driver.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/ubd-drop-lock">ubd-drop-lock</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Mon Apr 3 13:43:37 EDT 2006</td> </tr>
</table>
<blockquote>
This patch changes the ubd I/O submission process to avoid some sleeping.<br>
When the host returns -EAGAIN from io_submit, do_ubd_request returns to<br>
its caller, saving the current state of the request submission in the <br>
struct ubd. This state consists of the request structure and the range<br>
of sg entries which have not yet been submitted. If the request queue is<br>
drained, then this state is reset to indicate that, the next time it is <br>
called, a new request needs to be pulled from the request queue.<br>
When do_ubd_request returns because the host can handle no more requests,<br>
it is necessary to rerun the queue after some completions have been handled.<br>
This is done by adding the device to the restart list. ubd_intr walks<br>
this list before returning, calling do_ubd_request for each device.<br>
In addition, the queues and queue locks are now per-device, rather than<br>
having a single queue and lock for all devices.<br>
Note that kmalloc is still called, and can sleep. This is fixed in a <br>
future patch.<br>
This patch changes the ubd I/O submission process to avoid some sleeping.<br>
When the host returns -EAGAIN from io_submit, do_ubd_request returns to<br>
its caller, saving the current state of the request submission in the <br>
struct ubd. This state consists of the request structure and the range<br>
of sg entries which have not yet been submitted. If the request queue is<br>
drained, then this state is reset to indicate that, the next time it is <br>
called, a new request needs to be pulled from the request queue.<br>
When do_ubd_request returns because the host can handle no more requests,<br>
it is necessary to rerun the queue after some completions have been handled.<br>
This is done by adding the device to the restart list. ubd_intr walks<br>
this list before returning, calling do_ubd_request for each device.<br>
In addition, the queues and queue locks are now per-device, rather than<br>
having a single queue and lock for all devices.<br>
Note that kmalloc is still called, and can sleep. This is fixed in a <br>
future patch.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/ubd-atomic">ubd-atomic</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Mon Apr 3 13:43:45 EDT 2006</td> </tr>
</table>
<blockquote>
To ensure that I/O can always make progress, even when there is no<br>
memory, we provide static buffers which are to be used when dynamic<br>
ones can't be allocated. These buffers are protected by flags which<br>
are set when they are currently in use. The use of these flags is <br>
protected by the queue lock, which is held for the duration of the <br>
do_ubd_request call.<br>
<br>
There is an allocation failure emulation<br>
mechanism here - setting fail_start and fail_end will cause<br>
allocations in that range (fail_start <= allocations < fail_end) to<br>
fail, invoking the emergency mechanism.<br>
When this is happening, I/O requests proceed one at a time,<br>
essentially synchronously, until allocations start succeeding again.<br>
<br>
This currently doesn't handle the bitmap array, since that can be of<br>
any length, so we can't have a static version of it at this point.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/bitmap-atomic">bitmap-atomic</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Mon Apr 3 14:02:09 EDT 2006</td> </tr>
</table>
<blockquote>
This patch completes the robustness and deadlock avoidance work by<br>
handling the writing of the bitmap. The existing method of dealing<br>
with low-memory situations by having an emergency structure for use<br>
when memory can't be allocated won't work here because of the<br>
variable size of the bitmap buffer, and the unknown (to me) limit of<br>
a contiguous I/O request.<br>
The allocation is avoided by writing directly from the bitmap rather<br>
than allocating a buffer and copying the relevant chunk of the<br>
bitmap into it.<br>
This has a number of consequences. First, since the bitmap is<br>
written directly from the device's bitmap, bits should not be set in<br>
it until the I/O is just about to start. This is because reads<br>
would see that and possibly race with the outgoing writes, returning<br>
data from a section of the COW file which has never been written.<br>
To prevent this, reads that overlap a pending bitmap write are<br>
stalled until the write is finished. Modifying the bitmap bits as<br>
late as possible shrinks the window in which this could happen.<br>
Second, a section of bitmap that's being written out should not be<br>
modified again until the write has finished. Otherwise, a bit might<br>
be set and picked up by a pending I/O, resulting in it being on disk<br>
too soon.<br>
So, there are a couple new lists. Bitmap writes which have been<br>
issued, but not finished are on the pending_bitmaps list. Any<br>
subsequent bitmap writes which overlap a pending write have to<br>
wait. These are put on the waiting_bitmaps list. Whenever a<br>
pending bitmap write finishes, any overlapping waiting writes are<br>
tried. They may continue waiting because they overlap an earlier<br>
waiter, but at least one will proceed. Third, reads which overlap a<br>
pending or waiting bitmap write will wait until those writes have<br>
finished. This is done by do_io returning -EAGAIN, causing the<br>
queue to wait until some requests have finished.<br>
This patch completes the robustness and deadlock avoidance work by<br>
handling the writing of the bitmap. The existing method of dealing<br>
with low-memory situations by having an emergency structure for use<br>
when memory can't be allocated won't work here because of the<br>
variable size of the bitmap buffer, and the unknown (to me) limit of<br>
a contiguous I/O request.<br>
The allocation is avoided by writing directly from the bitmap rather<br>
than allocating a buffer and copying the relevant chunk of the<br>
bitmap into it.<br>
This has a number of consequences. First, since the bitmap is<br>
written directly from the device's bitmap, bits should not be set in<br>
it until the I/O is just about to start. This is because reads<br>
would see that and possibly race with the outgoing writes, returning<br>
data from a section of the COW file which has never been written.<br>
To prevent this, reads that overlap a pending bitmap write are<br>
stalled until the write is finished. Modifying the bitmap bits as<br>
late as possible shrinks the window in which this could happen.<br>
Second, a section of bitmap that's being written out should not be<br>
modified again until the write has finished. Otherwise, a bit might<br>
be set and picked up by a pending I/O, resulting in it being on disk<br>
too soon.<br>
So, there are a couple new lists. Bitmap writes which have been<br>
issued, but not finished are on the pending_bitmaps list. Any<br>
subsequent bitmap writes which overlap a pending write have to<br>
wait. These are put on the waiting_bitmaps list. Whenever a<br>
pending bitmap write finishes, any overlapping waiting writes are<br>
tried. They may continue waiting because they overlap an earlier<br>
waiter, but at least one will proceed. Third, reads which overlap a<br>
pending or waiting bitmap write will wait until those writes have<br>
finished. This is done by do_io returning -EAGAIN, causing the<br>
queue to wait until some requests have finished.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/non-aio-deadlock">non-aio-deadlock</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Tue Mar 21 11:57:50 EST 2006</td> </tr>
</table>
<blockquote>
The pipe to the AIO thread needs to be non-blocking so that we know when<br>
to return -EAGAIN and process some completions before trying some more<br>
requests.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/ubd-no-count">ubd-no-count</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Mon Apr 3 13:50:36 EDT 2006</td> </tr>
</table>
<blockquote>
This patch eliminates the atomic count associated with a bitmap_io<br>
struct. The original thinking was that there would be a number of<br>
aio structures associated with the bitmap_io, since different chunks<br>
of the sg element could go to different layers. The count was<br>
needed to know when the full sg segment reached disk and it was safe<br>
to write the bitmap.<br>
However, the flaw in that thinking is that a bitmap_io struct is<br>
only needed for writes, and writes always go to the COW layer.<br>
Hence, there will only be one bitmap_io per aio, and the counting is<br>
unnecessary.<br>
This patch makes it possible to merge the aio and bitmap_io structs,<br>
which would be a good cleanup.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/init_aio_err">init_aio_err</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Tue Mar 21 11:57:51 EST 2006</td> </tr>
</table>
<blockquote>
Tidy the error handling in the AIO initialization.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/aio-batching">aio-batching</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Mon Apr 3 14:06:59 EDT 2006</td> </tr>
</table>
<blockquote>
I noticed that the common case in io_submit is an immediate context<br>
switch to the AIO thread when it returns from io_getevents, followed<br>
by a switch back. This patch changes that by having the AIO thread<br>
wait on a pipe before calling io_getevents. When the kernel<br>
finishes a batch of I/O, it writes the number of requests down the<br>
pipe, and the AIO thread waits for that number, and goes back to<br>
sleeping on the pipe.<br>
This probably shouldn't reach mainline, as O_DIRECT I/O should have<br>
the property of causing switching on every I/O request. Also, the<br>
wakeup mechanism should be only used when the other side might be<br>
sleeping.<br>
I noticed that the common case in io_submit is an immediate context<br>
switch to the AIO thread when it returns from io_getevents, followed<br>
by a switch back. This patch changes that by having the AIO thread<br>
wait on a pipe before calling io_getevents. When the kernel<br>
finishes a batch of I/O, it writes the number of requests down the<br>
pipe, and the AIO thread waits for that number, and goes back to<br>
sleeping on the pipe.<br>
This probably shouldn't reach mainline, as O_DIRECT I/O should have<br>
the property of causing switching on every I/O request. Also, the<br>
wakeup mechanism should be only used when the other side might be<br>
sleeping.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/o_direct">o_direct</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Mon Apr 3 13:53:03 EDT 2006</td> </tr>
</table>
<blockquote>
This enables O_DIRECT on ubd devices. This needs work, as it will die<br>
when creating a COW file. It also needs to do buffered I/O on backing<br>
files.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/init-io-req">init-io-req</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Mon Apr 3 13:53:05 EDT 2006</td> </tr>
</table>
<blockquote>
This uses the C99 syntax to initialize an io_thread_req. Given how this<br>
is compiled, it may not be a good idea, as it will consume more stack<br>
than it should.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/no-o-direct">no-o-direct</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Mon Apr 3 09:18:14 EDT 2006</td> </tr>
</table>
<blockquote>
This is the reversion of the o_direct patch so I can make COW files.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/no-fakehd">no-fakehd</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Fri Mar 24 14:48:53 EST 2006</td> </tr>
</table>
<blockquote>
The fakehd switch lost its implementation at some point. Since no one is<br>
screaming for it, we might as well remove it.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/cow-odirect">cow-odirect</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Mon Apr 3 14:02:43 EDT 2006</td> </tr>
</table>
<blockquote>
Start fixing the problems with aligned access to COW files when O_DIRECT<br>
is enabled.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/fuse">fuse</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Thu Apr 13 13:18:24 EDT 2006</td> </tr>
</table>
<blockquote>
This is the start of the FUSE server support, which will export the UML<br>
filesystem to the host as a FUSE filesystem.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/no-cow-odirect">no-cow-odirect</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Mon Apr 3 14:03:02 EDT 2006</td> </tr>
</table>
<blockquote>
Back out the odirect stuff temporarily.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/fix-humfs">fix-humfs</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Mon Apr 3 08:47:32 EDT 2006</td> </tr>
</table>
<blockquote>
Fixes to humfs, which haven't been merged back into externfs yet.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/no-sigjmpbuf">no-sigjmpbuf</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Mon Apr 3 15:46:53 EDT 2006</td> </tr>
</table>
<blockquote>
Clean up the jmpbuf code. Since softints, we no longer use sig_setjmp, so<br>
the UML_SIGSETJMP wrapper now has a misleading name. Also, I forgot to<br>
change the buffers from sigjmp_buf to jmp_buf.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/fix-errno">fix-errno</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Wed Apr 26 17:50:44 EDT 2006</td> </tr>
</table>
<blockquote>
Blairsorblade noticed some confusion between a system call's return<br>
value and errno. This patch fixes a number of related bugs -<br>
using errno instead of a return value<br>
using a return value instead of errno<br>
forgetting to negate a error return to get a positive error<br>
code<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/2g">2g</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Wed Apr 26 17:55:40 EDT 2006</td> </tr>
</table>
<blockquote>
From Joris van Rantwijk <jvrantwijk@xs4all.nl>:<br>
A quick hack to allow skas0 mode to run on 2G/2G hosts.<br>
</blockquote>
<table border="0" bgcolor="#ffffff" width="100%">
<tr bgcolor="#d0d0d0"> <td > <a href="work/current/2.6/2.6.17-rc2/patches/jesper-cleanups">jesper-cleanups</a> </td> </tr>
<tr bgcolor="#d0d0d0"> <td > Last Changed - Wed Apr 26 15:40:48 EDT 2006</td> </tr>
</table>
<blockquote>
Remove redundant NULL checks before [kv]free + small CodingStyle cleanup<br>
for arch/<br>
<br>
Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com><br>
</blockquote>
</blockquote>
</td>
</tr>
</table>
<center>
<font size="-1">Hosted at </font>
<a href="http://sourceforge.net">
<img src="http://sourceforge.net/sflogo.php?group_id=429" width="88" height="31" border="0" alt="SourceForge Logo">
</a>
</center>
</body>
</html>
|