)]}'
{
  "log": [
    {
      "commit": "42fda66387daa53538ae13a2c858396aaf037158",
      "tree": "77955a91a958fde7be47cb0ff23ac9e1248217db",
      "parents": [
        "a1ff5878d2628bbe1e42821c024c96f48318f683"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:26:50 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:05 2007 -0700"
      },
      "message": "uml: throw out CONFIG_MODE_TT\n\nThis patchset throws out tt mode, which has been non-functional for a while.\n\nThis is done in phases, interspersed with code cleanups on the affected files.\n\nThe removal is done as follows:\n\tremove all code, config options, and files which depend on\nCONFIG_MODE_TT\n\tget rid of the CHOOSE_MODE macro, which decided whether to\ncall tt-mode or skas-mode code, and replace invocations with their\nskas portions\n\treplace all now-trivial procedures with their skas equivalents\n\nThere are now a bunch of now-redundant pieces of data structures, including\nmode-specific pieces of the thread structure, pt_regs, and mm_context.  These\nare all replaced with their skas-specific contents.\n\nAs part of the ongoing style compliance project, I made a style pass over all\nfiles that were changed.  There are three such patches, one for each phase,\ncovering the files affected by that phase but no later ones.\n\nI noticed that we weren\u0027t freeing the LDT state associated with a process when\nit exited, so that\u0027s fixed in one of the later patches.\n\nThe last patch is a tidying patch which I\u0027ve had for a while, but which caused\ninexplicable crashes under tt mode.  Since that is no longer a problem, this\ncan now go in.\n\nThis patch:\n\nStart getting rid of tt mode support.\n\nThis patch throws out CONFIG_MODE_TT and all config options, code, and files\nwhich depend on it.\n\nCONFIG_MODE_SKAS is gone and everything that depends on it is included\nunconditionally.\n\nThe few changed lines are in re-written Kconfig help, lines which needed\nsomething skas-related removed from them, and a few more which weren\u0027t\nstrictly deletions.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2b8232ce512105e28453f301d1510de8363bccd1",
      "tree": "13e15a4f629c72b8737e20221998cb1e55e98d58",
      "parents": [
        "c4ea43c552ecc9ccc564e11e70d397dbdf09484b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Sat Oct 13 08:16:04 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Oct 13 09:57:15 2007 -0700"
      },
      "message": "minimal build fixes for uml (fallout from x86 merge)\n\n a) include/asm-um/arch can\u0027t just point to include/asm-$(SUBARCH) now\n b) arch/{i386,x86_64}/crypto are merged now\n c) subarch-obj needed changes\n d) cpufeature_64.h should pull \"cpufeature_32.h\", not \u003casm/cpufeature_32.h\u003e\n    since it can be included from asm-um/cpufeature.h\n e) in case of uml-i386 we need CONFIG_X86_32 for make and gcc, but not\n    for Kconfig\n f) sysctl.c shouldn\u0027t do vdso_enabled for uml-i386 (actually, that one\n    should be registered from corresponding arch/*/kernel/*, with ifdef\n    going away; that\u0027s a separate patch, though).\n\nWith that and with Stephen\u0027s patch (\"[PATCH net-2.6] uml: hard_header fix\")\nwe have uml allmodconfig building both on i386 and amd64.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c537b994505099b7197e7d3125b942ecbcc51eb6",
      "tree": "ec8da7b5f8968206de7f343df3ea68563fe92af2",
      "parents": [
        "bb81e6050fdc0f2303b47d9300db232571e3e42a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Wed Mar 14 09:04:51 2007 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Mar 14 15:27:48 2007 -0700"
      },
      "message": "[PATCH] (uml) sparse flags for userland glue are missing $(CF)\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5e8d780d745c1619aba81fe7166c5a4b5cad2b84",
      "tree": "a1631c493bc44294e346ec09b89ed524572d85cb",
      "parents": [
        "598736c55622f7ea65b98f93c825ff95c433877c"
      ],
      "author": {
        "name": "Sam Ravnborg",
        "email": "sam@mars.ravnborg.org",
        "time": "Sat Jul 01 09:58:02 2006 +0200"
      },
      "committer": {
        "name": "Sam Ravnborg",
        "email": "sam@mars.ravnborg.org",
        "time": "Sat Jul 01 09:58:02 2006 +0200"
      },
      "message": "kbuild: fix ia64 breakage after introducing make -rR\n\nkbuild used $¤(*F to get filename of target without extension.\nThis was used in several places all over kbuild, but introducing\nmake -rR broke his for all cases where we specified full path to\ntarget/prerequsite. It is assumed that make -rR disables old style\nsuffix-rules which is why is suddenly failed.\n\nia64 was impacted by this change because several div* routines in\narch/ia64/lib are build using explicit paths and then kbuild failed.\n\nThanks to David Mosberger-Tang \u003cDavid.Mosberger@acm.org\u003e for an explanation\nwhat was the root-cause and for testing on ia64.\n\nThis patch also fixes two uses of $(*F) in arch/um\n\nSigned-off-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\n"
    },
    {
      "commit": "7b12b9137930eb821b68e1bfa11e9de692208620",
      "tree": "e2bfd312a5f2dd5665f2a834af679148bb1718d3",
      "parents": [
        "275e6e1ee2bafde77e9390b27e876fa83f24cb60"
      ],
      "author": {
        "name": "Paolo \u0027Blaisorblade\u0027 Giarrusso",
        "email": "blaisorblade@yahoo.it",
        "time": "Mon May 01 12:16:05 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon May 01 18:17:45 2006 -0700"
      },
      "message": "[PATCH] uml: cleanup unprofile expression and build infrastructure\n\n*) Rather than duplicate in various buggy ways the application of\n   CFLAGS_NO_HARDENING and UNPROFILE (which apply to the same files),\n   centralize it in Makefile.rules.  UNPROFILE_OBJS mustn\u0027t be listed in\n   USER_OBJS but are compiled as such.\n\nI\u0027ve also verified that unprofile didn\u0027t work in the current form, because we\nset _c_flags directly (using CFLAGS and not USER_CFLAGS, which is wrong),\nwhich is normally used by c_flags, but we also override c_flags for all\nUSER_OBJS, and there we don\u0027t call unprofile.\n\nInstead it only worked for unmap.o, the only one which wasn\u0027t a USER_OBJ.\n\nWe need to set c_flags (which is not a public Kbuild API) to clear a lot of\ncompilation flags like -nostdinc which Kbuild forces on everything.\n\n*) Rather than $(CFLAGS_$(notdir $@)), which expands to CFLAGS_anObj.s when\n   building \"anObj.s\", use $(CFLAGS_$(*F).o) which always accesses\n   CFLAGS_anObj.o, like done by Kbuild.\n\n*) Make c_flags apply to all targets having the same basename, rather than\n   listing .s, .i, .lst and .o, with the use (which I tested) of\n\n\t$(USER_OBJS:.o\u003d.%): c_flags \u003d ...\n\nand of\n\n -      $(obj)/unmap.c: _c_flags \u003d ...\n +      $(obj)/unmap.%: _c_flags \u003d ...\n\nSigned-off-by: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nAcked-by: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ccea15f45eb0ab12d658f88b5d4be005cb2bb1a7",
      "tree": "38cc0f0591a39eb918772b5c296d15783d62095b",
      "parents": [
        "f53389d8af6a73034e40eace6034622c03ed707b"
      ],
      "author": {
        "name": "Paolo \u0027Blaisorblade\u0027 Giarrusso",
        "email": "blaisorblade@yahoo.it",
        "time": "Mon Apr 10 22:53:35 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:36 2006 -0700"
      },
      "message": "[PATCH] uml: support sparse for userspace files\n\nMake sparse checker work for userspace files - it normally gets -nostdinc\nseparately, so avoid having it for userspace files.  Also, add -D$(SUBARCH)\nfor multiarch hosts (i.e.  AMD64 with compatibility headers).\n\nIt works, the only problem is a bit of bogus warnings for system headers, but\nthey\u0027re not too many.\n\nSigned-off-by: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7b99edc78de6c12d3e96fb75fe2b55fafa96f247",
      "tree": "c4a788343634c475a41a67aab6a8fc46dbddb171",
      "parents": [
        "de2fe5e07d58424bc286fff3fd3c1b0bf933cd58"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 31 02:30:12 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:51 2006 -0800"
      },
      "message": "[PATCH] uml: clean up remapping code build magic\n\nkills unmap magic\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "de2fe5e07d58424bc286fff3fd3c1b0bf933cd58",
      "tree": "870d16aef28679c56b1c7321a8fcb511c6176d00",
      "parents": [
        "f4c57a78e2c49f188babf675ba0a9264b5374c26"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 31 02:30:11 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:50 2006 -0800"
      },
      "message": "[PATCH] uml: eliminate symlinks to host arch\n\nkills symlinks in arch/um/sys-*\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9ce7677cfd7cd871adb457c80bea3b581b839641",
      "tree": "983c2c0518a7036c7fc1636054a3656529480b79",
      "parents": [
        "e5508c13ac25b07585229b144a45cf64a990171e"
      ],
      "author": {
        "name": "Paolo \u0027Blaisorblade\u0027 Giarrusso",
        "email": "blaisorblade@yahoo.it",
        "time": "Sun Dec 18 17:50:32 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Dec 18 11:19:44 2005 -0800"
      },
      "message": "[PATCH] uml: arch/um/scripts/Makefile.rules - remove duplicated code\n\nDuplicated code - the patch adding it was probably applied twice without\nenough care.\n\nSigned-off-by: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "858259cf7d1c443c836a2022b78cb281f0a9b95e",
      "tree": "7d306450dd0dfa907bbee1d95f96191c67f74232",
      "parents": [
        "e763b793f7e5c09a859fc420eb0de385d80cf636"
      ],
      "author": {
        "name": "Bodo Stroesser",
        "email": "bstroesser@fujitsu-siemens.com",
        "time": "Mon Nov 07 00:58:55 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:31 2005 -0800"
      },
      "message": "[PATCH] uml: maintain own LDT entries\n\nPatch imlements full LDT handling in SKAS:\n * UML holds it\u0027s own LDT table, used to deliver data on\n   modify_ldt(READ)\n * UML disables the default_ldt, inherited from the host (SKAS3)\n   or resets LDT entries, set by host\u0027s clib and inherited in\n   SKAS0\n * A new global variable skas_needs_stub is inserted, that\n   can be used to decide, whether stub-pages must be supported\n   or not.\n * Uses the syscall-stub to replace missing PTRACE_LDT (therefore,\n   write_ldt_entry needs to be modified)\n\nSigned-off-by: Bodo Stroesser \u003cbstroesser@fujitsu-siemens.com\u003e\nSigned-off-by: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Paolo Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "54a8a2220c936a47840c9a3d74910c5a56fae2ed",
      "tree": "956f0c58385ff5f1688b583b6f37c42a91349f8b",
      "parents": [
        "9e3d862e5c341c59b673c9cadd64210ca03cb41e"
      ],
      "author": {
        "name": "Paolo \u0027Blaisorblade\u0027 Giarrusso",
        "email": "blaisorblade@yahoo.it",
        "time": "Sun Oct 09 21:37:26 2005 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 10 08:36:00 2005 -0700"
      },
      "message": "[PATCH] uml: allow building .s/.i/.lst files from userspace files\n\nFor files which need to include glibc headers (i.e. userspace files), we\nspecified the correct flags only for .o, not for .s/.lst/.i. Fix this.\n\nSigned-off-by: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2624f124b3b5d550ab2fbef7ee3bc0e1fed09722",
      "tree": "797db769b24e29d17f8412d8b7e3e4afafc794b1",
      "parents": [
        "f91f4d923f4039bf3460eca299ed5a3f7ecd7b96"
      ],
      "author": {
        "name": "viro@ZenIV.linux.org.uk",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Fri Sep 09 17:14:12 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 10:31:58 2005 -0700"
      },
      "message": "[PATCH] sparse on uml (infrastructure bits)\n\nPasses -m64 to sparse on uml/amd64, tells sparse to stay out of\nUSER_OBJS.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "13abf8130139c2ccd4962a7e5a8902be5e6cb5a7",
      "tree": "88e543ac8ba2bcfd8ec7853d3a065cca2460f90d",
      "parents": [
        "93ea5a5b5c71ddbefd4082627d8f33e4bc038a6f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@parcelfarce.linux.theplanet.co.uk",
        "time": "Sat Sep 03 15:57:31 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:06:22 2005 -0700"
      },
      "message": "[PATCH] uml: remove libc reference in build\n\nRemove an unneeded reference to libc.\n\nSigned-off-by: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Paolo Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "20d0021394c1b070bf04b22c5bc8fdb437edd4c5",
      "tree": "283d0cd3bfdaec49ed2b29d568f5ceca5e3f1d2a",
      "parents": [
        "ecc354a90af90a80dcaccc750f5f3e5e7c83112d"
      ],
      "author": {
        "name": "Paolo \u0027Blaisorblade\u0027 Giarrusso",
        "email": "blaisorblade@yahoo.it",
        "time": "Thu Jul 14 00:33:43 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 14 09:00:25 2005 -0700"
      },
      "message": "[PATCH] uml: allow building as 32-bit binary on 64bit host\n\nThis patch makes the command:\n\nmake ARCH\u003dum SUBARCH\u003di386\n\nwork on x86_64 hosts (with support for building 32-bit binaries).  This is\nespecially needed since 64-bit UMLs don\u0027t support 32-bit emulation for guest\nbinaries, currently.  This has been tested in all possible cases and works.\n\nOnly exception is that I\u0027ve built but not tested a 64-bit binary, because I\nhadn\u0027t a 64-bit filesystem available.\n\nSigned-off-by: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d67b569f5f620c0fb95d5212642746b7ba9d29e4",
      "tree": "c7ef10c906dd83911e10988c6cea6d7d5644e072",
      "parents": [
        "1322ad41513f8f9196801f53cc0851df056f3478"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Thu Jul 07 17:56:49 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 07 18:23:44 2005 -0700"
      },
      "message": "[PATCH] uml: skas0 - separate kernel address space on stock hosts\n\nUML has had two modes of operation - an insecure, slow mode (tt mode) in\nwhich the kernel is mapped into every process address space which requires\nno host kernel modifications, and a secure, faster mode (skas mode) in\nwhich the UML kernel is in a separate host address space, which requires a\npatch to the host kernel.\n\nThis patch implements something very close to skas mode for hosts which\ndon\u0027t support skas - I\u0027m calling this skas0.  It provides the security of\nthe skas host patch, and some of the performance gains.\n\nThe two main things that are provided by the skas patch, /proc/mm and\nPTRACE_FAULTINFO, are implemented in a way that require no host patch.\n\nFor the remote address space changing stuff (mmap, munmap, and mprotect),\nwe set aside two pages in the process above its stack, one of which\ncontains a little bit of code which can call mmap et al.\n\nTo update the address space, the system call information (system call\nnumber and arguments) are written to the stub page above the code.  The\n%esp is set to the beginning of the data, the %eip is set the the start of\nthe stub, and it repeatedly pops the information into its registers and\nmakes the system call until it sees a system call number of zero.  This is\nto amortize the cost of the context switch across multiple address space\nupdates.\n\nWhen the updates are done, it SIGSTOPs itself, and the kernel process\ncontinues what it was doing.\n\nFor a PTRACE_FAULTINFO replacement, we set up a SIGSEGV handler in the\nchild, and let it handle segfaults rather than nullifying them.  The\nhandler is in the same page as the mmap stub.  The second page is used as\nthe stack.  The handler reads cr2 and err from the sigcontext, sticks them\nat the base of the stack in a faultinfo struct, and SIGSTOPs itself.  The\nkernel then reads the faultinfo and handles the fault.\n\nA complication on x86_64 is that this involves resetting the registers to\nthe segfault values when the process is inside the kill system call.  This\nbreaks on x86_64 because %rcx will contain %rip because you tell SYSRET\nwhere to return to by putting the value in %rcx.  So, this corrupts $rcx on\nreturn from the segfault.  To work around this, I added an\narch_finish_segv, which on x86 does nothing, but which on x86_64 ptraces\nthe child back through the sigreturn.  This causes %rcx to be restored by\nsigreturn and avoids the corruption.  Ultimately, I think I will replace\nthis with the trick of having it send itself a blocked signal which will be\nunblocked by the sigreturn.  This will allow it to be stopped just after\nthe sigreturn, and PTRACE_SYSCALLed without all the back-and-forth of\nPTRACE_SYSCALLing it through sigreturn.\n\nThis runs on a stock host, so theoretically (and hopefully), tt mode isn\u0027t\nneeded any more.  We need to make sure that this is better in every way\nthan tt mode, though.  I\u0027m concerned about the speed of address space\nupdates and page fault handling, since they involve extra round-trips to\nthe child.  We can amortize the round-trip cost for large address space\nupdates by writing all of the operations to the data page and having the\nchild execute them all at the same time.  This will help fork and exec, but\nnot page faults, since they involve only one page.\n\nI can\u0027t think of any way to help page faults, except to add something like\nPTRACE_FAULTINFO to the host.  There is PTRACE_SIGINFO, but UML doesn\u0027t use\nsiginfo for SIGSEGV (or anything else) because there isn\u0027t enough\ninformation in the siginfo struct to handle page faults (the faulting\noperation type is missing).  Adding that would make PTRACE_SIGINFO a usable\nequivalent to PTRACE_FAULTINFO.\n\nAs for the code itself:\n\n- The system call stub is in arch/um/kernel/sys-$(SUBARCH)/stub.S.  It is\n  put in its own section of the binary along with stub_segv_handler in\n  arch/um/kernel/skas/process.c.  This is manipulated with run_syscall_stub\n  in arch/um/kernel/skas/mem_user.c.  syscall_stub will execute any system\n  call at all, but it\u0027s only used for mmap, munmap, and mprotect.\n\n- The x86_64 stub calls sigreturn by hand rather than allowing the normal\n  sigreturn to happen, because the normal sigreturn is a SA_RESTORER in\n  UML\u0027s address space provided by libc.  Needless to say, this is not\n  available in the child\u0027s address space.  Also, it does a couple of odd\n  pops before that which restore the stack to the state it was in at the\n  time the signal handler was called.\n\n- There is a new field in the arch mmu_context, which is now a union.\n  This is the pid to be manipulated rather than the /proc/mm file\n  descriptor.  Code which deals with this now checks proc_mm to see whether\n  it should use the usual skas code or the new code.\n\n- userspace_tramp is now used to create a new host process for every UML\n  process, rather than one per UML processor.  It checks proc_mm and\n  ptrace_faultinfo to decide whether to map in the pages above its stack.\n\n- start_userspace now makes CLONE_VM conditional on proc_mm since we need\n  separate address spaces now.\n\n- switch_mm_skas now just sets userspace_pid[0] to the new pid rather\n  than PTRACE_SWITCH_MM.  There is an addition to userspace which updates\n  its idea of the pid being manipulated each time around the loop.  This is\n  important on exec, when the pid will change underneath userspace().\n\n- The stub page has a pte, but it can\u0027t be mapped in using tlb_flush\n  because it is part of tlb_flush.  This is why it\u0027s required for it to be\n  mapped in by userspace_tramp.\n\nOther random things:\n\n- The stub section in uml.lds.S is page aligned.  This page is written\n  out to the backing vm file in setup_physmem because it is mapped from\n  there into user processes.\n\n- There\u0027s some confusion with TASK_SIZE now that there are a couple of\n  extra pages that the process can\u0027t use.  TASK_SIZE is considered by the\n  elf code to be the usable process memory, which is reasonable, so it is\n  decreased by two pages.  This confuses the definition of\n  USER_PGDS_IN_LAST_PML4, making it too small because of the rounding down\n  of the uneven division.  So we round it to the nearest PGDIR_SIZE rather\n  than the lower one.\n\n- I added a missing PT_SYSCALL_ARG6_OFFSET macro.\n\n- um_mmu.h was made into a userspace-usable file.\n\n- proc_mm and ptrace_faultinfo are globals which say whether the host\n  supports these features.\n\n- There is a bad interaction between the mm.nr_ptes check at the end of\n  exit_mmap, stack randomization, and skas0.  exit_mmap will stop freeing\n  pages at the PGDIR_SIZE boundary after the last vma.  If the stack isn\u0027t\n  on the last page table page, the last pte page won\u0027t be freed, as it\n  should be since the stub ptes are there, and exit_mmap will BUG because\n  there is an unfreed page.  To get around this, TASK_SIZE is set to the\n  next lowest PGDIR_SIZE boundary and mm-\u003enr_ptes is decremented after the\n  calls to init_stub_pte.  This ensures that we know the process stack (and\n  all other process mappings) will be below the top page table page, and\n  thus we know that mm-\u003enr_ptes will be one too many, and can be\n  decremented.\n\nThings that need fixing:\n\n- We may need better assurrences that the stub code is PIC.\n\n- The stub pte is set up in init_new_context_skas.\n\n- alloc_pgdir is probably the right place.\n\nSigned-off-by: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "60b2737de1b1ddfdb90f3ba622634eb49d6f3603",
      "tree": "a352eda5ca213cdae0a2eabd6693b8a4f573e38f",
      "parents": [
        "b77d6adc922b8bbf8b16b67f567958c42962cf88"
      ],
      "author": {
        "name": "Paolo \u0027Blaisorblade\u0027 Giarrusso",
        "email": "blaisorblade@yahoo.it",
        "time": "Tue Jun 21 17:16:25 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue Jun 21 19:07:32 2005 -0700"
      },
      "message": "[PATCH] uml: fix linkage of tt mode against NPTL\n\nWith Al Viro \u003cviro@parcelfarce.linux.theplanet.co.uk\u003e\n\nTo make sure switcheroo() can execute when we remap all the executable\nimage, we used a trick to make it use a local copy of errno...  this trick\ndoes not work with NPTL glibc, only with LinuxThreads, so use another\n(simpler) one to make it work anyway.\n\nHopefully, a lot improved thanks to merging with the version of Al Viro\n(which had his part of problems, though, i.e.  removing a fix to another\nbug and not fixing the problem on i386).\n\nSigned-off-by: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "36ca1195ad7f760a6af3814cb002bd3a3d4b4db1",
      "tree": "570a895d2af09f464d7f9fea2fe78e7fe0f73cb7",
      "parents": [
        "8447f3f4659d91c2f11a1476522369c9d6ae6ada"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Mon Jun 13 15:52:10 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Mon Jun 13 20:58:43 2005 -0700"
      },
      "message": "[PATCH] uml: build cleanups\n\nFix a build failure when CONFIG_MODE_SKAS is disabled and make a Makefile\ncomment fit in 80 columns.\n\nSigned-off-by: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2ba491759fd74bfadf656c55a3695e98b6074439",
      "tree": "a0db13a91334fea67c403df26b4881deff108720",
      "parents": [
        "cd2ee4a30cc0775d8b54e5b958613361a7cacfec"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Thu May 05 16:15:33 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu May 05 16:36:36 2005 -0700"
      },
      "message": "[PATCH] uml: tidy Makefile.rules\n\nJust some breaking of some overly-long lines.\n\nSigned-off-by: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "776cfebb430c7b22c208b1b17add97f354d97cab",
      "tree": "a4029d17947423ff8cdf12757e3434eb31e0dcba",
      "parents": [
        "0c28130b5c9e8f0b153436d3dae39482e5a70af1"
      ],
      "author": {
        "name": "Paolo \u0027Blaisorblade\u0027 Giarrusso",
        "email": "blaisorblade@yahoo.it",
        "time": "Thu May 05 16:15:18 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu May 05 16:36:33 2005 -0700"
      },
      "message": "[PATCH] uml kbuild: avoid useless rebuilds\n\n- Fix some problems with usage of $(targets) (sometimes missing, sometimes\n  used badly) that trigger partial rebuilds when doing a rebuild.\n\n- At that purpose, also factor out some common code for symlinks creation.\n\n- Fix a x86-64 build warning, caused by -L/usr/lib, which is anyway useless,\n  and invalid in the x86-64 case.\n\nTested on x86_64 and x86.\n\nSigned-off-by: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
