)]}'
{
  "commit": "9ea09af3bd3090e8349ca2899ca2011bd94cda85",
  "tree": "36396347bb750a6aecb0771cfebf9887aaaae492",
  "parents": [
    "c298be74492bece102f3379d14015638f1fd1fac"
  ],
  "author": {
    "name": "Heiko Carstens",
    "email": "heiko.carstens@de.ibm.com",
    "time": "Mon Dec 22 12:36:30 2008 +0100"
  },
  "committer": {
    "name": "Rusty Russell",
    "email": "rusty@rustcorp.com.au",
    "time": "Mon Jan 05 08:40:14 2009 +1030"
  },
  "message": "stop_machine: introduce stop_machine_create/destroy.\n\nIntroduce stop_machine_create/destroy. With this interface subsystems\nthat need a non-failing stop_machine environment can create the\nstop_machine machine threads before actually calling stop_machine.\nWhen the threads aren\u0027t needed anymore they can be killed with\nstop_machine_destroy again.\n\nWhen stop_machine gets called and the threads aren\u0027t present they\nwill be created and destroyed automatically. This restores the old\nbehaviour of stop_machine.\n\nThis patch also converts cpu hotplug to the new interface since it\nis special: cpu_down calls __stop_machine instead of stop_machine.\nHowever the kstop threads will only be created when stop_machine\ngets called.\n\nChanging the code so that the threads would be created automatically\non __stop_machine is currently not possible: when __stop_machine gets\ncalled we hold cpu_add_remove_lock, which is the same lock that\ncreate_rt_workqueue would take. So the workqueue needs to be created\nbefore the cpu hotplug code locks cpu_add_remove_lock.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "74d59a641362ea758911b0f647ca10f4e059ea79",
      "old_mode": 33188,
      "old_path": "include/linux/stop_machine.h",
      "new_id": "baba3a23a8145c6106177f924dd712b63e7b2f17",
      "new_mode": 33188,
      "new_path": "include/linux/stop_machine.h"
    },
    {
      "type": "modify",
      "old_id": "47fff3b63cbf5ac8f3cd92de1299a371a8e2d4dd",
      "old_mode": 33188,
      "old_path": "kernel/cpu.c",
      "new_id": "30e74dd6d01b3e9bbe3f096ad638eb3d1b89fb10",
      "new_mode": 33188,
      "new_path": "kernel/cpu.c"
    },
    {
      "type": "modify",
      "old_id": "286c41722e8cb68e76dc637d20298b67847771e0",
      "old_mode": 33188,
      "old_path": "kernel/stop_machine.c",
      "new_id": "0cd415ee62a262ccadea6b592a7402eb89fc4797",
      "new_mode": 33188,
      "new_path": "kernel/stop_machine.c"
    }
  ]
}
