)]}'
{
  "log": [
    {
      "commit": "d99c4022f60a9aa3a8dc6b7d71f3d0998c696912",
      "tree": "d02de9d131b3d45a21ce60e4b5d3380497f86daf",
      "parents": [
        "4413a511f22ec771edc0b7c93e5b34e05511acb5"
      ],
      "author": {
        "name": "Paolo \u0027Blaisorblade\u0027 Giarrusso",
        "email": "blaisorblade@yahoo.it",
        "time": "Sat Sep 10 19:44:56 2005 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 12:00:18 2005 -0700"
      },
      "message": "[PATCH] uml: inline mk_pte and various friends\n\nTurns out that, for UML, a *lot* of VM-related trivial functions are not\ninlined but rather normal functions.\n\nIn other sections of UML code, this is justified by having files which\ninteract with the host and cannot therefore include kernel headers, but in\nthis case there\u0027s no such justification.\n\nI\u0027ve had to turn many of them to macros because of missing declarations. While\ndoing this, I\u0027ve decided to reuse some already existing macros.\n\nSigned-off-by: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "95608261dae863bc43292e6fbd946a3abd3aa49f",
      "tree": "4895bdd59f5d763bff9d1ea035e503b90b9c2e52",
      "parents": [
        "8412205838ae92489ab2f029687659b056dd96ff"
      ],
      "author": {
        "name": "viro@ZenIV.linux.org.uk",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Tue Sep 06 22:33:51 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 17:17:33 2005 -0700"
      },
      "message": "[PATCH] bogus symbol used in arch/um/os-Linux/elf_aux.c\n\nelf_aux is userland code; it uses symbol (ELF_CLASS) that doesn\u0027t exist in\nuserland headers; pulled into kernel-offsets.h, switched elf_aux to using it.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "97de50c0add1e8f3b4e764c66a13c07235fee631",
      "tree": "161be1faee50800677bd01e1ca907cd135ffe0a0",
      "parents": [
        "5e5d7a22292613e55da8e91d75bcc062fd861f41"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Tue Sep 06 15:17:49 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:35 2005 -0700"
      },
      "message": "[PATCH] remove verify_area(): remove verify_area() from various uaccess.h headers\n\nRemove the deprecated (and unused) verify_area() from various uaccess.h\nheaders.\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "07bf731e4b95d7c9ea9dbacd1fc4a041120dfffb",
      "tree": "25ae7f2000421d45e484abac0b7252809476c0d0",
      "parents": [
        "8b51304ed3184826fb262c1e9d3e58b0b00fd083"
      ],
      "author": {
        "name": "Bodo Stroesser",
        "email": "bstroesser@fujitsu-siemens.com",
        "time": "Sat Sep 03 15:57:50 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:06:24 2005 -0700"
      },
      "message": "[PATCH] uml: skas0 stubs now check system call return values\n\nChange syscall-stub\u0027s data to include a \"expected retval\".\n\nStub now checks syscalls retval and aborts execution of syscall list, if\nretval !\u003d expected retval.\n\nrun_syscall_stub prints the data of the failed syscall, using the data pointer\nand retval written by the stub to the beginning of the stack.\n\none_syscall_stub is removed, to simplify code, because only some instructions\nare saved by one_syscall_stub, no host-syscall.\n\nUsing the stub with additional data (modify_ldt via stub)\nis prepared also.\n\nSigned-off-by: Bodo Stroesser \u003cbstroesser@fujitsu-siemens.com\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": "60d339f6fe0831060600c62418b71a62ad26c281",
      "tree": "a2f9527bbcfe85b3eb7c063b8af7d2f499ba4cbb",
      "parents": [
        "09ace81c1d737bcbb2423db235ac980cac4d5de9"
      ],
      "author": {
        "name": "Gennady Sharapov",
        "email": "gennady.v.sharapov@intel.com",
        "time": "Sat Sep 03 15:57:47 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:06:24 2005 -0700"
      },
      "message": "[PATCH] uml: move libc-dependent startup and signal code\n\nThe serial UML OS-abstraction layer patch (um/kernel dir).\n\nThis moves all systemcalls from process.c file under os-Linux dir and join\nprocess.c and process_kern.c files.\n\nSigned-off-by: Gennady Sharapov \u003cgennady.v.sharapov@intel.com\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": "09ace81c1d737bcbb2423db235ac980cac4d5de9",
      "tree": "d31987b15d57429bd40843c02b2283b8e2d90cb0",
      "parents": [
        "75e5584c89d213d6089f64f22cd899fb172e4c95"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Sat Sep 03 15:57:46 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:06:23 2005 -0700"
      },
      "message": "[PATCH] uml: add host AIO support to block driver\n\nThis adds AIO support to the ubd driver.\n\nThe driver breaks a struct request into IO requests to the host, based on the\nhardware segments in the request and on any COW blocks covered by the request.\n\nThe ubd IO thread is gone, since there is now an equivalent thread in the AIO\nmodule.\n\nThere is provision for multiple outstanding requests now.  Requests aren\u0027t\nretired until all pieces of it have been completed.  The AIO requests have a\nshared count, which is decremented as IO operations come in until it reaches\n0.  This can be possibly moved to the request struct - haven\u0027t looked at this\nyet.\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": "75e5584c89d213d6089f64f22cd899fb172e4c95",
      "tree": "22bb81b9c699e06b3c8163933654fe3f84ae469d",
      "parents": [
        "30f7dabb083f8ff4ce541b5ac4e5d70cc173051a"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Sat Sep 03 15:57:45 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:06:23 2005 -0700"
      },
      "message": "[PATCH] uml: use host AIO support\n\nThis patch makes UML use host AIO support when it (and\n/usr/include/linux/aio_abi.h) are present.  This is only the support, with no\nconsumers - a consumer is coming in the next patch.\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": "e32dacb9f481fd6decb41adb28e720c923d34f54",
      "tree": "77594001f5c670380897d84367442725740383d9",
      "parents": [
        "08964c565b2fe49e338ffbe4907adcc19647ef16"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Sat Sep 03 15:57:42 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:06:23 2005 -0700"
      },
      "message": "[PATCH] uml: system call path cleanup\n\nThis merges two sets of files which had no business being split apart in the\nfirst 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": "c56004901fa5dcf55f92318f192ab3c0e87db2d1",
      "tree": "ac53ded16ab9886ce05d4b2d424dfed80dce9e57",
      "parents": [
        "77fa5adcda6d686d2f45a2b55dcb9a03e7d33fa1"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Sat Sep 03 15:57:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:06:22 2005 -0700"
      },
      "message": "[PATCH] uml: TLB operation batching\n\nThis adds VM op batching to skas0.  Rather than having a context switch to and\nfrom the userspace stub for each address space change, we write a number of\noperations to the stub data page and invoke a different stub which loops over\nthem and executes them all in one go.\n\nThe operations are stored as [ system call number, arg1, arg2, ... ] tuples.\n\nThe set is terminated by a system call number of 0.  Single operations, i.e.\npage faults, are handled in the old way, since that is slightly more\nefficient.\n\nFor a kernel build, a minority (~1/4) of the operations are part of a set.\nThese sets averaged ~100 in length, so for this quarter, the context switching\noverhead is greatly reduced.\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": "7efd08c85523f9468a6a8748d6f02b3e73967569",
      "tree": "6ee5b4cadfc78665a4a85a2f5901b2441c4e4f79",
      "parents": [
        "e54a5dfb960053437f464a7ce372a8acc293fdcb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@parcelfarce.linux.theplanet.co.uk",
        "time": "Sat Sep 03 15:57:28 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:06:21 2005 -0700"
      },
      "message": "[PATCH] uml: fix a macro typo\n\nFix a macro typo which could break if the macro is passed arguments with\nside-effects.\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": "9786a8f3cbc61f990266e23ffdb338ee3118b03d",
      "tree": "c987811d30508728f954cc8aaa14de1f7fa5b44a",
      "parents": [
        "d67b569f5f620c0fb95d5212642746b7ba9d29e4"
      ],
      "author": {
        "name": "Bodo Stroesser",
        "email": "bstroesser@fujitsu-siemens.com",
        "time": "Thu Jul 07 17:56:50 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 07 18:23:44 2005 -0700"
      },
      "message": "[PATCH] uml: Proper clone support for skas0\n\nThis patch implements the clone-stub mechanism, which allows skas0 to run\nwith proc_mm\u003d\u003d0, even if the clib in UML uses modify_ldt.\n\nNote: There is a bug in skas3.v7 host patch, that avoids UML-skas from\nrunning properly on a SMP-box.  In full skas3, I never really saw problems,\nbut in skas0 they showed up.\n\nMore commentary by jdike - What this patch does is makes sure that the host\nparent of each new host process matches the UML parent of the corresponding\nUML process.  This ensures that any changed LDTs are inherited.  This is\ndone by having clone actually called by the UML process from its stub,\nrather than by the kernel.  We have special syscall stubs that are loaded\nonto the stub code page because that code must be completely\nself-contained.  These stubs are given C interfaces, and used like normal C\nfunctions, but there are subtleties.  Principally, we have to be careful\nabout stack variables in stub_clone_handler after the clone.  The code is\nwritten so that there aren\u0027t any - everything boils down to a fixed\naddress.  If there were any locals, references to them after the clone\nwould be wrong because the stack just changed.\n\nSigned-off-by: Bodo Stroesser \u003cbstroesser@fujitsu-siemens.com\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": "29d56cfe3ca599ddc3ae9156e7e469c044d97b96",
      "tree": "7790477f5b138c249725fe8ecf9dc07794e9d1eb",
      "parents": [
        "fc47a0d18a1994b4a18d2235fcde1b75dfa72552"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Sat Jun 25 14:55:25 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Jun 25 16:24:36 2005 -0700"
      },
      "message": "[PATCH] uml: hot-unplug code cleanup\n\nClean up the hot-unplugging code.  There is now an id procedure which is\ncalled to figure out what device we\u0027re talking to.  The error messages from\nthat are now done from mconsole_remove instead of the driver.  remove is now\ncalled with the device number, after it has been checked, so doesn\u0027t need to\ndo sanity checking on it.\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": "fc47a0d18a1994b4a18d2235fcde1b75dfa72552",
      "tree": "fd551126b4ae4a4a6e9be99773cf04a7eacc4b72",
      "parents": [
        "026549d28469f7d4ca7e5a4707f0d2dc4f2c164c"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Sat Jun 25 14:55:24 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Jun 25 16:24:35 2005 -0700"
      },
      "message": "[PATCH] uml: time initialization tidying\n\nuser_time_init_skas and user_time_init_tt were essentially the same.  So, this\nmerges them, deleting the mode-specific functions and declarations.\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": "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": "da00d9a5466558ccd9e7b7d04b13d7cb9160c876",
      "tree": "4edc27caa63126e902da3752f58adb8ee792762c",
      "parents": [
        "3df59529ad1045da61698bb5dd8ebaa547aeb46f"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Wed Jun 08 15:48:01 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Wed Jun 08 16:21:12 2005 -0700"
      },
      "message": "[PATCH] uml: compile fixes for gcc 4\n\nThis is a bunch of compile fixes provoked by building UML with gcc 4.  There\nare a bunch of signedness mismatches, a couple of uninitialized references,\nand a botched C99 structure initialization which had somehow gone unnoticed.\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": "b3461034d7d46455060c8476910be22b6b0fc313",
      "tree": "d5ebcf803116eb3c5800189ebb065df28c994d07",
      "parents": [
        "37fce857bec00d26d0e8251c909da2bd8736c949"
      ],
      "author": {
        "name": "Paolo \u0027Blaisorblade\u0027 Giarrusso",
        "email": "blaisorblade@yahoo.it",
        "time": "Sat May 28 15:52:00 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat May 28 16:46:13 2005 -0700"
      },
      "message": "[PATCH] uml: stack dump fix\n\nCopy (and adapt) to UML the stack code dumper used in i386 when\nCONFIG_FRAME_POINTER is enabled.\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": "a2e4b972c99685d9d7b869c4bf8d8b258ff5b60c",
      "tree": "3b0c8efe20b574ed59937cd00cd0affecff7165c",
      "parents": [
        "6770cb61ff6d557613a8382b28f9b0a919fb112f"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Sat May 28 15:51:54 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat May 28 16:46:11 2005 -0700"
      },
      "message": "[PATCH] uml: remove 2_5compat.h\n\nRemove old useless header that was used in Ye Olde Times during 2.4-\u003e2.5\nporting to abstract differences.  It\u0027s definitions are no more used anyway, so\nlet\u0027s finally kill it.\n\nSigned-off-by: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\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": "ba9950c820e556e39cd26581826b5581a64fb641",
      "tree": "4ba37ce6b1852e95619ad3e6bd97a2032dd4c1fc",
      "parents": [
        "46f4e1b7d5fa3ddf2486bf69716c404147e38ebf"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Fri May 20 13:59:07 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri May 20 15:48:17 2005 -0700"
      },
      "message": "[PATCH] uml: small fixes left over from rc4\n\nSome changes that I sent in didn\u0027t make 2.6.12-rc4 for some reason.  This\nadds them back.  We have\n\tan x86_64 definition of TOP_ADDR\n\ta reimplementation of the x86_64 csum_partial_copy_from_user\n\tsome syntax fixes in arch/um/kernel/ptrace.c\n\tremoval of a CFLAGS definition in the x86_64 Makefile\n\tsome include changes in the x86_64 ptrace.c and user-offsets.h\n\ta syntax fix in elf-x86_64.h\nAlso moved an include in the i386 and x86_64 Makefiles to make the symlinks\nwork, and some small fixes from Al Viro.\n\nSigned-off-by: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: \u003cviro@parcelfarce.linux.theplanet.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "16c11163019879c0e1e69d3ec7d4574a80e9c77e",
      "tree": "7387cc2c3c7d0c67391ce5390bd6048639a0790e",
      "parents": [
        "8bef3e0a06c00bd44760361f84b08e30cd1bff0e"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Fri May 06 21:30:45 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri May 06 22:09:29 2005 -0700"
      },
      "message": "[PATCH] uml: command line handling cleanup\n\nCommand line handling cleanups - a couple of things made static and an\nunused declaration removed from header.\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": "3a0a64e6c917b2ccc311cf978cc9d7eef7b31c47",
      "tree": "121b7de957b5cc73f8d0f1cd5fd70dcd1de04261",
      "parents": [
        "7c5131a501e9e8549f74d807c37fde76008ef95a"
      ],
      "author": {
        "name": "Bodo Stroesser",
        "email": "bstroesser@fujitsu-siemens.com",
        "time": "Thu May 05 16:15:40 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu May 05 16:36:39 2005 -0700"
      },
      "message": "[PATCH] uml: header and code cleanup\n\nRemove some definitions and declarations from arch/um/include/skas_ptrace.h,\nas they have moved to arch/um/include/sysdep/skas_ptrace.h\n\nAlso, remove PTRACE_SIGPENDING support in UML at all.\n\nSigned-off-by: Bodo Stroesser \u003cbstroesser@fujitsu-siemens.com\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": "51a6b0c59a6170fc6a40221ef9b261b82856d315",
      "tree": "aeb5e5ff3862f2f9a0fa02ab67b0a807262ad1d6",
      "parents": [
        "5fd861b682785f650114f4df53060d1be7fedecd"
      ],
      "author": {
        "name": "Bodo Stroesser",
        "email": "bstroesser@fujitsu-siemens.com",
        "time": "Thu May 05 16:15:38 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu May 05 16:36:38 2005 -0700"
      },
      "message": "[PATCH] uml: s390 preparation, sighandler interface abstraction\n\ns390 passes parameters in registers.  So the only safe way to find out the\naddress of signal context, error-address and error-type (trap_no), which are\npassed to signal handlers as parameters, is to declare these parameters.\n\nSo I inserted an subarch-specific macro which holds the declaration of\nparameters for signal handlers.\n\nSigned-off-by: Bodo Stroesser \u003cbstroesser@fujitsu-siemens.com\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": "7d37c6d52fce13008f20344790a81a6a5a0003b3",
      "tree": "ebf98bc32d8c0e29627f7be8a4dd349a32efff1d",
      "parents": [
        "c52ac046757deebc514483e407dca39a9c774aa3"
      ],
      "author": {
        "name": "Bodo Stroesser",
        "email": "bstroesser@fujitsu-siemens.com",
        "time": "Thu May 05 16:15:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu May 05 16:36:38 2005 -0700"
      },
      "message": "[PATCH] uml: s390 preparation, checksumming done in arch code\n\nChecksum handling largely depends on the subarch.\n\nThus, I renamed i386 arch_csum_partial in arch/um/sys-i386/checksum.S back to\ncsum_partial, removed csum_partial from arch/um/kernel/checksum.c and shifted\nEXPORT_SYMBOL(csum_partial) to arch/um/sys-i386/ksyms.c.\n\nThen, csum_partial_copy_to and csum_partial_copy_from were shifted from\narch/um/kernel/checksum.c to arch/um/include/sysdep-i386/checksum.h and\ninserted in the calling functions csum_partial_copy_from_user() and\ncsum_and_copy_to_user().\n\nNow, arch/um/kernel/checksum.c is empty and removed.\n\nSigned-off-by: Bodo Stroesser \u003cbstroesser@fujitsu-siemens.com\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": "cd2ee4a30cc0775d8b54e5b958613361a7cacfec",
      "tree": "edea72ea7d723a1c35675632850916d77084581b",
      "parents": [
        "c578455a3eccf4dd7bd111e77129c301d6d67914"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Thu May 05 16:15:32 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu May 05 16:36:36 2005 -0700"
      },
      "message": "[PATCH] uml: Fix SIGWINCH relaying\n\nThis makes SIGWINCH work again, and fixes a couple of SIGWINCH-associated\ncrashes.  First, the sigio thread disables SIGWINCH because all hell breaks\nloose if it ever gets one and tries to call the signal handling code.  Second,\nthere was a problem with deferencing tty structs after they were freed.  The\nSIGWINCH support for a tty wasn\u0027t being turned off or freed after the tty went\naway.\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": "c578455a3eccf4dd7bd111e77129c301d6d67914",
      "tree": "b52def020bd10e1b8bffcf90e1e2a3c1b35010c8",
      "parents": [
        "ea66e8a3b6c4760e8fbf59b1becb6bd8e3dd5376"
      ],
      "author": {
        "name": "Bodo Stroesser",
        "email": "bstroesser@fujitsu-siemens.com",
        "time": "Thu May 05 16:15:31 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu May 05 16:36:36 2005 -0700"
      },
      "message": "[PATCH] uml: S390 preparation, abstract host page fault data\n\nThis patch removes the arch-specific fault/trap-infos from thread and\nskas-regs.\n\nIt adds a new struct faultinfo, that is arch-specific defined in\nsysdep/faultinfo.h.\n\nThe structure is inserted in thread.arch and thread.regs.skas and\nthread.regs.tt\n\nNow, segv and other trap-handlers can copy the contents from regs.X.faultinfo\nto thread.arch.faultinfo with one simple assignment.\n\nAlso, the number of macros necessary is reduced to\n\nFAULT_ADDRESS(struct faultinfo)\n    extracts the faulting address from faultinfo\n\nFAULT_WRITE(struct faultinfo)\n    extracts the \"is_write\" flag\n\nSEGV_IS_FIXABLE(struct faultinfo)\n    is true for the fixable segvs, i.e. (TRAP \u003d\u003d 14)\n    on i386\n\nUPT_FAULTINFO(regs)\n    result is (struct faultinfo *) to the faultinfo\n    in regs-\u003eskas.faultinfo\n\nGET_FAULTINFO_FROM_SC(struct faultinfo, struct sigcontext *)\n    copies the relevant parts of the sigcontext to\n    struct faultinfo.\n\nOn SIGSEGV, call user_signal() instead of handle_segv(), if the architecture\nprovides the information needed in PTRACE_FAULTINFO, or if PTRACE_FAULTINFO is\nmissing, because segv-stub will provide the info.\n\nThe benefit of the change is, that in case of a non-fixable SIGSEGV, we can\ngive user processes a SIGSEGV, instead of possibly looping on pagefault\nhandling.\n\nSince handle_segv() sikked arch_fixup() implicitly by passing ip\u003d\u003d0 to segv(),\nI changed segv() to call arch_fixup() only, if !is_user.\n\nSigned-off-by: Bodo Stroesser \u003cbstroesser@fujitsu-siemens.com\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": "a31769ed3ee82198fd530cb1d79ee9c7f8eeb1d1",
      "tree": "d512ffff086b47597e7bb1b431aa65353b113cc5",
      "parents": [
        "6bae32d395b532959703462c21248fbeb9894e95"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@parcelfarce.linux.theplanet.co.uk",
        "time": "Thu May 05 16:15:25 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu May 05 16:36:35 2005 -0700"
      },
      "message": "[PATCH] uml: cross-build support : kernel_offsets\n\nThe next group of helpers is a bit trickier - they want the constants similar\nto those in user-offsets.h, but we need target sc.h for it.  So we can\u0027t put\nthat into user-offsets (sc.h depends on it) and need the second generated\nheader for that stuff (kernel-offsets.h.  BFD...\n\nSigned-off-by: Al Viro \u003cviro@parcelfarce.linux.theplanet.co.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": "7d87e14c236d6c4cab66d87cf0bc1e0f0375d308",
      "tree": "0c0826cdc102286b541e3e56b59c81752d34c90d",
      "parents": [
        "434498d5323445b59167fd7aa5633b74ebbce901"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Sun May 01 08:59:12 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:59:12 2005 -0700"
      },
      "message": "[PATCH] consolidate sys_shmat\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b97b77cca627b2e3e6d0015e2e14b1d1c12de0c8",
      "tree": "3fa7a55e316624a72764e5c7eead52b92a500a88",
      "parents": [
        "80f9507886076de0cadfdf2b87701e68156829c2"
      ],
      "author": {
        "name": "Paolo \u0027Blaisorblade\u0027 Giarrusso",
        "email": "blaisorblade@yahoo.it",
        "time": "Sun May 01 08:58:56 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:58:56 2005 -0700"
      },
      "message": "[PATCH] uml: redo console locking\n\nFix some console locking problems (including scheduling in atomic) and various\nreorderings and cleanup in that code.  Not yet ready for 2.6.12 probably.\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": "80f9507886076de0cadfdf2b87701e68156829c2",
      "tree": "d9830aeda24b0a004938bae36db3e8efba84b7db",
      "parents": [
        "ddcd6b175793839e51fdd55debb670a9f512c448"
      ],
      "author": {
        "name": "Paolo \u0027Blaisorblade\u0027 Giarrusso",
        "email": "blaisorblade@yahoo.it",
        "time": "Sun May 01 08:58:55 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:58:55 2005 -0700"
      },
      "message": "[PATCH] uml: fix syscall table by including $(SUBARCH)\u0027s one, for x86-64\n\nReuse asm-x86-64/unistd.h to build our syscall table, like x86-64 already\ndoes.\n\nLike for i386, we must add some #defines for all the (right!) changes UML does\nto x86-64 syscall table.\n\nNote: I noted a bogus:\n\t[ __NR_sched_yield ] \u003d (syscall_handler_t *) yield,\n\nwhile doing this patch (which could only be a workaround for some strange bug,\nbut I would ignore this possibility).  I\u0027m changing this without notice.\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": "5e7b83ffc67e15791d9bf8b2a18e4f5fd0eb69b8",
      "tree": "21d245a8ebe9a36748b1f76ff9050ceeaeba926c",
      "parents": [
        "e9c527163d31da9f616e989a90429729525c5233"
      ],
      "author": {
        "name": "Paolo \u0027Blaisorblade\u0027 Giarrusso",
        "email": "blaisorblade@yahoo.it",
        "time": "Sun May 01 08:58:55 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:58:55 2005 -0700"
      },
      "message": "[PATCH] uml: fix syscall table by including $(SUBARCH)\u0027s one, for i386\n\nSplit the i386 entry.S files into entry.S and syscall_table.S which is\nincluded in the previous one (so actually there is no difference between them)\nand use the syscall_table.S in the UML build, instead of tracking by hand the\nsyscall table changes (which is inherently error-prone).\n\nWe must only insert the right #defines to inject the changes we need from the\ni386 syscall table (for instance some different function names); also, we\ndon\u0027t implement some i386 syscalls, as ioperm(), nor some TLS-related ones\n(yet to provide).\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": "9c340d80f66faaea3522812d0d8c91d6a1b48a22",
      "tree": "35ee317dd45aab96021256b8fdb06c90a05b3002",
      "parents": [
        "43117a08280e40be43e181c51cce296ef4b4c7e5"
      ],
      "author": {
        "name": "Paolo \u0027Blaisorblade\u0027 Giarrusso",
        "email": "blaisorblade@yahoo.it",
        "time": "Sat Apr 16 15:25:39 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:25:39 2005 -0700"
      },
      "message": "[PATCH] uml: fix compilation for __CHOOSE_MODE addition\n\nI had added the __CHOOSE_MODE syntax to fix some warnings with newer GCC\u0027s\nin the uml-fix-cond-expr-as-lvalues-warning patch.\n\nHere is the update from the version I sent to make it work also when only\none mode (TT or SKAS) is enabled.\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"
    }
  ]
}
