)]}'
{
  "commit": "edaac8e3167501cda336231d00611bf59c164346",
  "tree": "5ebf22336dccef4fcd601e0a6a2d13ea347ec568",
  "parents": [
    "979f693def9084a452846365dfde5dcb28366333"
  ],
  "author": {
    "name": "Ingo Molnar",
    "email": "mingo@elte.hu",
    "time": "Tue Sep 22 14:44:11 2009 +0200"
  },
  "committer": {
    "name": "Ingo Molnar",
    "email": "mingo@elte.hu",
    "time": "Tue Sep 22 14:05:48 2009 +0200"
  },
  "message": "ratelimit: Fix/allow use in atomic contexts\n\nI\u0027d like to use printk_ratelimit() in NMI context, but it\u0027s not\nrobust right now due to spinlock usage in lib/ratelimit.c. If an\nNMI is unlucky enough to hit just that spot we might lock up trying\nto take the spinlock again.\n\nFix that by using a trylock variant. If we contend on that lock we\ncan genuinely skip the message because the state is just being\naccessed by another CPU (or by this CPU).\n\n( We could use atomics for the suppressed messages field, but\n  i doubt it matters in practice and it makes the code heavier. )\n\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0e2c28e8a0ca979a8cf6e2b48b1a43fbea743393",
      "old_mode": 33188,
      "old_path": "lib/ratelimit.c",
      "new_id": "69bfcacda16dce314b9f2658e84f2a7902a1dc6b",
      "new_mode": 33188,
      "new_path": "lib/ratelimit.c"
    }
  ]
}
