)]}'
{
  "log": [
    {
      "commit": "1dbf58881f307e21a3df4b990a5bea401360d02e",
      "tree": "a79f9d4373c88a5451569f56d6b99952e982e832",
      "parents": [
        "557a701c16553b0b691dbb64ef30361115a80f64"
      ],
      "author": {
        "name": "Nagananda.Chumbalkar@hp.com",
        "email": "Nagananda.Chumbalkar@hp.com",
        "time": "Mon Dec 21 23:40:52 2009 +0100"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Wed Jan 13 10:55:16 2010 -0500"
      },
      "message": "[CPUFREQ] Fix ondemand to not request targets outside policy limits\n\nDominik said:\ntarget_freq cannot be below policy-\u003emin or above policy-\u003emax.\nIf it were, the whole cpufreq subsystem is broken.\n\nBut (answer):\nI think the \"ondemand\" governor can ask for a target frequency that is\nbelow policy-\u003emin.\n...\nA patch such as below may be needed to sanitize the target frequency\nrequested by \"ondemand\". The \"conservative\" governor already has this check:\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n\n# diff -bur x/drivers/cpufreq/cpufreq_ondemand.c.orig y/drivers/cpufreq/cpufreq_ondemand.c\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": "49b015ce38edeb484fb2efa09048c23e903f49d6",
      "tree": "e8a208ef45962afb3d953cf2e809540db0e40371",
      "parents": [
        "0cda8b91f2e096bbef1cb05f23c42e423eae7728"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Thu Oct 01 19:49:28 2009 +0200"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Nov 24 13:33:34 2009 -0500"
      },
      "message": "[CPUFREQ] Use global sysfs cpufreq structure for conservative governor tunings\n\nSame adustments that have been added to the ondemand recently.\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\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": "54c9a35d9faef06e00e2a941eb8fe674f1886901",
      "tree": "928bbd03871e60f79edd0dd522ac48a598d17cb6",
      "parents": [
        "8dca15e40889e5d5e9655b03ba79c26200f760ce"
      ],
      "author": {
        "name": "Pallipadi, Venkatesh",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Wed Nov 11 16:50:29 2009 -0800"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Nov 17 23:15:04 2009 -0500"
      },
      "message": "[CPUFREQ] Resolve time unit thinko in ondemand/conservative govs\n\nondemand and conservative governors are messing up time units in the\ncode path where NO_HZ is not enabled and ignore_nice is set. The walltime\nidletime stored is in jiffies and nice time calculation is happening in\nmicroseconds.\n\nThe problem was reported and diagnosed by Alexander here.\nhttp://marc.info/?l\u003dlinux-kernel\u0026m\u003d125752550404513\u0026w\u003d2\n\nThe patch below fixes this thinko.\n\nReported-by: Alexander Miller \u003cMiller@fmi.uni-stuttgart.de\u003e\nTested-by: Alexander Miller \u003cMiller@fmi.uni-stuttgart.de\u003e\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.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": "714af0693863dfb6f075f4465053976d2d076a21",
      "tree": "4da5efd5b229611cdee6a503dbae090adff3edf0",
      "parents": [
        "a03fdb7612874834d6847107198712d18b5242c7",
        "f0adb134d8dc9993a9998dc50845ec4f6ff4fadc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 18 09:16:57 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 18 09:16:57 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:\n  [CPUFREQ] Fix NULL ptr regression in powernow-k8\n  [CPUFREQ] Create a blacklist for processors that should not load the acpi-cpufreq module.\n  [CPUFREQ] Powernow-k8: Enable more than 2 low P-states\n  [CPUFREQ] remove rwsem lock from CPUFREQ_GOV_STOP call (second call site)\n  [CPUFREQ] ondemand - Use global sysfs dir for tuning settings\n  [CPUFREQ] Introduce global, not per core: /sys/devices/system/cpu/cpufreq\n  [CPUFREQ] Bail out of cpufreq_add_dev if the link for a managed CPU got created\n  [CPUFREQ] Factor out policy setting from cpufreq_add_dev\n  [CPUFREQ] Factor out interface creation from cpufreq_add_dev\n  [CPUFREQ] Factor out symlink creation from cpufreq_add_dev\n  [CPUFREQ] cleanup up -ENOMEM handling in cpufreq_add_dev\n  [CPUFREQ] Reduce scope of cpu_sys_dev in cpufreq_add_dev\n  [CPUFREQ] update Doc for cpuinfo_cur_freq and scaling_cur_freq\n"
    },
    {
      "commit": "ada3fa15057205b7d3f727bba5cd26b5912e350f",
      "tree": "60962fc9e4021b92f484d1a58e72cd3906d4f3db",
      "parents": [
        "2f82af08fcc7dc01a7e98a49a5995a77e32a2925",
        "5579fd7e6aed8860ea0c8e3f11897493153b10ad"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 15 09:39:44 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 15 09:39:44 2009 -0700"
      },
      "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: (46 commits)\n  powerpc64: convert to dynamic percpu allocator\n  sparc64: use embedding percpu first chunk allocator\n  percpu: kill lpage first chunk allocator\n  x86,percpu: use embedding for 64bit NUMA and page for 32bit NUMA\n  percpu: update embedding first chunk allocator to handle sparse units\n  percpu: use group information to allocate vmap areas sparsely\n  vmalloc: implement pcpu_get_vm_areas()\n  vmalloc: separate out insert_vmalloc_vm()\n  percpu: add chunk-\u003ebase_addr\n  percpu: add pcpu_unit_offsets[]\n  percpu: introduce pcpu_alloc_info and pcpu_group_info\n  percpu: move pcpu_lpage_build_unit_map() and pcpul_lpage_dump_cfg() upward\n  percpu: add @align to pcpu_fc_alloc_fn_t\n  percpu: make @dyn_size mandatory for pcpu_setup_first_chunk()\n  percpu: drop @static_size from first chunk allocators\n  percpu: generalize first chunk allocator selection\n  percpu: build first chunk allocators selectively\n  percpu: rename 4k first chunk allocator to page\n  percpu: improve boot messages\n  percpu: fix pcpu_reclaim() locking\n  ...\n\nFix trivial conflict as by Tejun Heo in kernel/sched.c\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": "0e625ac153126a0a62b7635fa9dc91f87ff39e38",
      "tree": "121d8d681e1fc401f12c17d705de476739553002",
      "parents": [
        "8aa84ad8d6c740a04386f599694609ee4998e82e"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Fri Jul 24 15:25:06 2009 +0200"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Sep 01 12:45:18 2009 -0400"
      },
      "message": "[CPUFREQ] ondemand - Use global sysfs dir for tuning settings\n\nOndemand has only global variables for userspace tunings via sysfs.\nBut they were exposed per CPU which wrongly implies to the user that\nhis settings are applied per cpu. Also locking sysfs against concurrent\naccess won\u0027t be necessary anymore after deprecation time.\n\nThis means the ondemand config dir is moved:\n/sys/devices/system/cpu/cpu*/cpufreq/ondemand -\u003e\n     /sys/devices/system/cpu/cpufreq/ondemand\n\nThe old files will still exist, but reading or writing to them will\nresult in one (printk_once) deprecation msg to syslog per file.\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\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": "384be2b18a5f9475eab9ca2bdfa95cc1a04ef59c",
      "tree": "04c93f391a1b65c8bf8d7ba8643c07d26c26590a",
      "parents": [
        "a76761b621bcd8336065c4fe3a74f046858bc34c",
        "142d44b0dd6741a64a7bdbe029110e7c1dcf1d23"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Aug 14 14:41:02 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Aug 14 14:45:31 2009 +0900"
      },
      "message": "Merge branch \u0027percpu-for-linus\u0027 into percpu-for-next\n\nConflicts:\n\tarch/sparc/kernel/smp_64.c\n\tarch/x86/kernel/cpu/perf_counter.c\n\tarch/x86/kernel/setup_percpu.c\n\tdrivers/cpufreq/cpufreq_ondemand.c\n\tmm/percpu.c\n\nConflicts in core and arch percpu codes are mostly from commit\ned78e1e078dd44249f88b1dd8c76dafb39567161 which substituted many\nnum_possible_cpus() with nr_cpu_ids.  As for-next branch has moved all\nthe first chunk allocators into mm/percpu.c, the changes are moved\nfrom arch code to mm/percpu.c.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\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": "26d204afa18f7df177f21bdb3759e0098ca8f7d5",
      "tree": "5446fa9688d2df4608314ec6772a5d6da3e97438",
      "parents": [
        "a33a052f19a21d727847391c8c1aff3fb221c472"
      ],
      "author": {
        "name": "Pallipadi, Venkatesh",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Wed Jul 29 13:36:10 2009 -0700"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Aug 04 14:32:10 2009 -0400"
      },
      "message": "[CPUFREQ] Fix NULL pointer dereference regression in conservative governor\n\nCommit ee88415caf736b89500f16e0a545614541a45005\nintroduced this regression when it removed enable bit in cpu_dbs_info_s.\nThat added a possibility of dbs_cpufreq_notifier getting called for a\nCPU that is not yet managed by conservative governor. That will happen\nas the transition notifier is set as soon as one CPU switches to\nconservative governor and other CPUs can get a NULL pointer dereference\nwithout the enable bit check. Add the enable bit back again.\n\nReported-by: Lermytte Christophe \u003cChristophe.Lermytte@thomson.net\u003e\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.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": "ee88415caf736b89500f16e0a545614541a45005",
      "tree": "b54b7d57e0886b042e55580627295677de75072c",
      "parents": [
        "5a75c82828e7c088ca6e7b4827911dc29cc8e774"
      ],
      "author": {
        "name": "venkatesh.pallipadi@intel.com",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Thu Jul 02 17:08:33 2009 -0700"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Mon Jul 06 21:38:28 2009 -0400"
      },
      "message": "[CPUFREQ] Cleanup locking in conservative governor\n\nRedesign the locking inside conservative driver. Make dbs_mutex handle all the\nglobal state changes inside the driver and invent a new percpu mutex\nto serialize percpu timer and frequency limit change.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "5a75c82828e7c088ca6e7b4827911dc29cc8e774",
      "tree": "65d155c6f277de757778eb8d91d1556f7198362c",
      "parents": [
        "37c90e8887efd218dc4af949b7f498ca2da4af9f"
      ],
      "author": {
        "name": "venkatesh.pallipadi@intel.com",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Thu Jul 02 17:08:32 2009 -0700"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Mon Jul 06 21:38:28 2009 -0400"
      },
      "message": "[CPUFREQ] Cleanup locking in ondemand governor\n\nRedesign the locking inside ondemand driver. Make dbs_mutex handle all the\nglobal state changes inside the driver and invent a new percpu mutex\nto serialize percpu timer and frequency limit change.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\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": "245b2e70eabd797932adb263a65da0bab3711753",
      "tree": "30f0b790dadd2b70bf06e534abcf66a76e97b05a",
      "parents": [
        "b9bf3121af348d9255f1c917830fe8c2df52efcb"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Jun 24 15:13:48 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Jun 24 15:13:48 2009 +0900"
      },
      "message": "percpu: clean up percpu variable definitions\n\nPercpu variable definition is about to be updated such that all percpu\nsymbols including the static ones must be unique.  Update percpu\nvariable definitions accordingly.\n\n* as,cfq: rename ioc_count uniquely\n\n* cpufreq: rename cpu_dbs_info uniquely\n\n* xen: move nesting_count out of xen_evtchn_do_upcall() and rename it\n\n* mm: move ratelimits out of balance_dirty_pages_ratelimited_nr() and\n  rename it\n\n* ipv4,6: rename cookie_scratch uniquely\n\n* x86 perf_counter: rename prev_left to pmc_prev_left, irq_entry to\n  pmc_irq_entry and nmi_entry to pmc_nmi_entry\n\n* perf_counter: rename disable_count to perf_disable_count\n\n* ftrace: rename test_event_disable to ftrace_test_event_disable\n\n* kmemleak: rename test_pointer to kmemleak_test_pointer\n\n* mce: rename next_interval to mce_next_interval\n\n[ Impact: percpu usage cleanups, no duplicate static percpu var names ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nCc: linux-mm \u003clinux-mm@kvack.org\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Steven Rostedt \u003csrostedt@redhat.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\n"
    },
    {
      "commit": "4f4d1ad6ee69027f51f9d137f7e7d3c863cbc53d",
      "tree": "ce64f81a573ac07c78abb835a84bc59c31c9cb18",
      "parents": [
        "86e13684aa77f07c77db352f437d9e53a84dde90"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Wed Apr 22 13:48:31 2009 +0200"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Mon Jun 15 11:49:41 2009 -0400"
      },
      "message": "[CPUFREQ] Only set sampling_rate_max deprecated, sampling_rate_min is useful\n\nUpdate the documentation accordingly.\nCleanup and use printk_once.\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "cef9615a853ebc4972084f7e70b52892557420ac",
      "tree": "9578c3371f57ab16be61e18aec307b450106106b",
      "parents": [
        "45e3e1935e2857c54783291107d33323b3ef33c8"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Wed Apr 22 13:48:29 2009 +0200"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Mon Jun 15 11:49:41 2009 -0400"
      },
      "message": "[CPUFREQ] ondemand: Uncouple minimal sampling rate from HZ in NO_HZ case\n\nWith this patch you have following minimal sampling rate restrictions:\n\nKernel restrictions:\nIf CONFIG_NO_HZ is set, the limit is 10ms fixed.\nIf CONFIG_NO_HZ is not set or no_hz\u003doff boot parameter is used, the\nlimits depend on the CONFIG_HZ option:\nHZ\u003d1000: min\u003d20000us  (20ms)\nHZ\u003d250:  min\u003d80000us  (80ms)\nHZ\u003d100:  min\u003d200000us (200ms)\n\nHW restrictions:\nDo not sample/poll more often than HW latency * 100  exported by the low\nlevel cpufreq HW driver\n\nThe higher value of above restrictions is the minimal sampling rate\nthat can be set (and can be seen via ondemand/sampling_rate_min sysfs file)\n\nDefault sampling rate still is HW latency * 1000, but this will now end\nup in lower values on latest (Intel and AMD) hardware as these can switch\nreally fast and sampling rate mostly was limited to the 80ms or 200ms\n(depending on whether HZ\u003d250 or HZ\u003d1000 is used).\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nCc: Pallipadi Venkatesh \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": "b14893a62c73af0eca414cfed505b8c09efc613c",
      "tree": "26105543df4e1bcbebdfd04853c0e131f89d37c1",
      "parents": [
        "b253d2b2d28ead6fed012feb54694b3d0562839a"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Sun May 17 10:30:45 2009 -0400"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue May 26 12:04:50 2009 -0400"
      },
      "message": "[CPUFREQ] fix timer teardown in ondemand governor\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\u003e\n\n(updated changelog)\n\ncpufreq fix timer teardown in ondemand governor\n\nThe problem is that dbs_timer_exit() uses cancel_delayed_work() when it should\nuse cancel_delayed_work_sync(). cancel_delayed_work() does not wait for the\nworkqueue handler to exit.\n\nThe ondemand governor does not seem to be affected because the\n\"if (!dbs_info-\u003eenable)\" check at the beginning of the workqueue handler returns\nimmediately without rescheduling the work. The conservative governor in\n2.6.30-rc has the same check as the ondemand governor, which makes things\nusually run smoothly. However, if the governor is quickly stopped and then\nstarted, this could lead to the following race :\n\ndbs_enable could be reenabled and multiple do_dbs_timer handlers would run.\nThis is why a synchronized teardown is required.\n\nThe following patch applies to, at least, 2.6.28.x, 2.6.29.1, 2.6.30-rc2.\n\nDepends on patch\ncpufreq: remove rwsem lock from CPUFREQ_GOV_STOP call\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCC: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCC: gregkh@suse.de\nCC: stable@kernel.org\nCC: cpufreq@vger.kernel.org\nCC: Ingo Molnar \u003cmingo@elte.hu\u003e\nCC: rjw@sisk.pl\nCC: Ben Slusky \u003csluskyb@paranoiacs.org\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "b253d2b2d28ead6fed012feb54694b3d0562839a",
      "tree": "39e9cb09e6e72a3029696f9b04476bc62510a77d",
      "parents": [
        "42a06f2166f2f6f7bf04f32b4e823eacdceafdc9"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Sun May 17 10:29:33 2009 -0400"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue May 26 12:04:50 2009 -0400"
      },
      "message": "[CPUFREQ] fix timer teardown in conservative governor\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\u003e\n\n(re-send with updated changelog)\n\ncpufreq fix timer teardown in conservative governor\n\nThe problem is that dbs_timer_exit() uses cancel_delayed_work() when it should\nuse cancel_delayed_work_sync(). cancel_delayed_work() does not wait for the\nworkqueue handler to exit.\n\nThe ondemand governor does not seem to be affected because the\n\"if (!dbs_info-\u003eenable)\" check at the beginning of the workqueue handler returns\nimmediately without rescheduling the work. The conservative governor in\n2.6.30-rc has the same check as the ondemand governor, which makes things\nusually run smoothly. However, if the governor is quickly stopped and then\nstarted, this could lead to the following race :\n\ndbs_enable could be reenabled and multiple do_dbs_timer handlers would run.\nThis is why a synchronized teardown is required.\n\nDepends on patch\ncpufreq: remove rwsem lock from CPUFREQ_GOV_STOP call\n\nThe following patch applies to 2.6.30-rc2. Stable kernels have a similar\nissue which should also be fixed, but the code changed between 2.6.29\nand 2.6.30, so this patch only applies to 2.6.30-rc.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCC: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCC: gregkh@suse.de\nCC: stable@kernel.org\nCC: cpufreq@vger.kernel.org\nCC: Ingo Molnar \u003cmingo@elte.hu\u003e\nCC: rjw@sisk.pl\nCC: Ben Slusky \u003csluskyb@paranoiacs.org\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\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": "a75603a084f1dd9a9558c8af95fc2acfc54f1021",
      "tree": "6b8369d6a60c8eb21ba9686def3d73548cc27974",
      "parents": [
        "8e677ce83bf41ba9c74e5b6d9ee60b07d4e5ed93"
      ],
      "author": {
        "name": "Alexander Clouter",
        "email": "alex@digriz.org.uk",
        "time": "Fri Feb 13 19:03:26 2009 +0000"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Feb 24 22:47:32 2009 -0500"
      },
      "message": "[CPUFREQ] conservative: remove 10x from def_sampling_rate\n\nAMD users get particular hit by this issue (bug 8081) as it caps at\ntypically 90 seconds as the minimum period for a frequency change.\nHarsh eh?  Years ago I borked this buy puting the 10x in the wrong\nplace...I fix that by removing it altogether.\n\nSigned-off-by: Alexander Clouter \u003calex@digriz.org.uk\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "8e677ce83bf41ba9c74e5b6d9ee60b07d4e5ed93",
      "tree": "2c7cd15b18c89807464a794ffb319488f2938426",
      "parents": [
        "f407a08bb7eff5ddbe0d9173d8717794a910771f"
      ],
      "author": {
        "name": "Alexander Clouter",
        "email": "alex@digriz.org.uk",
        "time": "Fri Feb 13 19:02:34 2009 +0000"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Feb 24 22:47:32 2009 -0500"
      },
      "message": "[CPUFREQ] conservative: fixup governor to function more like ondemand logic\n\nAs conservative is based off ondemand the codebases occasionally need to be\nresync\u0027d.  This patch, although ugly, does this.\n\nSigned-off-by: Alexander Clouter \u003calex@digriz.org.uk\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "f407a08bb7eff5ddbe0d9173d8717794a910771f",
      "tree": "e5c4edd6dcbf993c985c9a510127f8bf3cb98f00",
      "parents": [
        "11a80a9c7668c40c40a03ae15bd2c6b215058b2e"
      ],
      "author": {
        "name": "Alexander Clouter",
        "email": "alex@digriz.org.uk",
        "time": "Fri Feb 13 19:01:51 2009 +0000"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Feb 24 22:47:32 2009 -0500"
      },
      "message": "[CPUFREQ] conservative: fix dbs_cpufreq_notifier so freq is not locked\n\nWhen someone added the dbs_cpufreq_notifier section to the governor the\ncode ended up causing the frequency to only fall.  This is because\nrequested_freq is tinkered with and that should only modified if it has\nan invlaid value due to changes in the available frequency ranges\n\nThis should fix #10055.\n\nSigned-off-by: Alexander Clouter \u003calex@digriz.org.uk\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "11a80a9c7668c40c40a03ae15bd2c6b215058b2e",
      "tree": "4d41ce310e64105002da29c0eb044eb418473fd8",
      "parents": [
        "91420220d278584693d11a800b78fdc20e8fe10e"
      ],
      "author": {
        "name": "Alexander Clouter",
        "email": "alex@digriz.org.uk",
        "time": "Fri Feb 13 19:01:01 2009 +0000"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Feb 24 22:47:31 2009 -0500"
      },
      "message": "[CPUFREQ] conservative: amend author\u0027s email address\n\nAmend author\u0027s email address.\n\nSigned-off-by: Alexander Clouter \u003calex@digriz.org.uk\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "112124ab0a9f507a0d7fdbb1e1ed2b9a24f8c4ea",
      "tree": "15512b608d8f8f58817c1053d22a39d8f45e8b6d",
      "parents": [
        "9411b4ef7fcb534fe1582fe02738254e398dd931"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Wed Feb 04 11:55:12 2009 +0100"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Feb 24 22:47:31 2009 -0500"
      },
      "message": "[CPUFREQ] ondemand/conservative: sanitize sampling_rate restrictions\n\nLimit sampling rate to transition_latency * 100 or kernel limits.\nIf sampling_rate is tried to be set too low, set the lowest allowed value.\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "9411b4ef7fcb534fe1582fe02738254e398dd931",
      "tree": "86b7fcf2f085427fc3ea2b7f51527a0af7e6e1df",
      "parents": [
        "57f4fa699195b761cbea90db5e38b4bc15610c7c"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Wed Feb 04 11:54:04 2009 +0100"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Feb 24 22:47:31 2009 -0500"
      },
      "message": "[CPUFREQ] ondemand/conservative: deprecate sampling_rate{min,max}\n\nThe same info can be obtained via the transition_latency sysfs file\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\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": "2b03f891ad3804dd3fa4dadfd33e5dcb200389c5",
      "tree": "66c5efcaabb0cd51dd959fd9f5e51b65274192f8",
      "parents": [
        "b9e7638a301b1245d4675087a05fa90fb4fa1845"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Sun Jan 18 01:43:44 2009 -0500"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Feb 24 22:47:30 2009 -0500"
      },
      "message": "[CPUFREQ] checkpatch cleanups for ondemand governor.\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "97acec55de8b168548665f267c9dd45ed863b179",
      "tree": "82620b8b47daa7ae05e403419c21a66ba03054f6",
      "parents": [
        "1bceb8d13907d681b7eac9ae0ae14f2eecae9801"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Sun Jan 18 01:56:41 2009 -0500"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Feb 24 22:47:30 2009 -0500"
      },
      "message": "[CPUFREQ] checkpatch cleanups for freq_table\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "1bceb8d13907d681b7eac9ae0ae14f2eecae9801",
      "tree": "db39bce7643fa3ebc2a1252d624bc0e96d798d6c",
      "parents": [
        "0a829c5afde8e9e9c33a3a5c231b04dcf253337d"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Sun Jan 18 01:51:46 2009 -0500"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Feb 24 22:47:30 2009 -0500"
      },
      "message": "[CPUFREQ] checkpatch cleanups for userspace governor\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "0a829c5afde8e9e9c33a3a5c231b04dcf253337d",
      "tree": "61f6ed839cb4a49c26f325c6301484f499c06be1",
      "parents": [
        "9acef4875695a7717734f2578666a64822ea6495"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Sun Jan 18 01:49:04 2009 -0500"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Feb 24 22:47:30 2009 -0500"
      },
      "message": "[CPUFREQ] checkpatch cleanups for cpufreq_stats\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "9acef4875695a7717734f2578666a64822ea6495",
      "tree": "a28764742190a657ed7c939319aa5619ed123083",
      "parents": [
        "29464f281389fd7e9adf969de7bbeb20b8596f82"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Sun Jan 18 01:39:51 2009 -0500"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Feb 24 22:47:29 2009 -0500"
      },
      "message": "[CPUFREQ] checkpatch cleanups for conservative governor\n\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": "1ca3abdb6a4b87246b00292f048acd344325fd12",
      "tree": "787f3d255676da7110b4e09b6fe91ce50286e888",
      "parents": [
        "eda58a85ec3fc05855a26654d97a2b53f0e715b9"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Fri Jan 23 09:25:02 2009 -0500"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Thu Feb 05 12:25:26 2009 -0500"
      },
      "message": "[CPUFREQ] Make ignore_nice_load setting of ondemand work as expected.\n\nondemand micro-accounting of idle time changes broke ignore_nice_load\nsysfs setting due to a thinko in the code.\n\nThe bug entry:\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d12310\n\nReported-by: Jim Bray \u003cjimsantelmo@gmail.com\u003e\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "4e9b1c184cadbece3694603de5f880b6e35bd7a7",
      "tree": "8ae2ab8a4eaab4d46b4460284fd5ee475ce9a42d",
      "parents": [
        "0176260fc30842e358cf34afa7dcd9413db44822",
        "36c401a44abcc389a00f9cd14892c9cf9bf0780d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 10 06:12:18 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 10 06:12:18 2009 -0800"
      },
      "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:\n  [IA64] fix typo in cpumask_of_pcibus()\n  x86: fix x86_32 builds for summit and es7000 arch\u0027s\n  cpumask: use work_on_cpu in acpi-cpufreq.c for read_measured_perf_ctrs\n  cpumask: use work_on_cpu in acpi-cpufreq.c for drv_read and drv_write\n  cpumask: use cpumask_var_t in acpi-cpufreq.c\n  cpumask: use work_on_cpu in acpi/cstate.c\n  cpumask: convert struct cpufreq_policy to cpumask_var_t\n  cpumask: replace CPUMASK_ALLOC etc with cpumask_var_t\n  x86: cleanup remaining cpumask_t ops in smpboot code\n  cpumask: update pci_bus_show_cpuaffinity to use new cpumask API\n  cpumask: update local_cpus_show to use new cpumask API\n  ia64: cpumask fix for is_affinity_mask_valid()\n"
    },
    {
      "commit": "0211a9c8508b2183e0e539509aad60414f1c3813",
      "tree": "af5c78818202644f53d522229f25ee7bebb48cb6",
      "parents": [
        "025dfdafe77f20b3890981a394774baab7b9c827"
      ],
      "author": {
        "name": "Frederik Schwarzer",
        "email": "schwarzerf@gmail.com",
        "time": "Mon Dec 29 22:14:56 2008 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Jan 06 11:28:07 2009 +0100"
      },
      "message": "trivial: fix an -\u003e a typos in documentation and comments\n\nIt is always \"an\" if there is a vowel _spoken_ (not written).\nSo it is:\n\"an hour\" (spoken vowel)\nbut\n\"a uniform\" (spoken \u0027j\u0027)\n\nSigned-off-by: Frederik Schwarzer \u003cschwarzerf@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\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": "4f6e6b9f97b0ce98a8d1da65adbaf743bd0486a9",
      "tree": "b50dcdfa6ee6249af1be8549acbe459a452deb55",
      "parents": [
        "c4d14bc0bb5d13e316890651ae4518b764c3344c"
      ],
      "author": {
        "name": "Andrea Righi",
        "email": "righi.andrea@gmail.com",
        "time": "Thu Sep 18 10:43:40 2008 +0000"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Thu Oct 09 13:52:44 2008 -0400"
      },
      "message": "[CPUFREQ] Fix BUG: using smp_processor_id() in preemptible code\n\nUse get_cpu()/put_cpu() in cpufreq_ondemand init routine, instead of\nsmp_processor_id() to avoid the following BUG:\n\n[   35.313118] BUG: using smp_processor_id() in preemptible [00000000] code\u003d: modprobe/4952\n[   35.313132] caller is cpufreq_gov_dbs_init+0xa/0x8f [cpufreq_ondemand]\n[   35.313140] Pid: 4952, comm: modprobe Not tainted 2.6.27-rc5-mm1 #23\n[   35.313145] Call Trace:\n[   35.313158]  [\u003cffffffff80361ff7\u003e] debug_smp_processor_id+0xd7/0xe0\n[   35.313167]  [\u003cffffffffa010800a\u003e] cpufreq_gov_dbs_init+0xa/0x8f [cpufreq_ondemand]\n[   35.313176]  [\u003cffffffff8020903b\u003e] _stext+0x3b/0x160\n[   35.313185]  [\u003cffffffff804768c5\u003e] __mutex_unlock_slowpath+0xe5/0x190\n[   35.313195]  [\u003cffffffff8026236a\u003e] trace_hardirqs_on_caller+0xca/0x140\n[   35.313205]  [\u003cffffffff8026ef4c\u003e] sys_init_module+0xdc/0x210\n[   35.313212]  [\u003cffffffff8020b7cb\u003e] system_call_fastpath+0x16/0x1b\n\nSigned-off-by: Andrea Righi \u003crighi.andrea@gmail.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "c4d14bc0bb5d13e316890651ae4518b764c3344c",
      "tree": "7d5acc195e454ea9def4d0a627f69f7317d6dd5d",
      "parents": [
        "808009131046b62ac434dbc796c0fe8accaab415"
      ],
      "author": {
        "name": "Sven Wegener",
        "email": "sven.wegener@stealer.net",
        "time": "Sat Sep 20 16:50:08 2008 +0200"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Thu Oct 09 13:52:44 2008 -0400"
      },
      "message": "[CPUFREQ] Don\u0027t export governors for default governor\n\nWe don\u0027t need to export the governors for use as the default governor,\nbecause the default governor will be built-in anyway and we can access\nthe symbol directly.\n\nThis also fixes the following sparse warnings:\n\ndrivers/cpufreq/cpufreq_conservative.c:578:25: warning: symbol \u0027cpufreq_gov_conservative\u0027 was not declared. Should it be static?\ndrivers/cpufreq/cpufreq_ondemand.c:582:25: warning: symbol \u0027cpufreq_gov_ondemand\u0027 was not declared. Should it be static?\ndrivers/cpufreq/cpufreq_performance.c:39:25: warning: symbol \u0027cpufreq_gov_performance\u0027 was not declared. Should it be static?\ndrivers/cpufreq/cpufreq_powersave.c:38:25: warning: symbol \u0027cpufreq_gov_powersave\u0027 was not declared. Should it be static?\ndrivers/cpufreq/cpufreq_userspace.c:190:25: warning: symbol \u0027cpufreq_gov_userspace\u0027 was not declared. Should it be static?\n\nSigned-off-by: Sven Wegener \u003csven.wegener@stealer.net\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "808009131046b62ac434dbc796c0fe8accaab415",
      "tree": "64b5c755b8eb5d43f8e00554032de372f36e7b4c",
      "parents": [
        "8083e4ad970e4eb567e31037060cdd4ba346f0c0"
      ],
      "author": {
        "name": "venkatesh.pallipadi@intel.com",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Mon Aug 04 11:59:12 2008 -0700"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Thu Oct 09 13:52:44 2008 -0400"
      },
      "message": "[CPUFREQ][6/6] cpufreq: Add idle microaccounting in ondemand governor\n\nUse get_cpu_idle_time_us() to get micro-accounted idle information.\nThis enables ondemand to get more accurate idle and busy timings\nthan the jiffy based calculation. As a result, we can decrease\nthe ondemand safety gaurd band from 80-10 to 95-3.\n\nResults in more aggressive power savings.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "e9d95bf7eb929b9ddc9af9f4327b76c77ed4c7d6",
      "tree": "09206190529c527b36509830d735fc77e5cec74c",
      "parents": [
        "3430502d356284ff4f7782d75bb01a402fd3d45e"
      ],
      "author": {
        "name": "venkatesh.pallipadi@intel.com",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Mon Aug 04 11:59:10 2008 -0700"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Thu Oct 09 13:52:44 2008 -0400"
      },
      "message": "[CPUFREQ][4/6] cpufreq_ondemand: Parameterize down differential\n\nUse a parameter for down differential, instead of hardcoded 10%. Follow-on\npatch changes the down-differential dynamically, based on whether\nwe are using idle micro-accounting or not.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "3430502d356284ff4f7782d75bb01a402fd3d45e",
      "tree": "b656eeb8b58e13e3b9d5a57b60cbf637829b3886",
      "parents": [
        "c43aa3bd99a67009a167430e80c5fde6f37288d8"
      ],
      "author": {
        "name": "venkatesh.pallipadi@intel.com",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Mon Aug 04 11:59:09 2008 -0700"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Thu Oct 09 13:52:44 2008 -0400"
      },
      "message": "[CPUFREQ][3/6] cpufreq: get_cpu_idle_time() changes in ondemand for idle-microaccounting\n\nPreparatory changes for doing idle micro-accounting in ondemand governor.\nget_cpu_idle_time() gets extra parameter and returns idle time and also the\nwall time that corresponds to the idle time measurement.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "c43aa3bd99a67009a167430e80c5fde6f37288d8",
      "tree": "41e0aa9b864aa6a3d214c1c5ad52bc1f934e1423",
      "parents": [
        "bf0b90e357c883e8efd72954432efe652de74c76"
      ],
      "author": {
        "name": "venkatesh.pallipadi@intel.com",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Mon Aug 04 11:59:08 2008 -0700"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Thu Oct 09 13:52:43 2008 -0400"
      },
      "message": "[CPUFREQ][2/6] cpufreq: Change load calculation in ondemand for software coordination\n\nChange the load calculation algorithm in ondemand to work well with software\ncoordination of frequency across the dependent cpus.\n\nMultiply individual CPU utilization with the average freq of that logical CPU\nduring the measurement interval (using getavg call). And find the max CPU\nutilization number in terms of CPU freq. That number is then used to\nget to the target freq for next sampling interval.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.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": "8217e4f4c93e5fb59bb3cd1e6135213889349f86",
      "tree": "1f801a2c87c9832590a20d416ad4e0799825a2d7",
      "parents": [
        "f1829e4a371f26430185a9d5b97b8d9d19824e08"
      ],
      "author": {
        "name": "Ben Slusky",
        "email": "sluskyb@paranoiacs.org",
        "time": "Mon Jul 07 13:16:20 2008 -0400"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Thu Oct 09 13:52:43 2008 -0400"
      },
      "message": "[CPUFREQ] use deferrable delayed work init in conservative governor\n\nVenki Pallipadi made a similar change to the ondemand governor a while\nback (in commit 28287033e12463c8ff89f1ea8038783d0360391c). It seems to\nwork just as well in the conservative governor, leading to fewer wakeups\nas reported by powertop.\n\nSigned-off-by: Ben Slusky \u003csluskyb@paranoiacs.org\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": "888a794cacd8950ac6be701db20b62a4ab2ce90c",
      "tree": "056e6cdbd70860dc226887727e632947b4992dd7",
      "parents": [
        "847aef6ffd85787b62395b64719f8f7c5975bf1b"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Mon Jul 14 12:00:45 2008 +0900"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Thu Oct 09 13:52:43 2008 -0400"
      },
      "message": "[CPUFREQ] add error handling for cpufreq_register_governor() error\n\nAdd error handling for cpufreq_register_governor() error\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: cpufreq@lists.linux.org.uk\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "f068c04ba6f308774fdd2ed5e113da7cf4ff2f2b",
      "tree": "dacea248b87cbf604bd5e74256c64b997f473755",
      "parents": [
        "ec983f7060cd73e14cdd3edd910339127a8a4e96"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Wed Jul 30 12:59:56 2008 -0400"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Fri Aug 08 16:00:48 2008 -0400"
      },
      "message": "[CPUFREQ] Fix -Wshadow warning in conservative governor.\n\ndrivers/cpufreq/cpufreq_conservative.c:336:15: warning: symbol \u0027freq_step\u0027 shadows an earlier one\n\nJust rename the local variable.\n\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": "b38868aabeeb9c0c76a41ac5fa98c24bf0096f2a",
      "tree": "493179e0ad02454f77357c24006cfd83df5ff3dd",
      "parents": [
        "94a1e869c7b96a9d30e260084866383a145fd8ae"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Fri Jul 18 18:11:32 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jul 20 10:21:11 2008 +0200"
      },
      "message": "NR_CPUS: Replace NR_CPUS in cpufreq userspace routines\n\n  * Replace arrays sized by NR_CPUS with percpu variables.\n\n    Prior reference: http://marc.info/?l\u003dlinux-kernel\u0026m\u003d120251421825989\u0026w\u003d4\n    Subject:    [PATCH 1/4] cpufreq: change cpu freq tables to per_cpu variables\n    From:       Mike Travis \u003ctravis () sgi ! com\u003e\n    Date:       2008-02-08 23:37:39\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\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": "4f74369422b883164c50b5936517d010a3e1ce59",
      "tree": "7dd20e502d24a922f5ccb462dd17a1d384ee2fcd",
      "parents": [
        "da8395be0bb04f685d55f124d046766d9209214a"
      ],
      "author": {
        "name": "Dominik Brodowski",
        "email": "linux@dominikbrodowski.net",
        "time": "Thu May 22 08:52:05 2008 +0200"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Thu May 22 16:38:03 2008 -0400"
      },
      "message": "[CPUFREQ] clarify license of freq_table.c\n\nSigned-off-by: Dominik Brodowski \u003clinux@dominikbrodowski.net\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\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": "6501faf8c1bbaa51dc493f3681df016d2ebce833",
      "tree": "f83148776a4abc3c27da39bef24a2eabb056a2de",
      "parents": [
        "30d221db4439973076953e2ed44344fa92d1d09f"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Sun Apr 27 13:46:56 2008 -0700"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Mon Apr 28 16:27:08 2008 -0400"
      },
      "message": "[CPUFREQ] state info wrong after resume\n\nSometimes old_index !\u003d stat-\u003elast_index, see cpufreq_update_policy, bios can\nchange cpu setting in resume.  In my test, after resume cpu is in lowest\nspeed, but the stat info shows cpu is in full speed.  This patch makes the\nstat info correct after a resume.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "30d221db4439973076953e2ed44344fa92d1d09f",
      "tree": "15e97af8ffa193aede37f7bcb50fe9e905a41dcb",
      "parents": [
        "605400a8ab44131698b206cbe253e48380daaa69"
      ],
      "author": {
        "name": "Alessandro Guido",
        "email": "alessandro.guido@gmail.com",
        "time": "Fri Apr 18 13:31:13 2008 -0700"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Mon Apr 28 16:27:08 2008 -0400"
      },
      "message": "[CPUFREQ] allow use of the powersave governor as the default one\n\nAllow use of the powersave cpufreq governor as the default one for EMBEDDED\nconfigs.\n\nSigned-off-by: Alessandro Guido \u003calessandro.guido@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\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": "25aca347d49ffc38aa3b7e63ce9b90df7f8b79c8",
      "tree": "01ae9962d03db4ae07f808428600b5d3c725b607",
      "parents": [
        "74212ca432982903d0fc6a0f282b199e000ad8b1"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Sat Feb 16 08:41:25 2008 -0200"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Mon Apr 28 15:05:44 2008 -0400"
      },
      "message": "[CPUFREQ] fix show_trans_table\n\nFix show_trans_table when it overflows PAGE_SIZE.\n\n* Not all snprintf calls were protected against being passed a negative\nlength.\n* When show_trans_table overflows, len might be \u003e PAGE_SIZE. In that case,\nreturns PAGE_SIZE.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nSigned-off-by: Dave Jones \u003cdavej@codemonkey.org.uk\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"
    },
    {
      "commit": "f6ebef30e21638417f8f5443ba393d63a0c27e2b",
      "tree": "2d148d36edb829a2f1d05a69aaeec38c0d4886d7",
      "parents": [
        "0e5aa8d6218f9914b23e492debf653bda5598af3"
      ],
      "author": {
        "name": "Sam Ravnborg",
        "email": "sam@ravnborg.org",
        "time": "Sun Feb 17 13:22:52 2008 +0100"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Wed Mar 05 14:45:31 2008 -0500"
      },
      "message": "[CPUFREQ] fix section mismatch warnings\n\nFix the following warnings:\nWARNING: vmlinux.o(.text+0xfe6711): Section mismatch in reference from the function cpufreq_unregister_driver() to the variable .cpuinit.data:cpufreq_cpu_notifier\nWARNING: vmlinux.o(.text+0xfe68af): Section mismatch in reference from the function cpufreq_register_driver() to the variable .cpuinit.data:cpufreq_cpu_notifier\nWARNING: vmlinux.o(.exit.text+0xc4fa): Section mismatch in reference from the function cpufreq_stats_exit() to the variable .cpuinit.data:cpufreq_stat_cpu_notifier\n\nThe warnings were casued by references to unregister_hotcpu_notifier()\nfrom normal functions or exit functions.\nThis is flagged by modpost as a potential error because\nit does not know that for the non HOTPLUG_CPU\nscenario the unregister_hotcpu_notifier() is a nop.\nSilence the warning by replacing the __initdata\nannotation with a __refdata annotation.\n\nSigned-off-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\nSigned-off-by: Dave Jones \u003cdavej@codemonkey.org.uk\u003e\n"
    },
    {
      "commit": "a07530b44547a892dae59f4e0f141f4e6f5e2e40",
      "tree": "0e14831fba0a476f213d1f5e0f5795b16e6a5c85",
      "parents": [
        "0db4a8a99f6a8534c526e8c9d4b13d098400d485"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Wed Mar 05 14:22:25 2008 -0500"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Wed Mar 05 14:45:31 2008 -0500"
      },
      "message": "[CPUFREQ] Fix missing cpufreq_cpu_put() call in -\u003estore\n\nrefactor to use gotos instead of explicit exit paths\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "0db4a8a99f6a8534c526e8c9d4b13d098400d485",
      "tree": "47a83704487b43de3c4a0caa8eb9539491ee9221",
      "parents": [
        "29e8c3c304b62f31b799565c9ee85d42bd163f80"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Wed Mar 05 14:20:57 2008 -0500"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Wed Mar 05 14:45:31 2008 -0500"
      },
      "message": "[CPUFREQ] Fix missing cpufreq_cpu_put() call in -\u003eshow\n\nrefactor to use gotos instead of explicit exit paths\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "7ab47050453c10da13940114dea9c7f1c6ad323f",
      "tree": "1b50343583ddd59bdfe531b891a5a2599117b589",
      "parents": [
        "b6c24de77cbe9afe4962f0738e6444e709e83c81"
      ],
      "author": {
        "name": "Balaji Rao",
        "email": "balajirrao@gmail.com",
        "time": "Sat Feb 09 00:52:40 2008 +0530"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Feb 21 15:27:06 2008 -0800"
      },
      "message": "cpufreq: fix kobject reference count handling\n\nThe cpufreq core should not take an extra kobject reference count for no\nreason, and then refuse to release it.  This has been reported as\nkeeping machines from properly powering down all the way.\n\n\nSigned-off-by: Balaji Rao \u003cbalajirrao@gmail.com\u003e\nCc: Dave Jones \u003cdavej@codemonkey.org.uk\u003e\nCc: Yi Yang \u003cyi.y.yang@intel.com\u003e\nCc: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCc: Frans Pop \u003celendil@planet.nl\u003e\nCc: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "232e8884cb62f865d69383e42ef333215da504d4",
      "tree": "2e0aa4955d74475e3d5a534d4d553e00e0a7969d",
      "parents": [
        "4ae5c49ffe93a36e8f6140db069b4126289020c1"
      ],
      "author": {
        "name": "Stefano Brivio",
        "email": "stefano.brivio@polimi.it",
        "time": "Thu Nov 29 19:37:41 2007 +0100"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Wed Feb 06 22:57:58 2008 -0500"
      },
      "message": "[CPUFREQ] fix configuration help message\n\ncpufreq support can\u0027t be built as a module. Fix the related configuration\nhelp message.\n\nSigned-off-by: Stefano Brivio \u003cstefano.brivio@polimi.it\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "9e76988e9390a4ff4d171f690586d0c58186b47e",
      "tree": "e033aa977a66b4ea2dc01b0e846eb7f6f8134857",
      "parents": [
        "b25e75899e449456409cfa1a3b042257c03d4355"
      ],
      "author": {
        "name": "Venki Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Fri Oct 26 10:18:21 2007 -0700"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Wed Feb 06 22:57:58 2008 -0500"
      },
      "message": "[CPUFREQ] Eliminate cpufreq_userspace scaling_setspeed deadlock\n\nEliminate cpufreq_userspace scaling_setspeed deadlock.\n\nLuming Yu recently uncovered yet another cpufreq related deadlock.\nOne thread that continuously switches the governors and the other thread that\nrepeatedly cats the contents of cpufreq directory causes both these threads to\ngo into a deadlock.\n\nDetailed examination of the deadlock showed the exact flow before the deadlock\nas:\n\nThread 1\t\t\tThread 2\n________\t\t\t________\n\t\t\t\tcats files under /sys/devices/.../cpufreq/\nSet governor to userspace\n  Adds a new sysfs entry for\n  scaling_setspeed\n\t\t\t\tcats files under /sys/devices/.../cpufreq/\n\nSet governor to performance\n  Holds cpufreq_rw_sem in write\n  mode\n  Sends a STOP notify to\n  userspace governor\n\t\t\t\tcat /sys/devices/.../cpufreq/scaling_setspeed\n\t\t\t\t  Gets a handle on the above sysfs entry with\n\t\t\t\t  sysfs_get_active\n\t\t\t\t  Blocks while trying to get cpufreq_rw_sem\n\t\t\t\t  in read mode\n  Remove a sysfs entry for\n  scaling_setspeed\n    Blocks on sysfs_deactivate\n    while waiting for earlier\n    get_active (on other thread)\n    to drain\n\nAt this point both threads go into deadlock and any other thread that tries to\ndo anything with sysfs cpufreq will also block.\n\nThere seems to be no easy way to avoid this deadlock as long as\ncpufreq_userspace adds/removes the sysfs entry under same kobject as cpufreq.\nBelow patch moves scaling_setspeed to cpufreq.c, keeping it always and calling\nback the governor on read/write. This is the cleanest fix I could think of,\neven though adding two callbacks in governor structure just for this seems\nunnecessary.\n\nNote that the change makes scaling_setspeed under /sys/.../cpufreq permanent\nand returns \u003cunsupported\u003e when governor is not userspace.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "e32d22f77666312648735f7cda0a114a8242b9d8",
      "tree": "1468d7e6c5bce28c39bb98550d13410a3580ccc0",
      "parents": [
        "a4a9df5825bf8fc69618807436bf927aeb1e1c27"
      ],
      "author": {
        "name": "Fenghua Yu",
        "email": "fenghua.yu@intel.com",
        "time": "Wed Nov 21 14:52:15 2007 -0800"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Wed Feb 06 22:57:58 2008 -0500"
      },
      "message": "[CPUFREQ] fix incorrect comment on show_available_freqs() in freq_table.c\n\nIn freq_table.c, show_available_freqs()\u0027s comment is oberviously wrong.\nChange the comment to a new one to avoid confusion.\n\nSigned-off-by: Fenghua Yu \u003cfenghua.yu@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "a4a9df5825bf8fc69618807436bf927aeb1e1c27",
      "tree": "30073ebf28ea4a13716c35faec34f5809896ef66",
      "parents": [
        "cdbec9a0ad35f9ace53b063c8ccf4e2db823e674"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Nov 19 17:48:06 2007 -0800"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Wed Feb 06 22:57:57 2008 -0500"
      },
      "message": "[CPUFREQ] drivers/cpufreq: Add missing \"space\"\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "53391fa20cab6df6b476a5a0ad6be653c9de0c46",
      "tree": "9aa7cf97cd9c8f735f7281f0fee1a9f23b053b56",
      "parents": [
        "1ce357129a55a791318e23f5d7b8a9f1352858aa"
      ],
      "author": {
        "name": "Yi Yang",
        "email": "yi.y.yang@intel.com",
        "time": "Wed Jan 30 13:33:34 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:33:34 2008 +0100"
      },
      "message": "cpufreq: fix obvious condition statement error\n\nThe function __cpufreq_set_policy in file drivers/cpufreq/cpufreq.c\nhas a very obvious error:\n\n        if (policy-\u003emin \u003e data-\u003emin \u0026\u0026 policy-\u003emin \u003e policy-\u003emax) {\n                ret \u003d -EINVAL;\n                goto error_out;\n        }\n\nThis condtion statement is wrong because it returns -EINVAL only if\npolicy-\u003emin is greater than policy-\u003emax (in this case,\n\"policy-\u003emin \u003e data-\u003emin\" is true for ever.). In fact, it should\nreturn -EINVAL as well if policy-\u003emax is less than data-\u003emin.\n\nThe correct condition should be:\n\n\tif (policy-\u003emin \u003e data-\u003emax || policy-\u003emax \u003c data-\u003emin) {\n\nThe following test result testifies the above conclusion:\n\nBefore applying this patch:\n\n[root@yangyi-dev /]# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies\n2394000 1596000\n[root@yangyi-dev /]# echo 1596000 \u003e /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq\n[root@yangyi-dev /]# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq\n1596000\n[root@yangyi-dev /]# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq\n1596000\n[root@yangyi-dev /]# echo \"2000000\" \u003e /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq\n-bash: echo: write error: Invalid argument\n[root@yangyi-dev /]# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq\n1596000\n[root@yangyi-dev /]# echo \"0\" \u003e /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq\n[root@yangyi-dev /]# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq\n1596000\n[root@yangyi-dev /]# echo \"1595000\" \u003e /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq\n[root@yangyi-dev /]# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq\n1596000\n[root@yangyi-dev /]#\n\nAfter applying this patch:\n\n[root@yangyi-dev /]# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies\n2394000 1596000\n[root@yangyi-dev /]# echo 1596000 \u003e /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq\n[root@yangyi-dev /]# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq\n1596000\n[root@yangyi-dev /]# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq\n1596000\n[root@localhost /]# echo \"2000000\" \u003e /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq\n-bash: echo: write error: Invalid argument\n[root@localhost /]# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq\n1596000\n[root@localhost /]# echo \"0\" \u003e /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq\n-bash: echo: write error: Invalid argument\n[root@localhost /]# echo \"1595000\" \u003e /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq\n-bash: echo: write error: Invalid argument\n[root@localhost /]# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq\n1596000\n[root@localhost /]# echo \"1596000\" \u003e /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq\n[root@localhost /]# echo \"2394000\" \u003e /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq\n[root@localhost /]# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq\n2394000\n[root@localhost /]\n\nSigned-off-by: Yi Yang \u003cyi.y.yang@intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    }
  ],
  "next": "c10997f6575f476ff38442fa18fd4a0d80345f9d"
}
