)]}'
{
  "commit": "b253d2b2d28ead6fed012feb54694b3d0562839a",
  "tree": "39e9cb09e6e72a3029696f9b04476bc62510a77d",
  "parents": [
    "42a06f2166f2f6f7bf04f32b4e823eacdceafdc9"
  ],
  "author": {
    "name": "Mathieu Desnoyers",
    "email": "mathieu.desnoyers@polymtl.ca",
    "time": "Sun May 17 10:29:33 2009 -0400"
  },
  "committer": {
    "name": "Dave Jones",
    "email": "davej@redhat.com",
    "time": "Tue May 26 12:04:50 2009 -0400"
  },
  "message": "[CPUFREQ] fix timer teardown in conservative governor\n\n* Rafael J. Wysocki (rjw@sisk.pl) wrote:\n\u003e This message has been generated automatically as a part of a report\n\u003e of regressions introduced between 2.6.28 and 2.6.29.\n\u003e\n\u003e The following bug entry is on the current list of known regressions\n\u003e introduced between 2.6.28 and 2.6.29.  Please verify if it still should\n\u003e be listed and let me know (either way).\n\u003e\n\u003e\n\u003e Bug-Entry\t: http://bugzilla.kernel.org/show_bug.cgi?id\u003d13186\n\u003e Subject\t\t: cpufreq timer teardown problem\n\u003e Submitter\t: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\n\u003e Date\t\t: 2009-04-23 14:00 (24 days old)\n\u003e References\t: http://marc.info/?l\u003dlinux-kernel\u0026m\u003d124049523515036\u0026w\u003d4\n\u003e Handled-By\t: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\n\u003e Patch\t\t: http://patchwork.kernel.org/patch/19754/\n\u003e \t\t  http://patchwork.kernel.org/patch/19753/\n\u003e\n\n(re-send with updated changelog)\n\ncpufreq fix timer teardown in conservative governor\n\nThe problem is that dbs_timer_exit() uses cancel_delayed_work() when it should\nuse cancel_delayed_work_sync(). cancel_delayed_work() does not wait for the\nworkqueue handler to exit.\n\nThe ondemand governor does not seem to be affected because the\n\"if (!dbs_info-\u003eenable)\" check at the beginning of the workqueue handler returns\nimmediately without rescheduling the work. The conservative governor in\n2.6.30-rc has the same check as the ondemand governor, which makes things\nusually run smoothly. However, if the governor is quickly stopped and then\nstarted, this could lead to the following race :\n\ndbs_enable could be reenabled and multiple do_dbs_timer handlers would run.\nThis is why a synchronized teardown is required.\n\nDepends on patch\ncpufreq: remove rwsem lock from CPUFREQ_GOV_STOP call\n\nThe following patch applies to 2.6.30-rc2. Stable kernels have a similar\nissue which should also be fixed, but the code changed between 2.6.29\nand 2.6.30, so this patch only applies to 2.6.30-rc.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCC: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCC: gregkh@suse.de\nCC: stable@kernel.org\nCC: cpufreq@vger.kernel.org\nCC: Ingo Molnar \u003cmingo@elte.hu\u003e\nCC: rjw@sisk.pl\nCC: Ben Slusky \u003csluskyb@paranoiacs.org\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2ecd95e4ab1aca33c6e858698d0c16f1b28a19ba",
      "old_mode": 33188,
      "old_path": "drivers/cpufreq/cpufreq_conservative.c",
      "new_id": "7a74d175287b2f44fc7a7329ce79bd51b5f9b779",
      "new_mode": 33188,
      "new_path": "drivers/cpufreq/cpufreq_conservative.c"
    }
  ]
}
