)]}'
{
  "log": [
    {
      "commit": "717c033669ed3ceaee8df57d4562fafcc1a6267a",
      "tree": "892e922c08b5f5eee8fbe7c8e0fdc774db660c67",
      "parents": [
        "e2c18e49a0d4f822ffc29fb4958943beb1ff08b7"
      ],
      "author": {
        "name": "Alexander Gordeev",
        "email": "lasaine@lvk.cs.msu.su",
        "time": "Wed Jan 12 17:00:58 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 08:03:21 2011 -0800"
      },
      "message": "pps: add kernel consumer support\n\nAdd an optional feature of PPSAPI, kernel consumer support, which uses the\nadded hardpps() function.\n\nSigned-off-by: Alexander Gordeev \u003clasaine@lvk.cs.msu.su\u003e\nAcked-by: Rodolfo Giometti \u003cgiometti@linux.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2a5cd6e2fb1984cc83f08b3645bf394830ac7825",
      "tree": "14082324f971c3d8af26840caf9d68a4524269b7",
      "parents": [
        "083e58666ff5b3c5750d9a5c0560018b03cfb4b2"
      ],
      "author": {
        "name": "Alexander Gordeev",
        "email": "lasaine@lvk.cs.msu.su",
        "time": "Wed Jan 12 17:00:53 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 08:03:20 2011 -0800"
      },
      "message": "pps: make idr lock a mutex and protect idr_pre_get\n\nNow pps_idr_lock is never used in interrupt context so we can replace\nspin_lock_irq/spin_unlock_irq with plain spin_lock/spin_unlock. But\nthere is also a potential race condition when someone can steal an id\nwhich was allocated by idr_pre_get before it is used. So convert spin\nlock to mutex and protect the whole id generation process.\n\nSigned-off-by: Alexander Gordeev \u003clasaine@lvk.cs.msu.su\u003e\nCc: Rodolfo Giometti \u003cgiometti@linux.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "083e58666ff5b3c5750d9a5c0560018b03cfb4b2",
      "tree": "e0543cd7b2e375ca29c41a560e9ce0899c0f1d4e",
      "parents": [
        "7f7cce74105adf714bdc9357da3b6f06e019958c"
      ],
      "author": {
        "name": "Alexander Gordeev",
        "email": "lasaine@lvk.cs.msu.su",
        "time": "Wed Jan 12 17:00:53 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 08:03:20 2011 -0800"
      },
      "message": "pps: move idr stuff to pps.c\n\nSince now idr is only used to manage char device id\u0027s and not used in\nkernel API anymore it should be moved to pps.c.  This also makes it\npossible to release id only at actual device freeing so nobody can\nregister a pps device with the same id while our device is not freed yet.\n\nSigned-off-by: Alexander Gordeev \u003clasaine@lvk.cs.msu.su\u003e\nAcked-by: Rodolfo Giometti \u003cgiometti@linux.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7f7cce74105adf714bdc9357da3b6f06e019958c",
      "tree": "1fcb692726c5bf91280bcac5a65584eddcd93bf6",
      "parents": [
        "5e196d34a776420278e4117b4742cd9d3f2350ed"
      ],
      "author": {
        "name": "Alexander Gordeev",
        "email": "lasaine@lvk.cs.msu.su",
        "time": "Wed Jan 12 17:00:52 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 08:03:19 2011 -0800"
      },
      "message": "pps: convert printk/pr_* to dev_*\n\nSince we now have direct pointers to struct pps_device everywhere it\u0027s\neasy to use dev_* functions to print messages instead of plain printks.\nWhere dev_* cannot be used printks are converted to pr_*.\n\nSigned-off-by: Alexander Gordeev \u003clasaine@lvk.cs.msu.su\u003e\nAcked-by: Rodolfo Giometti \u003cgiometti@linux.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5e196d34a776420278e4117b4742cd9d3f2350ed",
      "tree": "86187af6a600876506261758a00c7c42e6037283",
      "parents": [
        "6f4229b51106cbc859e9d8209b22c8a2ec749e64"
      ],
      "author": {
        "name": "Alexander Gordeev",
        "email": "lasaine@lvk.cs.msu.su",
        "time": "Wed Jan 12 17:00:51 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 08:03:19 2011 -0800"
      },
      "message": "pps: access pps device by direct pointer\n\nUsing device index as a pointer needs some unnecessary work to be done\nevery time the pointer is needed (in irq handler for example).  Using a\ndirect pointer is much more easy (and safe as well).\n\nSigned-off-by: Alexander Gordeev \u003clasaine@lvk.cs.msu.su\u003e\nAcked-by: Rodolfo Giometti \u003cgiometti@linux.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3003d55b59aa98aeaff2773df69732b27c0cbf6a",
      "tree": "d7fbadca22907cb90b9e94b283bf8abe6d508c73",
      "parents": [
        "86d921f9ec06bc3fd357a77877d37a604d5674c3"
      ],
      "author": {
        "name": "Alexander Gordeev",
        "email": "lasaine@lvk.cs.msu.su",
        "time": "Wed Jan 12 17:00:50 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 08:03:19 2011 -0800"
      },
      "message": "pps: fix race in PPS_FETCH handler\n\nThere was a race in PPS_FETCH ioctl handler when several processes want to\nobtain PPS data simultaneously using sleeping PPS_FETCH.  They all sleep\nmost of the time in the system call.\n\nWith the old approach when the first process waiting on the pps queue is\nwaken up it makes new system call right away and zeroes pps-\u003ego.  So other\nprocesses continue to sleep.  This is a clear race condition because of\nthe global \u0027go\u0027 variable.\n\nWith the new approach pps-\u003elast_ev holds some value increasing at each PPS\nevent.  PPS_FETCH ioctl handler saves current value to the local variable\nat the very beginning so it can safely check that there is a new event by\njust comparing both variables.\n\nSigned-off-by: Alexander Gordeev \u003clasaine@lvk.cs.msu.su\u003e\nAcked-by: Rodolfo Giometti \u003cgiometti@linux.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "86d921f9ec06bc3fd357a77877d37a604d5674c3",
      "tree": "ad858d8b8009b659f5361d61a37040e3d847fd86",
      "parents": [
        "7a21a3cc0be92e70474cc2ab06cb074f6a7c3f09"
      ],
      "author": {
        "name": "Alexander Gordeev",
        "email": "lasaine@lvk.cs.msu.su",
        "time": "Wed Jan 12 17:00:49 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 08:03:19 2011 -0800"
      },
      "message": "pps: declare variables where they are used in switch\n\nMove variable declarations where they are used in pps_cdev_ioctl.\n\nSigned-off-by: Alexander Gordeev \u003clasaine@lvk.cs.msu.su\u003e\nAcked-by: Rodolfo Giometti \u003cgiometti@linux.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cbf83cc5a29dba480cf1ba1c5e3417a0d4a31410",
      "tree": "eb7757638e0a8e5509066eebec053a7bffe0138a",
      "parents": [
        "69fd8d24673a8f4f8be5db7f84b5dc9e4ff354c8"
      ],
      "author": {
        "name": "Rodolfo Giometti",
        "email": "giometti@linux.it",
        "time": "Wed Nov 11 14:26:52 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 12 07:26:00 2009 -0800"
      },
      "message": "pps: locking scheme fix up for PPS_GETPARAMS\n\nUserland programs may read/write PPS parameters at same time and these\noperations may corrupt PPS data.\n\nSigned-off-by: Rodolfo Giometti \u003cgiometti@linux.it\u003e\nTested-by: Reg Clemens \u003cclemens@dwf.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "054b2b13ccba4876a1ce98a7ede7dab7d6893d01",
      "tree": "0421da355e30375d251e0fdb570fce2518e7a201",
      "parents": [
        "f415c413f458837bd0c27086b79aca889f9435e4"
      ],
      "author": {
        "name": "Joonwoo Park",
        "email": "joonwpark81@gmail.com",
        "time": "Wed Aug 26 14:29:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 26 20:06:52 2009 -0700"
      },
      "message": "pps: fix incorrect verdict check\n\nFix incorrect verdict check and returns error if device_create failed,\notherwise driver triggers kernel oops.\n\nSigned-off-by: Joonwoo Park\u003cjoonwpark81@gmail.com\u003e\nCc: Rodolfo Giometti \u003cgiometti@enneenne.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "eae9d2ba0cfc27a2ad9765f23efb98fb80d80234",
      "tree": "f4be40ca528b2f23f97fa9cb6ebe91b8d6696d5b",
      "parents": [
        "8820f27ad9a5ad2a62cdcdf425d7921c31831800"
      ],
      "author": {
        "name": "Rodolfo Giometti",
        "email": "giometti@linux.it",
        "time": "Wed Jun 17 16:28:37 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:04:04 2009 -0700"
      },
      "message": "LinuxPPS: core support\n\nThis patch adds the kernel side of the PPS support currently named\n\"LinuxPPS\".\n\nPPS means \"pulse per second\" and a PPS source is just a device which\nprovides a high precision signal each second so that an application can\nuse it to adjust system clock time.\n\nCommon use is the combination of the NTPD as userland program with a GPS\nreceiver as PPS source to obtain a wallclock-time with sub-millisecond\nsynchronisation to UTC.\n\nTo obtain this goal the userland programs shoud use the PPS API\nspecification (RFC 2783 - Pulse-Per-Second API for UNIX-like Operating\nSystems, Version 1.0) which in part is implemented by this patch.  It\nprovides a set of chars devices, one per PPS source, which can be used to\nget the time signal.  The RFC\u0027s functions can be implemented by accessing\nto these char devices.\n\nSigned-off-by: Rodolfo Giometti \u003cgiometti@linux.it\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nAcked-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Roman Zippel \u003czippel@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"
    }
  ]
}
