)]}'
{
  "commit": "40dc166cb5dddbd36aa4ad11c03915ea538f5a61",
  "tree": "0a778159cf89ddee9e7d3134ae40569bdccd2a24",
  "parents": [
    "f9b9e806ae0ede772cbb9916d9ac7354a123d044"
  ],
  "author": {
    "name": "Rafael J. Wysocki",
    "email": "rjw@sisk.pl",
    "time": "Tue Mar 15 00:43:46 2011 +0100"
  },
  "committer": {
    "name": "Rafael J. Wysocki",
    "email": "rjw@sisk.pl",
    "time": "Tue Mar 15 00:43:46 2011 +0100"
  },
  "message": "PM / Core: Introduce struct syscore_ops for core subsystems PM\n\nSome subsystems need to carry out suspend/resume and shutdown\noperations with one CPU on-line and interrupts disabled.  The only\nway to register such operations is to define a sysdev class and\na sysdev specifically for this purpose which is cumbersome and\ninefficient.  Moreover, the arguments taken by sysdev suspend,\nresume and shutdown callbacks are practically never necessary.\n\nFor this reason, introduce a simpler interface allowing subsystems\nto register operations to be executed very late during system suspend\nand shutdown and very early during resume in the form of\nstrcut syscore_ops objects.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5f51c3b4451e2a3c39fcefbc1c5c0a97e810d78b",
      "old_mode": 33188,
      "old_path": "drivers/base/Makefile",
      "new_id": "4c5701c15f53a1d4ed4c5d55ada286d57d3b85b7",
      "new_mode": 33188,
      "new_path": "drivers/base/Makefile"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "90af2943f9e4a56bb284aab6ce5bab177cfba794",
      "new_mode": 33188,
      "new_path": "drivers/base/syscore.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "27b3b0bc41a94247188b154affa529a72c0b001b",
      "new_mode": 33188,
      "new_path": "include/linux/syscore_ops.h"
    },
    {
      "type": "modify",
      "old_id": "1832bd2642192970f2fe9e1b759b737e9519b1cf",
      "old_mode": 33188,
      "old_path": "kernel/power/hibernate.c",
      "new_id": "aeabd26e3342788e4330cfb4e8e2a5ba40b348d0",
      "new_mode": 33188,
      "new_path": "kernel/power/hibernate.c"
    },
    {
      "type": "modify",
      "old_id": "de6f86bfa30389e965f857cdd28b8ff03aeda32e",
      "old_mode": 33188,
      "old_path": "kernel/power/suspend.c",
      "new_id": "2814c32aed51c121a7ff9689aa38f6b98d025b15",
      "new_mode": 33188,
      "new_path": "kernel/power/suspend.c"
    },
    {
      "type": "modify",
      "old_id": "18da702ec813c491c758b6f28e86a31a71ba60b5",
      "old_mode": 33188,
      "old_path": "kernel/sys.c",
      "new_id": "1ad48b3b9068ff7454d753c7e36e844ab507afd8",
      "new_mode": 33188,
      "new_path": "kernel/sys.c"
    }
  ]
}
