)]}'
{
  "log": [
    {
      "commit": "e17c6d56160e4fb9e8c2830e30cc9741d4309989",
      "tree": "2da6548cd05dccd6316958a0f646fe15fbcc804b",
      "parents": [
        "6b213e1bc27da6f6280386b1ff0e817e602c7b7a"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Tue Jun 17 12:19:34 2008 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Sat Sep 06 19:30:22 2008 +0100"
      },
      "message": "Introduce HAVE_AOUT symbol to remove hard-coded arch list for BINFMT_AOUT\n\nHAVE_AOUT doesn\u0027t quite do the same thing as the recently removed\nARCH_SUPPORTS_AOUT config option. That was set even on platforms where\nbinfmt_aout isn\u0027t supported, although it\u0027s not entirely clear why.\n\nSo it\u0027s best just to introduce a new symbol, handled consistently with\nother similar HAVE_xxx symbols; with a simple \u0027select\u0027 in the arch Kconfig.\n\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "6b213e1bc27da6f6280386b1ff0e817e602c7b7a",
      "tree": "80cec89af9b01f8dcc40d9d576c5c1a05e056a3f",
      "parents": [
        "5cfba5df8c76851ab311a2818a5e688f20833cac"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Mon Jun 16 12:39:13 2008 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Sat Sep 06 19:30:20 2008 +0100"
      },
      "message": "Remove redundant CONFIG_ARCH_SUPPORTS_AOUT\n\nWe don\u0027t need this any more; arguably we never really did.\n\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "64ac24e738823161693bf791f87adc802cf529ff",
      "tree": "19c0b0cf314d4394ca580c05b86cdf874ce0a167",
      "parents": [
        "e48b3deee475134585eed03e7afebe4bf9e0dba9"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Fri Mar 07 21:55:58 2008 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "willy@linux.intel.com",
        "time": "Thu Apr 17 10:42:34 2008 -0400"
      },
      "message": "Generic semaphore implementation\n\nSemaphores are no longer performance-critical, so a generic C\nimplementation is better for maintainability, debuggability and\nextensibility.  Thanks to Peter Zijlstra for fixing the lockdep\nwarning.  Thanks to Harvey Harrison for pointing out that the\nunlikely() was unnecessary.\n\nSigned-off-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "536788fe2d28e11db6aeda74207d95d750fb761f",
      "tree": "73df2d3a46c542c71d3a84c20c8fd1ce617386a3",
      "parents": [
        "2f569afd9ced9ebec9a6eb3dbf6f83429be0a7b4"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Fri Feb 08 04:22:07 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:42 2008 -0800"
      },
      "message": "uml: runtime host VMSPLIT detection\n\nCalculate TASK_SIZE at run-time by figuring out the host\u0027s VMSPLIT - this is\nneeded on i386 if UML is to run on hosts with varying VMSPLITs without\nrecompilation.\n\nTASK_SIZE is now defined in terms of a variable, task_size.  This gets rid of\nan include of pgtable.h from processor.h, which can cause include loops.\n\nOn i386, task_size is calculated early in boot by probing the address space in\na binary search to figure out where the boundary between usable and non-usable\nmemory is.  This tries to make sure that a page that is considered to be in\nuserspace is, or can be made, read-write.  I\u0027m concerned about a system-global\nVDSO page in kernel memory being hit and considered to be a userspace page.\n\nOn x86_64, task_size is just the old value of CONFIG_TOP_ADDR.\n\nA bunch of config variable are gone now.  CONFIG_TOP_ADDR is directly replaced\nby TASK_SIZE.  NEST_LEVEL is gone since the relocation of the stubs makes it\nirrelevant.  All the HOST_VMSPLIT stuff is gone.  All references to these in\narch/um/Makefile are also gone.\n\nI noticed and fixed a missing extern in os.h when adding os_get_task_size.\n\nNote: This has been revised to fix the 32-bit UML on 64-bit host bug that\nMiklos ran into.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b0b933c08bd5fd053bbba8ba6387f543be03d49f",
      "tree": "c3c6d2e44d2104231daa31f684b9e7fcdc3b7896",
      "parents": [
        "922a70d327bd4b11342c2afd08e20d35f52064c3"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Feb 08 04:19:27 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:30 2008 -0800"
      },
      "message": "aout: mark arches that support A.OUT format\n\nMark arches that support A.OUT format by including the following in their\nmaster Kconfig files:\n\n\tconfig ARCH_SUPPORTS_AOUT\n\t\tdef_bool y\n\nThis should also be set if the arch provides compatibility A.OUT support for\nan older arch, for instance x86_64 for i386 or sparc64 for sparc.\n\nI\u0027ve guessed at which arches don\u0027t, based on comments in the code, however I\u0027m\nsure that some of the ones I\u0027ve marked as \u0027yes\u0027 actually should be \u0027no\u0027.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "54d67ee22c1ed12ff595defdf89e3d07b430497d",
      "tree": "899df53a92126f604f4bfede6bf52d2fc7622401",
      "parents": [
        "eafe1aa37e6ec2d56f14732b5240c4dd09f0613a"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Sat Dec 01 12:16:28 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Dec 03 08:13:17 2007 -0800"
      },
      "message": "uml: keep UML Kconfig in sync with x86\n\nFix a UML build breakage introduced by commit\n1032c0ba9da5c5b53173ad2dcf8b2a2da78f8b17 - it introduces X86_32, with many\nthings which UML needs depending on it.\n\nThis patch adds definitions of X86_32 and RWSEM_XCHGADD_ALGORITHM to\nthe UML/i386 Kconfig.\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": "7a78a1722380dd3cb5a009dbcd007f92b6b87743",
      "tree": "87d1f54d566ddd0428f92095572d72a680faa989",
      "parents": [
        "ca5cd877ae699e758e6f26efc11b01bf6631d427"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Mon Oct 29 04:34:31 2007 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 29 07:41:32 2007 -0700"
      },
      "message": "more x86 merge fallout (uml, again)\n\narch/i386/{Kconfig,Makefile}.cpu got moved\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "54ae36f24b103e521dd683f66fe72b0584ccb7e2",
      "tree": "1504968363c0935479ebd28e710562d8046dd884",
      "parents": [
        "605c1e57690fddbd11347ec6788ff77c527994dd"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:27:33 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:09 2007 -0700"
      },
      "message": "uml: fix stub address calculations\n\nThe calculation of CONFIG_STUB_CODE and CONFIG_STUB_DATA didn\u0027t take into\naccount anything but 3G/1G and 2G/2G, leaving the other vmsplits out in the\ncold.\n\nI\u0027d rather not duplicate the four known host vmsplit cases for each of these\nsymbols.  I\u0027d also like to calculate them based on the highest userspace\naddress.\n\nThe Kconfig language seems not to allow calculation of hex constants, so I\nmoved this to as-layout.h.  CONFIG_STUB_CODE, CONFIG_STUB_DATA, and\nCONFIG_STUB_START are now gone.  In their place are STUB_CODE, STUB_DATA, and\nSTUB_START in as-layout.h.\n\ni386 and x86_64 seem to differ as to whether an unadorned constant is an int\nor a long, so I cast them to unsigned long so they can be printed\nconsistently.  However, they are also used in stub.S, where C types don\u0027t work\nso well.  So, there are ASM_ versions of these constants for use in stub.S.  I\nalso ifdef-ed the non-asm-friendly portion of as-layout.h.\n\nWith this in place, most of the rest of this patch is changing CONFIG_STUB_*\nto STUB_*, except in stub.S, where they are changed to ASM_STUB_*.\n\ndefconfig has the old symbols deleted.\n\nI also print these addresses out in case there is any problem mapping them on\nthe host.\n\nThe two stub.S files had some trailing whitespace, so that is cleaned up here.\n\n[akpm@linux-foundation.org: coding-style fixes]\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": "b20c8453a7d6e8d63c0f05ba3e38d9428c8091b1",
      "tree": "432e9c2654d55a0f262d8170a9dd87cabdff6a12",
      "parents": [
        "774ba59c950926abd27421fa146f1916de89e6f6"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Tue Jan 30 13:23:40 2007 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jan 30 08:39:21 2007 -0800"
      },
      "message": "[PATCH] fix indentation-related breakage in Kconfig.i386\n\nKconfig recognizes the end of help text by receding indentation depth.\nRecent patch had broken HOST_VMSPLIT_... choice in arch/um/Kconfig.i386 -\nall alternatives are interpreted as part of help text now.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fe33f6f1525113ab0bae416966209438e7a31987",
      "tree": "1aa60724cd1b3bc769a12302417ae1d0cccd4008",
      "parents": [
        "569d3287c1f2c5d5e9264e89bd2c0f632e7b7dbb"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Fri Jan 26 00:57:12 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jan 26 13:51:00 2007 -0800"
      },
      "message": "[PATCH] Fix UML on non-standard VM split hosts\n\nThis fixes UML on hosts with non-standard VM splits.  We had changed the\nconfig variable that controls UML behavior on such hosts, but not\npropogated the change everywhere.  In particular, the values of STUB_CODE\nand STUB_DATA relied on the old variable.\n\nI also reformatted the HOST_VMSPLIT_3G help to make it more standard.\n\nSpotted by uml@flonatel.org.\n\nSigned-off-by: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Blaisorblade \u003cblaisorblade@yahoo.it\u003e\nCc: Pravin \u003cshindepravin@gmail.com\u003e\nCc: \u003cuml@flonatel.org\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c21be1c9c1ab42fe285a74f184e1acbc37ee084b",
      "tree": "d9f7b20e39ed9cd0fa1cbb3694bbc21be8e3b5de",
      "parents": [
        "ca316fcf641532ee70dfc59daf632d1685b7d902"
      ],
      "author": {
        "name": "Paolo \u0027Blaisorblade\u0027 Giarrusso",
        "email": "blaisorblade@yahoo.it",
        "time": "Wed Oct 11 01:21:42 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 11 11:14:21 2006 -0700"
      },
      "message": "[PATCH] uml: allow finer tuning for host VMSPLIT setting\n\nNow that various memory splits are enabled, add a config option allowing the\nuser to compile UML for its need - HOST_2G_2G allowed to choose either 3G/1G\nor 2G/2G, and enabling it reduced the usable virtual memory.\n\nDetecting this at run time should be implemented in the future, but we must\nmake the stop-gap measure work well enough (this is valid in _many_ cases).\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": "893bb96a29bee4a5cf2486720ac79412aaee5066",
      "tree": "5e56b9ed14c84766c58a0185aafd679d8cb949b3",
      "parents": [
        "c39e50b4bada27102306d7fa68ea35dc4e61bd68"
      ],
      "author": {
        "name": "Joris van Rantwijk",
        "email": "jvrantwijk@xs4all.nl",
        "time": "Mon May 01 12:15:56 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon May 01 18:17:43 2006 -0700"
      },
      "message": "[PATCH] uml: skas0 support for 2G/2G hosts\n\nA quick hack to allow skas0 mode to run on 2G/2G hosts.\n\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": "f214ef3e193dea10a7b527d4f4b0c15d2d98c984",
      "tree": "070e24ed0f819fb47ee964fd85752b1a1ab2a8a5",
      "parents": [
        "0b28002fdf2d5b6ce3135a544c04940a16c5b0ba"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "mita@miraclelinux.com",
        "time": "Sun Mar 26 01:38:59 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:57:09 2006 -0800"
      },
      "message": "[PATCH] um: fix undefined reference to hweight32\n\nBuild fix for user mode linux.\n\nSigned-off-by: Akinobu Mita \u003cmita@miraclelinux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ce2d2aedcc3ca582fed90f44970e8b3e4f006a7d",
      "tree": "d62b397ea52aa09ebe466b6a4a79505e3c76e15c",
      "parents": [
        "b63162939cd797c8269964ce856ed1f2fec5f70e"
      ],
      "author": {
        "name": "Paolo \u0027Blaisorblade\u0027 Giarrusso",
        "email": "blaisorblade@yahoo.it",
        "time": "Wed Jan 18 17:42:59 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:21 2006 -0800"
      },
      "message": "[PATCH] uml: arch Kconfig menu cleanups\n\n*) mark as \"EXPERIMENTAL\" various items that either aren\u0027t very stable or\n   that are actively crashing the setup of users which don\u0027t really need them\n   (i.e.  HIGHMEM and 3-level pagetables on x86 - nobody needs either,\n   everybody reports \"I\u0027m using it and getting trouble\").\n\n*) move net/Kconfig near to the rest of network configurations, and\n   drivers/block/Kconfig near \"Block layer\" submenu.\n\n*) it\u0027s useless and doesn\u0027t work well to force NETDEVICES on and to disable\n   the prompt like it\u0027s done.  Better remove the attempt, and change that to a\n   simple \"default y if UML\".\n\n*) drop the warning about \"report problems about HPPFS\" - it\u0027s redundant\n   anyway, as that\u0027s the usual procedure, and HPPFS users are especially\n   technical (i.e.  they know reporting bugs is _good_).\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": "85977376c73b7712ed3618888ade126075888c06",
      "tree": "cf59a0f056d6fcabdf16a67e3c915824f0f66001",
      "parents": [
        "3b8d108a6e7992a53e0736abefac1b2e07ce98de"
      ],
      "author": {
        "name": "Paolo \u0027Blaisorblade\u0027 Giarrusso",
        "email": "blaisorblade@yahoo.it",
        "time": "Sun Nov 13 16:07:06 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Nov 13 18:14:14 2005 -0800"
      },
      "message": "[PATCH] uml: fixups for \"reuse i386 cpu-specific tuning\"\n\nA few fixups - show the new submenu only for x86 subarchitecture (it does not\nmake sense to show it for x86_64 users) and remove X86_CMPXCHG, which is now a\nduplicate of Kconfig.i386, even though Kconfig doesn\u0027t complain (we also miss\nthe dependency on !M386 CPU).\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": "3013449243adc3421b507696e5d247a3d292ee0c",
      "tree": "0cabbe21507b1136b84086452f56b5a095adfcf8",
      "parents": [
        "2030c0fd3db3332378f95f479c286181e3920644"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Fri Sep 16 19:28:03 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 17 11:50:01 2005 -0700"
      },
      "message": "[PATCH] uml: UML/i386 cmpxchg fix\n\nUsing native cmpxchg offers a slight performance improvement in uml/i386.\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": "08b178ebf37bbfb78329e0ae6ea688b103d205bf",
      "tree": "e11c4ac3015681bd60b66c47a1131d221435e916",
      "parents": [
        "96e59245e1abf3ea2e98c4b9ee2ebd975db653db"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Sat Sep 03 15:57:12 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:06:19 2005 -0700"
      },
      "message": "[PATCH] uml: Rename Kconfig files to be like the other arches\n\nTo the extent that sub-Kconfig files exist elsewhere in the tree, they are\nnamed Kconfig.foo, rather than the Kconfig_foo that UML has.  This patch\nbrings the names in line with the rest of the tree.\n\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": "52fdd08903a1d1162e184114837e232640191627",
      "tree": "9469f521b7ba12ac48337155bc5a65049d361229",
      "parents": [
        "4ad8d38342430f8b52f7a8458dce90caf8c8ca64"
      ],
      "author": {
        "name": "Benjamin LaHaise",
        "email": "bcrl@kvack.org",
        "time": "Sat Sep 03 15:56:52 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:06:14 2005 -0700"
      },
      "message": "[PATCH] unify x86/x86-64 semaphore code\n\nThis patch moves the common code in x86 and x86-64\u0027s semaphore.c into a\nsingle file in lib/semaphore-sleepers.c.  The arch specific asm stubs are\nleft in the arch tree (in semaphore.c for i386 and in the asm for x86-64).\nThere should be no changes in code/functionality with this patch.\n\nSigned-off-by: Benjamin LaHaise \u003cbenjamin.c.lahaise@intel.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\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": "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": "c45166be3cc666ce88fe623ad79276c943e74eff",
      "tree": "db59fdfb6834c112c99a5ab8692fe8372d7961ba",
      "parents": [
        "b05d85a87d9711f5f5f2eb05c79038d5d5ff1f44"
      ],
      "author": {
        "name": "Paolo \u0027Blaisorblade\u0027 Giarrusso",
        "email": "blaisorblade@yahoo.it",
        "time": "Sun May 01 08:58:54 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:58:54 2005 -0700"
      },
      "message": "[PATCH] uml: support AES i586 crypto driver\n\nWe want to make possible, for the user, to enable the i586 AES implementation.\nThis requires a restructure.\n\n- Add a CONFIG_UML_X86 to notify that we are building a UML for i386.\n\n- Rename CONFIG_64_BIT to CONFIG_64BIT as is used for all other archs\n\n- Tell crypto/Kconfig that UML_X86 is as good as X86\n\n- Tell it that it must exclude not X86_64 but 64BIT, which will give the\n  same results.\n\n- Tell kbuild to descend down into arch/i386/crypto/ to build what\u0027s needed.\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"
    }
  ]
}
