)]}'
{
  "commit": "554af0c396380baf416f54c439b99b495180b2f4",
  "tree": "2f0a0838e7c4fd684846c531d3322fb7355eeb0e",
  "parents": [
    "08bccf43627e1972035c1fed5b4f570bdbde1b1e"
  ],
  "author": {
    "name": "James Hogan",
    "email": "james.hogan@imgtec.com",
    "time": "Wed Sep 07 13:37:01 2016 +0100"
  },
  "committer": {
    "name": "Ralf Baechle",
    "email": "ralf@linux-mips.org",
    "time": "Wed Sep 21 15:56:10 2016 +0200"
  },
  "message": "MIPS: vDSO: Fix Malta EVA mapping to vDSO page structs\n\nThe page structures associated with the vDSO pages in the kernel image\nare calculated using virt_to_page(), which uses __pa() under the hood to\nfind the pfn associated with the virtual address. The vDSO data pointers\nhowever point to kernel symbols, so __pa_symbol() should really be used\ninstead.\n\nSince there is no equivalent to virt_to_page() which uses __pa_symbol(),\nfix init_vdso_image() to work directly with pfns, calculated with\n__phys_to_pfn(__pa_symbol(...)).\n\nThis issue broke the Malta Enhanced Virtual Addressing (EVA)\nconfiguration which has a non-default implementation of __pa_symbol().\nThis is because it uses a physical alias so that the kernel executes\nfrom KSeg0 (VA 0x80000000 -\u003e PA 0x00000000), while RAM is provided to\nthe kernel in the KUSeg range (VA 0x00000000 -\u003e PA 0x80000000) which\nuses the same underlying RAM.\n\nSince there are no page structures associated with the low physical\naddress region, some arbitrary kernel memory would be interpreted as a\npage structure for the vDSO pages and badness ensues.\n\nFixes: ebb5e78cc634 (\"MIPS: Initial implementation of a VDSO\")\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\nCc: Leonid Yegoshin \u003cleonid.yegoshin@imgtec.com\u003e\nCc: linux-mips@linux-mips.org\nCc: \u003cstable@vger.kernel.org\u003e # 4.4.x-\nPatchwork: https://patchwork.linux-mips.org/patch/14229/\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9abe447a4b480a8254633fd1afa9f3f7dbac319e",
      "old_mode": 33188,
      "old_path": "arch/mips/kernel/vdso.c",
      "new_id": "f9dbfb14af3358e67b3ef3e922709ab38ba0bdd8",
      "new_mode": 33188,
      "new_path": "arch/mips/kernel/vdso.c"
    }
  ]
}
