)]}'
{
  "commit": "bff5ed3e7f348aea99eef9e21eca35460e4b9036",
  "tree": "afbf4338cded165a3313997681da102ac569b6a9",
  "parents": [
    "3d0089f08712392e5340ad5cffbdb60baefff72c"
  ],
  "author": {
    "name": "Christophe Leroy",
    "email": "christophe.leroy@csgroup.eu",
    "time": "Mon Mar 14 12:49:36 2022 +0100"
  },
  "committer": {
    "name": "Greg Kroah-Hartman",
    "email": "gregkh@linuxfoundation.org",
    "time": "Wed Apr 13 20:03:26 2022 +0200"
  },
  "message": "static_call: Don\u0027t make __static_call_return0 static\n\ncommit 8fd4ddda2f49a66bf5dd3d0c01966c4b1971308b upstream.\n\nSystem.map shows that vmlinux contains several instances of\n__static_call_return0():\n\n\tc0004fc0 t __static_call_return0\n\tc0011518 t __static_call_return0\n\tc00d8160 t __static_call_return0\n\narch_static_call_transform() uses the middle one to check whether we are\nsetting a call to __static_call_return0 or not:\n\n\tc0011520 \u003carch_static_call_transform\u003e:\n\tc0011520:       3d 20 c0 01     lis     r9,-16383\t\u003c\u003d\u003d r9 \u003d  0xc001 \u003c\u003c 16\n\tc0011524:       39 29 15 18     addi    r9,r9,5400\t\u003c\u003d\u003d r9 +\u003d 0x1518\n\tc0011528:       7c 05 48 00     cmpw    r5,r9\t\t\u003c\u003d\u003d r9 has value 0xc0011518 here\n\nSo if static_call_update() is called with one of the other instances of\n__static_call_return0(), arch_static_call_transform() won\u0027t recognise it.\n\nIn order to work properly, global single instance of __static_call_return0() is required.\n\nFixes: 3f2a8fc4b15d (\"static_call/x86: Add __static_call_return0()\")\nSigned-off-by: Christophe Leroy \u003cchristophe.leroy@csgroup.eu\u003e\nSigned-off-by: Peter Zijlstra (Intel) \u003cpeterz@infradead.org\u003e\nAcked-by: Josh Poimboeuf \u003cjpoimboe@redhat.com\u003e\nLink: https://lkml.kernel.org/r/30821468a0e7d28251954b578e5051dc09300d04.1647258493.git.christophe.leroy@csgroup.eu\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3e56a9751c062804b7f5f3db993144c0d4438a65",
      "old_mode": 33188,
      "old_path": "include/linux/static_call.h",
      "new_id": "fcc5b48989b3ca194dad1d111e2bce33eca53fe8",
      "new_mode": 33188,
      "new_path": "include/linux/static_call.h"
    },
    {
      "type": "modify",
      "old_id": "186c49582f45b65e8ab284905203cbe95b6e5d5e",
      "old_mode": 33188,
      "old_path": "kernel/Makefile",
      "new_id": "8020b4a07b8737e312ddb072554f81fb4a665e6c",
      "new_mode": 33188,
      "new_path": "kernel/Makefile"
    },
    {
      "type": "modify",
      "old_id": "43ba0b1e0edbb935782675284e0d1cd28846f12b",
      "old_mode": 33188,
      "old_path": "kernel/static_call.c",
      "new_id": "e9c3e69f383792464c01b2aec9e63967829537f9",
      "new_mode": 33188,
      "new_path": "kernel/static_call.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "dc5665b628140ee9b0a841011a4ae495d2c9eee8",
      "new_mode": 33188,
      "new_path": "kernel/static_call_inline.c"
    }
  ]
}
