)]}'
{
  "commit": "941f5f0f6ef5338814145cf2b813cf1f98873e2f",
  "tree": "b5bfebf297b5213cb5ef96af994c5cc84b64e9bb",
  "parents": [
    "5cb0512c02ecd7e6214e912e4c150f4219ac78e0"
  ],
  "author": {
    "name": "Rafael J. Wysocki",
    "email": "rafael.j.wysocki@intel.com",
    "time": "Fri Nov 03 16:35:49 2017 +0100"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Fri Nov 03 08:50:13 2017 -0700"
  },
  "message": "x86: CPU: Fix up \"cpu MHz\" in /proc/cpuinfo\n\nCommit 890da9cf0983 (Revert \"x86: do not use cpufreq_quick_get() for\n/proc/cpuinfo \"cpu MHz\"\") is not sufficient to restore the previous\nbehavior of \"cpu MHz\" in /proc/cpuinfo on x86 due to some changes\nmade after the commit it has reverted.\n\nTo address this, make the code in question use arch_freq_get_on_cpu()\nwhich also is used by cpufreq for reporting the current frequency of\nCPUs and since that function doesn\u0027t really depend on cpufreq in any\nway, drop the CONFIG_CPU_FREQ dependency for the object file\ncontaining it.\n\nAlso refactor arch_freq_get_on_cpu() somewhat to avoid IPIs and\nreturn cached values right away if it is called very often over a\nshort time (to prevent user space from triggering IPI storms through\nit).\n\nFixes: 890da9cf0983 (Revert \"x86: do not use cpufreq_quick_get() for /proc/cpuinfo \"cpu MHz\"\")\nCc: stable@kernel.org   # 4.13 - together with 890da9cf0983\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c60922a6638573f2adc06739ed8c1540de38f4ca",
      "old_mode": 33188,
      "old_path": "arch/x86/kernel/cpu/Makefile",
      "new_id": "236999c54edce69820fcf372a918db9899a5eef5",
      "new_mode": 33188,
      "new_path": "arch/x86/kernel/cpu/Makefile"
    },
    {
      "type": "modify",
      "old_id": "0ee83321a3136fcca7a00a3b7e6c375e7a51e13f",
      "old_mode": 33188,
      "old_path": "arch/x86/kernel/cpu/aperfmperf.c",
      "new_id": "957813e0180d278563bf33289c54c7462ca83a8a",
      "new_mode": 33188,
      "new_path": "arch/x86/kernel/cpu/aperfmperf.c"
    },
    {
      "type": "modify",
      "old_id": "6b7e17bf0b71dd63394b0ec5a83bea508c7ebfe9",
      "old_mode": 33188,
      "old_path": "arch/x86/kernel/cpu/proc.c",
      "new_id": "4378a729b933508e806d28045401d99781587c84",
      "new_mode": 33188,
      "new_path": "arch/x86/kernel/cpu/proc.c"
    }
  ]
}
