)]}'
{
  "commit": "7e49fcce1bdadd723ae6a0b3b324c4daced61563",
  "tree": "a2bf1a143ed33ca01612dfab1fb7c993c467cdb0",
  "parents": [
    "b06a830183b610c0a88c29a92feb7991a867ab46"
  ],
  "author": {
    "name": "Steven Rostedt",
    "email": "srostedt@redhat.com",
    "time": "Thu Jan 22 19:01:40 2009 -0500"
  },
  "committer": {
    "name": "Ingo Molnar",
    "email": "mingo@elte.hu",
    "time": "Fri Jan 23 11:10:57 2009 +0100"
  },
  "message": "trace, lockdep: manual preempt count adding for local_bh_disable\n\nImpact: fix to preempt trace triggering lockdep check_flag failure\n\nIn local_bh_disable, the use of add_preempt_count causes the\npreempt tracer to start recording the time preemption is off.\nBut because it already modified the preempt_count to show\nsoftirqs disabled, and before it called the lockdep code to\nhandle this, it causes a state that lockdep can not handle.\n\nThe preempt tracer will reset the ring buffer on start of a trace,\nand the ring buffer reset code does a spin_lock_irqsave. This\ncalls into lockdep and lockdep will fail when it detects the\ninvalid state of having softirqs disabled but the internal\ncurrent-\u003esoftirqs_enabled is still set.\n\nThe fix is to manually add the SOFTIRQ_OFFSET to preempt count\nand call the preempt tracer code outside the lockdep critical\narea.\n\nThanks to Peter Zijlstra for suggesting this solution.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4cae9b81a1f8851d51a5380d8d37fa7ba3ceb529",
      "old_mode": 33188,
      "old_path": "include/linux/sched.h",
      "new_id": "33085b88f87b83369b74c37824e01d0a72d62833",
      "new_mode": 33188,
      "new_path": "include/linux/sched.h"
    },
    {
      "type": "modify",
      "old_id": "52bbf1c842a8e0baecd1cd9f53883806eaab1350",
      "old_mode": 33188,
      "old_path": "kernel/sched.c",
      "new_id": "c154825ae75324b834283b332f57451a169df0a5",
      "new_mode": 33188,
      "new_path": "kernel/sched.c"
    },
    {
      "type": "modify",
      "old_id": "bdbe9de9cd8d7091771201f232747bf30a83e467",
      "old_mode": 33188,
      "old_path": "kernel/softirq.c",
      "new_id": "6edfc2c11d99af1c845689adf0e9fbf1043e723d",
      "new_mode": 33188,
      "new_path": "kernel/softirq.c"
    }
  ]
}
