)]}'
{
  "log": [
    {
      "commit": "99764fa4ceeecba8b9e0a8a5565b418a2e94f83b",
      "tree": "aecf842728e5dfc80743662d87c089b24896f8ed",
      "parents": [
        "4a5675820436e4ad738dd442c1cc8a165101509b"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Wed Jul 23 21:28:49 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:24 2008 -0700"
      },
      "message": "UML: make several more things static\n\n- Make some variables and functions static, since they don\u0027t need to be\n  global.\n\n- Remove an unused function - arch/um/kernel/time.c::sched_clock().\n\n- Clean the style a bit as complained by checkpatch.pl.\n\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: WANG Cong \u003cwangcong@zeuux.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4c182ae7810f3fe444e666f3f78c209a7c116fdf",
      "tree": "ab9038fe423de834bb2f2b27e248c3cf42aef5b1",
      "parents": [
        "ed62f77bb631bc4a2d8acb0521b720cb55e58183"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Wed Jul 23 21:28:47 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:24 2008 -0700"
      },
      "message": "arch/um/kernel/irq.c: clean up some functions\n\nMake activate_fd() and free_irq_by_irq_and_dev() static.  Remove\ninit_aio_irq() since it has no users.\n\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: WANG Cong \u003cwangcong@zeuux.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7c1fed03b9fa32d4323d5caa6a9c7dcdd7eba767",
      "tree": "a0227ccfd1bbe5644bcd9f3ebc86af94a8938d81",
      "parents": [
        "4d8f54d9e4323baae8c8ca753db91563f4b34ddb"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Wed Jul 23 11:46:50 2008 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 23 09:36:56 2008 -0700"
      },
      "message": "UML - Fix boot crash\n\nMy copying of linux/init.h didn\u0027t go far enough.  The definition of\n__used singled out gcc minor version 3, but didn\u0027t care what the major\nversion was.  This broke when unit-at-a-time was added and gcc started\nthrowing out initcalls.\n\nThis results in an early boot crash when ptrace tries to initialize a\nprocess with an empty, uninitialized register set.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "40fb16a360d9c6459afee91dc793c1e3374feb94",
      "tree": "bbe5f8a4185ac6784d82ee8c938bb246518f6791",
      "parents": [
        "9f31287b443f30a591539e448fb628e3827a8f61"
      ],
      "author": {
        "name": "Tom Spink",
        "email": "tspink@gmail.com",
        "time": "Thu Jun 05 22:46:12 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 06 11:29:10 2008 -0700"
      },
      "message": "uml: deal with inaccessible address space start\n\nThis patch makes os_get_task_size locate the bottom of the address space,\nas well as the top.  This is for systems which put a lower limit on mmap\naddresses.  It works by manually scanning pages from zero onwards until a\nvalid page is found.\n\nBecause the bottom of the address space may not be zero, it\u0027s not\nsufficient to assume the top of the address space is the size of the\naddress space.  The size is the difference between the top address and\nbottom address.\n\n[jdike@addtoit.com: changed the name to reflect that this function is\nsupposed to return the top of the process address space, not its size and\nchanged the return value to reflect that.  Also some minor formatting\nchanges]\nSigned-off-by: Tom Spink \u003ctspink@gmail.com\u003e\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": "fe2cc53ee013a4d4d0317d418e7019fe6533a5a8",
      "tree": "7a173e2703c638b8eab4a2a6762c256114acec60",
      "parents": [
        "3d88958e01e71bb14a367db75f12f7a59c068f02"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Mon May 12 14:02:00 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 13 08:02:22 2008 -0700"
      },
      "message": "uml: track and make up lost ticks\n\nAlarm delivery could be noticably late in the !CONFIG_NOHZ case because lost\nticks weren\u0027t being taken into account.  This is now treated more carefully,\nwith the time between ticks being calculated and the appropriate number of\nticks delivered to the timekeeping system.\n\nCc: Nix \u003cnix@esperi.org.uk\u003e\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": "5d33e4d7fd9a52d2673e5c730eab81856e100a74",
      "tree": "c4d5014fa21ebde900441b4a5b51092a09c47823",
      "parents": [
        "60a2988aea701a6424809a5432bf068667aac177"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Mon May 12 14:01:58 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 13 08:02:22 2008 -0700"
      },
      "message": "uml: random driver fixes\n\nThe random driver would essentially hang if the host\u0027s /dev/random returned\n-EAGAIN.  There was a test of need_resched followed by a schedule inside the\nloop, but that didn\u0027t help and it\u0027s the wrong way to work anyway.\n\nThe right way is to ask for an interrupt when there is input available from\nthe host and handle it then rather than polling.\n\nNow, when the host\u0027s /dev/random returns -EAGAIN, the driver asks for a wakeup\nwhen there\u0027s randomness available again and sleeps.  The interrupt routine\njust wakes up whatever processes are sleeping on host_read_wait.\n\nThere is an atomic_t, host_sleep_count, which counts the number of processes\nwaiting for randomness.  When this reaches zero, the interrupt is disabled.\n\nAn added complication is that async I/O notification was only recently added\nto /dev/random (by me), so essentially all hosts will lack it.  So, we use the\nsigio workaround here, which is to have a separate thread poll on the\ndescriptor and send an interrupt when there is input on it.  This mechanism is\nactivated when a process gets -EAGAIN (activating this multiple times is\nharmless, if a bit wasteful) and deactivated by the last process still\nwaiting.\n\nThe module name was changed from \"random\" to \"hw_random\" in order for udev to\nrecognize it.\n\nThe sigio workaround needed some changes.  sigio_broken was added for cases\nwhen we know that async notification doesn\u0027t work.  This is now called from\nmaybe_sigio_broken, which deals with pts devices.\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": "a7dfa9403bf3b03899d5ef5d10b0c5c3f74b0682",
      "tree": "a65021eecb15793d453c1ed1258759312f17e3cb",
      "parents": [
        "6d0742426c9adc7465ef5c62a99a1d3e9696ea19"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@gmail.com",
        "time": "Mon May 12 14:01:56 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 13 08:02:22 2008 -0700"
      },
      "message": "uml: use PAGE_SIZE in linker scripts\n\nThis patch includes page.h header into linker scripts that allow us to\nuse PAGE_SIZE macro instead of numeric constant.\n\nTo be able to include page.h into linker scripts page.h is needed for\nsome modification - i.e.  we need to use __ASSEMBLY__ and _AC macro\n\n[jdike@linux.intel.com - fixed conflict with as-layout.h]\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5563d722bfc73f27423fcb76240bfc1fb4284635",
      "tree": "205ff23c9676bd18f4e45798bad0f8360f7d788a",
      "parents": [
        "cfd28f6695d0fc047478480791a21bdd4967f98e"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Mon May 12 14:01:54 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 13 08:02:22 2008 -0700"
      },
      "message": "uml: use __SPIN_LOCK_UNLOCKED\n\nFrom: Robert P. J. Day \u003crpjday@crashcourse.ca\u003e\n\nUse newer, non-deprecated __SPIN_LOCK_UNLOCKED macro.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@crashcourse.ca\u003e\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "43f5b3085fdd27c4edf535d938b2cb0ccead4f75",
      "tree": "63eabda9f505ed0a07e0a12fd828674cde8f7861",
      "parents": [
        "484f1e2c1ea58c6a4352313f7ee4edd4b52deecd"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Mon May 12 14:01:52 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 13 08:02:22 2008 -0700"
      },
      "message": "uml: fix build when SLOB is enabled\n\nReintroduce uml_kmalloc for the benefit of UML libc code.  The\nprevious tactic of declaring __kmalloc so it could be called directly\nfrom the libc side of the house turned out to be getting too intimate\nwith slab, and it doesn\u0027t work with slob.\n\nSo, the uml_kmalloc wrapper is back.  It calls kmalloc or whatever\nthat translates into, and libc code calls it.\n\nkfree is left alone since that still works, leaving a somewhat\ninconsistent API.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "47906dd9e63ba1a8cb188e9e786c5928674fbbd3",
      "tree": "34db787b1b1de132e374cbce25994ac652ccf57e",
      "parents": [
        "46d7b522ebf486edbd096965d534cc6465e9e309"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Mon May 12 14:01:50 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 13 08:02:21 2008 -0700"
      },
      "message": "uml: tidy ptrace interface\n\nTidy the ptrace interface code.  Removed a bunch of unused macros.\nStarted converting register sets from arrays of longs to structures.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "96cee3044dca2e6510ca7cc276d1eac34a1cfd51",
      "tree": "b34789b8268f71f8c72e885428ee81791d6be756",
      "parents": [
        "53c258787427ea43ebfa76fefa6534cae507e521"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Mon May 12 14:01:48 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 13 08:02:21 2008 -0700"
      },
      "message": "uml: style fixes\n\nA few random style fixes.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3168cb98be7199325de633052680098660ccaf84",
      "tree": "32c86d233462f9c9afeb5dc4a57c833d9d86f1f4",
      "parents": [
        "cb6969e8cdef39e613b1755eff595f830b89bc82"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue May 06 20:42:33 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 08 10:46:55 2008 -0700"
      },
      "message": "uml: fix inconsistence due to tty_operation change\n\n\u0027put_char\u0027 of \u0027struct tty_operations\u0027 has changed from \u0027void\u0027 into \u0027int\u0027.\nThis can also shut up compiler warnings.\n\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: WANG Cong \u003cwangcong@zeuux.org\u003e\nAcked-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "02d324b15dfa31b3b1025fb5abda08a8ee23ce84",
      "tree": "ae7d99f10fe1b6f04da75367c80ff8a676a7eb69",
      "parents": [
        "3af7cb7bbcf0872b749a32bb48a7bc11f33bcd8c"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Mon Apr 28 02:13:56 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:28 2008 -0700"
      },
      "message": "uml: remove a useless function\n\narch/um/drivers/chan_kern.c::chan_out_fd() is not used by anyone.  Remove it.\n\nAcked-by: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: WANG Cong \u003cwangcong@zeuux.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3af7cb7bbcf0872b749a32bb48a7bc11f33bcd8c",
      "tree": "66e147f0c29e673bdcfb31a2c22939047a4c51f9",
      "parents": [
        "626c59f5edb284027bfe25cc15e7de2f532090b5"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Mon Apr 28 02:13:55 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:28 2008 -0700"
      },
      "message": "uml: make a function static\n\narch/um/drivers/chan_kern.c::open_chan() can become static.\n\nAcked-by: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: WANG Cong \u003cwangcong@zeuux.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2f56debd77a8f52f1ac1d3c3d89cc7ce5e083230",
      "tree": "353847d10aa0d5bc1de2707ecd8fa2391ad096f3",
      "parents": [
        "e4d06b3f904ddfab4531a1e23f1f5e1bd284b605"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Sat Feb 23 15:23:49 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Feb 23 17:12:15 2008 -0800"
      },
      "message": "uml: fix FP register corruption\n\nCommit ee3d9bd4de1ed93d2a7ee41c331ed30a1c7b8acd (\"uml: simplify SIGSEGV\nhandling\"), while greatly simplifying the kernel SIGSEGV handler that\nruns in the process address space, introduced a bug which corrupts FP\nstate in the process.\n\nPreviously, the SIGSEGV handler called the sigreturn system call by hand - it\ncouldn\u0027t return through the restorer provided to it because that could try to\ncall the libc restorer which likely wouldn\u0027t exist in the process address\nspace.  So, it blocked off some signals, including SIGUSR1, on entry to the\nSIGSEGV handler, queued a SIGUSR1 to itself, and invoked sigreturn.  The\nSIGUSR1 was delivered, and was visible to the UML kernel after sigreturn\nfinished.\n\nThe commit eliminated the signal masking and the call to sigreturn.  The\nhandler simply hits itself with a SIGTRAP to let the UML kernel know that it\nis finished.  UML then restores the process registers, which effectively\nlongjmps the process out of the signal handler, skipping sigreturn\u0027s restoring\nof register state and the signal mask.\n\nThe bug is that the host apparently sets used_fp to 0 when it saves the\nprocess FP state in the sigcontext on the process signal stack.  Thus, when\nthe process is longjmped out of the handler, its FP state is corrupt because\nit wasn\u0027t saved on the context switch to the UML kernel.\n\nThis manifested itself as sleep hanging.  For some reason, sleep uses floating\npoint in order to calculate the sleep interval.  When a page fault corrupts\nits FP state, it is faked into essentially sleeping forever.\n\nThis patch saves the FP state before entering the SIGSEGV handler and restores\nit afterwards.\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": "ac2a659968f5318a180213f0409c2ea21f072820",
      "tree": "2bebff50071f9f9fef802d2434de951e9c235332",
      "parents": [
        "5aaf5f7b871abf00fb2525e7ed2d5938a74ce23c"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Fri Feb 08 04:22:11 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:43 2008 -0800"
      },
      "message": "uml: fix mm_context memory leak\n\n[ Spotted by Miklos ]\n\nFix a memory leak in init_new_context.  The struct page ** buffer allocated\nfor install_special_mapping was never recorded, and thus leaked when the\nmm_struct was freed.  Fix it by saving the pointer in mm_context_t and freeing\nit in arch_exit_mmap.\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": "5134d8fea06ab51459fd095d091d1e6f73a44553",
      "tree": "504a84a9290a40f0c98b7c5731b7df82cb357ebe",
      "parents": [
        "536788fe2d28e11db6aeda74207d95d750fb761f"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Fri Feb 08 04:22:08 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:42 2008 -0800"
      },
      "message": "uml: style fixes in arch/um/os-Linux\n\nStyle changes under arch/um/os-Linux:\n\tinclude trimming\n\tCodingStyle fixes\n\tsome printks needed severity indicators\n\nmake_tempfile turns out not to be used outside of mem.c, so it is now static.\nIts declaration in tempfile.h is no longer needed, and tempfile.h itself is no\nlonger needed.\n\ncreate_tmp_file was also made static.\n\ncheckpatch moans about an EXPORT_SYMBOL in user_syms.c which is part of a\nmacro definition - this is copying a bit of kernel infrastructure into the\nlibc side of UML because the kernel headers can\u0027t be included there.\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": "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": "f87ea91d988637b3bbf6aa2d281c6010e7d5f48d",
      "tree": "e93fa224b495af740537a25faa1c6d45e4a9d376",
      "parents": [
        "966f1d8f344bcec3db7d774a4ba3ab0dedfad873"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Mon Feb 04 22:31:29 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:32 2008 -0800"
      },
      "message": "uml: redo the calculation of NR_syscalls\n\nRedo the calculation of NR_syscalls since that disappeared from i386 and\nuse a similar mechanism on x86_64.\n\nWe now figure out the size of the system call table in arch code and stick\nthat in syscall_table_size.  arch/um/kernel/skas/syscall.c defines\nNR_syscalls in terms of that since its the only thing that needs to know\nhow many system calls there are.\n\nThe old mechananism that was used on x86_64 is gone.\n\narch/um/include/sysdep-i386/syscalls.h got some formatting since I was\nlooking at it.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d449c5036778dfa00374c55c9c9f02bd45574c58",
      "tree": "e5d365dee19edcdd6af997f3215d34acb3843851",
      "parents": [
        "576c013df0ac9ad1f217452c14ddde246bb1a70d"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Mon Feb 04 22:31:22 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:31 2008 -0800"
      },
      "message": "uml: remove unused fields from mm_context\n\nThe 3-level page table fixes forgot to remove a couple now-unused fields from\nstruct mm_context.\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": "95906b24fbe4d22e5861f67fe1e8274c7ecfeda1",
      "tree": "f5ac2e3e2fc0369bf0c9ba0fb327eaba5a1ae047",
      "parents": [
        "7281ff952c7b3cbefb14847460e5fe73a2d240e4"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Mon Feb 04 22:31:20 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:31 2008 -0800"
      },
      "message": "uml: style fixes in arch/um/sys-x86_64\n\nStyle fixes in arch/um/sys-x86_64:\n\tupdated copyrights\n\tCodingStyle fixes\n\tadded severities to printks which needed them\n\nA bunch of functions in sys-*/ptrace_user.c turn out to be unused, so they and\ntheir declarations are gone.\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": "80e39311ff3d7d2267ea8d259aab8dc9d5a59d61",
      "tree": "141c6adb305a57cc8284580d88a839343f57ee90",
      "parents": [
        "3a24ebf0cb2ca44fdcdb5cae9ed2e778e5170f97"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Mon Feb 04 22:31:17 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:30 2008 -0800"
      },
      "message": "uml: SMP locking commentary\n\nAdd some more commentary about various pieces of global data not needing\nlocking.\n\nAlso got rid of unmap_physmem since that is no longer used.\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": "3a24ebf0cb2ca44fdcdb5cae9ed2e778e5170f97",
      "tree": "fe67635a8efdd58fade83eb573a0ed88c9c816b1",
      "parents": [
        "cfef8f34e7cf57f3d278ceda79c85112dec13dc6"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Mon Feb 04 22:31:16 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:30 2008 -0800"
      },
      "message": "uml: remove init_irq_signals\n\ninit_irq_signals doesn\u0027t need to be called from the context of a new process.\nIt initializes handlers, which are useless in process context.  With that call\ngone, init_irq_signals has only one caller, so it can be inlined into\ninit_new_thread_signals.\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": "75ada8ffe08cef9b506a796ba6f9ce2071dcf0d7",
      "tree": "ee7702a687fc3857f8c5190bca4f7c5f3c1497d2",
      "parents": [
        "e06173bde0ec9830a296720f8cd7cb2f17b76fa4"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Mon Feb 04 22:31:12 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:30 2008 -0800"
      },
      "message": "uml: move sig_handler_common_skas\n\nThis patch moves sig_handler_common_skas from\narch/um/os-Linux/skas/trap.c to its only caller in\narch/um/os-Linux/signal.c.  trap.c is now empty, so it can be removed.\n\nThis is code movement only - the significant cleanup needed here is\ndone in the next patch.\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": "a9b71b6c5473d2c1526deac0a1a207fe476f6088",
      "tree": "af124559352283f663671bb59fa6346a1cc913ad",
      "parents": [
        "00a905e6145ba200308a6a13e00248b85c600bd0"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Mon Feb 04 22:31:11 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:30 2008 -0800"
      },
      "message": "uml: get rid of syscall counters\n\nGet rid of some syscall counters which haven\u0027t been useful in ages.\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": "1aa351a308d2c3ddb92b6cc45083fc54271d0010",
      "tree": "8694809fe286285fa4afbacd5d69e9097d5baf62",
      "parents": [
        "fce8c41c9f68b9af36f3076bae8f1d469a6e7aab"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Mon Feb 04 22:31:10 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:30 2008 -0800"
      },
      "message": "uml: tidy helper code\n\nStyle fixes to arch/um/os/helper.c and tidying up the breakpoint fix a\nbit.\n\nhelper.c gets all the usual style fixes -\n\t updated copyright\n\t all printks get severities\n\nAlso -\n\t errval changes to err in helper_child\n\t fixed an obsolete comment\n\t run_helper was killing a child process which is guaranteed to\nbe dead or dying anyway\n\nRemoved the nohang and pname arguments from helper_wait and fixed the\ndeclaration and callers.  nohang was used only in the slirp driver and\nI don\u0027t think it was needed.  I think pname was a bit of overkill in\nputting out an error message when something goes wrong.\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": "0983a88b9f0ceffb2116ce92c7b273ce2aec7b93",
      "tree": "cf63f0646f64eecc80e5e3cd8d9c16252a751d8e",
      "parents": [
        "8efa3c9d545ab6adc5c5e001cbd7aee60909b3da"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Mon Feb 04 22:31:08 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:29 2008 -0800"
      },
      "message": "uml: install panic notifier earlier\n\nIt turns out that if there\u0027s a panic early enough, UML will just sit there in\nthe LED-blinking loop because the panic notifier hadn\u0027t been installed yet.\n\nThis patch installs it earlier.\n\nIt also fixes the problem which exposed the hang, namely that if you give UML\na zero-sized initrd, it will ask alloc_bootmem for zero bytes, and that will\ncause the panic.\n\nWhile I was in initrd.c, I gave it a style makeover.\n\nPrompted by checkpatch, I moved a couple extern declarations of uml_exitcode\nto kern_util.h.\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": "8efa3c9d545ab6adc5c5e001cbd7aee60909b3da",
      "tree": "1ec5750233c242168f17a9669ff4ba4aa113a2e6",
      "parents": [
        "0b4e273fb83bce5dd8e166a4defb16ebdd215abf"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Mon Feb 04 22:31:07 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:29 2008 -0800"
      },
      "message": "uml: eliminate setjmp_wrapper\n\nsetjmp_wrapper existed to provide setjmp to kernel code when UML used libc\u0027s\nsetjmp and longjmp.  Now that UML has its own implementation, this isn\u0027t\nneeded and kernel code can invoke setjmp directly.\n\ndo_buffer_op is massively cleaned up since it is no longer a callback from\nsetjmp_wrapper and given a va_list from which it must extract its arguments.\n\nThe actual setjmp is moved from buffer_op to do_op_one_page because the copy\noperation is inside an atomic section (kmap_atomic to kunmap_atomic) and it\nshouldn\u0027t be longjmp-ed out of.\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": "1adfd6095e1c654dce5a692db5aa5a2b2a8d6b0d",
      "tree": "229d0af90109b55bf59fe648947d66c4f044cf5a",
      "parents": [
        "bf8fde785b872282e7e86d9ea8a9c4e543985bb3"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Mon Feb 04 22:31:05 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:29 2008 -0800"
      },
      "message": "uml: style fixes in file.c\n\narch/um/os-Linux/file.c needed some style work -\n\tupdated the copyright\n\tcleaned up the includes\n\tCodingStyle fixes\n\tadded some missing CATCH_EINTRs\n\tos_set_owner was unused, so it is gone\n\tall printks now have severities\n\tfcntl(F_GETFL) was being called without checking the return\n\tremoved an obsolete comment\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": "bf8fde785b872282e7e86d9ea8a9c4e543985bb3",
      "tree": "cb813edfbb04c8474caab0f8a26a8512a503cf82",
      "parents": [
        "7b5cc6ee6cf9001775c348bac09814a45f1276b7"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Mon Feb 04 22:31:04 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:29 2008 -0800"
      },
      "message": "uml: miscellaneous code cleanups\n\nCode tidying -\n\tthe pid field of struct irq_fd isn\u0027t used, so it is removed\n     \tos_set_fd_async needed to read flags before changing them, it\ndoesn\u0027t need a pid passed in because it can call getpid itself, and a\nblock of unused code needed deleting\n\tos_get_exec_close was unused, so it is removed\n\tptrace_child called _exit for historical reasons which are no\nlonger valid, so just calls exit instead\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": "3963333fe6767f15141ab2dc3b933721c636c212",
      "tree": "62fbec62adf1796709dfa197e12dd725911e0fc9",
      "parents": [
        "42a2b54ce8c7b9d4f418995a7950e7e2e15e52ce"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Mon Feb 04 22:31:01 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:29 2008 -0800"
      },
      "message": "uml: cover stubs with a VMA\n\nGive the stubs a VMA.  This allows the removal of a truly nasty kludge to make\nsure that mm-\u003enr_ptes was correct in exit_mmap.  The underlying problem was\nalways that the stubs, which have ptes, and thus allocated a page table,\nweren\u0027t covered by a VMA.\n\nThis patch fixes that by using install_special_mapping in arch_dup_mmap and\nactivate_context to create the VMA.  The stubs have to be moved, since\nshift_arg_pages seems to assume that the stack is the only VMA present at that\npoint during exec, and uses vma_adjust to fiddle its VMA.  However, that\nextends the stub VMA by the amount removed from the stack VMA.\n\nTo avoid this problem, the stubs were moved to a different fixed location at\nthe start of the address space.\n\nThe init_stub_pte calls were moved from init_new_context to arch_dup_mmap\nbecause I was occasionally seeing arch_dup_mmap not being called, causing\nexit_mmap to die.  Rather than figure out what was really happening, I decided\nit was cleaner to just move the calls so that there\u0027s no doubt that both the\npte and VMA creation happen, no matter what.  arch_exit_mmap is used to clear\nthe stub ptes at exit time.\n\nThe STUB_* constants in as-layout.h no longer depend on UM_TASK_SIZE, that\nthat definition is removed, along with the comments complaining about gcc.\n\nBecause the stubs are no longer at the top of the address space, some care is\nneeded while flushing TLBs.  update_pte_range checks for addresses in the stub\nrange and skips them.  flush_thread now issues two unmaps, one for the range\nbefore STUB_START and one for the range after STUB_END.\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": "42a2b54ce8c7b9d4f418995a7950e7e2e15e52ce",
      "tree": "30bcb0ea0a4ee6d5091b1b9a85589cff8b1863fc",
      "parents": [
        "b7c000cbc4f1fa7b82efa95b34f00c2adbeaa3fe"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Mon Feb 04 22:31:00 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:29 2008 -0800"
      },
      "message": "uml: clean up TASK_SIZE usage\n\nClean up the calculation and use of the usable address space size on the host.\n\ntask_size is gone, replaced with TASK_SIZE, which is calculated from\nCONFIG_TOP_ADDR.  get_kmem_end and set_task_sizes_skas are also gone.\n\nhost_task_size, which refers to the entire address space usable by the UML\nkernel and which may be larger than the address space usable by a UML process,\nsince that has to end on a pgdir boundary, is replaced by CONFIG_TOP_ADDR.\n\nSTACK_TOP is now TASK_SIZE minus the two stub pages.\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": "3e6f2ac480ce398ade2fd6b5e02d00d1265f1e0f",
      "tree": "25f5589189170c20a765d4e6f0c56b42ad58ea20",
      "parents": [
        "d25f2e1235aab716c9fd6ba36c42503627a3a0e3"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Mon Feb 04 22:30:58 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:28 2008 -0800"
      },
      "message": "uml: kill processes instead of panicing kernel\n\nUML was panicing in the case of failures of libc calls which shouldn\u0027t happen.\n This is an overreaction since a failure from libc doesn\u0027t normally mean that\nkernel data structures are in an unknown state.  Instead, the current process\nshould just be killed if there is no way to recover.\n\nThe case that prompted this was a failure of PTRACE_SETREGS restoring the same\nstate that was read by PTRACE_GETREGS.  It appears that when a process tries\nto load a bogus value into a segment register, it segfaults (as expected) and\nthe value is actually loaded and is seen by PTRACE_GETREGS (not expected).\n\nThis case is fixed by forcing a fatal SIGSEGV on the process so that it\nimmediately dies.  fatal_sigsegv was added for this purpose.  It was declared\nas noreturn, so in order to pursuade gcc that it actually does not return, I\nadded a call to os_dump_core (and declared it noreturn) so that I get a core\nfile if somehow the process survives.\n\nAll other calls in arch/um/os-Linux/skas/process.c got the same treatment,\nwith failures causing the process to die instead of a kernel panic, with some\nexceptions.\n\nuserspace_tramp exits with status 1 if anything goes wrong there.  That will\ncause start_userspace to return an error.  copy_context_skas0 and\nmap_stub_pages also now return errors instead of panicing.  Callers of thes\nfunctions were changed to check for errors and do something appropriate.\nUsually that\u0027s to return an error to their callers.\ncheck_skas3_ptrace_faultinfo just exits since that\u0027s too early to do anything\nelse.\n\nsave_registers, restore_registers, and init_registers now return status\ninstead of panicing on failure, with their callers doing something\nappropriate.\n\nThere were also duplicate declarations of save_registers and restore_registers\nin os.h - these are gone.\n\nI noticed and fixed up some whitespace damage.\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": "d25f2e1235aab716c9fd6ba36c42503627a3a0e3",
      "tree": "5eaabe739be50f1417707fb6eef2da75dc567a30",
      "parents": [
        "ee3d9bd4de1ed93d2a7ee41c331ed30a1c7b8acd"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Mon Feb 04 22:30:57 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:28 2008 -0800"
      },
      "message": "uml: use ptrace directly in libc code\n\nSome register accessor cleanups -\n\tuserspace() was calling restore_registers and save_registers for no\nreason, since userspace() is on the libc side of the house, and these\nadd no value over calling ptrace directly\n\tinit_thread_registers and get_safe_registers were the same thing,\nso init_thread_registers is gone\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": "8192ab42bf60e1e9b7efa046990e9cc5e4a95cf4",
      "tree": "f61fee85b0eccbc055ec8c5a98932b20eca64bf1",
      "parents": [
        "9157f90f08f7db3188cd06971f41cb2ba5646e57"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Mon Feb 04 22:30:53 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:28 2008 -0800"
      },
      "message": "uml: header untangling\n\nUntangle UML headers somewhat and add some includes where they were\nneeded explicitly, but gotten accidentally via some other header.\n\narch/um/include/um_uaccess.h loses asm/fixmap.h because it uses no\nfixmap stuff and gains elf.h, because it needs FIXADDR_USER_*, and\narchsetjmp.h, because it needs jmp_buf.\n\npmd_alloc_one is uninlined because it needs mm_struct, and that\u0027s\ninconvenient to provide in asm-um/pgtable-3level.h.\n\nelf_core_copy_fpregs is also uninlined from elf-i386.h and\nelf-x86_64.h, which duplicated the code anyway, to\narch/um/kernel/process.c, so that the reference to current_thread\ndoesn\u0027t pull sched.h or anything related into asm/elf.h.\n\narch/um/sys-i386/ldt.c, arch/um/kernel/tlb.c and\narch/um/kernel/skas/uaccess.c got sched.h because they dereference\ntask_structs.  Its includes of linux and asm headers got turned from\n\"\" to \u003c\u003e.\n\narch/um/sys-i386/bug.c gets asm/errno.h because it needs errno\nconstants.\n\nasm/elf-i386 gets asm/user.h because it needs user_regs_struct.\n\nasm/fixmap.h gets page.h because it needs PAGE_SIZE and PAGE_MASK and\nsystem.h for BUG_ON.\n\nasm/pgtable doesn\u0027t need sched.h.\n\nasm/processor-generic.h defined mm_segment_t, but didn\u0027t use it.  So,\nthat definition is moved to uaccess.h, which defines a bunch of\nmm_segment_t-related stuff.  thread_info.h uses mm_segment_t, and\nincludes uaccess.h, which causes a recursion.  So, the definition is\nplaced above the include of thread_info. in uaccess.h.  thread_info.h\nalso gets page.h because it needs PAGE_SIZE.\n\nObCheckpatchViolationJustification - I\u0027m not adding a typedef; I\u0027m\nmoving mm_segment_t from one place to another.\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": "6b7e967484f4197d799e14b844b78118e93192c6",
      "tree": "61896d643c3a4b302d709a02aa0b7c140c2d8805",
      "parents": [
        "291248fd6e371bcbfb8a77689c5d741a1527488f"
      ],
      "author": {
        "name": "Karol Swietlicki",
        "email": "magotari@gmail.com",
        "time": "Mon Feb 04 22:30:50 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:26 2008 -0800"
      },
      "message": "uml: convert functions to void\n\nThis patch changes a few functions into returning void.  The return values\nwere not used anyway, so I think it should not be a problem.  Also removed a\nlittle leftover bit from TT mode.\n\nSigned-off-by: Karol Swietlicki \u003cmagotari@gmail.com\u003e\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": "edea138584d7586a3b93b6d5ab5ec021d18e11e9",
      "tree": "0c5a5dd14256d675c8c64c8abdda86053f72abc8",
      "parents": [
        "0ba7fe03b638a084a4e15e21d2e585ba321ad9c8"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Mon Feb 04 22:30:46 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:26 2008 -0800"
      },
      "message": "uml: tidy kern_util.h\n\nTidy kern_util.h.  It turns out that most of the function declarations\naren\u0027t used, so they can go away.  os.h no longer includes\nkern_util.h, so files which got it through os.h now need to include it\ndirectly.  A number of other files never needed it, so these includes\nare deleted.\n\nThe structure which was used to pass signal handlers from the kernel\nside to the userspace side is gone.  Instead, the handlers are\ndeclared here, and used directly from libc code.  This allows\narch/um/os-Linux/trap.c to be deleted, with its remnants being moved\nto arch/um/os-Linux/skas/trap.c.\n\narch/um/os-Linux/tty.c had its inclusions changed, and it needed some\nstyle attention, so it got tidied.\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": "e725a9b0f5db0fa511d7667da6c4bfb1a6d3c7e4",
      "tree": "7857f91e8e1b138bf817b5eb7ed8b20d87ff2703",
      "parents": [
        "4bdf8bc4a15d4540d71db9fa01955db5edcf89ec"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Mon Feb 04 22:30:44 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:26 2008 -0800"
      },
      "message": "uml: delete some unused headers\n\nRobert Day noticed a few unused headers in UML, so this gets rid of them.\n\nCc: \"Robert P. J. Day\" \u003crpjday@crashcourse.ca\u003e\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": "4bdf8bc4a15d4540d71db9fa01955db5edcf89ec",
      "tree": "9df4b5960104a8143b00af27ae6474145c36c0b1",
      "parents": [
        "ee56314b79039b669396ee04aac3e342cd2e5a1f"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Mon Feb 04 22:30:44 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:26 2008 -0800"
      },
      "message": "uml: borrow const.h techniques\n\nSuggested by Geert Uytterhoeven - use const.h to get constants that are usable\nin both C and assembly.  I can\u0027t include it directly since this code can\u0027t\ninclude kernel headers.  const.h is also for numeric constants that can be\ntyped by tacking a \"UL\" or similar on the end.  The constants here have to be\ntyped by casting them.\n\nSo, the relevant parts of const.h are copied here and modified in order to\nallow the constants to be uncasted in assembly and casted in C.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c0a9290ecf0dbb89958cb3a3f78964015a7de402",
      "tree": "1a987905fe5047cd74966149fc11689713cd7bea",
      "parents": [
        "9226b8384776798986640ce07764d17ba66aa54f"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Mon Feb 04 22:30:41 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:25 2008 -0800"
      },
      "message": "uml: const and other tidying\n\nThis patch also does some improvements for uml code.  Improvements include\ndropping unnecessary cast, killing some unnecessary code and still some\nconstifying for pointers etc..\n\nSigned-off-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\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": "9226b8384776798986640ce07764d17ba66aa54f",
      "tree": "cffd1f6e14124729da114192aee83fe88e9f21e5",
      "parents": [
        "06d9bd3ad6da2422f838fd11d5d5348fa579bdb2"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Mon Feb 04 22:30:40 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:25 2008 -0800"
      },
      "message": "uml: further bugs.c tidying\n\nbugs.c, for both i386 and x86_64, can undergo further cleaning -\n\tThe i386 arch_check_bugs only does one thing, so we might as\nwell inline the cmov checking.\n\tThe i386 includes can be trimmed down a bit.\n\tarch_init_thread wasn\u0027t used, so it is deleted.\n\tThe panics in arch_handle_signal are turned into printks\nbecause the process is about to get segfaulted anyway, so something is\ndying no matter what happens here.  Also, the return value was always\nthe same, so it contained no information, so it can be void instead.\nThe name is changed to arch_examine_signal because it doesn\u0027t handle\nanything.\n\tThe caller of arch_handle_signal, relay_signal, does things in\na different order.  The kernel-mode signal check is now first, which\nputs everything else together, making things a bit clearer conceptually.\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": "235a6f06eb5571db600a743cda7c73fd4f74127f",
      "tree": "218c05cfe030a2debdfe8dc66485ad2bec4c1bc3",
      "parents": [
        "0ba9d3f91d213f6d07c84230a0b3e2b16a0bb176"
      ],
      "author": {
        "name": "Karol Swietlicki",
        "email": "magotari@gmail.com",
        "time": "Mon Feb 04 22:30:38 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:25 2008 -0800"
      },
      "message": "uml: improve detection of host cmov\n\nThis patch introduces a new way of checking for the cmov instruction.  I use\nsignal handling instead of reading /proc/cpuinfo.\n\n[ jdike - Fiddled the asm to make it obvious that it didn\u0027t mess with\nany in-use registers and made test_for_host_cmov void ]\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Karol Swietlicki \u003cmagotari@gmail.com\u003e\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": "0ba9d3f91d213f6d07c84230a0b3e2b16a0bb176",
      "tree": "1455a88bd3c378ebfbcb50de8723187e217a5d98",
      "parents": [
        "20ede453af796bbaaf46a2bb0ee0bcc90ab505b3"
      ],
      "author": {
        "name": "Karol Swietlicki",
        "email": "magotari@gmail.com",
        "time": "Mon Feb 04 22:30:38 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:25 2008 -0800"
      },
      "message": "uml: fix URLs in Kconfig and help strings\n\nThis patch updates links which broke during the transition to the new UML\nwebsite.\n\nSigned-off-by: Karol Swietlicki \u003cmagotari@gmail.com\u003e\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": "c9a3072d13e4b8a6549ecc1db6390a55c7ee2ddf",
      "tree": "7b3eee2e8b71d844b27ed6a1c8d852915934e7f9",
      "parents": [
        "4d18de45fa921600e1b3770c3a7cb106ab48cd9d"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Mon Feb 04 22:30:35 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:24 2008 -0800"
      },
      "message": "uml: code tidying under arch/um/os-Linux\n\nThis patch contains varied fixes and improvements for some files under\narch/um/os-Linux/, such as a typo fix in a perror message, a missing\nargument fix for a printf, some constifying for pointers and so on.\n\n[ jdike - made sigprocmask failure return -errno instead of -1 ]\n\nSigned-off-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\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": "99c9f502cb3498b02b1e5df60c9ea0ee2e535373",
      "tree": "3f75e2cb7477b99f0568cd9f9aa40cd60af1dec7",
      "parents": [
        "747646a4d9d9ddfc7952f8c6d25ea1f323e689a0"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Mon Feb 04 22:30:34 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:24 2008 -0800"
      },
      "message": "uml: arch/um/include/init.h needs a definition of __used\n\ninit.h started breaking now for some reason.  It turns out that there wasn\u0027t a\ndefinition of __used.  Fixed this by copying the relevant stuff from\ncompiler.h in the userspace case, and including compiler.h in the kernel case.\n\n[xiyou.wangcong@gmail.com: added definition of __section]\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3ff6eecca4e5c49a5d1dd8b58ea0e20102ce08f0",
      "tree": "9af53a5ce0054520be6d572f988a76f3ab4ef0c0",
      "parents": [
        "bc395add945659e04cc7cf250755ba0edc1a9fdc"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Thu Jan 24 22:16:20 2008 +0100"
      },
      "committer": {
        "name": "Sam Ravnborg",
        "email": "sam@ravnborg.org",
        "time": "Mon Jan 28 23:21:18 2008 +0100"
      },
      "message": "remove __attribute_used__\n\nRemove the deprecated __attribute_used__.\n\n[Introduce __section in a few places to silence checkpatch /sam]\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\n"
    },
    {
      "commit": "4dbed85a35ed37d9608f4f32e5d69efa775d6223",
      "tree": "67ab558db8ccaf8d706a25e5ce87b78be241cffb",
      "parents": [
        "5867a78f41f84e5388448da62c183255dc22601f"
      ],
      "author": {
        "name": "Stanislaw Gruszka",
        "email": "stf_xl@wp.pl",
        "time": "Mon Dec 17 16:19:46 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Dec 17 19:28:15 2007 -0800"
      },
      "message": "uml: stop gdb from deleting breakpoints when running UML\n\nSometimes when UML is debugged gdb miss breakpoints.\n\nWhen process traced by gdb do fork, debugger remove breakpoints from\nchild address space. There is possibility to trace more than one fork,\nbut this not work with UML, I guess (only guess) there is a deadlock -\ngdb waits for UML and UML waits for gdb.\n\nWhen clone() is called with SIGCHLD and CLONE_VM flags, gdb see this\nas PTRACE_EVENT_FORK not as PTRACE_EVENT_CLONE and remove breakpoints\nfrom child and at the same time from traced process, because either\nhave the same address space.\n\nMaybe it is possible to do fix in gdb, but I\u0027m not sure if there is\neasy way to find out if traced and child processes share memory. So I\ndo fix for UML, it simply do not call clone() with both SIGCHLD and\nCLONE_VM flags together.  Additionally __WALL flag is used for\nwaitpid() to assure not miss clone and normal process events.\n\n[ jdike - checkpatch fixes ]\n\nSigned-off-by: Stanislaw Gruszka \u003cstf_xl@wp.pl\u003e\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": "9c8d6381dc107dbc2bfdbfdcaefe0d42e5b5b362",
      "tree": "f613029815e77425df72062ba201d62da01995ee",
      "parents": [
        "32f862c310cbd0b430a14911c8b7e2cd415c56ea"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Wed Nov 14 17:00:31 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Nov 14 18:45:43 2007 -0800"
      },
      "message": "uml: fix build for !CONFIG_PRINTK\n\nHandle the case of CONFIG_PRINTK being disabled.  This requires a do-nothing\nstub to be present in arch/um/include/user.h so that we don\u0027t get references\nto printk from libc code.\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": "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": "b53f35a8093e6aed7e8e880eaa0b89a3d2fdfb0a",
      "tree": "50e19688753650e27b1f7fc1d48eb8683666e6b7",
      "parents": [
        "cd1ae0e49bdd814cfaa2e5ab28cff21a30e20085"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:27:31 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:08 2007 -0700"
      },
      "message": "uml: network driver MTU cleanups\n\nA bunch of MTU-related cleanups in the network code.\n\nFirst, there is the addition of the notion of a maximally-sized packet, which\nis the MTU plus headers.  This is used to size the skb that will receive a\npacket.  This allows ether_adjust_skb to go away, as it was used to resize the\nskb after it was allocated.\n\nSince the skb passed into the low-level read routine is no longer resized, and\npossibly reallocated, there, they (and the write routines) don\u0027t need to get\nan sk_buff **.  They just need the sk_buff * now.  The callers of\nether_adjust_skb still need to do the skb_put, so that\u0027s now inlined.\n\nThe MAX_PACKET definitions in most of the drivers are gone.\n\nThe set_mtu methods were all the same and did nothing, so they can be\nremoved.\n\nThe ethertap driver had a typo which doubled the size of the packet rather\nthan adding two bytes to it.  It also wasn\u0027t defining its setup_size, causing\na zero-byte kmalloc and crash when the invalid pointer returned from kmalloc\nwas dereferenced.\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": "1a80521990a0e30e61a92994a009adc52161b070",
      "tree": "3cf900adf9383ff68fd66cd74cfaf0e0ce483845",
      "parents": [
        "61b63c556c0877ee6d3832ee641bc427ff4d94d6"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:27:28 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:08 2007 -0700"
      },
      "message": "uml: use *SEC_PER_*SEC constants\n\nThere are various uses of powers of 1000, plus the odd BILLION constant in the\ntime code.  However, there are perfectly good definitions of *SEC_PER_*SEC in\nlinux/time.h which can be used instaed.\n\nThese are replaced directly in kernel code.  Userspace code imports those\nconstants as UM_*SEC_PER_*SEC and uses these.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5f734614fc6218db352d26571ab4d1604620199c",
      "tree": "ff1323d87862c0522ef83568543f46b46eac941a",
      "parents": [
        "b160fb6309dc907cbd8849e549d83badb86dd35b"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:27:27 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:08 2007 -0700"
      },
      "message": "uml: time build fix\n\nPut back an implementation of timeval_to_ns in arch/um/os-Linux/time.c.\ntglx pointed out in his review of tickless support that there was a\nperfectly good implementation of it in linux/time.h.  The problem is that\nthis is userspace code which can\u0027t pull in kernel headers and there doesn\u0027t\nseem to be a libc version.\n\nSo, I\u0027m copying the version from linux/time.h rather than resurrecting my\nversion.  This causes some declaration changes as it now returns a signed\nvalue rather than an unsigned value.\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": "b160fb6309dc907cbd8849e549d83badb86dd35b",
      "tree": "b4a69cc1b96b4aa83aa971c35af5a23e5e07b56f",
      "parents": [
        "d2753a6d199791a6abc75d9f657e3457fe61705f"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:27:26 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:08 2007 -0700"
      },
      "message": "uml: eliminate interrupts in the idle loop\n\nNow, the idle loop now longer needs SIGALRM firing - it can just sleep for the\nrequisite amount of time and fake a timer interrupt when it finishes.\n\nAny use of ITIMER_REAL now goes away.  disable_timer only turns off\nITIMER_VIRTUAL.  switch_timers is no longer needed, so it, and all calls, goes\naway.\n\ndisable_timer now returns the amount of time remaining on the timer.\ndefault_idle uses this to tell idle_sleep how long to sleep.  idle_sleep will\ncall alarm_handler if nanosleep returns 0, which is the case if it didn\u0027t\nreturn early due to an interrupt.  Otherwise, it just returns.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d2753a6d199791a6abc75d9f657e3457fe61705f",
      "tree": "c4cda30f216d6c045ca2b83bee1fa6bc4dfc3de3",
      "parents": [
        "791a644a8d73a9b95515f074afbb3caa0a9964fa"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:27:25 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:08 2007 -0700"
      },
      "message": "uml: tickless support\n\nEnable tickless support.\n\nCONFIG_TICK_ONESHOT and CONFIG_NO_HZ are enabled.\n\nitimer_clockevent gets CLOCK_EVT_FEAT_ONESHOT and an implementation of\n.set_next_event.\n\nCONFIG_UML_REAL_TIME_CLOCK goes away because it only makes sense when there is\na clock ticking away all the time.  timer_handler now just calls do_IRQ once\nwithout trying to figure out how many ticks to emulate.\n\nThe idle loop now needs to turn ticking on and off.\n\nUserspace ticks keep happening as usual.  However, the userspace loop keep\ntrack of when the next wakeup should happen and suppresses process ticks until\nthat happens.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "78a26e25ce4837a03ac3b6c32cdae1958e547639",
      "tree": "d50a46a1af87f62781c2eb781cd7e20cea20e5ff",
      "parents": [
        "a2f018bf389422a55f1455ab8b9b5eedc5ea1803"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:27:23 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:08 2007 -0700"
      },
      "message": "uml: separate timer initialization\n\nMove timer signal initialization from init_irq_signals to a new function,\ntimer_init.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a2f018bf389422a55f1455ab8b9b5eedc5ea1803",
      "tree": "50f93a3c8892a89fbc981a7ac8d3566131f9fb84",
      "parents": [
        "181bde801afae4304843ce95c868d4419ae87310"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:27:22 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:08 2007 -0700"
      },
      "message": "uml: simplify interval setting\n\nset_interval took a timer type as an argument, but it always specified a\nvirtual timer.  So, it is not needed, and it is gone, and set_interval is\nsimplified appropriately.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "181bde801afae4304843ce95c868d4419ae87310",
      "tree": "f33e6c88e36cda7699fc2dfe2b6ac9ccb3c6963f",
      "parents": [
        "532d0fa4d104ca3e37dd38bc5073376fcc3c2712"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:27:22 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:08 2007 -0700"
      },
      "message": "uml: fix timer switching\n\nFix up the switching between virtual and real timers.  The idle loop sleeps,\nso the timer at that point must be real time.  At all other times, the timer\nmust be virtual.  Even when userspace is running, and the kernel is asleep,\nthe virtual timer is correct because the process timer will be running and the\nprocess timer will be firing.\n\nThe timer switch used to be in the context switch and timer handler code.\nThis is moved to the idle loop and the signal handler, making it much more\nclear why it is happening.\n\nswitch_timers now returns the old timer type so that it may be restored.  The\nsignal handler uses this in order to restore the previous timer type when it\nreturns.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "532d0fa4d104ca3e37dd38bc5073376fcc3c2712",
      "tree": "a2ece8d09bc22a616abd743c170b2a727c1d077e",
      "parents": [
        "088bec4141ceb663eecdd961292d110db891db73"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:27:21 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:08 2007 -0700"
      },
      "message": "uml: eliminate hz()\n\nEliminate hz() since its only purpose was to provide a kernel-space constant\nto userspace code.  This can be done instead by providing the constant\ndirectly through kernel_constants.h.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "75c7e214ba7af2ced1ba8a73d673294e30826410",
      "tree": "c9d1ffcf2526babf59727d368d1961f517fb602e",
      "parents": [
        "f0c4cad99c12f08cb2a6cd0255911b2a93c57707"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:27:19 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:07 2007 -0700"
      },
      "message": "uml: eliminate floating point state from register file\n\nThe floating point fields in the pt_regs register file aren\u0027t used, so they\nare deleted.\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": "f0c4cad99c12f08cb2a6cd0255911b2a93c57707",
      "tree": "1687ef2577bc7429955e8642fe8340ff2292817c",
      "parents": [
        "54fa0ba40698af6d6735ade024293bb51cc4d4b3"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:27:18 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:07 2007 -0700"
      },
      "message": "uml: style fixes in FP code\n\nTidy the code affected by the floating point fixes.\n\nA bunch of unused stuff is gone, including two sigcontext.c files,\nwhich turned out to be entirely unneeded.\n\nThere are the usual fixes -\n\twhitespace and style cleanups\n\tcopyright updates\n\temacs formatting comments gone\n\tinclude cleanups\n\tadding severities to printks\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": "a5f6096c805e6d2fa03ee932f8c70af34cee41a0",
      "tree": "c74d984c0e2fc2958425df65605dd3451adc6520",
      "parents": [
        "189872f968def833727b6bfef83ebd7440c538e6"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:27:15 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:07 2007 -0700"
      },
      "message": "uml: floating point signal delivery fixes\n\nHandle floating point state in across signals correctly.  UML/i386 needs to\nknow whether the host does PTRACE_[GS]ETFPXREGS, so an arch_init_registers\nhook is added, which on x86_64 does nothing.\n\nUML doesn\u0027t save and restore floating point registers on kernel entry and\nexit, so they need to be copied between the host process and the sigcontext.\nsave_fpx_registers and restore_fpx_registers are added for this purpose.\nsave_fp_registers and restore_fp_registers already exist.\n\nThere was a bunch of floating point state conversion code in\narch/um/sys-i386/ptrace.c which isn\u0027t needed there, but is needed in signal.c,\nso it is moved over.\n\nThe i386 code now distinguishes between fp and fpx state and handles them\ncorrectly.  The x86_64 code just needs to copy state as-is between the host\nprocess and the stack.  There are also some fixes there to pass the correct\naddress of the floating point state around.\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": "1466abf2d03207b42980ddf8cde1fba17b7cd301",
      "tree": "402f8a77f5b08c3a9130e341df402fb6c02b5c02",
      "parents": [
        "512b6fb1c14d4c34f23a3419b0789ad01914a899"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:27:12 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:06 2007 -0700"
      },
      "message": "uml: clean up tlb flush path\n\nTidy the tlb flushing code.\n\nWith tt mode gone, there is no reason to have the capability to have\ncalled directly from do_mmap, do_mprotect, and do_munmap, rather than\ncalling a function pointer that it is given.\n\nThere was a large amount of data that was passed from function to\nfunction, being used at the lowest level, without being changed.  This\nstuff is now encapsulated in a structure which is initialized at the\ntop layer and passed down.  This simplifies the code, reduces the\namount of code needed to pass the parameters around, and saves on\nstack space.\n\nA somewhat more subtle change is the meaning of the current operation\nindex.  It used to start at -1, being pre-incremented when adding an\noperation.  It now starts at 0, being post-incremented, with\nassociated adjustments of +/- 1 on comparisons.\n\nIn addition, tlb.h contained a couple of declarations which had no\nusers outside of tlb.c, so they could be moved or deleted.\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": "512b6fb1c14d4c34f23a3419b0789ad01914a899",
      "tree": "29e51c256dde41db297cff28767bf4dc4a1dc73f",
      "parents": [
        "b21d4b08b6686fa13bf9d4cae1ae08cb23ea3d53"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:27:11 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:06 2007 -0700"
      },
      "message": "uml: userspace files should call libc directly\n\nA number of files that were changed in the recent removal of tt mode\nare userspace files which call the os_* wrappers instead of calling\nlibc directly.  A few other files were affected by this, through\n\nThis patch makes these call glibc directly.\n\nThere are also style fixes in the affected areas.\n\nos_print_error has no remaining callers, so it is deleted.\n\nThere is a interface change to os_set_exec_close, eliminating a\nparameter which was always the same.  The callers are fixed as well.\n\nos_process_pc got its error path cleaned up.\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": "8ca842c4b5cbc70b9180617e9f26b6ac9f40dbb9",
      "tree": "fe3e4deeae82c7063a72ecb3fdcae47422d6de0e",
      "parents": [
        "28078e8f9790be0854a54f06de822689ab571944"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:27:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:06 2007 -0700"
      },
      "message": "uml: remove os_* usage from userspace files\n\nThis patch fixes some userspace files which were calling libc through the os_*\nwrappers.\n\nIt turns out that there was only one user of os_new_tty_pgrp, so it can be\ndeleted.\n\nThere are also some style and whitespace fixes in here.\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": "18badddaa84e13e126f4ca5df47ac55b97a2635a",
      "tree": "c57bee27c8144481a59546fcbd8487d9486c6a54",
      "parents": [
        "6c738ffa9fea6869f5d51882dfefbba746e432b1"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:27:07 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:06 2007 -0700"
      },
      "message": "uml: rename pt_regs general-purpose register file\n\nBefore the removal of tt mode, access to a register on the skas-mode side of a\npt_regs struct looked like pt_regs.regs.skas.regs.regs[FOO].  This was bad\nenough, but it became pt_regs.regs.regs.regs[FOO] with the removal of the\nunion from the middle.  To get rid of the run of three \"regs\", the last field\nis renamed to \"gp\".\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": "6c738ffa9fea6869f5d51882dfefbba746e432b1",
      "tree": "e9b30ccd149f73676422ea5519d6572a3f8e2819",
      "parents": [
        "fab95c55e3b94e219044dc7a558632d08c198771"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:27:06 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:06 2007 -0700"
      },
      "message": "uml: fold mmu_context_skas into mm_context\n\nThis patch folds mmu_context_skas into struct mm_context, changing all users\nof these structures as needed.\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": "fab95c55e3b94e219044dc7a558632d08c198771",
      "tree": "2ce8bf6eb52e66ee69a0b03cf9ad60310279524e",
      "parents": [
        "0a7675aa204ac2470bb06f562557978b03914a71"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:27:05 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:05 2007 -0700"
      },
      "message": "uml: get rid of do_longjmp\n\ndo_longjmp used to be needed when UML didn\u0027t have its own implementation of\nsetjmp and longjmp.  They came from libc, and couldn\u0027t be called directly from\nkernel code, as the libc jmp_buf couldn\u0027t be imported there.  do_longjmp was a\nuserspace function which served to provide longjmp access to kernel code.\n\nThis is gone, and a number of void * pointers can now be jmp_buf *.\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": "0a7675aa204ac2470bb06f562557978b03914a71",
      "tree": "fa1ce4cf6d3546b57719f3fdd2b1cf891f5be52f",
      "parents": [
        "ba180fd437156f7fd8cfb2fdd021d949eeef08d6"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:27:05 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:05 2007 -0700"
      },
      "message": "uml: remove __u64 usage from physical memory subsystem\n\nEliminate some uses of __u64 in the physical memory support.  It\u0027s hard to get\na definition of __u64 in both kernel and userspace code on x86_64, so this\nchanges them to unsigned long long.\n\nThere are also a copyright update and formatting comment removal from the\naffected header.\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": "ba180fd437156f7fd8cfb2fdd021d949eeef08d6",
      "tree": "b9f38b9cdd7a5b1aacf00341d1948314663c5871",
      "parents": [
        "77bf4400319db9d2a8af6b00c2be6faa0f3d07cb"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:27:00 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:05 2007 -0700"
      },
      "message": "uml: style fixes pass 3\n\nFormatting changes in the files which have been changed in the course\nof folding foo_skas functions into their callers.  These include:\n\tcopyright updates\n\theader file trimming\n\tstyle fixes\n\tadding severity to printks\n\nThese changes should be entirely non-functional.\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": "77bf4400319db9d2a8af6b00c2be6faa0f3d07cb",
      "tree": "ddc8fd48349b8d4dd2c0b26bce7f52f79b4e4077",
      "parents": [
        "ae2587e41254e48e670346aefa332d7469d86352"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:26:58 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:05 2007 -0700"
      },
      "message": "uml: remove code made redundant by CHOOSE_MODE removal\n\nThis patch makes a number of simplifications enabled by the removal of\nCHOOSE_MODE.  There were lots of functions that looked like\n\n\tint foo(args){\n\t\tfoo_skas(args);\n\t}\n\nThe bodies of foo_skas are now folded into foo, and their declarations (and\nsometimes entire header files) are deleted.\n\nIn addition, the union uml_pt_regs, which was a union between the tt and skas\nregister formats, is now a struct, with the tt-mode arm of the union being\nremoved.\n\nIt turns out that usr2_handler was unused, so it is gone.\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": "ae2587e41254e48e670346aefa332d7469d86352",
      "tree": "c5e8ba8f3bff3a269f8c88a2a9e4c657226e378e",
      "parents": [
        "6aa802ce6acc9b1f0b34114b3f7c21c84872cc3a"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:26:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:05 2007 -0700"
      },
      "message": "uml: style fixes pass 2\n\nFormatting changes in the files which have been changed in the course\nof removing CHOOSE_MODE.  These include:\n\tcopyright updates\n\theader file trimming\n\tstyle fixes\n\tadding severity to printks\n\nThese changes should be entirely non-functional.\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": "6aa802ce6acc9b1f0b34114b3f7c21c84872cc3a",
      "tree": "74523303349693ef482dec4a1d803566b69c6abd",
      "parents": [
        "4c9e13851315a25a705e7a686116e491041ca228"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:26:56 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 CHOOSE_MODE\n\nThe next stage after removing code which depends on CONFIG_MODE_TT is removing\nthe CHOOSE_MODE abstraction, which provided both compile-time and run-time\nbranching to either tt-mode or skas-mode code.\n\nThis patch removes choose-mode.h and all inclusions of it, and replaces all\nCHOOSE_MODE invocations with the skas branch.  This leaves a number of trivial\nfunctions which will be dealt with in a later patch.\n\nThere are some changes in the uaccess and tls support which go somewhat beyond\nthis and eliminate some of the now-redundant functions.\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": "4c9e13851315a25a705e7a686116e491041ca228",
      "tree": "a323e1dcfe89f6c9d7e873a1bf2ad7aab9cdb9e6",
      "parents": [
        "c28b59d4779a43e9b7e786c7004cbee8fab1527d"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:26:54 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:05 2007 -0700"
      },
      "message": "uml: style fixes pass 1\n\nFormatting changes in the files which have been changed in the\ntt-removal patchset so far.  These include:\n\tcopyright updates\n\theader file trimming\n\tstyle fixes\n\tadding severity to printks\n\tindenting Kconfig help according to the predominant kernel style\n\nThese changes should be entirely non-functional.\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": "c28b59d4779a43e9b7e786c7004cbee8fab1527d",
      "tree": "d549ea48ac27e4f8896bde1b4d7bdfe4d3b1ee2d",
      "parents": [
        "42fda66387daa53538ae13a2c858396aaf037158"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:26:54 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:05 2007 -0700"
      },
      "message": "uml: remove sysdep/thread.h\n\nThis patch removes thread.h, which turns out not to be needed any more.\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": "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": "6d536e4b59f77c34a0e5a414dfa934db373c85c2",
      "tree": "5df1165c69ace49c6158073e1e3edf22597829f7",
      "parents": [
        "42daba316557e597a90a730f61c762602b7f0e0c"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:26:47 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:05 2007 -0700"
      },
      "message": "uml: physmem code tidying\n\nTidying of the UML physical memory system.  These are mostly style fixes,\nhowever the includes were cleaned as well.  This uncovered a need for\nmem_user.h to be included in mode_kern_skas.h.\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": "42daba316557e597a90a730f61c762602b7f0e0c",
      "tree": "9b7e9da84cef7d2547c577f1cf94b408cf308619",
      "parents": [
        "5c8aaceab88ac787c0a4038b29143c954c2a45e0"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:26:47 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:05 2007 -0700"
      },
      "message": "uml: stop saving process FP state\n\nThrow out a lot of code dealing with saving and restoring floating-point\nstate.  In skas mode, where processes run in a restoring floating-point state\non kernel entry and exit is pointless.\n\nThis eliminates most of arch/um/os-Linux/sys-{i386,x86_64}/registers.c.  Most\nof what remained is now arch-indpendent, and can be moved up to\narch/um/os-Linux/registers.c.  Both arches need the jmp_buf accessor\nget_thread_reg, and i386 needs {save,restore}_fp_regs because it cheats during\nsigreturn by getting the fp state using ptrace rather than copying it out of\nthe process sigcontext.\n\nAfter this, it turns out that arch/um/include/skas/mode-skas.h is almost\ncompletely unneeded.  The declarations in it are variables which either don\u0027t\nexist or which don\u0027t have global scope.  The one exception is\nkill_off_processes_skas.  If that\u0027s removed, this header can be deleted.\n\nThis uncovered a bug in user.h, which wasn\u0027t correctly making sure that a\nsize_t definition was available to both userspace and kernelspace files.\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": "5c8aaceab88ac787c0a4038b29143c954c2a45e0",
      "tree": "9277518e77cac9e1f97d826fa8962d1c861a9e40",
      "parents": [
        "8d82076080d909f18dea859a6767df7e3ff69241"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:26:46 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:04 2007 -0700"
      },
      "message": "uml: stop specially protecting kernel stacks\n\nMap all of physical memory as executable to avoid having to change stack\nprotections during fork and exit.\n\nunprotect_stack is now called only from MODE_TT code, so it is marked as such.\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": "71f926f2ea61994470a53c9e11d3ef993197cada",
      "tree": "731d5ce6d0be171f693a1c0960f752a5b8e708fc",
      "parents": [
        "2f8a2dc2cf8012179e35c1f01a1eef45de18f1a7"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:26:44 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:04 2007 -0700"
      },
      "message": "uml: stop using libc asm/page.h\n\nRemove includes of asm/page.h from libc code.  This header seems to be\ndisappearing, and UML doesn\u0027t make much use of it anyway.\n\nThe one use, PAGE_SHIFT in stub.h, is handled by copying the constant from the\nkernel side of the house in common_offsets.h.\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": "8e2d10e1e76d894ec73d66dd63b641ccf5f5fb67",
      "tree": "5ae54e7ecfd3b8fca96aa59890b0c0007c4fd242",
      "parents": [
        "89fe64766ab76b02c65a806b8b5a864652493bd6"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Oct 16 01:26:40 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:04 2007 -0700"
      },
      "message": "uml: tidy recently-moved code\n\nNow that the generic console operations are in a userspace file, we\ncan do the following:\n\tdirectly call into libc instead of through the os_* wrappers\n\teliminate os_window_size since it has only one user\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "508a92741a105e2e3d466cd727fb73154ebf08de",
      "tree": "4dabe8327cc47c2d26239d227d48fc83944e5ff1",
      "parents": [
        "480eccf9ae1073b87bb4fe118971fbf134a5bc61"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Tue Sep 18 22:46:49 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Sep 19 11:24:18 2007 -0700"
      },
      "message": "uml: fix irqstack crash\n\nThis patch fixes a crash caused by an interrupt coming in when an IRQ stack\nis being torn down.  When this happens, handle_signal will loop, setting up\nthe IRQ stack again because the tearing down had finished, and handling\nwhatever signals had come in.\n\nHowever, to_irq_stack returns a mask of pending signals to be handled, plus\nbit zero is set if the IRQ stack was already active, and thus shouldn\u0027t be\ntorn down.  This causes a problem because when handle_signal goes around\nthe loop, sig will be zero, and to_irq_stack will duly set bit zero in the\nreturned mask, faking handle_signal into believing that it shouldn\u0027t tear\ndown the IRQ stack and return thread_info pointers back to their original\nvalues.\n\nThis will eventually cause a crash, as the IRQ stack thread_info will\ncontinue pointing to the original task_struct and an interrupt will look\ninto it after it has been freed.\n\nThe fix is to stop passing a signal number into to_irq_stack.  Rather, the\npending signals mask is initialized beforehand with the bit for sig already\nset.  References to sig in to_irq_stack can be replaced with references to\nthe mask.\n\n[akpm@linux-foundation.org: use UL]\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": "e4c4bf9968cb4f0fceb1b8fb54790ccae73caf4e",
      "tree": "fe9892123214821c37a7b615fe52db7f6d46e148",
      "parents": [
        "c43990162fc7f9d2f15a12797fdc6f9c0905f704"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Sun Jul 15 23:38:56 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:38 2007 -0700"
      },
      "message": "uml: Eliminate kernel allocator wrappers\n\nUML had two wrapper procedures for kmalloc, um_kmalloc and um_kmalloc_atomic\nbecause the flag constants weren\u0027t available in userspace code.\nkern_constants.h had made kernel constants available for a long time, so there\nis no need for these wrappers any more.  Rather, userspace code calls kmalloc\ndirectly with the userspace versions of the gfp flags.\n\nkmalloc isn\u0027t a real procedure, so I had to essentially copy the inline\nwrapper around __kmalloc.\n\nvmalloc also had its own wrapper for no good reason.  This is now gone.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c43990162fc7f9d2f15a12797fdc6f9c0905f704",
      "tree": "64f8b776c4807da48971f3c24ca157c5e6ab921f",
      "parents": [
        "42a359e31a0e438b5b978a8f0fecdbd3c86bb033"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Sun Jul 15 23:38:56 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:38 2007 -0700"
      },
      "message": "uml: simplify helper stack handling\n\nrun_helper and run_helper_thread had arguments which were the same in all\ncallers.  run_helper\u0027s stack_out was always NULL and run_helper_thread\u0027s\nstack_order was always 0.  These are now gone, and the constants folded\ninto the code.\n\nAlso fixed leaks of the helper stack in the AIO and SIGIO code.\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": "42a359e31a0e438b5b978a8f0fecdbd3c86bb033",
      "tree": "fc6a6a11e1187e163ba694bf4ab5cf48aa528f34",
      "parents": [
        "d14ad81f800a57d3f21f8e98556c728968883e9a"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Sun Jul 15 23:38:55 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:38 2007 -0700"
      },
      "message": "uml: SIGIO support cleanup\n\nCleanup of the SIGWINCH support.\n\nSome code and comment reformatting.\n\nThe stack used for SIGWINCH threads was leaked.  This is now fixed by storing\nit with the pid and other information, and freeing it when the thread is\nkilled.\n\nIf something goes wrong with a WIGWINCH thread, and this is discovered in the\ninterrupt handler, the winch record would leak.  It is now freed, except that\nthe IRQ isn\u0027t freed.  This is hard to do from interrupt context.  This has the\nside-effect that the IRQ system maintains a reference to the freed structure,\nbut that shouldn\u0027t cause a problem since the descriptor is disabled.\n\nregister_winch_irq is now much better about cleaning up after an\ninitialization failure.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d14ad81f800a57d3f21f8e98556c728968883e9a",
      "tree": "cbe17039283dd51654aaa5a9ac4fae9233285d96",
      "parents": [
        "75886f21e3a53a298b097103fd52e83184a89c22"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Sun Jul 15 23:38:54 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:38 2007 -0700"
      },
      "message": "uml: handle errors on opening host side of consoles\n\nIf the host side of a console can\u0027t be opened, this will now produce visible\nerror messages.\n\nenable_chan now returns a status and this is passed up to con_open and\nssl_open, which will complain if anything went wrong.\n\nThe default host device for the serial line driver is now a pts device rather\nthan a pty device since lots of hosts have LEGACY_PTYS disabled.  This had\nalways been failing on such hosts, but silently.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "63920f4717924206c3fa23d42645d4f8965de4cd",
      "tree": "b288c2f7fde1b647b166d2bfc07ca950310fc501",
      "parents": [
        "89df6bfc04059716de2eb2fe529f05b3e124fafd"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Sun Jul 15 23:38:52 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:38 2007 -0700"
      },
      "message": "uml: xterm driver tidying\n\nMajor tidying of the xterm console driver:\n\tgot rid of the tt-mode gdb support\n\ttidied up the includes\n\tfixed lots of style violations\n\treplaced os_* calls with glibc calls in xterm.c\n\tall printk calls now have a severity indicator\n\tthe error paths of xterm_open are closer to being right\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": "c539ab73070b381f0452dae791f891ec2515098e",
      "tree": "68e4e706fe31b88b26bd4b29eadb32440148eb3e",
      "parents": [
        "f5a9c77df45b113d21b64cbc2bf6c72a0da48998"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Sat Jun 16 10:16:09 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Jun 16 13:16:16 2007 -0700"
      },
      "message": "uml: remove PAGE_SIZE from libc code\n\nDistros seem to be removing PAGE_SIZE from asm/page.h.  So, the libc side of\nUML should stop using it.\n\nI replace it with UM_KERN_PAGE_SIZE, which is defined to be the same as\nPAGE_SIZE on the kernel side of the house.  I could also use getpagesize(),\nbut it\u0027s more important that UML have the same value of PAGE_SIZE everywhere.\nIt\u0027s conceivable that it could be built with a larger PAGE_SIZE, and use of\ngetpagesize() would break that badly.\n\nPAGE_MASK got the same treatment, as it is closely tied to PAGE_SIZE.\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": "ecec5ba681a0bf1165899f8b1889f06fcd8e901a",
      "tree": "bacc286b05900e6a3f8dfc96386efc5dc85d660d",
      "parents": [
        "327b9eebbf2b7ce632e93a9c1386d944af0dadf4"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Tue May 15 20:36:00 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 15 18:56:37 2007 -0700"
      },
      "message": "fix uml-x86_64\n\n__NR_syscall_max is done in x86_64 asm-offsets; do an equivalent in\numl kern_constants.h\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c14b84949e127560084c7c56b365931c71c60768",
      "tree": "88bce4993779078856612b6a32f65f14ab379d85",
      "parents": [
        "2ea5bc5e5bb51492f189bba44045e0de7decf4a0"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Thu May 10 22:22:34 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 11 08:29:34 2007 -0700"
      },
      "message": "uml: iRQ stacks\n\nAdd a separate IRQ stack.  This differs from i386 in having the entire\ninterrupt run on a separate stack rather than starting on the normal kernel\nstack and switching over once some preparation has been done.  The underlying\nmechanism, is of course, sigaltstack.\n\nAnother difference is that interrupts that happen in userspace are handled on\nthe normal kernel stack.  These cause a wait wakeup instead of a signal\ndelivery so there is no point in trying to switch stacks for these.  There\u0027s\nno other stuff on the stack, so there is no extra stack consumption.\n\nThis quirk makes it possible to have the entire interrupt run on a separate\nstack - process preemption (and calls to schedule()) happens on a normal\nkernel stack.  If we enable CONFIG_PREEMPT, this will need to be rethought.\n\nThe IRQ stack for CPU 0 is declared in the same way as the initial kernel\nstack.  IRQ stacks for other CPUs will be allocated dynamically.\n\nAn extra field was added to the thread_info structure.  When the active\nthread_info is copied to the IRQ stack, the real_thread field points back to\nthe original stack.  This makes it easy to tell where to copy the thread_info\nstruct back to when the interrupt is finished.  It also serves as a marker of\na nested interrupt.  It is NULL for the first interrupt on the stack, and\nnon-NULL for any nested interrupts.\n\nCare is taken to behave correctly if a second interrupt comes in when the\nthread_info structure is being set up or taken down.  I could just disable\ninterrupts here, but I don\u0027t feel like giving up any of the performance gained\nby not flipping signals on and off.\n\nIf an interrupt comes in during these critical periods, the handler can\u0027t run\nbecause it has no idea what shape the stack is in.  So, it sets a bit for its\nsignal in a global mask and returns.  The outer handler will deal with this\nsignal itself.\n\nAtomicity is had with xchg.  A nested interrupt that needs to bail out will\nxchg its signal mask into pending_mask and repeat in case yet another\ninterrupt hit at the same time, until the mask stabilizes.\n\nThe outermost interrupt will set up the thread_info and xchg a zero into\npending_mask when it is done.  At this point, nested interrupts will look at\n-\u003ereal_thread and see that no setup needs to be done.  They can just continue\nnormally.\n\nSimilar care needs to be taken when exiting the outer handler.  If another\ninterrupt comes in while it is copying the thread_info, it will drop a bit\ninto pending_mask.  The outer handler will check this and if it is non-zero,\nwill loop, set up the stack again, and handle the interrupt.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "57598fd7b31f6437874308a79ca23e51c74da59b",
      "tree": "b81df1f04864611d23dbaae11343f3827f6e4aa7",
      "parents": [
        "22258d406f91d7f7ee8e58f18b3722d0647f6a9a"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Thu May 10 22:22:30 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 11 08:29:33 2007 -0700"
      },
      "message": "uml: remove task_protections\n\nReplaced task_protections with stack_protections since they do the same\nthing, and task_protections was misnamed anyway.\n\nThis needs THREAD_SIZE, so that\u0027s imported via common-offsets.h\n\nAlso tidied up the code in the vicinity.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5886269962f94fa9185c32db3ec936c612503235",
      "tree": "2f24dabcf5791319ebb1fbdfb5dbc58284714275",
      "parents": [
        "01afd80626e98c2347bc25be92ee4a3faf314514"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "ukleinek@informatik.uni-freiburg.de",
        "time": "Wed May 09 07:51:49 2007 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed May 09 08:58:16 2007 +0200"
      },
      "message": "fix file specification in comments\n\nMany files include the filename at the beginning, serveral used a wrong one.\n\nSigned-off-by: Uwe Kleine-König \u003cukleinek@informatik.uni-freiburg.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "c2f239d93e8af991392871c57465cb2ac556b482",
      "tree": "50a4ea12771fa995f51977160e62e0696fcad9e3",
      "parents": [
        "b7ec15bd004f4524bf091f851348da2ccb519e4f"
      ],
      "author": {
        "name": "Paolo \u0027Blaisorblade\u0027 Giarrusso",
        "email": "blaisorblade@yahoo.it",
        "time": "Sun May 06 14:51:52 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:13:04 2007 -0700"
      },
      "message": "uml: fix prototypes\n\nDeclare strlcpy and strlcat more correctly.\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@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "16dd07bc6404c8da0bdfeb7a5cde4e4a63991c00",
      "tree": "de8401aeebfe1bbdaecaff3b81d92196c50c85d7",
      "parents": [
        "3ec704e6660aa58505110a50102e57cdb9daa044"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Sun May 06 14:51:48 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:13:04 2007 -0700"
      },
      "message": "uml: more page fault path trimming\n\nMore trimming of the page fault path.\n\nPermissions are passed around in a single int rather than one bit per\nint.  The permission values are copied from libc so that they can be\npassed to mmap and mprotect without any further conversion.\n\nThe register sets used by do_syscall_stub and copy_context_skas0 are\ninitialized once, at boot time, rather than once per call.\n\nwait_stub_done checks whether it is getting the signals it expects by\ncomparing the wait status to a mask containing bits for the signals of\ninterest rather than comparing individually to the signal numbers.  It\nalso has one check for a wait failure instead of two.  The caller is\nexpected to do the initial continue of the stub.  This gets rid of an\nargument and some logic.  The fname argument is gone, as that can be\nhad from a stack trace.\n\nuser_signal() is collapsed into userspace() as it is basically one or\ntwo lines of code afterwards.\n\nThe physical memory remapping stuff is gone, as it is unused.\n\nflush_tlb_page is inlined.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "64f60841c096594b8073e408cd9b40d7d08dcfdd",
      "tree": "3ad05b0b5f83d174eb2a7efdfd95d09f171aa51d",
      "parents": [
        "8603ec81487a5fefbc29611ff0d635b33b6da990"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Sun May 06 14:51:45 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:13:04 2007 -0700"
      },
      "message": "uml: speed page fault path\n\nGive the page fault code a specialized path.  There is only one page to look\nat, so there\u0027s no point in going into the general page table walking code.\nThere\u0027s only going to be one host operation, so there are no opportunities for\nmerging.  So, we go straight to the pte we want, figure out what needs doing,\nand do it.\n\nWhile I was in here, I fixed the wart where the address passed to unmap was a\nvoid *, but an unsigned long to map and protect.\n\nThis gives me just under 10% on a kernel build.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a6ea4cceed18edebe1eb6001cb9e0f88cd741a6c",
      "tree": "4a747a92c9bd7a8703004603ee9e91f8bfb7e95a",
      "parents": [
        "a263672424e591067e42e1d8371e56927fe73af8"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Sun May 06 14:51:43 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:13:03 2007 -0700"
      },
      "message": "uml: rename os_{read_write}_file_k back to os_{read_write}_file\n\nRename os_{read_write}_file_k back to os_{read_write}_file, delete\nthe originals and their bogus infrastructure, and fix all the callers.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "63843c265fd0e0c7894f713e0db5777560e756ae",
      "tree": "020eb5c523857f2485fd1ca4968245f7264a4cba",
      "parents": [
        "990c55871b655156ffd7787af791be977d946ef6"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Sun May 06 14:51:39 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:13:03 2007 -0700"
      },
      "message": "uml: dump core on panic\n\nDump core after a panic.  This will provide better debugging information than\nis currently available.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3d564047a5f45cb628ec72514f68076e532988f3",
      "tree": "3a4247baed8e66bfe5d159f058a88c1a5b7e7ed1",
      "parents": [
        "f9d6e5f83b40d8ff73a74d4bba2c5f51d6048b12"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Sun May 06 14:51:32 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:13:03 2007 -0700"
      },
      "message": "uml: start fixing os_read_file and os_write_file\n\nThis patch starts the removal of a very old, very broken piece of code.  This\nstems from the problem of passing a userspace buffer into read() or write() on\nthe host.  If that buffer had not yet been faulted in, read and write will\nreturn -EFAULT.\n\nTo avoid this problem, the solution was to fault the buffer in before the\nsystem call by touching the pages that hold the buffer by doing a copy-user of\na byte to each page.  This is obviously bogus, but it does usually work, in tt\nmode, since the kernel and process are in the same address space and userspace\naddresses can be accessed directly in the kernel.\n\nIn skas mode, where the kernel and process are in separate address spaces, it\nis completely bogus because the userspace address, which is invalid in the\nkernel, is passed into the system call instead of the corresponding physical\naddress, which would be valid.  Here, it appears that this code, on every host\nread() or write(), tries to fault in a random process page.  This doesn\u0027t seem\nto cause any correctness problems, but there is a performance impact.  This\npatch, and the ones following, result in a 10-15% performance gain on a kernel\nbuild.\n\nThis code can\u0027t be immediately tossed out because when it is, you can\u0027t log\nin.  Apparently, there is some code in the console driver which depends on\nthis somehow.\n\nHowever, we can start removing it by switching the code which does I/O using\nkernel addresses to using plain read() and write().  This patch introduces\nos_read_file_k and os_write_file_k for use with kernel buffers and converts\nall call locations which use obvious kernel buffers to use them.  These\ninclude I/O using buffers which are local variables which are on the stack or\nkmalloc-ed.  Later patches will handle the less obvious cases, followed by a\nmass conversion back to the original interface.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "377fad3acbb7e94ab9942a74e0d9ede8eeb2f039",
      "tree": "0bf8046bb1fa6ccb51df76b56819dee6b6d7487b",
      "parents": [
        "5d86456d3852cb95a38d2b23fe01cede54984ba5"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Sun May 06 14:51:25 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:13:02 2007 -0700"
      },
      "message": "uml: kernel segfaults should dump proper registers\n\nIf there\u0027s a segfault inside the kernel, we want a dump of the registers at\nthe point of the segfault, not the registers at the point of calling panic or\nthe last userspace registers.\n\nsig_handler_common_skas now uses a static register set in the case of a\nSIGSEGV to avoid messing up the process registers if the segfault turns out to\nbe non-fatal.\n\nThe architecture sigcontext-to-pt_regs copying code was repurposed to copy\ndata out of the SEGV stack frame.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5d86456d3852cb95a38d2b23fe01cede54984ba5",
      "tree": "a0e973d629717d93c7b4dc32ad7afd9e64f5f974",
      "parents": [
        "ccdddb57874522e6b267204f9c5e94ba7d9d66b0"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Sun May 06 14:51:24 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:13:02 2007 -0700"
      },
      "message": "uml: tidy fault code\n\nTidying in preparation for the segfault register dumping patch which follows.\n\nvoid * pointers are changed to union uml_pt_regs *.  This makes the types\nmatch reality, except in arch_fixup, which is changed to operate on a union\numl_pt_regs.  This fixes a bug in the call from segv_handler, which passes a\nunion uml_pt_regs, to segv, which expects to pass a struct sigcontext to\narch_fixup.\n\nWhitespace and other style fixes.\n\nThere\u0027s also a errno printk fix.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1ffb9164f51094b7105ce9f81600b222ddf5b82c",
      "tree": "b2efe2af99a2827692a7541058eaef9e938f1da6",
      "parents": [
        "6e21aec3fcf6c8862b755d45c0af45acdefff976"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Sun May 06 14:51:22 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:13:02 2007 -0700"
      },
      "message": "uml: remove page_size()\n\nuserspace code used to have to call the kernelspace function page_size() in\norder to determine the value of the kernel\u0027s PAGE_SIZE.  Since this is now\navailable directly from kern_constants.h as UM_KERN_PAGE_SIZE, page_size() can\nbe deleted and calls changed to use the constant.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "6e21aec3fcf6c8862b755d45c0af45acdefff976"
}
