)]}'
{
  "commit": "8735728ef8dc935c4fb351f913758fdbb62c308d",
  "tree": "5c96e2fcb2b326d2ad1ad3aa8294e7cbeab3d007",
  "parents": [
    "91ede005d72df60d6b3f252be177a4743a6aa46a"
  ],
  "author": {
    "name": "Rafael J. Wysocki",
    "email": "rjw@sisk.pl",
    "time": "Fri Aug 22 22:23:09 2008 +0200"
  },
  "committer": {
    "name": "Ingo Molnar",
    "email": "mingo@elte.hu",
    "time": "Sat Aug 23 17:49:19 2008 +0200"
  },
  "message": "x86 MCE: Fix CPU hotplug problem with multiple multicore AMD CPUs\n\nDuring CPU hot-remove the sysfs directory created by\nthreshold_create_bank(), defined in\narch/x86/kernel/cpu/mcheck/mce_amd_64.c, has to be removed before\nits parent directory, created by mce_create_device(), defined in\narch/x86/kernel/cpu/mcheck/mce_64.c .  Moreover, when the CPU in\nquestion is hotplugged again, obviously the latter has to be created\nbefore the former.  At present, the right ordering is not enforced,\nbecause all of these operations are carried out by CPU hotplug\nnotifiers which are not appropriately ordered with respect to each\nother.  This leads to serious problems on systems with two or more\nmulticore AMD CPUs, among other things during suspend and hibernation.\n\nFix the problem by placing threshold bank CPU hotplug callbacks in\nmce_cpu_callback(), so that they are invoked at the right places,\nif defined.  Additionally, use kobject_del() to remove the sysfs\ndirectory associated with the kobject created by\nkobject_create_and_add() in threshold_create_bank(), to prevent the\nkernel from crashing during CPU hotplug operations on systems with\ntwo or more multicore AMD CPUs.\n\nThis patch fixes bug #11337.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Andi Kleen \u003candi@firstfloor.org\u003e\nTested-by: Mark Langsdorf \u003cmark.langsdorf@amd.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "65a339678ece817b3b27fa56afb5ee97aae8d027",
      "old_mode": 33188,
      "old_path": "arch/x86/kernel/cpu/mcheck/mce_64.c",
      "new_id": "726a5fcdf34113efe492ecdaa324308aa1a61fbd",
      "new_mode": 33188,
      "new_path": "arch/x86/kernel/cpu/mcheck/mce_64.c"
    },
    {
      "type": "modify",
      "old_id": "88736cadbaa62d02e5e36671b06cfa512df7e683",
      "old_mode": 33188,
      "old_path": "arch/x86/kernel/cpu/mcheck/mce_amd_64.c",
      "new_id": "5eb390a4b2e9159d980fcfcbc68f8d1d4f42c258",
      "new_mode": 33188,
      "new_path": "arch/x86/kernel/cpu/mcheck/mce_amd_64.c"
    },
    {
      "type": "modify",
      "old_id": "94f1fd79e22a9512511b9660363290b535e7424e",
      "old_mode": 33188,
      "old_path": "include/asm-x86/mce.h",
      "new_id": "531eaa587455a90c2274ef5f5491e8214dd51ccf",
      "new_mode": 33188,
      "new_path": "include/asm-x86/mce.h"
    }
  ]
}
