)]}'
{
  "log": [
    {
      "commit": "d6f029130fb83b36fb709a187275b0494035d689",
      "tree": "27a5f8fb9fe1fc0df911231b5d9913b246427039",
      "parents": [
        "d5ea4e26602fa7f5141872f2c17a862f1974a73f"
      ],
      "author": {
        "name": "Nicolas Pitre",
        "email": "nico@cam.org",
        "time": "Wed Dec 21 12:26:25 2005 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Dec 22 09:17:39 2005 -0800"
      },
      "message": "[PATCH] fix race with preempt_enable()\n\nCurrently a simple\n\n\tvoid foo(void) { preempt_enable(); }\n\nproduces the following code on ARM:\n\nfoo:\n\tbic\tr3, sp, #8128\n\tbic\tr3, r3, #63\n\tldr\tr2, [r3, #4]\n\tldr\tr1, [r3, #0]\n\tsub\tr2, r2, #1\n\ttst\tr1, #4\n\tstr\tr2, [r3, #4]\n\tblne\tpreempt_schedule\n\tmov\tpc, lr\n\nThe problem is that the TIF_NEED_RESCHED flag is loaded _before_ the\npreemption count is stored back, hence any interrupt coming within that\n3 instruction window causing TIF_NEED_RESCHED to be set won\u0027t be\nseen and scheduling won\u0027t happen as it should.\n\nNothing currently prevents gcc from performing that reordering.  There\nis already a barrier() before the decrement of the preemption count, but\nanother one is needed between this and the TIF_NEED_RESCHED flag test\nfor proper code ordering.\n\nSigned-off-by: Nicolas Pitre \u003cnico@cam.org\u003e\nAcked-by: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f037360f2ed111fe89a8f5cb6ba351f4e9934e53",
      "tree": "5978627d4252a7faf6d4fb9577fe8aa55e5db648",
      "parents": [
        "10ebffde3d3916026974352b7900e44afe2b243f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@parcelfarce.linux.theplanet.co.uk",
        "time": "Sun Nov 13 16:06:57 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Nov 13 18:14:13 2005 -0800"
      },
      "message": "[PATCH] m68k: thread_info header cleanup\n\na) in smp_lock.h #include of sched.h and spinlock.h moved under #ifdef\n   CONFIG_LOCK_KERNEL.\n\nb) interrupt.h now explicitly pulls sched.h (not via smp_lock.h from\n   hardirq.h as it used to)\n\nc) in three more places we need changes to compensate for (a) - one place\n   in arch/sparc needs string.h now, hardirq.h needs forward declaration of\n   task_struct and preempt.h needs direct include of thread_info.h.\n\nd) thread_info-related helpers in sched.h and thread_info.h put under\n   ifndef __HAVE_THREAD_FUNCTIONS.  Obviously safe.\n\nSigned-off-by: Al Viro \u003cviro@parcelfarce.linux.theplanet.co.uk\u003e\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\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"
    }
  ]
}
