)]}'
{
  "commit": "e532c06f2a835b5cc4f4166f467437d9b09c1d0e",
  "tree": "762fa0f0c22dc1af7d9d6e918f4d48ced8910a4e",
  "parents": [
    "39e00fe20aaad4326ed5e0e3221451732bc7f679"
  ],
  "author": {
    "name": "David Fries",
    "email": "david@fries.net",
    "time": "Sun Aug 17 23:03:40 2008 -0500"
  },
  "committer": {
    "name": "Ingo Molnar",
    "email": "mingo@elte.hu",
    "time": "Mon Aug 18 08:50:19 2008 +0200"
  },
  "message": "x86: fix i486 suspend to disk CR4 oops\n\narch/x86/power/cpu_32.c __save_processor_state calls read_cr4()\nonly a i486 CPU doesn\u0027t have the CR4 register.  Trying to read it\nproduces an invalid opcode oops during suspend to disk.\n\nUse the safe rc4 reading op instead. If the value to be written is\nzero the write is skipped.\n\narch/x86/power/hibernate_asm_32.S\ndone: swapped the use of %eax and %ecx to use jecxz for\nthe zero test and jump over store to %cr4.\nrestore_image: s/%ecx/%eax/ to be consistent with done:\n\nIn addition to __save_processor_state, acpi_save_state_mem,\nefi_call_phys_prelog, and efi_call_phys_epilog had checks added\n(acpi restore was in assembly and already had a check for\nnon-zero).  There were other reads and writes of CR4, but MCE and\nvirtualization shouldn\u0027t be executed on a i486 anyway.\n\nSigned-off-by: David Fries \u003cdavid@fries.net\u003e\nAcked-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "81e5ab6542d8e454f315b8c24426e5ec74058756",
      "old_mode": 33188,
      "old_path": "arch/x86/kernel/acpi/sleep.c",
      "new_id": "426e5d91b63a55d9b49d3387e2c40bb56306f104",
      "new_mode": 33188,
      "new_path": "arch/x86/kernel/acpi/sleep.c"
    },
    {
      "type": "modify",
      "old_id": "4b63c8e1f13b1b078a42dc113403c1952c52f3cc",
      "old_mode": 33188,
      "old_path": "arch/x86/kernel/efi_32.c",
      "new_id": "5cab48ee61a4a6e61e522117d97bbfdabaa95a6d",
      "new_mode": 33188,
      "new_path": "arch/x86/kernel/efi_32.c"
    },
    {
      "type": "modify",
      "old_id": "7dc5d5cf50a2c85c2cad15c84f5e455abd42a34e",
      "old_mode": 33188,
      "old_path": "arch/x86/power/cpu_32.c",
      "new_id": "d3e083dea7202c8b5c82e1d7378d947f9f2d42a3",
      "new_mode": 33188,
      "new_path": "arch/x86/power/cpu_32.c"
    },
    {
      "type": "modify",
      "old_id": "b95aa6cfe3cb207befad0a4337678317ec1f9606",
      "old_mode": 33188,
      "old_path": "arch/x86/power/hibernate_asm_32.S",
      "new_id": "4fc7e872c85e4e103039f582eea5050cfc7f2f4a",
      "new_mode": 33188,
      "new_path": "arch/x86/power/hibernate_asm_32.S"
    }
  ]
}
