)]}'
{
  "log": [
    {
      "commit": "05cfb614ddbf3181540ce09d44d96486f8ba8d6a",
      "tree": "aafed98638557a4643141d906fbb2406f0764a94",
      "parents": [
        "df869b630d9d9131c10cf073fb61646048874b2f"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Sun Mar 26 01:38:12 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:57:03 2006 -0800"
      },
      "message": "[PATCH] hrtimers: remove data field\n\nThe nanosleep cleanup allows to remove the data field of hrtimer.  The\ncallback function can use container_of() to get it\u0027s own data.  Since the\nhrtimer structure is anyway embedded in other structures, this adds no\noverhead.\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "44f21475511bbc0135b52c66ad74dcc6a9026da3",
      "tree": "5cbd605c9d074f40b52a877859957432311b2399",
      "parents": [
        "92127c7a45d4d167d9b015a5f9de6b41ed66f1d0"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Sun Mar 26 01:38:06 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:57:02 2006 -0800"
      },
      "message": "[PATCH] hrtimers: pass current time to hrtimer_forward()\n\nPass current time to hrtimer_forward().  This allows to use the softirq time\nin the timer base when the forward function is called from the timer callback.\n Other places pass current time with a call to timer-\u003ebase-\u003eget_time().\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7d99b7d634d81bb372e03e4561c80430aa4cfac2",
      "tree": "905654bd7cb4940126606cf212c61079eeca722b",
      "parents": [
        "c08b8a49100715b20e6f7c997e992428b5e06078"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Mar 25 03:06:35 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:49 2006 -0800"
      },
      "message": "[PATCH] Validate and sanitze itimer timeval from userspace\n\nAccording to the specification the timevals must be validated and an\nerrorcode -EINVAL returned in case the timevals are not in canonical form.\nThis check was never done in Linux.\n\nThe pre 2.6.16 code converted invalid timevals silently.  Negative timeouts\nwere converted by the timeval_to_jiffies conversion to the maximum timeout.\n\nhrtimers and the ktime_t operations expect timevals in canonical form.\nOtherwise random results might happen on 32 bits machines due to the\noptimized ktime_add/sub operations.  Negative timeouts are treated as\nalready expired.  This might break applications which work on pre 2.6.16.\n\nTo prevent random behaviour and API breakage the timevals are checked and\ninvalid timevals sanitized in a simliar way as the pre 2.6.16 code did.\n\nInvalid timevals are reported with a per boot limited number of kernel\nmessages so applications which use this misfeature can be corrected.\n\nAfter a grace period of one year the sanitizing should be replaced by a\ncorrect validation check.  This is also documented in\nDocumentation/feature-removal-schedule.txt\n\nThe validation and sanitizing is done inside do_setitimer so all callers\n(sys_setitimer, compat_sys_setitimer, osf_setitimer) are catched.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c08b8a49100715b20e6f7c997e992428b5e06078",
      "tree": "014758fb05908a3d49eeadc77f16dfa7585b12ac",
      "parents": [
        "185ae6d7a32721e9062030a9f2d24ed714fa45df"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Mar 25 03:06:33 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:48 2006 -0800"
      },
      "message": "[PATCH] sys_alarm() unsigned signed conversion fixup\n\nalarm() calls the kernel with an unsigend int timeout in seconds.  The\nvalue is stored in the tv_sec field of a struct timeval to setup the\nitimer.  The tv_sec field of struct timeval is of type long, which causes\nthe tv_sec value to be negative on 32 bit machines if seconds \u003e INT_MAX.\n\nBefore the hrtimer merge (pre 2.6.16) such a negative value was converted\nto the maximum jiffies timeout by the timeval_to_jiffies conversion.  It\u0027s\nnot clear whether this was intended or just happened to be done by the\ntimeval_to_jiffies code.\n\nhrtimers expect a timeval in canonical form and treat a negative timeout as\nalready expired.  This breaks the legitimate usage of alarm() with a\ntimeout value \u003e INT_MAX seconds.\n\nFor 32 bit machines it is therefor necessary to limit the internal seconds\nvalue to avoid API breakage.  Instead of doing this in all implementations\nof sys_alarm the duplicated sys_alarm code is moved into a common function\nin itimer.c\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a16a1c095a2392d49fafea22f3a508e268ef7167",
      "tree": "ee5da8c9f04fe03eac9ab399b00f089748a74ddd",
      "parents": [
        "b6557fbca805217588a412f391a65ceafcf1a1af"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Feb 01 03:05:09 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:12 2006 -0800"
      },
      "message": "[PATCH] hrtimers: fix oldvalue return in setitimer\n\nThis resolves bugzilla bug#5617.  The oldvalue of the timer was read after the\ntimer was cancelled, so the remaining time was always zero.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bc1978d404befacd272d0321ef749cc3192e488b",
      "tree": "4ec8c7de7df1052e5f9b87a77fc3a80bc67e587d",
      "parents": [
        "853609b61ef88b414ffd1613741aa59894334320"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Feb 01 03:05:08 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:12 2006 -0800"
      },
      "message": "[PATCH] hrtimers: fixup itimer conversion\n\nThe itimer conversion removed the locking which protects the timer and\nvariables in the shared signal structure.  Steven Rostedt found the problem in\nthe latest -rt patches.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2ff678b8da6478d861c1b0ecb3ac14575760e906",
      "tree": "0ca983ce820ac8bb9f6e8b193926e0804116a7e0",
      "parents": [
        "df78488de7befd387e9d060da6e18bb5d1cb882c"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Jan 09 20:52:34 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:01:38 2006 -0800"
      },
      "message": "[PATCH] hrtimer: switch itimers to hrtimer\n\nswitch itimers to a hrtimers-based implementation\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d912d1ff218195c248c770eb677726695e07aa40",
      "tree": "6718b67656e3cf0ec0c03b585f43f8815809cdcd",
      "parents": [
        "b7343f01e326374e69666ca6001bdb6a7c67e9f7"
      ],
      "author": {
        "name": "George Anzinger",
        "email": "george@mvista.com",
        "time": "Wed Jul 27 11:43:44 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jul 27 16:25:51 2005 -0700"
      },
      "message": "[PATCH] itimer fixes\n\nFix the recent off-by-one fix in the itimer code:\n\n1. The repeating timer is figured using the requested time\n\t(not +1 as we know where we are in the jiffie).\n\n2. The tests for interval too large are left to the time_val to jiffie code.\n\nSigned-off-by: George Anzinger \u003cgeorge@mvista.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f01b1b0baa454825ed95c28d2a6a71bbf4510836",
      "tree": "6a7dda617cdb79933780b841429e67ec7c908d52",
      "parents": [
        "b36bbb6c3d5244eaf52241ec69f79494137f2db0"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Jun 28 20:44:47 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue Jun 28 21:20:30 2005 -0700"
      },
      "message": "[PATCH] ITIMER_REAL: fix possible deadlock and race\n\nAs Steven Rostedt pointed out, there are 2 problems with ITIMER_REAL\ntimers.\n\n1. do_setitimer() does not call del_timer_sync() in case\n   when the timer is not pending (it_real_value() returns 0).\n   This is wrong, the timer may still be running, and it can\n   rearm itself.\n\n2. It calls del_timer_sync() with tsk-\u003esighand-\u003esiglock held.\n   This is deadlockable, because timer\u0027s handler needs this\n   lock too.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b7e4e85337060354f8b860cc38066725559313a4",
      "tree": "bdb958c6002fee2d73ed51e78d71dc663d2ad297",
      "parents": [
        "f0fbd5fc09b20f7ba7bc8c80be33e39925bb38e1"
      ],
      "author": {
        "name": "Paulo Marques",
        "email": "pmarques@grupopie.com",
        "time": "Thu May 05 16:15:49 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu May 05 16:36:41 2005 -0700"
      },
      "message": "[PATCH] setitimer timer expires too early\n\nIt seems that the code responsible for this is in kernel/itimer.c:126:\n\n\tp-\u003esignal-\u003ereal_timer.expires \u003d jiffies + interval;\n\tadd_timer(\u0026p-\u003esignal-\u003ereal_timer);\n\nIf you request an interval of, lets say 900 usecs, the interval given by\ntimeval_to_jiffies will be 1.\n\nIf you request this when we are half-way between two timer ticks, the\ninterval will only give 400 usecs.\n\nIf we want to guarantee that we never ever give intervals less than\nrequested, the simple solution would be to change that to:\n\n\tp-\u003esignal-\u003ereal_timer.expires \u003d jiffies + interval + 1;\n\nThis however will produce pathological cases, like having a idle system\nbeing requested 1 ms timeouts will give systematically 2 ms timeouts,\nwhereas currently it simply gives a few usecs less than 1 ms.\n\nThe complex (and more computationally expensive) solution would be to\ncheck the gettimeofday time, and compute the correct number of jiffies.\nThis way, if we request a 300 usecs timer 200 usecs inside the timer\ntick, we can wait just one tick, but not if we are 800 usecs inside the\ntick. This would also mean that we would have to lock preemption during\nthese computations to avoid races, etc.\n\nI\u0027ve searched the archives but couldn\u0027t find this particular issue being\ndiscussed before.\n\nAttached is a patch to do the simple solution, in case anybody thinks\nthat it should be used.\n\nSigned-Off-By: Paulo Marques \u003cpmarques@grupopie.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
