)]}'
{
  "commit": "f5f5370da4b3128b7dfd944b4fcbb5c7b6887348",
  "tree": "45a00ae5b234648083bad84db213da3b8220b679",
  "parents": [
    "4f3a36a7d0eb420471506fcd46ee46f4b5cd4ebc"
  ],
  "author": {
    "name": "Kyle McMartin",
    "email": "kyle@parisc-linux.org",
    "time": "Tue Mar 28 01:56:11 2006 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@g5.osdl.org",
    "time": "Tue Mar 28 09:16:01 2006 -0800"
  },
  "message": "[PATCH] Decrapify asm-generic/local.h\n\nNow that Christoph Lameter\u0027s atomic_long_t support is merged in mainline,\nmight as well convert asm-generic/local.h to use it, so the same code can\nbe used for both sizes of 32 and 64-bit unsigned longs.\n\nakpm sayeth:\n\nQ:\n\n  Is there any particular reason why these routines weren\u0027t simply\n  implemented with local_save/restore_flags, if they are only meant to\n  guarantee atomicity to the local cpu?  I\u0027m sure on most platforms this\n  would be more efficient than using an atomic...\n\nA:\n\n  The whole _point_ of local_t is to avoid local_irq_disable().  It\u0027s\n  designed to exploit the fact that many CPUs can do incs and decs in a way\n  which is atomic wrt local interrupts, but not atomic wrt SMP.\n\nBut this patch makes sense, because asm-generic/local.h is just a fallback\nimplementation for architectures which either cannot perform these\nlocal-irq-atomic operations, or its maintainers haven\u0027t yet got around to\nimplementing them.\n\nWe need more work done on local_t in the 2.6.17 timeframe - they\u0027re defined as\nunsigned long, but some architectures implement them as signed long.\n\nSigned-off-by: Kyle McMartin \u003ckyle@parisc-linux.org\u003e\nCc: Benjamin LaHaise \u003cbcrl@kvack.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "16fc00360f7582eef14a9934c9d6fe7f3abf7f7c",
      "old_mode": 33188,
      "old_path": "include/asm-generic/local.h",
      "new_id": "de4614840c2cdf4cd8bd7b85502be301c247cedb",
      "new_mode": 33188,
      "new_path": "include/asm-generic/local.h"
    }
  ]
}
