)]}'
{
  "commit": "bb190acea829443e0be1cd6dc87837df03b39083",
  "tree": "3ad7c5d15fecec6627e10b7ac7d619d4e221613c",
  "parents": [
    "79ffdc486e1eb4316d34394dbc611e693a35401a"
  ],
  "author": {
    "name": "Paul Burton",
    "email": "paul.burton@mips.com",
    "time": "Tue Aug 21 12:12:59 2018 -0700"
  },
  "committer": {
    "name": "Greg Kroah-Hartman",
    "email": "gregkh@linuxfoundation.org",
    "time": "Wed Sep 05 09:18:40 2018 +0200"
  },
  "message": "MIPS: lib: Provide MIPS64r6 __multi3() for GCC \u003c 7\n\ncommit 690d9163bf4b8563a2682e619f938e6a0443947f upstream.\n\nSome versions of GCC suboptimally generate calls to the __multi3()\nintrinsic for MIPS64r6 builds, resulting in link failures due to the\nmissing function:\n\n    LD      vmlinux.o\n    MODPOST vmlinux.o\n  kernel/bpf/verifier.o: In function `kmalloc_array\u0027:\n  include/linux/slab.h:631: undefined reference to `__multi3\u0027\n  fs/select.o: In function `kmalloc_array\u0027:\n  include/linux/slab.h:631: undefined reference to `__multi3\u0027\n  ...\n\nWe already have a workaround for this in which we provide the\ninstrinsic, but we do so selectively for GCC 7 only. Unfortunately the\nissue occurs with older GCC versions too - it has been observed with\nboth GCC 5.4.0 \u0026 GCC 6.4.0.\n\nMIPSr6 support was introduced in GCC 5, so all major GCC versions prior\nto GCC 8 are affected and we extend our workaround accordingly to all\nMIPS64r6 builds using GCC versions older than GCC 8.\n\nSigned-off-by: Paul Burton \u003cpaul.burton@mips.com\u003e\nReported-by: Vladimir Kondratiev \u003cvladimir.kondratiev@intel.com\u003e\nFixes: ebabcf17bcd7 (\"MIPS: Implement __multi3 for GCC7 MIPS64r6 builds\")\nPatchwork: https://patchwork.linux-mips.org/patch/20297/\nCc: James Hogan \u003cjhogan@kernel.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: linux-mips@linux-mips.org\nCc: stable@vger.kernel.org # 4.15+\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "111ad475aa0cdd111ebe362af928414d9499f666",
      "old_mode": 33188,
      "old_path": "arch/mips/lib/multi3.c",
      "new_id": "4c2483f410c26b5b65ded652c1b0694b06a9bf92",
      "new_mode": 33188,
      "new_path": "arch/mips/lib/multi3.c"
    }
  ]
}
