)]}'
{
  "commit": "a1833a54033e4ca760ad58fa2a6469ad59b3fa1a",
  "tree": "da9859c9a4c168edf8e09287b51122acba6b9d5c",
  "parents": [
    "3c0ce1497a449b0d150b455628947152c5f6216a"
  ],
  "author": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Sun Jul 25 11:06:37 2021 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Sun Jul 25 11:06:37 2021 -0700"
  },
  "message": "smpboot: fix duplicate and misplaced inlining directive\n\ngcc doesn\u0027t care, but clang quite reasonably pointed out that the recent\ncommit e9ba16e68cce (\"smpboot: Mark idle_init() as __always_inlined to\nwork around aggressive compiler un-inlining\") did some really odd\nthings:\n\n    kernel/smpboot.c:50:20: warning: duplicate \u0027inline\u0027 declaration specifier [-Wduplicate-decl-specifier]\n    static inline void __always_inline idle_init(unsigned int cpu)\n                       ^\n\nwhich not only has that duplicate inlining specifier, but the new\n__always_inline was put in the wrong place of the function definition.\n\nWe put the storage class specifiers (ie things like \"static\" and\n\"extern\") first, and the type information after that.  And while the\ncompiler may not care, we put the inline specifier before the types.\n\nSo it should be just\n\n    static __always_inline void idle_init(unsigned int cpu)\n\ninstead.\n\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "21b7953f824215608bd786fd8fadff92e6c057c2",
      "old_mode": 33188,
      "old_path": "kernel/smpboot.c",
      "new_id": "cf6acab78538487105539025fca3d0dc84721c4b",
      "new_mode": 33188,
      "new_path": "kernel/smpboot.c"
    }
  ]
}
