)]}'
{
  "commit": "0ae4fd9024fd15a2d5cf6a50d4bc116e6ea9d5fe",
  "tree": "0366ce3124e9d1427883b24b706b8915a0d0c01a",
  "parents": [
    "4805211684efad5dff777b1e1846bc6e0aff6da4"
  ],
  "author": {
    "name": "M. Vefa Bicakci",
    "email": "m.v.b@runbox.com",
    "time": "Tue Jul 24 08:45:47 2018 -0400"
  },
  "committer": {
    "name": "Greg Kroah-Hartman",
    "email": "gregkh@linuxfoundation.org",
    "time": "Fri Aug 17 21:03:48 2018 +0200"
  },
  "message": "xen/pv: Call get_cpu_address_sizes to set x86_virt/phys_bits\n\ncommit 405c018a25fe464dc68057bbc8014a58f2bd4422 upstream.\n\nCommit d94a155c59c9 (\"x86/cpu: Prevent cpuinfo_x86::x86_phys_bits\nadjustment corruption\") has moved the query and calculation of the\nx86_virt_bits and x86_phys_bits fields of the cpuinfo_x86 struct\nfrom the get_cpu_cap function to a new function named\nget_cpu_address_sizes.\n\nOne of the call sites related to Xen PV VMs was unfortunately missed\nin the aforementioned commit. This prevents successful boot-up of\nkernel versions 4.17 and up in Xen PV VMs if CONFIG_DEBUG_VIRTUAL\nis enabled, due to the following code path:\n\n  enlighten_pv.c::xen_start_kernel\n    mmu_pv.c::xen_reserve_special_pages\n      page.h::__pa\n        physaddr.c::__phys_addr\n          physaddr.h::phys_addr_valid\n\nphys_addr_valid uses boot_cpu_data.x86_phys_bits to validate physical\naddresses. boot_cpu_data.x86_phys_bits is no longer populated before\nthe call to xen_reserve_special_pages due to the aforementioned commit\nthough, so the validation performed by phys_addr_valid fails, which\ncauses __phys_addr to trigger a BUG, preventing boot-up.\n\nSigned-off-by: M. Vefa Bicakci \u003cm.v.b@runbox.com\u003e\nReviewed-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReviewed-by: Boris Ostrovsky \u003cboris.ostrovsky@oracle.com\u003e\nCc: \"Kirill A. Shutemov\" \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Andy Lutomirski \u003cluto@kernel.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Boris Ostrovsky \u003cboris.ostrovsky@oracle.com\u003e\nCc: Juergen Gross \u003cjgross@suse.com\u003e\nCc: xen-devel@lists.xenproject.org\nCc: x86@kernel.org\nCc: stable@vger.kernel.org # for v4.17 and up\nFixes: d94a155c59c9 (\"x86/cpu: Prevent cpuinfo_x86::x86_phys_bits adjustment corruption\")\nSigned-off-by: Boris Ostrovsky \u003cboris.ostrovsky@oracle.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9eda6f730ec4e76db3da660da8383ce83490c305",
      "old_mode": 33188,
      "old_path": "arch/x86/kernel/cpu/common.c",
      "new_id": "b41b72bd8bb85a71b1bfa391242bae798839bb5e",
      "new_mode": 33188,
      "new_path": "arch/x86/kernel/cpu/common.c"
    },
    {
      "type": "modify",
      "old_id": "e59c0ea82a33ac5eda46b0f012cbc9b3dbd95def",
      "old_mode": 33188,
      "old_path": "arch/x86/kernel/cpu/cpu.h",
      "new_id": "7b229afa0a37a6a5bd6c910eaaa2e515fb562e82",
      "new_mode": 33188,
      "new_path": "arch/x86/kernel/cpu/cpu.h"
    },
    {
      "type": "modify",
      "old_id": "439a94bf89adb7d013afc084e0e69da6f25222db",
      "old_mode": 33188,
      "old_path": "arch/x86/xen/enlighten_pv.c",
      "new_id": "c5e3f2acc7f0acab01dd529e6fce003d196b2019",
      "new_mode": 33188,
      "new_path": "arch/x86/xen/enlighten_pv.c"
    }
  ]
}
