)]}'
{
  "log": [
    {
      "commit": "4419fbd4b408c3a8634b3a8dd952055d0f0b601f",
      "tree": "dfa48db949d2b092a92a5adb3c070db6287a37be",
      "parents": [
        "95ecb407699825278f4031f153dbbe0f0713ff28",
        "191e5edf96dc4939f5db0605cc65de9f4d88d155"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Fri Feb 15 13:59:07 2013 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Fri Feb 15 13:59:07 2013 +0100"
      },
      "message": "Merge branch \u0027pm-cpufreq\u0027\n\n* pm-cpufreq: (55 commits)\n  cpufreq / intel_pstate: Fix 32 bit build\n  cpufreq: conservative: Fix typos in comments\n  cpufreq: ondemand: Fix typos in comments\n  cpufreq: exynos: simplify .init() for setting policy-\u003ecpus\n  cpufreq: kirkwood: Add a cpufreq driver for Marvell Kirkwood SoCs\n  cpufreq/x86: Add P-state driver for sandy bridge.\n  cpufreq_stats: do not remove sysfs files if frequency table is not present\n  cpufreq: Do not track governor name for scaling drivers with internal governors.\n  cpufreq: Only call cpufreq_out_of_sync() for driver that implement cpufreq_driver.target()\n  cpufreq: Retrieve current frequency from scaling drivers with internal governors\n  cpufreq: Fix locking issues\n  cpufreq: Create a macro for unlock_policy_rwsem{read,write}\n  cpufreq: Remove unused HOTPLUG_CPU code\n  cpufreq: governors: Fix WARN_ON() for multi-policy platforms\n  cpufreq: ondemand: Replace down_differential tuner with adj_up_threshold\n  cpufreq / stats: Get rid of CPUFREQ_STATDEVICE_ATTR\n  cpufreq: Don\u0027t check cpu_online(policy-\u003ecpu)\n  cpufreq: add imx6q-cpufreq driver\n  cpufreq: Don\u0027t remove sysfs link for policy-\u003ecpu\n  cpufreq: Remove unnecessary use of policy-\u003eshared_type\n  ...\n"
    },
    {
      "commit": "fa69e33f7d38e658583ff910642da7ea4515ad74",
      "tree": "6fc7e05604cb6fda2e0f9c6da361d761ec362a46",
      "parents": [
        "f6b0515b078f641d00ca531a9f0ae34f3b05ec20"
      ],
      "author": {
        "name": "Dirk Brandewie",
        "email": "dirk.brandewie@gmail.com",
        "time": "Wed Feb 06 09:02:11 2013 -0800"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sat Feb 09 12:55:53 2013 +0100"
      },
      "message": "cpufreq: Do not track governor name for scaling drivers with internal governors.\n\nScaling drivers that implement internal governors do not have governor\nstructures assocaited with them.  Only track the name of the governor\nassociated with the CPU if the driver does not implement\ncpufreq_driver.setpolicy()\n\nSigned-off-by: Dirk Brandewie \u003cdirk.j.brandewie@intel.com\u003e\nAcked-by: Viresh Kumar \u003cviresh.kumar@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "f6b0515b078f641d00ca531a9f0ae34f3b05ec20",
      "tree": "e2ba8cb57e5f2510d6504f1ce047912bd3cb5064",
      "parents": [
        "9e21ba8bd849251c8ba22ddf39308a5227134fdc"
      ],
      "author": {
        "name": "Dirk Brandewie",
        "email": "dirk.brandewie@gmail.com",
        "time": "Wed Feb 06 09:02:09 2013 -0800"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sat Feb 09 12:55:47 2013 +0100"
      },
      "message": "cpufreq: Only call cpufreq_out_of_sync() for driver that implement cpufreq_driver.target()\n\nScaling drivers that implement cpufreq_driver.setpolicy() have\ninternal governors that do not signal changes via\ncpufreq_notify_transition() so the frequncy in the policy will almost\ncertainly be different than the current frequncy.  Only call\ncpufreq_out_of_sync() when the underlying driver implements\ncpufreq_driver.target()\n\nSigned-off-by: Dirk Brandewie \u003cdirk.j.brandewie@intel.com\u003e\nAcked-by: Viresh Kumar \u003cviresh.kumar@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "9e21ba8bd849251c8ba22ddf39308a5227134fdc",
      "tree": "5e7066d016fcd32589146bee014bca8d91366658",
      "parents": [
        "2eaa3e2df185997e92596ab14a2a67dde3876d2e"
      ],
      "author": {
        "name": "Dirk Brandewie",
        "email": "dirk.brandewie@gmail.com",
        "time": "Wed Feb 06 09:02:08 2013 -0800"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sat Feb 09 12:55:03 2013 +0100"
      },
      "message": "cpufreq: Retrieve current frequency from scaling drivers with internal governors\n\nScaling drivers that implement the cpufreq_driver.setpolicy() versus\nthe cpufreq_driver.target() interface do not set policy-\u003ecur.\n\nNormally policy-\u003ecur is set during the call to cpufreq_driver.target()\nwhen the frequnecy request is made by the governor.\n\nIf the scaling driver implements cpufreq_driver.setpolicy() and\ncpufreq_driver.get() interfaces use cpufreq_driver.get() to retrieve\nthe current frequency.\n\nSigned-off-by: Dirk Brandewie \u003cdirk.j.brandewie@intel.com\u003e\nAcked-by: Viresh Kumar \u003cviresh.kumar@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "2eaa3e2df185997e92596ab14a2a67dde3876d2e",
      "tree": "e345655a2cb6c44d4c1fe9f3727fc4117f4ca1dc",
      "parents": [
        "fa1d8af47f42671fa82779582ca60948f876a73e"
      ],
      "author": {
        "name": "Viresh Kumar",
        "email": "viresh.kumar@linaro.org",
        "time": "Thu Feb 07 10:55:00 2013 +0530"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sat Feb 09 01:22:57 2013 +0100"
      },
      "message": "cpufreq: Fix locking issues\n\ncpufreq core uses two locks:\n- cpufreq_driver_lock: General lock for driver and cpufreq_cpu_data array.\n- cpu_policy_rwsemfix locking: per CPU reader-writer semaphore designed to cure\n  all cpufreq/hotplug/workqueue/etc related lock issues.\n\nThese locks were not used properly and are placed against their principle\n(present before their definition) at various places. This patch is an attempt to\nfix their use.\n\nSigned-off-by: Viresh Kumar \u003cviresh.kumar@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "fa1d8af47f42671fa82779582ca60948f876a73e",
      "tree": "71d965651d01d37011065f4536330d0698a7579d",
      "parents": [
        "65922465b5bc76b11181a7d3a6c936bb475775a3"
      ],
      "author": {
        "name": "Viresh Kumar",
        "email": "viresh.kumar@linaro.org",
        "time": "Thu Feb 07 15:38:42 2013 +0530"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sat Feb 09 01:22:06 2013 +0100"
      },
      "message": "cpufreq: Create a macro for unlock_policy_rwsem{read,write}\n\nOn the lines of macro: lock_policy_rwsem, we can create another macro for\nunlock_policy_rwsem. Lets do it.\n\nSigned-off-by: Viresh Kumar \u003cviresh.kumar@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "65922465b5bc76b11181a7d3a6c936bb475775a3",
      "tree": "678ac52af9cbffcd7f38bc69209d0c11469caf31",
      "parents": [
        "8e53695f7f1d005fd1fcd3b099cd1bd73683a9f5"
      ],
      "author": {
        "name": "Viresh Kumar",
        "email": "viresh.kumar@linaro.org",
        "time": "Thu Feb 07 10:56:03 2013 +0530"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sat Feb 09 01:21:37 2013 +0100"
      },
      "message": "cpufreq: Remove unused HOTPLUG_CPU code\n\nBecause the sibling cpu of any online cpu is identified very early in\ncpufreq_add_dev(), below code is never executed. And so can be removed.\n\nSigned-off-by: Viresh Kumar \u003cviresh.kumar@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "8e53695f7f1d005fd1fcd3b099cd1bd73683a9f5",
      "tree": "12fea44f84d19819b8b07c1b1e8dcaf0a5952e00",
      "parents": [
        "4bd4e42819c7b5b2d608b353f4d9a7717e586479"
      ],
      "author": {
        "name": "Viresh Kumar",
        "email": "viresh.kumar@linaro.org",
        "time": "Thu Feb 07 12:51:27 2013 +0530"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sat Feb 09 01:21:13 2013 +0100"
      },
      "message": "cpufreq: governors: Fix WARN_ON() for multi-policy platforms\n\nOn multi-policy systems there is a single instance of governor for both the\npolicies (if same governor is chosen for both policies). With the code update\nfrom following patches:\n\n8eeed09 cpufreq: governors: Get rid of dbs_data-\u003eenable field\nb394058 cpufreq: governors: Reset tunables only for cpufreq_unregister_governor()\n\nWe are creating/removing sysfs directory of governor for for every call to\nGOV_START and STOP. This would fail for multi-policy system as there is a\nper-policy call to START/STOP.\n\nThis patch reuses the governor-\u003einitialized variable to detect total users of\ngovernor.\n\nSigned-off-by: Viresh Kumar \u003cviresh.kumar@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "3361b7b173341fdaa85153e1b322099949c9f8c8",
      "tree": "e40cad5ff71df10ff9ce2cb629ae461f2defd14e",
      "parents": [
        "1dd538f072f0b7ba327613253d41ebb329c6d490"
      ],
      "author": {
        "name": "Viresh Kumar",
        "email": "viresh.kumar@linaro.org",
        "time": "Mon Feb 04 11:38:51 2013 +0000"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sat Feb 09 01:18:34 2013 +0100"
      },
      "message": "cpufreq: Don\u0027t check cpu_online(policy-\u003ecpu)\n\npolicy-\u003ecpu or cpus in policy-\u003ecpus can\u0027t be offline anymore. And so we don\u0027t\nneed to check if they are online or not.\n\nSigned-off-by: Viresh Kumar \u003cviresh.kumar@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "73bf0fc2b03d1f4fdada0ec430dc20bfb089cfd5",
      "tree": "d2140fed485ae5c577ebcb321ef9e379cbccc3f3",
      "parents": [
        "62b36cc1c83aca1cd252772e82cbc5d9ef8ff25b"
      ],
      "author": {
        "name": "Viresh Kumar",
        "email": "viresh.kumar@linaro.org",
        "time": "Tue Feb 05 22:21:14 2013 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Tue Feb 05 22:21:14 2013 +0100"
      },
      "message": "cpufreq: Don\u0027t remove sysfs link for policy-\u003ecpu\n\n\"cpufreq\" directory in policy-\u003ecpu is never created using\nsysfs_create_link(), but using kobject_init_and_add(). And so we\nshouldn\u0027t call sysfs_remove_link() for policy-\u003ecpu().  sysfs stuff\nfor policy-\u003ecpu is automatically removed when we call kobject_put()\nfor dying policy.\n\nSigned-off-by: Viresh Kumar \u003cviresh.kumar@linaro.org\u003e\nTested-by: Dirk Brandewie \u003cdirk.brandewie@gmail.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "b394058f064848deac7a7cd6942b6521d7b3fe1d",
      "tree": "2e6272ca452cf2d116f00a561344a4672f751063",
      "parents": [
        "4447266b842d27f77b017a59eb9dc38ad7b299f1"
      ],
      "author": {
        "name": "Viresh Kumar",
        "email": "viresh.kumar@linaro.org",
        "time": "Fri Feb 01 05:42:58 2013 +0000"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sat Feb 02 01:29:31 2013 +0100"
      },
      "message": "cpufreq: governors: Reset tunables only for cpufreq_unregister_governor()\n\nCurrently, whenever governor-\u003egovernor() is called for CPUFRREQ_GOV_START event\nwe reset few tunables of governor. Which isn\u0027t correct, as this routine is\ncalled for every cpu hot-[un]plugging event. We should actually be resetting\nthese only when the governor module is removed and re-installed.\n\nSigned-off-by: Viresh Kumar \u003cviresh.kumar@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "fcf8058296edbc3de43adf095824fc32b067b9f8",
      "tree": "7f290019ecffbe50af0f4012eeadf4f08e162bb3",
      "parents": [
        "b26f72042e433642787e51fb3f40dbdd9969f6e1"
      ],
      "author": {
        "name": "Viresh Kumar",
        "email": "viresh.kumar@linaro.org",
        "time": "Tue Jan 29 14:39:08 2013 +0000"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sat Feb 02 00:01:16 2013 +0100"
      },
      "message": "cpufreq: Simplify cpufreq_add_dev()\n\nCurrently cpufreq_add_dev() firsts allocates policy, calls\ndriver-\u003einit() and then checks if this CPU is already managed or not.\nAnd if it is already managed, its policy is freed.\n\nWe can save all this if we somehow know that CPU is managed or not in\nadvance.  policy-\u003erelated_cpus contains the list of all valid sibling\nCPUs of policy-\u003ecpu. We can check this to see if the current CPU is\nalready managed.\n\nFrom now on, platforms don\u0027t really need to set related_cpus from\ntheir init() routines, as the same work is done by core too.\n\nIf a platform driver needs to set the related_cpus mask with some\nadditional CPUs, other than CPUs present in policy-\u003ecpus, they are\nfree to do it, though, as we don\u0027t override anything.\n\n[rjw: Changelog]\nSigned-off-by: Viresh Kumar \u003cviresh.kumar@linaro.org\u003e\nTested-by: Shawn Guo \u003cshawn.guo@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "b26f72042e433642787e51fb3f40dbdd9969f6e1",
      "tree": "358fad67d8ca4590d6ea2d450eab4e37451db79a",
      "parents": [
        "74c46c6eaf9724edbfc12cc67e62773b708eb2ed"
      ],
      "author": {
        "name": "Viresh Kumar",
        "email": "viresh.kumar@linaro.org",
        "time": "Tue Jan 29 04:40:00 2013 +0000"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sat Feb 02 00:01:16 2013 +0100"
      },
      "message": "cpufreq: Revert \"cpufreq: Don\u0027t use cpu removed during cpufreq_driver_unregister\"\n\nThis reverts commit 956f339 \"cpufreq: Don\u0027t use cpu removed during\ncpufreq_driver_unregister\".\n\nWith the addition of the following commit, this change/variable is not\nrequired any more:\n\ncommit b9ba2725343ae57add3f324dfa5074167f48de96\nAuthor: Viresh Kumar \u003cviresh.kumar@linaro.org\u003e\nDate:   Mon Jan 14 13:23:03 2013 +0000\n\n    cpufreq: Simplify __cpufreq_remove_dev()\n\n[rjw: Subject and changelog]\nSigned-off-by: Viresh Kumar \u003cviresh.kumar@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "9d95046e5d6afd6d7ae86fb71ab59c6faf0db8de",
      "tree": "f5f4314238fbc548ec9e3ab48affeeb8682577c8",
      "parents": [
        "741220ea86709717e1d392b5a9617dfe90cd3802"
      ],
      "author": {
        "name": "Borislav Petkov",
        "email": "bp@suse.de",
        "time": "Sun Jan 20 10:24:28 2013 +0000"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sat Feb 02 00:01:15 2013 +0100"
      },
      "message": "cpufreq: Add a get_current_driver helper\n\nAdd a helper function to return cpufreq_driver-\u003ename.\n\nSigned-off-by: Borislav Petkov \u003cbp@suse.de\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "d5aaffa9dd531c978c6f3fea06a2972653bd7fc8",
      "tree": "4ce3e3de25daaaf25b5fa09f4596314b3b68de4d",
      "parents": [
        "b8eed8af94f9203e0cc39245ea335f4b8dc1ed31"
      ],
      "author": {
        "name": "Dirk Brandewie",
        "email": "dirk.j.brandewie@intel.com",
        "time": "Thu Jan 17 16:22:21 2013 +0000"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sat Feb 02 00:01:14 2013 +0100"
      },
      "message": "cpufreq: handle cpufreq being disabled for all exported function.\n\nWhen disable_cpufreq() is called some exported functions are still\nbeing used that do not have a check for cpufreq being disabled.\n\nAdd a disabled check into cpufreq_cpu_get() to return NULL if\ncpufreq is disabled this covers most of the exported functions. For\nthe exported functions that do not call cpufreq_cpu_get() add an\nexplicit check.\n\nSigned-off-by: Dirk Brandewie \u003cdirk.j.brandewie@intel.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "b8eed8af94f9203e0cc39245ea335f4b8dc1ed31",
      "tree": "39c9e57baa6daf91295c331c6b995c9d6286b2bc",
      "parents": [
        "f85178048c083520bd920921744dd2c4a797fbc5"
      ],
      "author": {
        "name": "Viresh Kumar",
        "email": "viresh.kumar@linaro.org",
        "time": "Mon Jan 14 13:23:03 2013 +0000"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sat Feb 02 00:01:14 2013 +0100"
      },
      "message": "cpufreq: Simplify __cpufreq_remove_dev()\n\n__cpufreq_remove_dev() is called on multiple occasions: cpufreq_driver\nunregister and cpu removals.\n\nCurrent implementation of this routine is overly complex without much need. If\nthe cpu to be removed is the policy-\u003ecpu, we remove the policy first and add all\nother cpus again from policy-\u003ecpus and then finally call __cpufreq_remove_dev()\nagain to remove the cpu to be deleted. Haahhhh..\n\nThere exist a simple solution to removal of a cpu:\n- Simply use the old policy structure\n- update its fields like: policy-\u003ecpu, etc.\n- notify any users of cpufreq, which depend on changing policy-\u003ecpu\n\nHence this patch, which tries to implement the above theory. It is tested well\nby myself on ARM big.LITTLE TC2 SoC, which has 5 cores (2 A15 and 3 A7). Both\nA15\u0027s share same struct policy and all A7\u0027s share same policy structure.\n\nSigned-off-by: Viresh Kumar \u003cviresh.kumar@linaro.org\u003e\nTested-by: Shawn Guo \u003cshawn.guo@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "6954ca9c8b5cbaf45c3e45a5a5a7450c6b55ab27",
      "tree": "a888e21ecf2e7d72b778826f39c71a96dcc9bfa7",
      "parents": [
        "f6a7409cab3b525c5e55540e7cd08d23e198352f"
      ],
      "author": {
        "name": "Viresh Kumar",
        "email": "viresh.kumar@linaro.org",
        "time": "Sat Jan 12 05:14:40 2013 +0000"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sat Feb 02 00:01:14 2013 +0100"
      },
      "message": "cpufreq: Don\u0027t use cpu removed during cpufreq_driver_unregister\n\nThis is how the core works:\ncpufreq_driver_unregister()\n - subsys_interface_unregister()\n   - for_each_cpu() call cpufreq_remove_dev(), i.e. 0,1,2,3,4 when we\n     unregister.\n\ncpufreq_remove_dev():\n - Remove policy node\n - Call cpufreq_add_dev() for next cpu, sharing mask with removed cpu.\n   i.e. When cpu 0 is removed, we call it for cpu 1. And when called for cpu 2,\n   we call it for cpu 3.\n   - cpufreq_add_dev() would call cpufreq_driver-\u003einit()\n   - init would return mask as AND of 2, 3 and 4 for cluster A7.\n   - cpufreq core would do online_cpu \u0026\u0026 policy-\u003ecpus\n     Here is the BUG(). Because cpu hasn\u0027t died but we have just unregistered\n     the cpufreq driver, online cpu would still have cpu 2 in it. And so thing\n     go bad again.\n\nSolution: Keep cpumask of cpus that are registered with cpufreq core and clear\n\t  cpus when we get a call from subsys_interface_unregister() via\n\t  cpufreq_remove_dev().\n\nSigned-off-by: Viresh Kumar \u003cviresh.kumar@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "f6a7409cab3b525c5e55540e7cd08d23e198352f",
      "tree": "90b912c47fee9f524731436a88b5f0bf0e4b3fa0",
      "parents": [
        "643ae6e81dd65b333a13259852405fc9f764ac76"
      ],
      "author": {
        "name": "Viresh Kumar",
        "email": "viresh.kumar@linaro.org",
        "time": "Sat Jan 12 05:14:39 2013 +0000"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sat Feb 02 00:01:14 2013 +0100"
      },
      "message": "cpufreq: Notify governors when cpus are hot-[un]plugged\n\nBecause cpufreq core and governors worry only about the online cpus, if a cpu is\nhot [un]plugged, we must notify governors about it, otherwise be ready to expect\nsomething unexpected.\n\nWe already have notifiers in the form of CPUFREQ_GOV_START/CPUFREQ_GOV_STOP, we\njust need to call them now.\n\nSigned-off-by: Viresh Kumar \u003cviresh.kumar@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "643ae6e81dd65b333a13259852405fc9f764ac76",
      "tree": "f8ce2a955d9aabdab9834caa167a7d5d1a174827",
      "parents": [
        "8ee2ec51d0916b8c8c4387fb6da5904900ef6b98"
      ],
      "author": {
        "name": "Viresh Kumar",
        "email": "viresh.kumar@linaro.org",
        "time": "Sat Jan 12 05:14:38 2013 +0000"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sat Feb 02 00:01:14 2013 +0100"
      },
      "message": "cpufreq: Manage only online cpus\n\ncpufreq core doesn\u0027t manage offline cpus and if driver-\u003einit() has returned\nmask including offline cpus, it may result in unwanted behavior by cpufreq core\nor governors.\n\nWe need to get only online cpus in this mask. There are two places to fix this\nmask, cpufreq core and cpufreq driver. It makes sense to do this at common place\nand hence is done in core.\n\nSigned-off-by: Viresh Kumar \u003cviresh.kumar@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "43720bd6014327ac454434496cb953edcdb9f8d6",
      "tree": "be134a588abb3164b7c5f9093707e536f9c54a05",
      "parents": [
        "ed1ac6e91a3ff7c561008ba57747cd6cbc49385e"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Fri Jan 11 13:43:45 2013 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sat Jan 26 00:39:12 2013 +0100"
      },
      "message": "PM / tracing: remove deprecated power trace API\n\nThe text in Documentation said it would be removed in 2.6.41;\nthe text in the Kconfig said removal in the 3.1 release.  Either\nway you look at it, we are well past both, so push it off a cliff.\n\nNote that the POWER_CSTATE and the POWER_PSTATE are part of the\nlegacy tracing API.  Remove all tracepoints which use these flags.\nAs can be seen from context, most already have a trace entry via\ntrace_cpu_idle anyways.\n\nAlso, the cpufreq/cpufreq.c PSTATE one is actually unpaired, as\ncompared to the CSTATE ones which all have a clear start/stop.\nAs part of this, the trace_power_frequency also becomes orphaned,\nso it too is deleted.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "f55c9c26278b0fcfa3336eccbba3d8a782da8aed",
      "tree": "7fba6e99a216987f37b69aaf0956aa9ef39c374f",
      "parents": [
        "7249924e537816368c4a35afd97ab311f75a6368"
      ],
      "author": {
        "name": "Jingoo Han",
        "email": "jg1.han@samsung.com",
        "time": "Wed Oct 31 05:49:13 2012 +0000"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Nov 15 00:33:09 2012 +0100"
      },
      "message": "cpufreq: Remove unnecessary initialization of a local variable\n\nRemove an unnecessary initializer for the \u0027ret\u0027 variable in\n__cpufreq_set_policy().\n\n[rjw: Modified the subject and changelog slightly.]\nSigned-off-by: Jingoo Han \u003cjg1.han@samsung.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "7249924e537816368c4a35afd97ab311f75a6368",
      "tree": "a332ffc88c23988b4add2bab60705357a230b705",
      "parents": [
        "5a1c022850ea5d64c2997bf9b89f5ae112d5ee4d"
      ],
      "author": {
        "name": "Viresh Kumar",
        "email": "viresh.kumar@linaro.org",
        "time": "Wed Oct 31 01:28:21 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Nov 15 00:33:09 2012 +0100"
      },
      "message": "cpufreq: Make sure target freq is within limits\n\n__cpufreq_driver_target() must not pass target frequency beyond the\nlimits of current policy.\n\nToday most of cpufreq platform drivers are doing this check in their\ntarget routines. Why not move it to __cpufreq_driver_target()?\n\nSigned-off-by: Viresh Kumar \u003cviresh.kumar@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "5a1c022850ea5d64c2997bf9b89f5ae112d5ee4d",
      "tree": "a6ee4f063d362d456fe3e8c8475bf441aa51dfd8",
      "parents": [
        "da58445570326ac2a342770a9c9a2646276e1721"
      ],
      "author": {
        "name": "Viresh Kumar",
        "email": "viresh.kumar@linaro.org",
        "time": "Wed Oct 31 01:28:15 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Nov 15 00:33:09 2012 +0100"
      },
      "message": "cpufreq: Avoid calling cpufreq driver\u0027s target() routine if target_freq \u003d\u003d policy-\u003ecur\n\nAvoid calling cpufreq driver\u0027s target() routine if new frequency is same as\npolicies current frequency.\n\nSigned-off-by: Viresh Kumar \u003cviresh.kumar@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "da58445570326ac2a342770a9c9a2646276e1721",
      "tree": "dc598154919cbc98771cb304da2b623d5c178d0c",
      "parents": [
        "1e7586a18a2ab69a160837c0a4be31f7147cfb5e"
      ],
      "author": {
        "name": "Viresh Kumar",
        "email": "viresh.kumar@linaro.org",
        "time": "Fri Oct 26 00:51:32 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Nov 15 00:33:08 2012 +0100"
      },
      "message": "cpufreq: Fix sparse warning by making local function static\n\ncpufreq_disabled() is a local function, so should be marked static.\n\nSigned-off-by: Viresh Kumar \u003cviresh.kumar@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "0676f7f2e7d2adec11f40320ca43a8897b8ef906",
      "tree": "ac9237b4557865cf921e84d94f7c063161d103b0",
      "parents": [
        "8636fd280e970696be62c8495a5aacb5f3b6237d"
      ],
      "author": {
        "name": "Viresh Kumar",
        "email": "viresh.kumar@linaro.org",
        "time": "Wed Oct 24 23:39:48 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Nov 15 00:33:07 2012 +0100"
      },
      "message": "cpufreq: return early from __cpufreq_driver_getavg()\n\nThere is no need to do cpufreq_get_cpu() and cpufreq_put_cpu() for drivers that\ndon\u0027t support getavg() routine.\n\nSigned-off-by: Viresh Kumar \u003cviresh.kumar@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "db7011516cbfc3d867b77721f77258d36cfbf705",
      "tree": "709f37053ee26b30d0f668efe7f77a08c7b8cb0d",
      "parents": [
        "2aacdfff9c6958723aa5076003247933cefc32ea"
      ],
      "author": {
        "name": "Viresh Kumar",
        "email": "viresh.kumar@linaro.org",
        "time": "Tue Oct 23 01:29:03 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Nov 15 00:33:06 2012 +0100"
      },
      "message": "cpufreq: Improve debug prints\n\nWith debug options on, it is difficult to locate cpufreq core\u0027s debug prints.\nFix this by prefixing debug prints with KBUILD_MODNAME.\n\nSigned-off-by: Viresh Kumar \u003cviresh.kumar@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "4b972f0b04eaae645b22d99479b9aea43c3d64e7",
      "tree": "ab9fd0b4ebe200738bb6836fa2e27c8db56352b2",
      "parents": [
        "8bf1ac723639c4260f76df0e45ee23aa35a23067"
      ],
      "author": {
        "name": "viresh kumar",
        "email": "viresh.kumar@linaro.org",
        "time": "Tue Oct 23 01:23:43 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Nov 15 00:33:06 2012 +0100"
      },
      "message": "cpufreq / core: Fix printing of governor and driver name\n\nArrays for governer and driver name are of size CPUFREQ_NAME_LEN or 16.\ni.e. 15 bytes for name and 1 for trailing \u0027\\0\u0027.\n\nWhen cpufreq driver print these names (for sysfs), it includes \u0027\\n\u0027 or \u0027 \u0027 in\nthe fmt string and still passes length as CPUFREQ_NAME_LEN. If the driver or\ngovernor names are using all 15 fields allocated to them, then the trailing \u0027\\n\u0027\nor \u0027 \u0027 will never be printed. And so commands like:\n\nroot@linaro-developer# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver\n\nwill print something like:\n\ncpufreq_foodrvroot@linaro-developer#\n\nFix this by increasing print length by one character.\n\nSigned-off-by: Viresh Kumar \u003cviresh.kumar@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "8bf1ac723639c4260f76df0e45ee23aa35a23067",
      "tree": "0ac930c419ea05ac363c2c8461ea23bbe1e7bf92",
      "parents": [
        "77b67063bb6bce6d475e910d3b886a606d0d91f7"
      ],
      "author": {
        "name": "viresh kumar",
        "email": "viresh.kumar@linaro.org",
        "time": "Tue Oct 23 01:23:33 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Nov 15 00:33:05 2012 +0100"
      },
      "message": "cpufreq / core: Fix typo in comment describing show_bios_limit()\n\nshow_bios_limit is mistakenly written as show_scaling_driver in a comment\ndescribing purpose of show_bios_limit() routine.\n\nFix it.\n\nSigned-off-by: Viresh Kumar \u003cviresh.kumar@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "a9144436271583115a2230db15d0b6ae2c481d3c",
      "tree": "89817e96e6e0f863f5eb1972609650753140ef58",
      "parents": [
        "53df1ad52545854fc34d336b26f3086b2fb2d6f7"
      ],
      "author": {
        "name": "Stephen Boyd",
        "email": "sboyd@codeaurora.org",
        "time": "Fri Jul 20 18:14:38 2012 +0000"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jul 20 21:39:25 2012 +0200"
      },
      "message": "cpufreq: Fix sysfs deadlock with concurrent hotplug/frequency switch\n\nRunning one program that continuously hotplugs and replugs a cpu\nconcurrently with another program that continuously writes to the\nscaling_setspeed node eventually deadlocks with:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[ INFO: possible recursive locking detected ]\n3.4.0 #37 Tainted: G        W\n---------------------------------------------\nfilemonkey/122 is trying to acquire lock:\n (s_active#13){++++.+}, at: [\u003cc01a3d28\u003e] sysfs_remove_dir+0x9c/0xb4\n\nbut task is already holding lock:\n (s_active#13){++++.+}, at: [\u003cc01a22f0\u003e] sysfs_write_file+0xe8/0x140\n\nother info that might help us debug this:\n Possible unsafe locking scenario:\n\n       CPU0\n       ----\n  lock(s_active#13);\n  lock(s_active#13);\n\n *** DEADLOCK ***\n\n May be due to missing lock nesting notation\n\n2 locks held by filemonkey/122:\n #0:  (\u0026buffer-\u003emutex){+.+.+.}, at: [\u003cc01a2230\u003e] sysfs_write_file+0x28/0x140\n #1:  (s_active#13){++++.+}, at: [\u003cc01a22f0\u003e] sysfs_write_file+0xe8/0x140\n\nstack backtrace:\n[\u003cc0014fcc\u003e] (unwind_backtrace+0x0/0x120) from [\u003cc00ca600\u003e] (validate_chain+0x6f8/0x1054)\n[\u003cc00ca600\u003e] (validate_chain+0x6f8/0x1054) from [\u003cc00cb778\u003e] (__lock_acquire+0x81c/0x8d8)\n[\u003cc00cb778\u003e] (__lock_acquire+0x81c/0x8d8) from [\u003cc00cb9c0\u003e] (lock_acquire+0x18c/0x1e8)\n[\u003cc00cb9c0\u003e] (lock_acquire+0x18c/0x1e8) from [\u003cc01a3ba8\u003e] (sysfs_addrm_finish+0xd0/0x180)\n[\u003cc01a3ba8\u003e] (sysfs_addrm_finish+0xd0/0x180) from [\u003cc01a3d28\u003e] (sysfs_remove_dir+0x9c/0xb4)\n[\u003cc01a3d28\u003e] (sysfs_remove_dir+0x9c/0xb4) from [\u003cc02d0e5c\u003e] (kobject_del+0x10/0x38)\n[\u003cc02d0e5c\u003e] (kobject_del+0x10/0x38) from [\u003cc02d0f74\u003e] (kobject_release+0xf0/0x194)\n[\u003cc02d0f74\u003e] (kobject_release+0xf0/0x194) from [\u003cc0565a98\u003e] (cpufreq_cpu_put+0xc/0x24)\n[\u003cc0565a98\u003e] (cpufreq_cpu_put+0xc/0x24) from [\u003cc05683f0\u003e] (store+0x6c/0x74)\n[\u003cc05683f0\u003e] (store+0x6c/0x74) from [\u003cc01a2314\u003e] (sysfs_write_file+0x10c/0x140)\n[\u003cc01a2314\u003e] (sysfs_write_file+0x10c/0x140) from [\u003cc014af44\u003e] (vfs_write+0xb0/0x128)\n[\u003cc014af44\u003e] (vfs_write+0xb0/0x128) from [\u003cc014b06c\u003e] (sys_write+0x3c/0x68)\n[\u003cc014b06c\u003e] (sys_write+0x3c/0x68) from [\u003cc000e0e0\u003e] (ret_fast_syscall+0x0/0x3c)\n\nThis is because store() in cpufreq.c indirectly calls\nkobject_get() via cpufreq_cpu_get() and is the last one to call\nkobject_put() via cpufreq_cpu_put(). Sysfs code should not call\nkobject_get() or kobject_put() directly (see the comment around\nsysfs_schedule_callback() for more information).\n\nFix this deadlock by introducing two new functions:\n\n\tstruct cpufreq_policy *cpufreq_cpu_get_sysfs(unsigned int cpu)\n\tvoid cpufreq_cpu_put_sysfs(struct cpufreq_policy *data)\n\nwhich do the same thing as cpufreq_cpu_{get,put}() but don\u0027t call\nkobject functions.\n\nTo easily trigger this deadlock you can insert an msleep() with a\nreasonably large value right after the fail label at the bottom\nof the store() function in cpufreq.c and then write\nscaling_setspeed in one task and offline the cpu in another. The\nfirst task will hang and be detected by the hung task detector.\n\nSigned-off-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "a7b422cda5084db7265c3b23310a959b43b47529",
      "tree": "32cb3e1dbde6b23814cc4e9c432db92754e89679",
      "parents": [
        "562a6cbe1cf2edf0a87a659eb26095400322430e"
      ],
      "author": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Tue Mar 13 19:18:39 2012 -0400"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Wed Mar 14 14:45:03 2012 -0400"
      },
      "message": "provide disable_cpufreq() function to disable the API.\n\nuseful for disabling cpufreq altogether. The cpu frequency\nscaling drivers and cpu frequency governors will fail to register.\n\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "02d929502ce7b57f4835d8bb7c828d36e6d9e8ce",
      "tree": "7bb0ca7a9bfe5c336c3125f823770934a2150ae4",
      "parents": [
        "b24ca57e7625bc304e77bc429693ad32a691eb16",
        "6c523c614c13b84a3dc64f7a56d6855b03e6b292"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 11 18:53:33 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 11 18:53:33 2012 -0800"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq: (23 commits)\n  [CPUFREQ] EXYNOS: Removed useless headers and codes\n  [CPUFREQ] EXYNOS: Make EXYNOS common cpufreq driver\n  [CPUFREQ] powernow-k8: Update copyright, maintainer and documentation information\n  [CPUFREQ] powernow-k8: Fix indexing issue\n  [CPUFREQ] powernow-k8: Avoid Pstate MSR accesses on systems supporting CPB\n  [CPUFREQ] update lpj only if frequency has changed\n  [CPUFREQ] cpufreq:userspace: fix cpu_cur_freq updation\n  [CPUFREQ] Remove wall variable from cpufreq_gov_dbs_init()\n  [CPUFREQ] EXYNOS4210: cpufreq code is changed for stable working\n  [CPUFREQ] EXYNOS4210: Update frequency table for cpu divider\n  [CPUFREQ] EXYNOS4210: Remove code about bus on cpufreq\n  [CPUFREQ] s3c64xx: Use pr_fmt() for consistent log messages\n  cpufreq: OMAP: fixup for omap_device changes, include \u003clinux/module.h\u003e\n  cpufreq: OMAP: fix freq_table leak\n  cpufreq: OMAP: put clk if cpu_init failed\n  cpufreq: OMAP: only supports OPP library\n  cpufreq: OMAP: dont support !freq_table\n  cpufreq: OMAP: deny initialization if no mpudev\n  cpufreq: OMAP: move clk name decision to init\n  cpufreq: OMAP: notify even with bad boot frequency\n  ...\n"
    },
    {
      "commit": "d08de0c19c3fc5b9cf557ce3b42795d036ad5da9",
      "tree": "30a8c983a35ae8caea55e4d741f291ada66f8965",
      "parents": [
        "226dd0193f9b8524789a86505ba05b1a74d916c1"
      ],
      "author": {
        "name": "Afzal Mohammed",
        "email": "afzal@ti.com",
        "time": "Wed Jan 04 10:52:46 2012 +0530"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Fri Jan 06 10:10:53 2012 -0500"
      },
      "message": "[CPUFREQ] update lpj only if frequency has changed\n\nDuring scaling up of cpu frequency, loops_per_jiffy\nis updated upon invoking PRECHANGE notifier.\nIf setting to new frequency fails in cpufreq driver,\nlpj is left at incorrect value.\n\nHence update lpj only if cpu frequency is changed,\ni.e. upon invoking POSTCHANGE notifier.\n\nPenalty would be that during time period between\nchanging cpu frequency \u0026 invocation of POSTCHANGE\nnotifier, udelay(x) may not gurantee minimal delay\nof \u0027x\u0027 us for frequency scaling up operation.\n\nPerhaps a better solution would be to define\nCPUFREQ_ABORTCHANGE \u0026 handle accordingly, but then\nit would be more intrusive (using ABORTCHANGE may\nhelp drivers also; if any has registered notifier\nand expect POST for a PRECHANGE, their needs can\nbe taken care using ABORT)\n\nSigned-off-by: Afzal Mohammed \u003cafzal@ti.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "8a25a2fd126c621f44f3aeaef80d51f00fc11639",
      "tree": "41694ab1a9c82a7a02d9cd33c929fd039c98c815",
      "parents": [
        "cb0c05c5fae12eeb7c85c205578df277bd706155"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Wed Dec 21 14:29:42 2011 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Dec 21 14:29:42 2011 -0800"
      },
      "message": "cpu: convert \u0027cpu\u0027 and \u0027machinecheck\u0027 sysdev_class to a regular subsystem\n\nThis moves the \u0027cpu sysdev_class\u0027 over to a regular \u0027cpu\u0027 subsystem\nand converts the devices to regular devices. The sysdev drivers are\nimplemented as subsystem interfaces now.\n\nAfter all sysdev classes are ported to regular driver core entities, the\nsysdev implementation will be entirely removed from the kernel.\n\nUserspace relies on events and generic sysfs subsystem infrastructure\nfrom sysdev devices, which are made available with this conversion.\n\nCc: Haavard Skinnemoen \u003chskinnemoen@gmail.com\u003e\nCc: Hans-Christian Egtvedt \u003cegtvedt@samfundet.no\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Fenghua Yu \u003cfenghua.yu@intel.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Borislav Petkov \u003cbp@amd64.org\u003e\nCc: Tigran Aivazian \u003ctigran@aivazian.fsnet.co.uk\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: Zhang Rui \u003crui.zhang@intel.com\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: \"Srivatsa S. Bhat\" \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "3d73710880afa3d61cf57b5d4eb192e812eb7e4f",
      "tree": "14659273e31e976706151c98beb565eafc4be694",
      "parents": [
        "6ae77e6b6ae20c280df8ca78e9c9d9a8ccfe7a98"
      ],
      "author": {
        "name": "Jesse Barnes",
        "email": "jbarnes@virtuousgeek.org",
        "time": "Tue Jun 28 10:59:12 2011 -0700"
      },
      "committer": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Tue Jun 28 13:54:26 2011 -0700"
      },
      "message": "cpufreq: expose a cpufreq_quick_get_max routine\n\nThis allows drivers and other code to get the max reported CPU frequency.\nInitial use is for scaling ring frequency with GPU frequency in the i915\ndriver.\n\nSigned-off-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nSigned-off-by: Keith Packard \u003ckeithp@keithp.com\u003e\n"
    },
    {
      "commit": "1a8e1463a49aaa452da1cefe184a00d4df47f1ef",
      "tree": "e6f5b1579d37c2255be9b6f83021e443b4a757a7",
      "parents": [
        "469057d587a9de2cd6087d71a008b908e785a5b6"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "kees.cook@canonical.com",
        "time": "Wed May 04 08:38:56 2011 -0700"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Wed May 04 11:50:58 2011 -0400"
      },
      "message": "[CPUFREQ] remove redundant sprintf from request_module call.\n\nSince format string handling is part of request_module, there is no\nneed to construct the module name. As such, drop the redundant sprintf\nand heap usage.\n\nSigned-off-by: Kees Cook \u003ckees.cook@canonical.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "2d06d8c49afdcc9bb35a85039fa50f0fe35bd40e",
      "tree": "d933a68fc71f6e2c3b95b744a87fa1d817bea3d6",
      "parents": [
        "27ecddc2a9f99ce4ac9a59a0acd77f7100b6d034"
      ],
      "author": {
        "name": "Dominik Brodowski",
        "email": "linux@dominikbrodowski.net",
        "time": "Sun Mar 27 15:04:46 2011 +0200"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Wed May 04 11:50:57 2011 -0400"
      },
      "message": "[CPUFREQ] use dynamic debug instead of custom infrastructure\n\nWith dynamic debug having gained the capability to report debug messages\nalso during the boot process, it offers a far superior interface for\ndebug messages than the custom cpufreq infrastructure. As a first step,\nremove the old cpufreq_debug_printk() function and replace it with a call\nto the generic pr_debug() function.\n\nHow can dynamic debug be used on cpufreq? You need a kernel which has\nCONFIG_DYNAMIC_DEBUG enabled.\n\nTo enabled debugging during runtime, mount debugfs and\n\n$ echo -n \u0027module cpufreq +p\u0027 \u003e /sys/kernel/debug/dynamic_debug/control\n\nfor debugging the complete \"cpufreq\" module. To achieve the same goal during\nboot, append\n\n\tddebug_query\u003d\"module cpufreq +p\"\n\nas a boot parameter to the kernel of your choice.\n\nFor more detailled instructions, please see\nDocumentation/dynamic-debug-howto.txt\n\nSigned-off-by: Dominik Brodowski \u003clinux@dominikbrodowski.net\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "27ecddc2a9f99ce4ac9a59a0acd77f7100b6d034",
      "tree": "941daeb656c519deeb8e0bd853944536e34ab80e",
      "parents": [
        "904cc1e637a00dba1b58e7752f485f90ebf2a568"
      ],
      "author": {
        "name": "Jacob Shin",
        "email": "jacob.shin@amd.com",
        "time": "Wed Apr 27 13:32:11 2011 -0500"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Wed May 04 11:50:57 2011 -0400"
      },
      "message": "[CPUFREQ] CPU hotplug, re-create sysfs directory and symlinks\n\nWhen we discover CPUs that are affected by each other\u0027s\nfrequency/voltage transitions, the first CPU gets a sysfs directory\ncreated, and rest of the siblings get symlinks. Currently, when we\nhotplug off only the first CPU, all of the symlinks and the sysfs\ndirectory gets removed. Even though rest of the siblings are still\nonline and functional, they are orphaned, and no longer governed by\ncpufreq.\n\nThis patch, given the above scenario, creates a sysfs directory for\nthe first sibling and symlinks for the rest of the siblings.\n\nPlease note the recursive call, it was rather too ugly to roll it\nout. And the removal of redundant NULL setting (it is already taken\ncare of near the top of the function).\n\nSigned-off-by: Jacob Shin \u003cjacob.shin@amd.com\u003e\nAcked-by: Mark Langsdorf \u003cmark.langsdorf@amd.com\u003e\nReviewed-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "e00e56dfd3cf1d209ce630a2b440c91e4a30bbd3",
      "tree": "4d1329036e250db15411b21b15a158f9042945bd",
      "parents": [
        "fb3600cc50302c9577b76838fcac1ee78828007d"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Mar 23 22:16:32 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Mar 23 22:16:32 2011 +0100"
      },
      "message": "cpufreq: Use syscore_ops for boot CPU suspend/resume (v2)\n\nThe cpufreq subsystem uses sysdev suspend and resume for\nexecuting cpufreq_suspend() and cpufreq_resume(), respectively,\nduring system suspend, after interrupts have been switched off on the\nboot CPU, and during system resume, while interrupts are still off on\nthe boot CPU.  In both cases the other CPUs are off-line at the\nrelevant point (either they have been switched off via CPU hotplug\nduring suspend, or they haven\u0027t been switched on yet during resume).\nFor this reason, although it may seem that cpufreq_suspend() and\ncpufreq_resume() are executed for all CPUs in the system, they are\nonly called for the boot CPU in fact, which is quite confusing.\n\nTo remove the confusion and to prepare for elimiating sysdev\nsuspend and resume operations from the kernel enirely, convernt\ncpufreq to using a struct syscore_ops object for the boot CPU\nsuspend and resume and rename the callbacks so that their names\nreflect their purpose.  In addition, put some explanatory remarks\ninto their kerneldoc comments.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "7ca64e2d2859e96a325c28678b5fdb5e17a5764b",
      "tree": "8988c72fd55317e1c9f6b8da8f1d62f7ec1ecb8c",
      "parents": [
        "326c86deaed54ad1b364fcafe5073f563671eb58"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Mar 10 21:13:05 2011 +0100"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Wed Mar 16 17:54:33 2011 -0400"
      },
      "message": "[CPUFREQ] Remove the pm_message_t argument from driver suspend\n\nNone of the existing cpufreq drivers uses the second argument of\nits .suspend() callback (which isn\u0027t useful anyway), so remove it.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "8f5bc2abfd4240b1f55425a3d36b6e6c391bc148",
      "tree": "6101e64f0d06ef59c2bd4080f227e1a7db38a5ce",
      "parents": [
        "a536b126f211bdf9a0eecce0d403a26900d2106c"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jslaby@suse.cz",
        "time": "Tue Mar 01 17:41:10 2011 +0100"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Mar 01 18:49:44 2011 -0500"
      },
      "message": "[CPUFREQ] fix BUG on cpufreq policy init failure\n\ncpufreq_register_driver sets cpufreq_driver to a structure owned (and\nplaced) in the caller\u0027s memory. If cpufreq policy fails in its -\u003einit\nfunction, sysdev_driver_register returns nonzero in\ncpufreq_register_driver. Now, cpufreq_register_driver returns an error\nwithout setting cpufreq_driver back to NULL.\n\nUsually cpufreq policy modules are unloaded because they propagate the\nerror to the module init function and return that.\n\nSo a later access to any member of cpufreq_driver causes bugs like:\nBUG: unable to handle kernel paging request at ffffffffa00270a0\nIP: [\u003cffffffff8145eca3\u003e] cpufreq_cpu_get+0x53/0xe0\nPGD 1805067 PUD 1809063 PMD 1c3f90067 PTE 0\nOops: 0000 [#1] SMP\nlast sysfs file: /sys/devices/virtual/net/tun0/statistics/collisions\nCPU 0\nModules linked in: ...\nPid: 5677, comm: thunderbird-bin Tainted: G        W   2.6.38-rc4-mm1_64+ #1389 To be filled by O.E.M./To Be Filled By O.E.M.\nRIP: 0010:[\u003cffffffff8145eca3\u003e]  [\u003cffffffff8145eca3\u003e] cpufreq_cpu_get+0x53/0xe0\nRSP: 0018:ffff8801aec37d98  EFLAGS: 00010086\nRAX: 0000000000000202 RBX: 0000000000000000 RCX: 0000000000000001\nRDX: ffffffffa00270a0 RSI: 0000000000001000 RDI: ffffffff8199ece8\n...\nCall Trace:\n [\u003cffffffff8145f490\u003e] cpufreq_quick_get+0x10/0x30\n [\u003cffffffff8103f12b\u003e] show_cpuinfo+0x2ab/0x300\n [\u003cffffffff81136292\u003e] seq_read+0xf2/0x3f0\n [\u003cffffffff8126c5d3\u003e] ? __strncpy_from_user+0x33/0x60\n [\u003cffffffff8116850d\u003e] proc_reg_read+0x6d/0xa0\n [\u003cffffffff81116e53\u003e] vfs_read+0xc3/0x180\n [\u003cffffffff81116f5c\u003e] sys_read+0x4c/0x90\n [\u003cffffffff81030dbb\u003e] system_call_fastpath+0x16/0x1b\n...\n\nIt\u0027s all cause by weird fail path handling in cpufreq_register_driver.\nTo fix that, shuffle the code to do proper handling with gotos.\n\nSigned-off-by: Jiri Slaby \u003cjslaby@suse.cz\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "25e41933b58777f2d020c3b0186b430ea004ec28",
      "tree": "a4ea8bb52509139b52c35d540928c12b33098f40",
      "parents": [
        "61a0d49c33c7fd57c14895e5b0760bd02b65ac1f"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Mon Jan 03 17:50:44 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jan 04 08:16:54 2011 +0100"
      },
      "message": "perf: Clean up power events by introducing new, more generic ones\n\nAdd these new power trace events:\n\n power:cpu_idle\n power:cpu_frequency\n power:machine_suspend\n\nThe old C-state/idle accounting events:\n  power:power_start\n  power:power_end\n\nHave now a replacement (but we are still keeping the old\ntracepoints for compatibility):\n\n  power:cpu_idle\n\nand\n  power:power_frequency\n\nis replaced with:\n  power:cpu_frequency\n\npower:machine_suspend is newly introduced.\n\nJean Pihet has a patch integrated into the generic layer\n(kernel/power/suspend.c) which will make use of it.\n\nthe type\u003d field got removed from both, it was never\nused and the type is differed by the event type itself.\n\nperf timechart userspace tool gets adjusted in a separate patch.\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nAcked-by: Jean Pihet \u003cjean.pihet@newoldbits.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: rjw@sisk.pl\nLKML-Reference: \u003c1294073445-14812-3-git-send-email-trenn@suse.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nLKML-Reference: \u003c1290072314-31155-2-git-send-email-trenn@suse.de\u003e\n"
    },
    {
      "commit": "bec037aa6ccb5d561c880e369c409a1b28da5eb4",
      "tree": "546cea29656d46b3ca6e315e1b937158946b1dce",
      "parents": [
        "320b2b8de12698082609ebbc1a17165727f4c893"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Thu Aug 05 22:23:00 2010 +0200"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Fri Oct 22 11:44:47 2010 -0400"
      },
      "message": "[CPUFREQ] drivers/cpufreq: Adjust confusing if indentation\n\nIndent the body of for_each_cpu.\n\nThe semantic match that finds this problem is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@r disable braces4@\nposition p1,p2;\nstatement S1,S2;\n@@\n\n(\nif (...) { ... }\n|\nif (...) S1@p1 S2@p2\n)\n\n@script:python@\np1 \u003c\u003c r.p1;\np2 \u003c\u003c r.p2;\n@@\n\nif (p1[0].column \u003d\u003d p2[0].column):\n  cocci.print_main(\"branch\",p1)\n  cocci.print_secs(\"after\",p2)\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "9c36f746d7e191ad6f44f01859af843f0c4d3c5d",
      "tree": "1b7a4df9c99ec769f0219c3fe355b49326e977bc",
      "parents": [
        "6f4f2723d08534fd4e407e1ef8500b0f4d12c30c"
      ],
      "author": {
        "name": "Neal Buckendahl",
        "email": "nealb001@gmail.com",
        "time": "Tue Jun 22 22:02:44 2010 -0500"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Aug 03 13:47:05 2010 -0400"
      },
      "message": "[CPUFREQ] fix brace coding style issue.\n\nThis patch fixes up a brace warning found by the checkpatch.pl tool\n\nSigned-off-by: Neal Buckendahl \u003cnealb001@tbcnet.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "6f4f2723d08534fd4e407e1ef8500b0f4d12c30c",
      "tree": "3422ba34e7c6bde7e8d4ca1f1f1ed772efc5cc4c",
      "parents": [
        "6b72e3934b42930fd40fc42fe762d21be413301c"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Tue Apr 20 13:17:36 2010 +0200"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Aug 03 13:47:05 2010 -0400"
      },
      "message": "[CPUFREQ] x86 cpufreq: Make trace_power_frequency cpufreq driver independent\n\nand fix the broken case if a core\u0027s frequency depends on others.\n\ntrace_power_frequency was only implemented in a rather ungeneric way\nin acpi-cpufreq driver\u0027s target() function only.\n-\u003e Move the call to trace_power_frequency to\n   cpufreq.c:cpufreq_notify_transition() where CPUFREQ_POSTCHANGE\n   notifier is triggered.\n   This will support power frequency tracing by all cpufreq drivers\n\ntrace_power_frequency did not trace frequency changes correctly when\nthe userspace governor was used or when CPU cores\u0027 frequency depend\non each other.\n-\u003e Moving this into the CPUFREQ_POSTCHANGE notifier and pass the cpu\n   which gets switched automatically fixes this.\n\nRobert Schoene provided some important fixes on top of my initial\nquick shot version which are integrated in this patch:\n- Forgot some changes in power_end trace (TP_printk/variable names)\n- Variable dummy in power_end must now be cpu_id\n- Use static 64 bit variable instead of unsigned int for cpu_id\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nCC: davej@redhat.com\nCC: arjan@infradead.org\nCC: linux-kernel@vger.kernel.org\nCC: robert.schoene@tu-dresden.de\nTested-by: robert.schoene@tu-dresden.de\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "226528c6100e4191842e61997110c8ace40605f7",
      "tree": "a731b7e1755db2eeb4322e23ef7f9c8cff21dda6",
      "parents": [
        "00e299fff3cc2745847b03eebcc9e9362db9366d"
      ],
      "author": {
        "name": "Amerigo Wang",
        "email": "amwang@redhat.com",
        "time": "Thu Mar 04 03:23:36 2010 -0500"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Aug 03 13:47:04 2010 -0400"
      },
      "message": "[CPUFREQ] unexport (un)lock_policy_rwsem* functions\n\nlock_policy_rwsem_* and unlock_policy_rwsem_* functions are scheduled\nto be unexported when 2.6.33. Now there are no other callers of them\nout of cpufreq.c, unexport them and make them static.\n\nSigned-off-by: WANG Cong \u003camwang@redhat.com\u003e\nCc: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "cad70a6ae5aaef4641a3efdfd536c30f13891afe",
      "tree": "91bdca69ce3a9c49d1e7978e44e4ae9171d4f0ca",
      "parents": [
        "ffe6275f90cc2ea77e6120a510903687be067b16"
      ],
      "author": {
        "name": "Xiaotian Feng",
        "email": "dfeng@redhat.com",
        "time": "Tue Jul 20 20:11:02 2010 +0800"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Aug 03 13:47:02 2010 -0400"
      },
      "message": "[CPUFREQ] fix memory leak in cpufreq_add_dev\n\nWe didn\u0027t free policy-\u003erelated_cpus in error path err_unlock_policy.\nThis is catched by following kmemleak report:\n\nunreferenced object 0xffff88022a0b96d0 (size 512):\n  comm \"modprobe\", pid 886, jiffies 4294689177 (age 780.694s)\n  hex dump (first 32 bytes):\n    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................\n    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................\n  backtrace:\n    [\u003cffffffff8111ebe5\u003e] create_object+0x186/0x281\n    [\u003cffffffff814fad4f\u003e] kmemleak_alloc+0x60/0xa7\n    [\u003cffffffff8111127a\u003e] kmem_cache_alloc_node_notrace+0x120/0x142\n    [\u003cffffffff81262e4f\u003e] alloc_cpumask_var_node+0x2c/0xd7\n    [\u003cffffffff81262f0b\u003e] alloc_cpumask_var+0x11/0x13\n    [\u003cffffffff81262f1c\u003e] zalloc_cpumask_var+0xf/0x11\n    [\u003cffffffff8140fac0\u003e] cpufreq_add_dev+0x11f/0x547\n    [\u003cffffffff81334bda\u003e] sysdev_driver_register+0xc2/0x11d\n    [\u003cffffffff8140e334\u003e] cpufreq_register_driver+0xcb/0x1b8\n    [\u003cffffffffa032e040\u003e] 0xffffffffa032e040\n    [\u003cffffffff810021ba\u003e] do_one_initcall+0x5e/0x15c\n    [\u003cffffffff81087f94\u003e] sys_init_module+0xa6/0x1e6\n    [\u003cffffffff81009bc2\u003e] system_call_fastpath+0x16/0x1b\n    [\u003cffffffffffffffff\u003e] 0xffffffffffffffff\n\nSigned-off-by: Xiaotian Feng \u003cdfeng@redhat.com\u003e\nCc: Thomas Renninger \u003ctrenn@suse.de\u003e\nCc: Prarit Bhargava \u003cprarit@redhat.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "ffe6275f90cc2ea77e6120a510903687be067b16",
      "tree": "c76971857ceb6ca4661beee6b4922278a93d91a4",
      "parents": [
        "dbbe4649d683577de1063dbd9f6da7d4b8de2fed"
      ],
      "author": {
        "name": "Andrej Gelenberg",
        "email": "andrej.gelenberg@udo.edu",
        "time": "Fri May 14 15:15:58 2010 -0700"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Aug 03 13:47:01 2010 -0400"
      },
      "message": "[CPUFREQ] revert \"[CPUFREQ] remove rwsem lock from CPUFREQ_GOV_STOP call (second call site)\"\n\n395913d0b1db37092ea3d9d69b832183b1dd84c5 (\"[CPUFREQ] remove rwsem lock\nfrom CPUFREQ_GOV_STOP call (second call site)\") is not needed, because\nthere is no rwsem lock in cpufreq_ondemand and cpufreq_conservative\nanymore.  Lock should not be released until the work done.\n\nAddresses https://bugzilla.kernel.org/show_bug.cgi?id\u003d1594\n\nSigned-off-by: Andrej Gelenberg \u003candrej.gelenberg@udo.edu\u003e\nCc: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "d7be0ce6afb1df60bc786f57410407ceae92b994",
      "tree": "5e91acfc12c833531ad3320f274e0cd96a129973",
      "parents": [
        "e08cae4181af9483b04ecfac48f01c8e5a5f27bf",
        "66f41d4c5c8a5deed66fdcc84509376c9a0bf9d8"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Sat May 08 14:59:58 2010 -0700"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Sat May 08 14:59:58 2010 -0700"
      },
      "message": "Merge commit \u0027v2.6.34-rc6\u0027 into x86/cpu\n"
    },
    {
      "commit": "6dad2a29646ce3792c40cfc52d77e9b65a7bb143",
      "tree": "85fce9bcdffe83c2b1f6487bf286f910ef7aba4d",
      "parents": [
        "679370641e3675633cad222449262abbe93a4a2a"
      ],
      "author": {
        "name": "Borislav Petkov",
        "email": "borislav.petkov@amd.com",
        "time": "Wed Mar 31 21:56:46 2010 +0200"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Fri Apr 09 14:07:56 2010 -0700"
      },
      "message": "cpufreq: Unify sysfs attribute definition macros\n\nMultiple modules used to define those which are with identical\nfunctionality and were needlessly replicated among the different cpufreq\ndrivers. Push them into the header and remove duplication.\n\nSigned-off-by: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\nLKML-Reference: \u003c1270065406-1814-7-git-send-email-bp@amd64.org\u003e\nReviewed-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "499bca9b6d3243f9278a1f5a22d00e67acdd844d",
      "tree": "860ef8e80c4b68a10f06eb8a2fa19b43e608fade",
      "parents": [
        "2eaa9cfdf33b8d7fb7aff27792192e0019ae8fc6"
      ],
      "author": {
        "name": "Amerigo Wang",
        "email": "amwang@redhat.com",
        "time": "Thu Mar 04 03:23:46 2010 -0500"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Wed Mar 31 12:00:21 2010 -0400"
      },
      "message": "[CPUFREQ] fix a lockdep warning\n\nThere is no need to do sysfs_remove_link() or kobject_put() etc.\nwhen policy_rwsem_write is held, move them after releasing the lock.\n\nThis fixes the lockdep warning:\n\nhalt/4071 is trying to acquire lock:\n (s_active){++++.+}, at: [\u003cc0000000001ef868\u003e] .sysfs_addrm_finish+0x58/0xc0\n\nbut task is already holding lock:\n (\u0026per_cpu(cpu_policy_rwsem, cpu)){+.+.+.}, at: [\u003cc0000000004cd6ac\u003e] .lock_policy_rwsem_write+0x84/0xf4\n\nReported-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: WANG Cong \u003camwang@redhat.com\u003e\nCc: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nCc: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "52cf25d0ab7f78eeecc59ac652ed5090f69b619e",
      "tree": "031d1ffb3890bd69c0260c864c512e0be62ac05c",
      "parents": [
        "6c1733aca0b48db4d0e660d54976a1cca25b5eaf"
      ],
      "author": {
        "name": "Emese Revfy",
        "email": "re.emese@gmail.com",
        "time": "Tue Jan 19 02:58:23 2010 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Mar 07 17:04:49 2010 -0800"
      },
      "message": "Driver core: Constify struct sysfs_ops in struct kobj_type\n\nConstify struct sysfs_ops.\n\nThis is part of the ops structure constification\neffort started by Arjan van de Ven et al.\n\nBenefits of this constification:\n\n * prevents modification of data that is shared\n   (referenced) by many other structure instances\n   at runtime\n\n * detects/prevents accidental (but not intentional)\n   modification attempts on archs that enforce\n   read-only kernel data at runtime\n\n * potentially better optimized code as the compiler\n   can assume that the const data cannot be changed\n\n * the compiler/linker move const data into .rodata\n   and therefore exclude them from false sharing\n\nSigned-off-by: Emese Revfy \u003cre.emese@gmail.com\u003e\nAcked-by: David Teigland \u003cteigland@redhat.com\u003e\nAcked-by: Matt Domsch \u003cMatt_Domsch@dell.com\u003e\nAcked-by: Maciej Sosnowski \u003cmaciej.sosnowski@intel.com\u003e\nAcked-by: Hans J. Koch \u003chjk@linutronix.de\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nAcked-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "d0316554d3586cbea60592a41391b5def2553d6f",
      "tree": "5e7418f0bacbc68cec5dfd1541e03eb56870aa02",
      "parents": [
        "fb0bbb92d42d5bd0ab224605444efdfed06d6934",
        "51e99be00ce2713cbb841cedc997cafa6e26c7f4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 14 09:58:24 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 14 09:58:24 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu: (34 commits)\n  m68k: rename global variable vmalloc_end to m68k_vmalloc_end\n  percpu: add missing per_cpu_ptr_to_phys() definition for UP\n  percpu: Fix kdump failure if booted with percpu_alloc\u003dpage\n  percpu: make misc percpu symbols unique\n  percpu: make percpu symbols in ia64 unique\n  percpu: make percpu symbols in powerpc unique\n  percpu: make percpu symbols in x86 unique\n  percpu: make percpu symbols in xen unique\n  percpu: make percpu symbols in cpufreq unique\n  percpu: make percpu symbols in oprofile unique\n  percpu: make percpu symbols in tracer unique\n  percpu: make percpu symbols under kernel/ and mm/ unique\n  percpu: remove some sparse warnings\n  percpu: make alloc_percpu() handle array types\n  vmalloc: fix use of non-existent percpu variable in put_cpu_var()\n  this_cpu: Use this_cpu_xx in trace_functions_graph.c\n  this_cpu: Use this_cpu_xx for ftrace\n  this_cpu: Use this_cpu_xx in nmi handling\n  this_cpu: Use this_cpu operations in RCU\n  this_cpu: Use this_cpu ops for VM statistics\n  ...\n\nFix up trivial (famous last words) global per-cpu naming conflicts in\n\tarch/x86/kvm/svm.c\n\tmm/slab.c\n"
    },
    {
      "commit": "e2f74f355e9e2914483db10c05d70e69e0b7ae04",
      "tree": "e17cae217151627c2c95aeeb2a43baf96d49ac91",
      "parents": [
        "cf3289d0e701b2f59123bf653c12722a7e32aedb"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Thu Nov 19 12:31:01 2009 +0100"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Nov 24 13:33:34 2009 -0500"
      },
      "message": "[ACPI/CPUFREQ] Introduce bios_limit per cpu cpufreq sysfs interface\n\nThis interface is mainly intended (and implemented) for ACPI _PPC BIOS\nfrequency limitations, but other cpufreq drivers can also use it for\nsimilar use-cases.\n\nWhy is this needed:\n\nCurrently it\u0027s not obvious why cpufreq got limited.\nPeople see cpufreq/scaling_max_freq reduced, but this could have\nhappened by:\n  - any userspace prog writing to scaling_max_freq\n  - thermal limitations\n  - hardware (_PPC in ACPI case) limitiations\n\nTherefore export bios_limit (in kHz) to:\n  - Point the user that it\u0027s the BIOS (broken or intended) which limits\n    frequency\n  - Export it as a sysfs interface for userspace progs.\n    While this was a rarely used feature on laptops, there will appear\n    more and more server implemenations providing \"Green IT\" features like\n    allowing the service processor to limit the frequency. People want\n    to know about HW/BIOS frequency limitations.\n\nAll ACPI P-state driven cpufreq drivers are covered with this patch:\n  - powernow-k8\n  - powernow-k7\n  - acpi-cpufreq\n\nTested with a patched DSDT which limits the first two cores (_PPC returns 1)\nvia _PPC, exposed by bios_limit:\n# echo 2200000 \u003ecpu2/cpufreq/scaling_max_freq\n# cat cpu*/cpufreq/scaling_max_freq\n2600000\n2600000\n2200000\n2200000\n# #scaling_max_freq shows general user/thermal/BIOS limitations\n\n# cat cpu*/cpufreq/bios_limit\n2600000\n2600000\n2800000\n2800000\n# #bios_limit only shows the HW/BIOS limitation\n\nCC: Pallipadi Venkatesh \u003cvenkatesh.pallipadi@intel.com\u003e\nCC: Len Brown \u003clenb@kernel.org\u003e\nCC: davej@codemonkey.org.uk\nCC: linux@dominikbrodowski.net\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "cf3289d0e701b2f59123bf653c12722a7e32aedb",
      "tree": "0f9b06125502932f857346e4e72c201e8c2cd3bf",
      "parents": [
        "1cce76c2ac60df40b02bf747982fb3f00e68f50a"
      ],
      "author": {
        "name": "Alex Chiang",
        "email": "achiang@hp.com",
        "time": "Tue Nov 17 20:27:08 2009 -0700"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Nov 24 13:33:34 2009 -0500"
      },
      "message": "[CPUFREQ] make internal cpufreq_add_dev_* static\n\nNo need to export these symbols; make them static.\n\n\tcpufreq_add_dev_policy\n\tcpufreq_add_dev_symlink\n\tcpufreq_add_dev_interface\n\nSigned-off-by: Alex Chiang \u003cachiang@hp.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "90e41bac100e34f955f48e7686c2fc685ac9aa30",
      "tree": "50ae248a292e85d3e784d12e2e6a37823048d98b",
      "parents": [
        "54c9a35d9faef06e00e2a941eb8fe674f1886901"
      ],
      "author": {
        "name": "Prarit Bhargava",
        "email": "prarit@redhat.com",
        "time": "Thu Nov 12 09:18:46 2009 -0500"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Nov 17 23:15:04 2009 -0500"
      },
      "message": "[CPUFREQ] Fix stale cpufreq_cpu_governor pointer\n\nDave,\n\nAttached is an update of my patch against the cpufreq fixes branch.\n\nBefore applying the patch I compiled and booted the tree to see if the panic\nwas still there -- to my surprise it was not.  This is because of the conversion\nof cpufreq_cpu_governor to a char[].\n\nWhile the panic is kaput, the problem of stale data continues and my patch is\nstill valid.  It is possible to end up with the wrong governor after hotplug\nevents because CPUFREQ_DEFAULT_GOVERNOR is statically linked to a default,\nwhile the cpu siblings may have had a different governor assigned by a user.\n\nie) the patch is still needed in order to keep the governors assigned\nproperly when hotplugging devices\n\nSigned-off-by: Prarit Bhargava \u003cprarit@redhat.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "e77b89f13a0d48aea70b69976e854f2a2444a519",
      "tree": "d78288fc4386e1613713fff8c13d28f7ec480d32",
      "parents": [
        "293afe44d75abce4252db76cbb303a7de4297ce1"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Mon Oct 05 00:38:55 2009 +0400"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Nov 17 23:15:04 2009 -0500"
      },
      "message": "[CPUFREQ] Fix use after free on governor restore\n\nCurrently on governer backup/restore path we storing governor\u0027s pointer.\nThis is wrong because one may unload governor\u0027s module after cpu goes\noffline. As result use-after-free will take place on restored cpu.\nIt is not easy to exploit this bug, but still we have to close this\nissue ASAP. Issue was introduced by following commit\n084f34939424161669467c19280dbcf637730314\n\n##TESTCASE##\n#!/bin/sh -x\nmodprobe acpi_cpufreq\n# Any non default governor, in may case it is \"ondemand\"\nmodprobe cpufreq_ondemand\necho ondemand \u003e /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor\nrmmod acpi_cpufreq\nrmmod cpufreq_ondemand\nmodprobe acpi_cpufreq  # \u003c\u003c use-after-free here.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "f16250669d78a32bdfb27cec4d791e85141e11e2",
      "tree": "fa0fbce8904437312101a9b36f888c7a462e8d1f",
      "parents": [
        "b3e9f672b6cd0f4c2982c1bcc0b3c3fb39d3b0fe"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Oct 29 22:34:13 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Oct 29 22:34:13 2009 +0900"
      },
      "message": "percpu: make percpu symbols in cpufreq unique\n\nThis patch updates percpu related symbols in cpufreq such that percpu\nsymbols are unique and don\u0027t clash with local symbols.  This serves\ntwo purposes of decreasing the possibility of global percpu symbol\ncollision and allowing dropping per_cpu__ prefix from percpu symbols.\n\n* drivers/cpufreq/cpufreq.c: s/policy_cpu/cpufreq_policy_cpu/\n* drivers/cpufreq/freq_table.c: s/show_table/cpufreq_show_table/\n* arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c: s/drv_data/acfreq_data/\n  \t\t\t\t\t      s/old_perf/acfreq_old_perf/\n\nPartly based on Rusty Russell\u0027s \"alloc_percpu: rename percpu vars\nwhich cause name clashes\" patch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "395913d0b1db37092ea3d9d69b832183b1dd84c5",
      "tree": "2b1aff8df27bfb02332ee4fe207a989244583c0a",
      "parents": [
        "0e625ac153126a0a62b7635fa9dc91f87ff39e38"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Mon Jun 08 13:17:31 2009 -0400"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Sep 01 12:45:18 2009 -0400"
      },
      "message": "[CPUFREQ] remove rwsem lock from CPUFREQ_GOV_STOP call (second call site)\n\nremove rwsem lock from CPUFREQ_GOV_STOP call (second call site)\n\ncommit\t42a06f2166f2f6f7bf04f32b4e823eacdceafdc9\n\nMissed a call site for CPUFREQ_GOV_STOP to remove the rwlock taken around the\nteardown. To make a long story short, the rwlock write-lock causes a circular\ndependency with cancel_delayed_work_sync(), because the timer handler takes the\nread lock.\n\nNote that all callers to __cpufreq_set_policy are taking the rwsem. All sysfs\ncallers (writers) hold the write rwsem at the earliest sysfs calling stage.\n\nHowever, the rwlock write-lock is not needed upon governor stop.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nAcked-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nCC: rjw@sisk.pl\nCC: mingo@elte.hu\nCC: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCC: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCC: Dave Young \u003chidave.darkstar@gmail.com\u003e\nCC: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCC: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCC: trenn@suse.de\nCC: sven.wegener@stealer.net\nCC: cpufreq@vger.kernel.org\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "8aa84ad8d6c740a04386f599694609ee4998e82e",
      "tree": "b5bedf4203f038c0f624d3240d9d23dbc9e20e63",
      "parents": [
        "4bfa042cd304aa48cf05cd0a13c2d0794a675c0e"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Fri Jul 24 15:25:05 2009 +0200"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Sep 01 12:45:14 2009 -0400"
      },
      "message": "[CPUFREQ] Introduce global, not per core: /sys/devices/system/cpu/cpufreq\n\nCurrently everything in the cpufreq layer is per core based.\nThis does not reflect reality, for example ondemand on conservative\ngovernors have global sysfs variables.\n\nIntroduce a global cpufreq directory and add the kobject to the governor\nstruct, so that governors can easily access it.\nThe directory is initialized in the cpufreq_core_init initcall and thus will\nalways be created if cpufreq is compiled in, even if no cpufreq driver is\nactive later.\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "4bfa042cd304aa48cf05cd0a13c2d0794a675c0e",
      "tree": "c2f1a8cfa8d34d7e364acde2a2391481beeee77e",
      "parents": [
        "ecf7e4611c89aba7c7fde1183f7e9357695fbcc5"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Fri Jul 24 15:25:03 2009 +0200"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Sep 01 12:45:14 2009 -0400"
      },
      "message": "[CPUFREQ] Bail out of cpufreq_add_dev if the link for a managed CPU got created\n\nDoing:\necho 0 \u003ecpu1/online\necho 1 \u003ecpu1/online\n\non a managed CPU will result in:\nJul 22 15:15:37 linux kernel: [   80.013864] WARNING: at fs/sysfs/dir.c:487 sysfs_add_one+0xcf/0xe6()\nJul 22 15:15:37 linux kernel: [   80.013866] Hardware name: To Be Filled By O.E.M.\nJul 22 15:15:37 linux kernel: [   80.013868] sysfs: cannot create duplicate filename \u0027/devices/system/cpu/cpu1/cpufreq\u0027\nJul 22 15:15:37 linux kernel: [   80.013870] Modules linked in: powernow_k8\nJul 22 15:15:37 linux kernel: [   80.013874] Pid: 5750, comm: bash Not tainted 2.6.31-rc2 #40\nJul 22 15:15:37 linux kernel: [   80.013876] Call Trace:\nJul 22 15:15:37 linux kernel: [   80.013879]  [\u003cffffffff8112ebda\u003e] ? sysfs_add_one+0xcf/0xe6\nJul 22 15:15:37 linux kernel: [   80.013884]  [\u003cffffffff81041926\u003e] warn_slowpath_common+0x77/0xa4\nJul 22 15:15:37 linux kernel: [   80.013888]  [\u003cffffffff810419a0\u003e] warn_slowpath_fmt+0x3c/0x3e\nJul 22 15:15:37 linux kernel: [   80.013891]  [\u003cffffffff8112ebda\u003e] sysfs_add_one+0xcf/0xe6\nJul 22 15:15:37 linux kernel: [   80.013894]  [\u003cffffffff8112f213\u003e] create_dir+0x58/0x87\nJul 22 15:15:37 linux kernel: [   80.013898]  [\u003cffffffff8112f27a\u003e] sysfs_create_dir+0x38/0x4f\nJul 22 15:15:37 linux kernel: [   80.013902]  [\u003cffffffff811ffb8a\u003e] kobject_add_internal+0x11f/0x1de\nJul 22 15:15:37 linux kernel: [   80.013905]  [\u003cffffffff811ffd21\u003e] kobject_add_varg+0x41/0x4e\nJul 22 15:15:37 linux kernel: [   80.013908]  [\u003cffffffff811ffd7a\u003e] kobject_init_and_add+0x4c/0x57\nJul 22 15:15:37 linux kernel: [   80.013913]  [\u003cffffffff810667bc\u003e] ? mark_lock+0x22/0x228\nJul 22 15:15:37 linux kernel: [   80.013918]  [\u003cffffffff813e8a3b\u003e] cpufreq_add_dev_interface+0x40/0x1e4\n...\n\nThis bug slipped in by git commit:\n150b06f7f223cfd0f808737a5243cceca8ea47fa\n\nWhen splitting up cpufreq_add_dev, the whole cpufreq_add_dev function\nis not left anymore, only cpufreq_add_dev_policy.\nThis patch should reconstruct the identical functionality again as it\nwas before the split.\n\nCC: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "ecf7e4611c89aba7c7fde1183f7e9357695fbcc5",
      "tree": "607da9e440f53b43ee9186fbe8f5f6a882f55fbe",
      "parents": [
        "909a694e336bf3a6e48b5b51129887a1c5cae04c"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Wed Jul 08 18:48:47 2009 -0400"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Sep 01 12:45:14 2009 -0400"
      },
      "message": "[CPUFREQ] Factor out policy setting from cpufreq_add_dev\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "909a694e336bf3a6e48b5b51129887a1c5cae04c",
      "tree": "b0f5af649d60c703156574409e8813e8c88b84b8",
      "parents": [
        "19d6f7ec3eb1652fc89dd05ebcc2a21a95c60a5a"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Wed Jul 08 18:05:42 2009 -0400"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Sep 01 12:45:13 2009 -0400"
      },
      "message": "[CPUFREQ] Factor out interface creation from cpufreq_add_dev\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "19d6f7ec3eb1652fc89dd05ebcc2a21a95c60a5a",
      "tree": "b8b4c02ed6bb39928f60f7336dc60a53a40c25e1",
      "parents": [
        "059019a3c3353b15d8efac5301f72036cc408bd4"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Wed Jul 08 17:35:39 2009 -0400"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Sep 01 12:45:12 2009 -0400"
      },
      "message": "[CPUFREQ] Factor out symlink creation from cpufreq_add_dev\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "059019a3c3353b15d8efac5301f72036cc408bd4",
      "tree": "658b419d2fa088d8f6222cd3bd36a95394330954",
      "parents": [
        "54e6fe167b8787460ee39e7c333b96e3e2e6a196"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Wed Jul 08 16:30:03 2009 -0400"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Sep 01 12:45:09 2009 -0400"
      },
      "message": "[CPUFREQ] cleanup up -ENOMEM handling in cpufreq_add_dev\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "54e6fe167b8787460ee39e7c333b96e3e2e6a196",
      "tree": "f8aa48949e3b70a1e8887844741b3a9685c28047",
      "parents": [
        "da470db16c703d7f9617c366a36c6670f89a9830"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Wed Jul 08 16:28:05 2009 -0400"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Sep 01 12:45:09 2009 -0400"
      },
      "message": "[CPUFREQ] Reduce scope of cpu_sys_dev in cpufreq_add_dev\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "ce6c3997c2fce74d12e6d8887a1d8cdf024fa850",
      "tree": "047d8577b12e9c5dbcf147f4a76bca537d775b4a",
      "parents": [
        "37d0892c5a94e208cf863e3b7bac014edee4346d"
      ],
      "author": {
        "name": "Dominik Brodowski",
        "email": "linux@dominikbrodowski.net",
        "time": "Fri Aug 07 22:58:51 2009 +0200"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Sep 01 12:45:08 2009 -0400"
      },
      "message": "[CPUFREQ] Re-enable cpufreq suspend and resume code\n\nCommit 4bc5d3413503 is broken and causes regressions:\n\n(1) cpufreq_driver-\u003eresume() and -\u003esuspend() were only called on\n__powerpc__, but you could set them on all architectures. In fact,\n-\u003eresume() was defined and used before the PPC-related commit\n42d4dc3f4e1e complained about in 4bc5d3413503.\n\n(2) Therfore, the resume functions in acpi_cpufreq and speedstep-smi\nwould never be called.\n\n(3) This means speedstep-smi would be unusuable after suspend or resume.\n\nThe _real_ problem was calling cpufreq_driver-\u003eget() with interrupts\noff, but it re-enabling interrupts on some platforms. Why is -\u003eget()\nnecessary?\n\nSome systems like to change the CPU frequency behind our\nback, especially during BIOS-intensive operations like suspend or\nresume. If such systems also use a CPU frequency-dependant timing loop,\ndelays might be off by large factors. Therefore, we need to ascertain\nas soon as possible that the CPU frequency is indeed at the speed we\nthink it is. You can do this two ways: either setting it anew, or trying\nto get it. The latter is what was done, the former also has the same IRQ\nissue.\n\nSo, let\u0027s try something different: defer the checking to after interrupts\nare re-enabled, by calling cpufreq_update_policy() (via schedule_work()).\nTimings may be off until this later stage, so let\u0027s watch out for\nresume regressions caused by the deferred handling of frequency changes\nbehind the kernel\u0027s back.\n\nSigned-off-by: Dominik Brodowski \u003clinux@dominikbrodowski.net\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "4bc5d34135039566b8d6efa2de7515b2be505da8",
      "tree": "9405817331384c08569d87aee44c1a4160bad9d0",
      "parents": [
        "d5194decd0a6f792b2789eebd4ddf022a248f655"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Aug 04 14:03:25 2009 -0400"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Aug 04 14:32:11 2009 -0400"
      },
      "message": "[CPUFREQ] Make cpufreq suspend code conditional on powerpc.\n\nThe suspend code runs with interrupts disabled, and the powerpc workaround we\ndo in the cpufreq suspend hook calls the drivers -\u003eget method.\n\npowernow-k8\u0027s -\u003eget does an smp_call_function_single\nwhich needs interrupts enabled\n\ncpufreq\u0027s suspend/resume code was added in 42d4dc3f4e1e to work around\na hardware problem on ppc powerbooks.  If we make all this code\nconditional on powerpc, we avoid the issue above.\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "d5194decd0a6f792b2789eebd4ddf022a248f655",
      "tree": "3399a6a68b114690787f45a038c6e538f96f175a",
      "parents": [
        "42c74b84c64633dd3badbfc2abd2ef1728b64b30"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Wed Jul 29 11:26:20 2009 +0200"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Aug 04 14:32:11 2009 -0400"
      },
      "message": "[CPUFREQ] Fix a kobject reference bug related to managed CPUs\n\nThe first offline/online cycle is successful, the second not.\nDoing:\necho 0 \u003ecpu1/online\necho 1 \u003ecpu1/online\necho 0 \u003ecpu1/online\n\nThe last command will trigger:\nJul 22 14:39:50 linux kernel: [  593.210125] ------------[ cut here ]------------\nJul 22 14:39:50 linux kernel: [  593.210139] WARNING: at lib/kref.c:43 kref_get+0x23/0x2b()\nJul 22 14:39:50 linux kernel: [  593.210144] Hardware name: To Be Filled By O.E.M.\nJul 22 14:39:50 linux kernel: [  593.210148] Modules linked in: powernow_k8\nJul 22 14:39:50 linux kernel: [  593.210158] Pid: 378, comm: kondemand/2 Tainted: G        W  2.6.31-rc2 #38\nJul 22 14:39:50 linux kernel: [  593.210163] Call Trace:\nJul 22 14:39:50 linux kernel: [  593.210171]  [\u003cffffffff812008e8\u003e] ? kref_get+0x23/0x2b\nJul 22 14:39:50 linux kernel: [  593.210181]  [\u003cffffffff81041926\u003e] warn_slowpath_common+0x77/0xa4\nJul 22 14:39:50 linux kernel: [  593.210190]  [\u003cffffffff81041962\u003e] warn_slowpath_null+0xf/0x11\nJul 22 14:39:50 linux kernel: [  593.210198]  [\u003cffffffff812008e8\u003e] kref_get+0x23/0x2b\nJul 22 14:39:50 linux kernel: [  593.210206]  [\u003cffffffff811ffa19\u003e] kobject_get+0x1a/0x22\nJul 22 14:39:50 linux kernel: [  593.210214]  [\u003cffffffff813e815d\u003e] cpufreq_cpu_get+0x8a/0xcb\nJul 22 14:39:50 linux kernel: [  593.210222]  [\u003cffffffff813e87d1\u003e] __cpufreq_driver_getavg+0x1d/0x67\nJul 22 14:39:50 linux kernel: [  593.210231]  [\u003cffffffff813ea18f\u003e] do_dbs_timer+0x158/0x27f\nJul 22 14:39:50 linux kernel: [  593.210240]  [\u003cffffffff810529ea\u003e] worker_thread+0x200/0x313\n...\n\nThe output continues on every do_dbs_timer ondemand freq checking poll.\nThis regression was introduced by git commit:\n3f4a782b5ce2698b1870b5a7b573cd721d4fce33\n\nThe policy is released when the cpufreq device is removed in:\n__cpufreq_remove_dev():\n\t/* if this isn\u0027t the CPU which is the parent of the kobj, we\n\t * only need to unlink, put and exit\n\t */\n\nNot creating the symlink is not sever at all.\nAs long as:\nsysfs_remove_link(\u0026sys_dev-\u003ekobj, \"cpufreq\");\nhandles it gracefully that the symlink did not exist.\nPossibly no error should be returned at all, because ondemand\ngovernor would still provide the same functionality.\nUserspace in userspace gov case might be confused if the link\nis missing.\n\nResolves http://bugzilla.kernel.org/show_bug.cgi?id\u003d13903\n\nCC: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCC: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "42c74b84c64633dd3badbfc2abd2ef1728b64b30",
      "tree": "16b9378a38cde51f50078a2d5d41353d346d0dc4",
      "parents": [
        "26d204afa18f7df177f21bdb3759e0098ca8f7d5"
      ],
      "author": {
        "name": "Prarit Bhargava",
        "email": "prarit@redhat.com",
        "time": "Mon Aug 03 10:58:11 2009 -0400"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Aug 04 14:32:10 2009 -0400"
      },
      "message": "[CPUFREQ] Do not set policy for offline cpus\n\nSuspend/Resume fails on multi socket, multi core systems because the cpufreq\ncode erroneously sets the per_cpu policy_cpu value when a logical cpu is\noffline.\n\nThis most notably results in missing sysfs files that are used to set the\ncpu frequencies of the various cpus.\n\nSigned-off-by: Prarit Bhargava \u003cprarit@redhat.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "5e1596f75395e7a402e1059c518e633d2732dcf8",
      "tree": "38125e71bb4f67c4ad9693a638f507b249a4ded1",
      "parents": [
        "44b572809581d5a10dbe35aa6bf689f32b9c5ad6"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Wed Jul 08 16:14:23 2009 -0400"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Wed Jul 08 19:04:23 2009 -0400"
      },
      "message": "[CPUFREQ] Fix compile failure in cpufreq.c\n\nmanaged_policy is out of scope for the non-smp case.\nDeclare it locally where used (twice)\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "3f4a782b5ce2698b1870b5a7b573cd721d4fce33",
      "tree": "bed89982d8baa4d086ae6edbab92065d712a3793",
      "parents": [
        "ee88415caf736b89500f16e0a545614541a45005"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Fri Jul 03 11:25:16 2009 -0400"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Mon Jul 06 21:38:28 2009 -0400"
      },
      "message": "[CPUFREQ] fix (utter) cpufreq_add_dev mess\n\nOK, I\u0027ve tried to clean it up the best I could, but please test this with\nconcurrent cpu hotplug and cpufreq add/remove in loops. I\u0027m sure we will make\nother interesting findings.\n\nThis is step one of fixing the overall locking dependency mess in cpufreq.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCC: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nCC: rjw@sisk.pl\nCC: mingo@elte.hu\nCC: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCC: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCC: Dave Young \u003chidave.darkstar@gmail.com\u003e\nCC: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCC: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCC: sven.wegener@stealer.net\nCC: cpufreq@vger.kernel.org\nCC: Thomas Renninger \u003ctrenn@suse.de\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "7d26e2d5e2da37e92c6c7644b26b294dedd8c982",
      "tree": "44d1637ac603fad42cbbf28ba7a89c9e194c4d0f",
      "parents": [
        "faf80d62e44dc627efb741f48db50c1858d1667c"
      ],
      "author": {
        "name": "venkatesh.pallipadi@intel.com",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Thu Jul 02 17:08:30 2009 -0700"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Mon Jul 06 21:38:27 2009 -0400"
      },
      "message": "[CPUFREQ] Eliminate the recent lockdep warnings in cpufreq\n\nCommit b14893a62c73af0eca414cfed505b8c09efc613c although it was very\nmuch needed to properly cleanup ondemand timer, opened-up a can of worms\nrelated to locking dependencies in cpufreq.\n\nPatch here defines the need for dbs_mutex and cleans up its usage in\nondemand governor. This also resolves the lockdep warnings reported here\n\nhttp://lkml.indiana.edu/hypermail/linux/kernel/0906.1/01925.html\nhttp://lkml.indiana.edu/hypermail/linux/kernel/0907.0/00820.html\n\nand few others..\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "eaa958402ea40851097d051f52ba1bb7a885efe9",
      "tree": "9187f59ff0ee6ac138b5c81a2212bc10f46d04a5",
      "parents": [
        "0281b5dc0350cbf6dd21ed558a33cccce77abc02"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Sat Jun 06 14:51:36 2009 -0700"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jun 09 22:30:27 2009 +0930"
      },
      "message": "cpumask: alloc zeroed cpumask for static cpumask_var_ts\n\nThese are defined as static cpumask_var_t so if MAXSMP is not used,\nthey are cleared already.  Avoid surprises when MAXSMP is enabled.\n\nSigned-off-by: Yinghai Lu \u003cyinghai.lu@kernel.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "42a06f2166f2f6f7bf04f32b4e823eacdceafdc9",
      "tree": "c5e08605fe4578bf1c35fab20eed520f505d767d",
      "parents": [
        "d38e73e8dad454a5916f446b0d3523c1161ae95a"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Sun May 17 10:23:52 2009 -0400"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue May 26 12:04:50 2009 -0400"
      },
      "message": "[CPUFREQ] remove rwsem lock from CPUFREQ_GOV_STOP call\n\n* Rafael J. Wysocki (rjw@sisk.pl) wrote:\n\u003e This message has been generated automatically as a part of a report\n\u003e of regressions introduced between 2.6.28 and 2.6.29.\n\u003e\n\u003e The following bug entry is on the current list of known regressions\n\u003e introduced between 2.6.28 and 2.6.29.  Please verify if it still should\n\u003e be listed and let me know (either way).\n\u003e\n\u003e\n\u003e Bug-Entry\t: http://bugzilla.kernel.org/show_bug.cgi?id\u003d13186\n\u003e Subject\t\t: cpufreq timer teardown problem\n\u003e Submitter\t: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\n\u003e Date\t\t: 2009-04-23 14:00 (24 days old)\n\u003e References\t: http://marc.info/?l\u003dlinux-kernel\u0026m\u003d124049523515036\u0026w\u003d4\n\u003e Handled-By\t: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\n\u003e Patch\t\t: http://patchwork.kernel.org/patch/19754/\n\u003e \t\t  http://patchwork.kernel.org/patch/19753/\n\nThe patches linked above depend on the following patch to remove\ncircular locking dependency :\n\ncpufreq: remove rwsem lock from CPUFREQ_GOV_STOP call\n\n(the following issue was faced when using cancel_delayed_work_sync() in the\ntimer teardown (which fixes a race).\n\n* KOSAKI Motohiro (kosaki.motohiro@jp.fujitsu.com) wrote:\n\u003e Hi\n\u003e\n\u003e my box output following warnings.\n\u003e it seems regression by commit 7ccc7608b836e58fbacf65ee4f8eefa288e86fac.\n\u003e\n\u003e A: work -\u003e do_dbs_timer()  -\u003e cpu_policy_rwsem\n\u003e B: store() -\u003e cpu_policy_rwsem -\u003e cpufreq_governor_dbs() -\u003e work\n\u003e\n\u003e\n\nHrm, I think it must be due to my attempt to fix the timer teardown race\nin ondemand governor mixed with new locking behavior in 2.6.30-rc.\n\nThe rwlock seems to be taken around the whole call to\ncpufreq_governor_dbs(), when it should be only taken around accesses to\nthe locked data, and especially *not* around the call to\ndbs_timer_exit().\n\nReverting my fix attempt would put the teardown race back in place\n(replacing the cancel_delayed_work_sync by cancel_delayed_work).\nInstead, a proper fix would imply modifying this critical section :\n\ncpufreq.c: __cpufreq_remove_dev()\n...\n        if (cpufreq_driver-\u003etarget)\n                __cpufreq_governor(data, CPUFREQ_GOV_STOP);\n\n        unlock_policy_rwsem_write(cpu);\n\nTo make sure the __cpufreq_governor() callback is not called with rwsem\nheld. This would allow execution of cancel_delayed_work_sync() without\nbeing nested within the rwsem.\n\nApplies on top of the 2.6.30-rc5 tree.\n\nRequired to remove circular dep in teardown of both conservative and\nondemande governors so they can use cancel_delayed_work_sync().\nCPUFREQ_GOV_STOP does not modify the policy, therefore this locking seemed\nunneeded.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCC: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCC: Ingo Molnar \u003cmingo@elte.hu\u003e\nCC: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCC: Ben Slusky \u003csluskyb@paranoiacs.org\u003e\nCC: Chris Wright \u003cchrisw@sous-sol.org\u003e\nCC: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "ada19a31a90b4f46c040c25ef4ef8ffc203c7fc6",
      "tree": "7d523d2d90dbaa973c5843d6219ec149b5949243",
      "parents": [
        "8d80ce80e1d58ba9cd3e3972b112cccd6b4008f4",
        "36e8abf3edcd2d207193ec5741d1a2a645d470a5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 26 11:04:08 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 26 11:04:08 2009 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq: (35 commits)\n  [CPUFREQ] Prevent p4-clockmod from auto-binding to the ondemand governor.\n  [CPUFREQ] Make cpufreq-nforce2 less obnoxious\n  [CPUFREQ] p4-clockmod reports wrong frequency.\n  [CPUFREQ] powernow-k8: Use a common exit path.\n  [CPUFREQ] Change link order of x86 cpufreq modules\n  [CPUFREQ] conservative: remove 10x from def_sampling_rate\n  [CPUFREQ] conservative: fixup governor to function more like ondemand logic\n  [CPUFREQ] conservative: fix dbs_cpufreq_notifier so freq is not locked\n  [CPUFREQ] conservative: amend author\u0027s email address\n  [CPUFREQ] Use swap() in longhaul.c\n  [CPUFREQ] checkpatch cleanups for acpi-cpufreq\n  [CPUFREQ] powernow-k8: Only print error message once, not per core.\n  [CPUFREQ] ondemand/conservative: sanitize sampling_rate restrictions\n  [CPUFREQ] ondemand/conservative: deprecate sampling_rate{min,max}\n  [CPUFREQ] powernow-k8: Always compile powernow-k8 driver with ACPI support\n  [CPUFREQ] Introduce /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_transition_latency\n  [CPUFREQ] checkpatch cleanups for powernow-k8\n  [CPUFREQ] checkpatch cleanups for ondemand governor.\n  [CPUFREQ] checkpatch cleanups for powernow-k7\n  [CPUFREQ] checkpatch cleanups for speedstep related drivers.\n  ...\n"
    },
    {
      "commit": "129f8ae9b1b5be94517da76009ea956e89104ce8",
      "tree": "f79cbe8397dd2578349d3aefe25dc72f26eab291",
      "parents": [
        "694593e3374a67d95ece6a275a1f181644c2c4d8"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Mon Mar 09 15:07:33 2009 -0400"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Mon Mar 09 15:07:33 2009 -0400"
      },
      "message": "Revert \"[CPUFREQ] Disable sysfs ui for p4-clockmod.\"\n\nThis reverts commit e088e4c9cdb618675874becb91b2fd581ee707e6.\n\nRemoving the sysfs interface for p4-clockmod was flagged as a\nregression in bug 12826.\n\nCourse of action:\n - Find out the remaining causes of overheating, and fix them\n   if possible. ACPI should be doing the right thing automatically.\n   If it isn\u0027t, we need to fix that.\n - mark p4-clockmod ui as deprecated\n - try again with the removal in six months.\n\nIt\u0027s not really feasible to printk about the deprecation, because\nit needs to happen at all the sysfs entry points, which means adding\na lot of strcmp(\"p4-clockmod\".. calls to the core, which.. bleuch.\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "ed12978453a3845c947695e7ad32bb3ede444813",
      "tree": "6fcec1eaa023fd2cadce8e82a17b9b890f59fd88",
      "parents": [
        "0e64a0c982c06a6b8f5e2a7f29eb108fdf257b2f"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Wed Feb 04 01:17:41 2009 +0100"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Feb 24 22:47:31 2009 -0500"
      },
      "message": "[CPUFREQ] Introduce /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_transition_latency\n\nIt\u0027s not only useful for the ondemand and conservative governors, but\nalso for userspace daemons to know about the HW transition latency of\nthe CPU.\nIt is especially useful for userspace to know about this value when\nthe ondemand or conservative governors are run. The sampling rate\ncontrol value depends on it and for userspace being able to set sane\ntuning values there it has to know about the transition latency.\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "29464f281389fd7e9adf969de7bbeb20b8596f82",
      "tree": "7efe93cfa513898aa2144733aacb61ce8f9beee6",
      "parents": [
        "6072ace436800a011c3cb9a75ee49276bd90445a"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Sun Jan 18 01:37:11 2009 -0500"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Feb 24 22:47:29 2009 -0500"
      },
      "message": "[CPUFREQ] checkpatch cleanups for cpufreq core\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "835481d9bcd65720b473db6b38746a74a3964218",
      "tree": "a6f0fa205542cf73a980a2f8e41d5e908a33b6d6",
      "parents": [
        "5cb0535f1713b51610f2881b17d0fe3656114364"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sun Jan 04 05:18:06 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jan 06 09:05:31 2009 +0100"
      },
      "message": "cpumask: convert struct cpufreq_policy to cpumask_var_t\n\nImpact: use new cpumask API to reduce memory usage\n\nThis is part of an effort to reduce structure sizes for machines\nconfigured with large NR_CPUS.  cpumask_t gets replaced by\ncpumask_var_t, which is either struct cpumask[1] (small NR_CPUS) or\nstruct cpumask * (large NR_CPUS).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nAcked-by: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "187d9f4ed4fc089f1f25a875fb485e27626972f9",
      "tree": "321746d8966250b00698361dfc1cadeec8d0560f",
      "parents": [
        "8529154ec3f3ac20344c65b7a040c604c7af7651"
      ],
      "author": {
        "name": "Mike Chan",
        "email": "mike@android.com",
        "time": "Thu Dec 04 12:19:17 2008 -0800"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Fri Dec 05 15:20:11 2008 -0500"
      },
      "message": "[CPUFREQ] Fix on resume, now preserves user policy min/max.\n\nPreviously driver resume would always set the current policy min/max with\nthe cpuinfo min/max, defined by user_policy.min/max. Resulting in a reset\nof policy settings when policy.min/max !\u003d cpuinfo.min/max when coming out\nof suspend. Now user_policy is saved as the policy instead of cpuinfo to\npreserve what the user actually set.\n\nSigned-off-by: Mike Chan \u003cmike@android.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "e088e4c9cdb618675874becb91b2fd581ee707e6",
      "tree": "48231c406061308502f13c7781a6957ef396a739",
      "parents": [
        "10db2e5cbda5b4e13d2e2f134b963bee2e129999"
      ],
      "author": {
        "name": "Matthew Garrett",
        "email": "mjg@redhat.com",
        "time": "Tue Nov 25 13:29:47 2008 -0500"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Fri Dec 05 15:20:10 2008 -0500"
      },
      "message": "[CPUFREQ] Disable sysfs ui for p4-clockmod.\n\np4-clockmod has a long history of abuse.   It pretends to be a CPU\nfrequency scaling driver, even though it doesn\u0027t actually change\nthe CPU frequency, but instead just modulates the frequency with\nwait-states.\nThe biggest misconception is that when running at the lower \u0027frequency\u0027\np4-clockmod is saving power.  This isn\u0027t the case, as workloads running\nslower take longer to complete, preventing the CPU from entering deep C states.\n\nHowever p4-clockmod does have a purpose.  It can prevent overheating.\nHaving it hooked up to the cpufreq interfaces is the wrong way to achieve\ncooling however. It should instead be hooked up to ACPI.\n\nThis diff introduces a means for a cpufreq driver to register with the\ncpufreq core, but not present a sysfs interface.\n\nSigned-off-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "bf0b90e357c883e8efd72954432efe652de74c76",
      "tree": "a10758a069cdea10b36856b458a509b144bae3bb",
      "parents": [
        "8217e4f4c93e5fb59bb3cd1e6135213889349f86"
      ],
      "author": {
        "name": "venkatesh.pallipadi@intel.com",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Mon Aug 04 11:59:07 2008 -0700"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Thu Oct 09 13:52:43 2008 -0400"
      },
      "message": "[CPUFREQ][1/6] cpufreq: Add cpu number parameter to __cpufreq_driver_getavg()\n\nAdd a cpu parameter to __cpufreq_driver_getavg(). This is needed for software\ncpufreq coordination where policy-\u003ecpu may not be same as the CPU on which we\nwant to getavg frequency.\n\nA follow-on patch will use this parameter to getavg freq from all cpus\nin policy-\u003ecpus.\n\nChange since last patch. Fix the offline/online and suspend/resume\noops reported by Youquan Song \u003cyouquan.song@intel.com\u003e\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "f1829e4a371f26430185a9d5b97b8d9d19824e08",
      "tree": "e93626b049d174430d1431708398a90a4b756ed5",
      "parents": [
        "888a794cacd8950ac6be701db20b62a4ab2ce90c"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Fri Jul 25 22:44:53 2008 +0200"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Thu Oct 09 13:52:43 2008 -0400"
      },
      "message": "[CPUFREQ] drivers/cpufreq/cpufreq.c: Adjust error handling code involving cpufreq_cpu_put\n\nAfter calling cpufreq_cpu_get, error handling code should call\ncpufreq_cpu_put.\n\nThe semantic match that finds this problem is as follows:\n(http://www.emn.fr/x-info/coccinelle/)\n\n// \u003csmpl\u003e\n@r@\nexpression x,E;\nstatement S;\nposition p1,p2,p3;\n@@\n\n(\nif ((x \u003d cpufreq_cpu_get@p1(...)) \u003d\u003d NULL || ...) S\n|\nx \u003d cpufreq_cpu_get@p1(...)\n... when !\u003d x\nif (x \u003d\u003d NULL || ...) S\n)\n\u003c...\nif@p3 (...) { ... when !\u003d cpufreq_cpu_put(x)\n                  when !\u003d if (x) { ... cpufreq_cpu_put(x); ...}\n    return@p2 ...;\n}\n...\u003e\n(\nreturn x;\n|\nreturn 0;\n|\nx \u003d E\n|\nE \u003d x\n|\ncpufreq_cpu_put(x)\n)\n\n@exists@\nposition r.p1,r.p2,r.p3;\nexpression x;\nint ret !\u003d 0;\nstatement S;\n@@\n\n* x \u003d cpufreq_cpu_get@p1(...)\n  \u003c...\n* if@p3 (...)\n  S\n  ...\u003e\n* return@p2 \\(NULL\\|ret\\);\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "a1531acd43310a7e4571d52e8846640667f4c74b",
      "tree": "ccb0a733180644ec8856219711e6119fd05d4737",
      "parents": [
        "1a4e564b7db999fbe5d88318c96ac8747699d417"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Tue Jul 29 22:32:58 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 30 09:41:43 2008 -0700"
      },
      "message": "cpufreq acpi: only call _PPC after cpufreq ACPI init funcs got called already\n\nIngo Molnar provided a fix to not call _PPC at processor driver\ninitialization time in \"[PATCH] ACPI: fix cpufreq regression\" (git\ncommit e4233dec749a3519069d9390561b5636a75c7579)\n\nBut it can still happen that _PPC is called at processor driver\ninitialization time.\n\nThis patch should make sure that this is not possible anymore.\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: Dave Jones \u003cdavej@codemonkey.org.uk\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "26dcce0fabbef75ae426461edf21b5030bad60f3",
      "tree": "56c64fa47dc29f7ea5a8fd0cab0459fb0a05a2bc",
      "parents": [
        "d7b6de14a0ef8a376f9d57b867545b47302b7bfb",
        "eb6a12c2428d21a9f3e0f1a50e927d5fd80fc3d0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 23 18:37:44 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 23 18:37:44 2008 -0700"
      },
      "message": "Merge branch \u0027cpus4096-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027cpus4096-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (31 commits)\n  NR_CPUS: Replace NR_CPUS in speedstep-centrino.c\n  cpumask: Provide a generic set of CPUMASK_ALLOC macros, FIXUP\n  NR_CPUS: Replace NR_CPUS in cpufreq userspace routines\n  NR_CPUS: Replace per_cpu(..., smp_processor_id()) with __get_cpu_var\n  NR_CPUS: Replace NR_CPUS in arch/x86/kernel/genapic_flat_64.c\n  NR_CPUS: Replace NR_CPUS in arch/x86/kernel/genx2apic_uv_x.c\n  NR_CPUS: Replace NR_CPUS in arch/x86/kernel/cpu/proc.c\n  NR_CPUS: Replace NR_CPUS in arch/x86/kernel/cpu/mcheck/mce_64.c\n  cpumask: Optimize cpumask_of_cpu in lib/smp_processor_id.c, fix\n  cpumask: Use optimized CPUMASK_ALLOC macros in the centrino_target\n  cpumask: Provide a generic set of CPUMASK_ALLOC macros\n  cpumask: Optimize cpumask_of_cpu in lib/smp_processor_id.c\n  cpumask: Optimize cpumask_of_cpu in kernel/time/tick-common.c\n  cpumask: Optimize cpumask_of_cpu in drivers/misc/sgi-xp/xpc_main.c\n  cpumask: Optimize cpumask_of_cpu in arch/x86/kernel/ldt.c\n  cpumask: Optimize cpumask_of_cpu in arch/x86/kernel/io_apic_64.c\n  cpumask: Replace cpumask_of_cpu with cpumask_of_cpu_ptr\n  Revert \"cpumask: introduce new APIs\"\n  cpumask: make for_each_cpu_mask a bit smaller\n  net: Pass reference to cpumask variable in net/sunrpc/svc.c\n  ...\n\nFix up trivial conflicts in drivers/cpufreq/cpufreq.c manually\n"
    },
    {
      "commit": "6d52dcbe56ca8464bcad56d98a64bcd781596663",
      "tree": "607e1d2dee3998dad356d8c909189353a32aaa0e",
      "parents": [
        "eb4225b2da2b9f3c1ee43efe58ed1415cc1d4c47",
        "48adcf148c83faa41999fb0b3524299c4e160fd9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 21 15:10:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 21 15:10:37 2008 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq:\n  [CPUFREQ] cpufreq: remove CVS keywords\n  [CPUFREQ] change cpu freq arrays to per_cpu variables\n"
    },
    {
      "commit": "68083e05d72d94f347293d8cc0067050ba904bfa",
      "tree": "842e71365bd90866be7add181661a4039d891564",
      "parents": [
        "7baac8b91f9871ba8cb09af84de4ae1d86d07812",
        "b7279469d66b55119784b8b9529c99c1955fe747"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jul 06 14:23:39 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jul 06 14:23:39 2008 +0200"
      },
      "message": "Merge commit \u0027v2.6.26-rc9\u0027 into cpus4096\n"
    },
    {
      "commit": "cc55875e26e2b85484b196edbada6caf84eb7765",
      "tree": "34c569f2b2c0dc8f92bce6e11598519736364915",
      "parents": [
        "d563923011110a91bdbf1d89055c3e803ec01f0f",
        "326f6a5c9c9e1a62aec37bdc0c3f8d53adabe77b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 09 11:27:55 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 09 11:27:55 2008 -0700"
      },
      "message": "Merge branch \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq\n\n* \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq:\n  [CPUFREQ] Fix format string bug.\n"
    },
    {
      "commit": "326f6a5c9c9e1a62aec37bdc0c3f8d53adabe77b",
      "tree": "9e9ba7c0279245ba7b93fc1bb409b4921c0a418d",
      "parents": [
        "dca026139317dcbc642a30320d551f559692182f"
      ],
      "author": {
        "name": "Chris Wright",
        "email": "chrisw@sous-sol.org",
        "time": "Fri Jun 06 21:26:02 2008 -0700"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Mon Jun 09 13:24:55 2008 -0400"
      },
      "message": "[CPUFREQ] Fix format string bug.\n\nFormat string bug.  Not exploitable, as this is only writable by root,\nbut worth fixing all the same.\n\nSpotted-by: Ilja van Sprundel \u003cilja@netric.org\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "879000f94442860e72c934f9e568989bc7fb8ec4",
      "tree": "c6d9aa713735deb49503ca9c65edbc8d557f3a71",
      "parents": [
        "10732c35dff6c2e15e413e7806a7114a2faa0ecf"
      ],
      "author": {
        "name": "CHIKAMA masaki",
        "email": "masaki.chikama@gmail.com",
        "time": "Thu Jun 05 22:46:33 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 06 11:29:11 2008 -0700"
      },
      "message": "cpufreq: fix null object access on Transmeta CPU\n\nIf cpu specific cpufreq driver(i.e.  longrun) has \"setpolicy\" function,\ngovernor object isn\u0027t set into cpufreq_policy object at \"__cpufreq_set_policy\"\nfunction in driver/cpufreq/cpufreq.c .\n\nThis causes a null object access at \"store_scaling_setspeed\" and\n\"show_scaling_setspeed\" function in driver/cpufreq/cpufreq.c when reading or\nwriting through /sys interface (ex.  cat\n/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed)\n\nAddresses:\n\thttp://bugzilla.kernel.org/show_bug.cgi?id\u003d10654\n\thttps://bugzilla.redhat.com/show_bug.cgi?id\u003d443354\n\nSigned-off-by: CHIKAMA Masaki \u003cmasaki.chikama@gmail.com\u003e\nCc: Dave Jones \u003cdavej@codemonkey.org.uk\u003e\nCc: Chuck Ebbert \u003ccebbert@redhat.com\u003e\nAcked-by: Dominik Brodowski \u003clinux@dominikbrodowski.net\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dca026139317dcbc642a30320d551f559692182f",
      "tree": "93328a56b4fe715ac915d56c0473c9770c2e0c09",
      "parents": [
        "4f74369422b883164c50b5936517d010a3e1ce59"
      ],
      "author": {
        "name": "Lothar Waßmann",
        "email": "LW@KARO-electronics.de",
        "time": "Thu May 29 17:54:52 2008 +0200"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Thu May 29 12:10:12 2008 -0400"
      },
      "message": "[CPUFREQ] fix double unlock of cpu_policy_rwsem in drivers/cpufreq/cpufreq.c\n\nIn drivers/cpufreq/cpufreq.c the function cpufreq_add_dev() takes the\nerror exit \u0027err_out_unregister\u0027 from different places once with the\n\u0027cpu_policy_rwsem\u0027 lock held, once with the lock released:\n|\t\tif (ret)\n|\t\t\tgoto err_out_unregister;\n|\t}\n|\n|\tpolicy-\u003egovernor \u003d NULL; /* to assure that the starting sequence is\n|\t\t\t\t  * run in cpufreq_set_policy */\n|\n|\t/* set default policy */\n|\tret \u003d __cpufreq_set_policy(policy, \u0026new_policy);\n|\tpolicy-\u003euser_policy.policy \u003d policy-\u003epolicy;\n|\tpolicy-\u003euser_policy.governor \u003d policy-\u003egovernor;\n|\n|\tunlock_policy_rwsem_write(cpu);\n|\n|\tif (ret) {\n|\t\tdprintk(\"setting policy failed\\n\");\n|\t\tgoto err_out_unregister;\n|\t}\n\nThis leads to the following error message in case of a failing\n__cpufreq_set_policy() call:\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[ BUG: bad unlock balance detected! ]\n-------------------------------------\nswapper/1 is trying to release lock (\u0026per_cpu(cpu_policy_rwsem, cpu)) at:\n[\u003cc01b4564\u003e] unlock_policy_rwsem_write+0x30/0x40\nbut there are no more locks to release!\n\nother info that might help us debug this:\n1 lock held by swapper/1:\n #0:  (sysdev_drivers_lock){--..}, at: [\u003cc018fd18\u003e] sysdev_driver_register+0x74/0x130\n\nstack backtrace:\n[\u003cc002f588\u003e] (dump_stack+0x0/0x14) from [\u003cc00692fc\u003e] (print_unlock_inbalance_bug+0xc8/0x104)\n[\u003cc0069234\u003e] (print_unlock_inbalance_bug+0x0/0x104) from [\u003cc006b7ac\u003e] (lock_release_non_nested+0xc4/0x19c)\n r6:00000028 r5:c3c1ab80 r4:c01b4564\n[\u003cc006b6e8\u003e] (lock_release_non_nested+0x0/0x19c) from [\u003cc006b9e0\u003e] (lock_release+0x15c/0x18c)\n r8:60000013 r7:00000001 r6:c01b4564 r5:c0541bb4 r4:c3c1ab80\n[\u003cc006b884\u003e] (lock_release+0x0/0x18c) from [\u003cc0061ba0\u003e] (up_write+0x24/0x30)\n r8:c0541b80 r7:00000000 r6:ffffffea r5:c3c34828 r4:c0541b8c\n[\u003cc0061b7c\u003e] (up_write+0x0/0x30) from [\u003cc01b4564\u003e] (unlock_policy_rwsem_write+0x30/0x40)\n r4:c3c34884\n[\u003cc01b4534\u003e] (unlock_policy_rwsem_write+0x0/0x40) from [\u003cc01b4c40\u003e] (cpufreq_add_dev+0x324/0x398)\n[\u003cc01b491c\u003e] (cpufreq_add_dev+0x0/0x398) from [\u003cc018fd64\u003e] (sysdev_driver_register+0xc0/0x130)\n[\u003cc018fca4\u003e] (sysdev_driver_register+0x0/0x130) from [\u003cc01b3574\u003e] (cpufreq_register_driver+0xbc/0x174)\n\nSigned-off-by: Lothar Waßmann \u003cLW@KARO-electronics.de\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "068b12772a64c2440ef2f64ac5d780688c06576f",
      "tree": "7361900d68d0370c1b8b1782d3144fdeaa914cbe",
      "parents": [
        "141ad0688adb53094d6f75b39b4b3b0625de0e07"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Mon May 12 21:21:13 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 18:35:12 2008 +0200"
      },
      "message": "cpufreq: use performance variant for_each_cpu_mask_nr\n\nChange references from for_each_cpu_mask to for_each_cpu_mask_nr\nwhere appropriate\n\nReviewed-by: Paul Jackson \u003cpj@sgi.com\u003e\nReviewed-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "7a6aedfac98c6d54ecf97ca1ffb1e6a1f3d26aea",
      "tree": "404f941cae556ce45b53c90bb4192d9fb53bd233",
      "parents": [
        "860da5e578c25d1ab4528c0d1ad13f9969e3490f"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Tue Mar 25 15:06:53 2008 -0700"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Mon May 19 18:17:49 2008 -0400"
      },
      "message": "[CPUFREQ] change cpu freq arrays to per_cpu variables\n\nChange cpufreq_policy and cpufreq_governor pointer tables\nfrom arrays to per_cpu variables in the cpufreq subsystem.\n\nAlso some minor complaints from checkpatch.pl fixed.\n\nBased on:\n\tgit://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git\n\tgit://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86.git\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "e8628dd06d66f2e3965ec9742029b401d63434f1",
      "tree": "341d5a2e36c877bd52c5567aa5791557a6920557",
      "parents": [
        "e56a727b023d40d1adf660168883f30f2e6abe0a"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Fri Apr 18 13:31:12 2008 -0700"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Mon Apr 28 16:27:08 2008 -0400"
      },
      "message": "[CPUFREQ] expose cpufreq coordination requirements regardless of coordination mechanism\n\nCurrently, affected_cpus shows which CPUs need to have their frequency\ncoordinated in software.  When hardware coordination is in use, the contents\nof this file appear the same as when no coordination is required.  This can\nlead to some confusion among user-space programs, for example, that do not\nknow that extra coordination is required to force a CPU core to a particular\nspeed to control power consumption.\n\nTo fix this, create a \"related_cpus\" attribute that always displays the\ncoordination map regardless of whatever coordination strategy the cpufreq\ndriver uses (sw or hw).  If the cpufreq driver does not provide a value, fall\nback to policy-\u003ecpus.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "74212ca432982903d0fc6a0f282b199e000ad8b1",
      "tree": "3fb784de921c831cc85577ef7fc9750d1414f1e3",
      "parents": [
        "457091181176643787a547dc04eb3cf5dcd822ce"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Sat Feb 16 08:41:24 2008 -0200"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Mon Apr 28 15:05:44 2008 -0400"
      },
      "message": "[CPUFREQ] Warn when cpufreq_register_notifier called before pure initcalls\n\nIf cpufreq_register_notifier is called before pure initcalls,\ninit_cpufreq_transition_notifier_list will overwrite whatever it did,\ncausing notifiers to be ignored.\n\nPrint some noise to the kernel log if that happens.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nSigned-off-by: Dave Jones \u003cdavej@codemonkey.org.uk\u003e\n"
    },
    {
      "commit": "457091181176643787a547dc04eb3cf5dcd822ce",
      "tree": "4e9e5434960137470cd39348cef4dbc73d7675d8",
      "parents": [
        "905d77cd95e856b8e0b2d099fb70b9b8ccb7337e"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Wed Mar 05 14:07:34 2008 -0500"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Mon Apr 28 15:05:42 2008 -0400"
      },
      "message": "[CPUFREQ] Refactor locking in cpufreq_add_dev\n\nSimplify this by moving the unlocking out of the error\npaths into the exit path.\n\nSigned-off-by: Dave Jones \u003cdavej@codemonkey.org.uk\u003e\n"
    },
    {
      "commit": "905d77cd95e856b8e0b2d099fb70b9b8ccb7337e",
      "tree": "4f6d4e8cabf27cfbfb7f08719d3cc94d77d7e95f",
      "parents": [
        "4d34a67d0204029079815c8c2753ca647cd0e7e9"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Wed Mar 05 14:28:32 2008 -0500"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Mon Apr 28 15:05:42 2008 -0400"
      },
      "message": "[CPUFREQ] more CodingStyle\n\nvoid * p   -\u003e  void *p\nno space between function parameters\nremoved excess whitespace\n\nSigned-off-by: Dave Jones \u003cdavej@codemonkey.org.uk\u003e\n"
    },
    {
      "commit": "4d34a67d0204029079815c8c2753ca647cd0e7e9",
      "tree": "710824c28fe784d144bd981ab4f24257766e408a",
      "parents": [
        "c906049447019d69b9cc2d591a142af561afa7f9"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Thu Feb 07 16:33:49 2008 -0500"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Mon Apr 28 15:05:41 2008 -0400"
      },
      "message": "[CPUFREQ] CodingStyle\n\nreturn is not a function.\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "c906049447019d69b9cc2d591a142af561afa7f9",
      "tree": "8ee10b19baf32b1396f0cf85ec6707a6f42e45a8",
      "parents": [
        "e31a94ed371c70855eb30b77c490d6d85dd4da26"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Thu Feb 07 16:32:18 2008 -0500"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Mon Apr 28 15:05:41 2008 -0400"
      },
      "message": "[CPUFREQ] Slightly shorten the error paths of cpufreq_suspend/cpufreq_resume\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    }
  ],
  "next": "f6ebef30e21638417f8f5443ba393d63a0c27e2b"
}
