)]}'
{
  "commit": "1e4597e8f0049dccedb0e011934007309fa2aeab",
  "tree": "74e8413d6bd1c5202fb3767ce18ae22fae235a25",
  "parents": [
    "f057131fb6eb2c45f6023e3da41ccd6e4e71aee9"
  ],
  "author": {
    "name": "Oleg Nesterov",
    "email": "oleg@tv-sign.ru",
    "time": "Mon Jul 02 12:26:20 2007 -0300"
  },
  "committer": {
    "name": "Mauro Carvalho Chehab",
    "email": "mchehab@infradead.org",
    "time": "Tue Jul 03 15:11:19 2007 -0300"
  },
  "message": "V4L/DVB (5818): CinergyT2: fix flush_workqueue() vs work-\u003efunc() deadlock\n\nSpotted and tested by Thomas Sattler \u003ctsattler@gmx.de\u003e.\n\ncinergyT2.c does cancel_delayed_work() + flush_scheduled_work() while\nholding cinergyt2-\u003esem. This leads to deadlock because work-\u003efunc()\nneeds the same mutex to complete. Another bug is that this code in fact\ncan\u0027t reliably stop the re-arming delayed_work.\n\nConvert this code to use cancel_rearming_delayed_work() and move it\nout of -\u003esem. Another mutex, -\u003ewq_sem, was added to protect against the\nconcurrent open/resume.\n\nThis patch is a horrible hack to fix the lockup which happens in practice.\nAs Dmitry Torokhov pointed out this driver has other problems and needs\nfurther changes.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@infradead.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6aba5b39ed144c2e1476ad993fec4b0f1fb51157",
      "old_mode": 33188,
      "old_path": "drivers/media/dvb/cinergyT2/cinergyT2.c",
      "new_id": "b40af48a2edbdcb71f750c2038a202efe2e08f05",
      "new_mode": 33188,
      "new_path": "drivers/media/dvb/cinergyT2/cinergyT2.c"
    }
  ]
}
