)]}'
{
  "commit": "28f4f8a9def2b1f3a6066bae791c77043ec49524",
  "tree": "179cb5f8b64540e6f8e4440f46b2e930731a7fc3",
  "parents": [
    "a0d468718b9049f7396d101075a129a2d683ad66"
  ],
  "author": {
    "name": "Rafael J. Wysocki",
    "email": "rjw@sisk.pl",
    "time": "Tue Aug 03 23:55:14 2010 +0200"
  },
  "committer": {
    "name": "Len Brown",
    "email": "len.brown@intel.com",
    "time": "Sat Aug 07 10:30:12 2010 -0400"
  },
  "message": "ACPI / ACPICA: Fix reference counting problems with GPE handlers\n\nIf a handler is installed for a GPE associated with an AML method and\nsuch that it cannot wake up the system from sleep states, the GPE\nremains enabled after the handler has been installed, although it\nshould be disabled in that case to avoid spurious execution of the\nhandler.\n\nFix this issue by making acpi_install_gpe_handler() disable GPEs\nthat were previously associated with AML methods and cannot wake up\nthe system from sleep states.\n\nAnalogously, make acpi_remove_gpe_handler() enable the GPEs that\nare associated with AML methods after their handlers have been\nremoved and cannot wake up the system from sleep states.  In addition\nto that, fix a code ordering issue in acpi_remove_gpe_handler() that\nrenders the locking ineffective (ACPI_MTX_EVENTS is released\ntemporarily in the middle of the routine to wait for the completion\nof events already in progress).\n\nFor this purpose introduce acpi_raw_disable_gpe() and\nacpi_raw_enable_gpe() to be called with acpi_gbl_gpe_lock held\nand rework acpi_disable_gpe() and acpi_enable_gpe(), respectively, to\nuse them.  Also rework acpi_gpe_can_wake() to use\nacpi_raw_disable_gpe() instead of calling acpi_disable_gpe() after\nreleasing the lock to avoid the possible theoretical race with\nacpi_install_gpe_handler().\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: \"Moore, Robert\" \u003crobert.moore@intel.com\u003e\nCc: Lin Ming \u003cming.m.lin@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e0e6affb0d8044fe4cba68fca00e558d6723afa5",
      "old_mode": 33188,
      "old_path": "drivers/acpi/acpica/acevents.h",
      "new_id": "36867cd70eacf3f9495325c71200bc688d705510",
      "new_mode": 33188,
      "new_path": "drivers/acpi/acpica/acevents.h"
    },
    {
      "type": "modify",
      "old_id": "1ee0bcf399aaf8fd9c0e24054a08bcd282187fd5",
      "old_mode": 33188,
      "old_path": "drivers/acpi/acpica/aclocal.h",
      "new_id": "df85b53a674fc33105fa1434b3800db7ab26a423",
      "new_mode": 33188,
      "new_path": "drivers/acpi/acpica/aclocal.h"
    },
    {
      "type": "modify",
      "old_id": "7a6a3e6f4be09dbc7522d17c10d3b03be579227d",
      "old_mode": 33188,
      "old_path": "drivers/acpi/acpica/evgpe.c",
      "new_id": "f226eac314db587668a32e8cc75cd6bfd931b5f4",
      "new_mode": 33188,
      "new_path": "drivers/acpi/acpica/evgpe.c"
    },
    {
      "type": "modify",
      "old_id": "4a531cdf79423e7f9328318fc3cbd8f4b17a4f08",
      "old_mode": 33188,
      "old_path": "drivers/acpi/acpica/evxface.c",
      "new_id": "14e48add32fa0ede706a120b87d3a885e8ecbf0f",
      "new_mode": 33188,
      "new_path": "drivers/acpi/acpica/evxface.c"
    },
    {
      "type": "modify",
      "old_id": "53d591a11138bf2a33be1ec29205611ff23426e9",
      "old_mode": 33188,
      "old_path": "drivers/acpi/acpica/evxfevnt.c",
      "new_id": "0fb9e94878d91a114e2ccf2f55f9e11eec19f3ab",
      "new_mode": 33188,
      "new_path": "drivers/acpi/acpica/evxfevnt.c"
    }
  ]
}
