)]}'
{
  "log": [
    {
      "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": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
