)]}'
{
  "log": [
    {
      "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": "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": "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"
    },
    {
      "commit": "c10997f6575f476ff38442fa18fd4a0d80345f9d",
      "tree": "9b2bb7e647bd39fb80f23d7a6b34bf2587d660a7",
      "parents": [
        "38a382ae5dd4f4d04e3046816b0a41836094e538"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Dec 20 08:13:05 2007 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:40 2008 -0800"
      },
      "message": "Kobject: convert drivers/* from kobject_unregister() to kobject_put()\n\nThere is no need for kobject_unregister() anymore, thanks to Kay\u0027s\nkobject cleanup changes, so replace all instances of it with\nkobject_put().\n\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "038c5b3e412b0b751cb4b1507506bad3c7ffefae",
      "tree": "9f3be89c2646b23eebebc80420e0c886b6623866",
      "parents": [
        "d6d292c451e0ffe715fff36dc3a1129868258fa3"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Dec 17 15:54:39 2007 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:28 2008 -0800"
      },
      "message": "Kobject: change drivers/cpufreq/cpufreq.c to use kobject_init_and_add\n\nStop using kobject_register, as this way we can control the sending of\nthe uevent properly, after everything is properly initialized.\n\nCc: Dominik Brodowski \u003clinux@brodo.de\u003e\nCc: Ashok Raj \u003cashok.raj@intel.com\u003e\nCc: Jacob Shin \u003cjacob.shin@amd.com\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "6915719b36a97d28fab576c6fa2a20364b435fe6",
      "tree": "9c8938f57499b61247cc362677761a899c75b7f0",
      "parents": [
        "d8c89eb3a12f0da96d049bd515c7fa3702e511c5"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@saeurebad.de",
        "time": "Thu Jan 17 15:21:08 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jan 17 15:38:58 2008 -0800"
      },
      "message": "cpufreq: Initialise default governor before use\n\nWhen the cpufreq driver starts up at boot time, it calls into the default\ngovernor which might not be initialised yet.  This hurts when the\ngovernor\u0027s worker function relies on memory that is not yet set up by its\ninit function.\n\nThis migrates all governors from module_init() to fs_initcall() when being\nthe default, as was already done in cpufreq_performance when it was the\nonly possible choice.  The performance governor is always initialized early\nbecause it might be used as fallback even when not being the default.\n\nFixes at least one actual oops where ondemand is the default governor and\ncpufreq_governor_dbs() uses the uninitialised kondemand_wq work-queue\nduring boot-time.\n\nSigned-off-by: Johannes Weiner \u003channes@saeurebad.de\u003e\nCc: Dave Jones \u003cdavej@codemonkey.org.uk\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a33234735b2bcfb23cf1facb1f0d8656b8edab8f",
      "tree": "993802a8e3efb0485b6f8ad9c6ded1a27c9f9261",
      "parents": [
        "771cceb464874d4a22efd4a600e4597ad3f2fc9e"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Mon Dec 17 16:20:03 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Dec 17 19:28:16 2007 -0800"
      },
      "message": "drivers/cpufreq/cpufreq_stats.c section fix\n\ncpufreq_stats_free_table() mustn\u0027t be __cpuexit since it\u0027s called by the\n__cpuinit cpufreq_stat_cpu_callback().\n\nThis patch fixes the following section mismatch reported by\nChris Clayton:\n\nWARNING: vmlinux.o(.init.text+0x143dd): Section mismatch: reference to .exit.text:cpufreq_stats_free_table (between \u0027cpufreq_stat_cpu_callback\u0027 and \u0027cpufreq_stats_init\u0027)\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nCc: Chris Clayton \u003cchris2553@googlemail.com\u003e\nAcked-by: Dave Jones \u003cdavej@codemonkey.org.uk\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bd6cba53c524dccf72900435d29722b22f61d835",
      "tree": "ef16fee47a90de1dc891f5814bee014ebe7f1546",
      "parents": [
        "9548b209a37397f3036aa5bd3d5b4d3b725aa11a"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Mon Dec 17 16:19:58 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Dec 17 19:28:16 2007 -0800"
      },
      "message": "cpufreq: fix missing unlocks in cpufreq_add_dev error paths.\n\nIngo hit some BUG_ONs that were probably caused by these missing unlocks\ncausing an unbalance.  He couldn\u0027t reproduce the bug reliably, so it\u0027s\nunknown that it\u0027s definitly fixing the problem he hit, but it\u0027s a fairly\ngood chance, and this fixes an obvious bug.\n\n[ Dave: \"Ingo followed up that he hit some lockdep related output with\n         this applied, so it may not be right.  I\u0027ll look at it after\n         xmas if no-one has it figured out before then.\"\n  Akpm: \"It looks pretty correct to me though.\" ]\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "18a7247d1bb2e2dcbab628d7e786d03df5bf1eed",
      "tree": "bdecb16766f9f7a80ab4324a17ba1e20fe05053b",
      "parents": [
        "a8d7c3bc2396aff14f9e920677072cb55b016040"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Mon Oct 22 16:49:09 2007 -0400"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Mon Oct 22 16:49:09 2007 -0400"
      },
      "message": "[CPUFREQ] Fix up whitespace in conservative governor.\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "a8d7c3bc2396aff14f9e920677072cb55b016040",
      "tree": "a962a7dbbe578abeaa69ce3f76cd3eb3d59643bc",
      "parents": [
        "c5829cd07ec4c08daa7ff91c821af9b2ac7748df"
      ],
      "author": {
        "name": "Elias Oltmanns",
        "email": "eo@nebensachen.de",
        "time": "Mon Oct 22 09:50:13 2007 +0200"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Mon Oct 22 16:34:39 2007 -0400"
      },
      "message": "[CPUFREQ] Make cpufreq_conservative handle out-of-sync events properly\n\nMake cpufreq_conservative handle out-of-sync events properly\n\nCurrently, the cpufreq_conservative governor doesn\u0027t get notified when the\nactual frequency the cpu is running at differs from what cpufreq thought it\nwas. As a result the cpu may stay at the maximum frequency after a s2ram /\nresume cycle even though the system is idle.\n\nSigned-off-by: Elias Oltmanns \u003ceo@nebensachen.de\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "efefc6eb38d43b8e5daef482f575d767b002004e",
      "tree": "8a3933db1f8721f9bcc9912c800dc8406f4bdf94",
      "parents": [
        "117494a1b65183f0e3fcc817b07944bc5c465050",
        "cd59abfcc441b2abb4cf2cd62c1eb0f02a60e8dd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 12 15:49:37 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 12 15:49:37 2007 -0700"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6\n\n* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6: (75 commits)\n  PM: merge device power-management source files\n  sysfs: add copyrights\n  kobject: update the copyrights\n  kset: add some kerneldoc to help describe what these strange things are\n  Driver core: rename ktype_edd and ktype_efivar\n  Driver core: rename ktype_driver\n  Driver core: rename ktype_device\n  Driver core: rename ktype_class\n  driver core: remove subsystem_init()\n  sysfs: move sysfs file poll implementation to sysfs_open_dirent\n  sysfs: implement sysfs_open_dirent\n  sysfs: move sysfs_dirent-\u003es_children into sysfs_dirent-\u003es_dir\n  sysfs: make sysfs_root a regular directory dirent\n  sysfs: open code sysfs_attach_dentry()\n  sysfs: make s_elem an anonymous union\n  sysfs: make bin attr open get active reference of parent too\n  sysfs: kill unnecessary NULL pointer check in sysfs_release()\n  sysfs: kill unnecessary sysfs_get() in open paths\n  sysfs: reposition sysfs_dirent-\u003es_mode.\n  sysfs: kill sysfs_update_file()\n  ...\n"
    },
    {
      "commit": "19c38de88a80913351fcacefdb461cc0b585fa87",
      "tree": "17d2978ce27861926a0d9a3eb49471b9b736f968",
      "parents": [
        "5901d0145c6b9e791bacd049eea11c9db9a3006e"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Sep 12 15:06:57 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 12 14:51:02 2007 -0700"
      },
      "message": "kobjects: fix up improper use of the kobject name field\n\nA number of different drivers incorrect access the kobject name field\ndirectly.  This is not correct as the name might not be in the array.\nUse the proper accessor function instead.\n\n"
    },
    {
      "commit": "9eb59573d4b86f347e6cd04f47a4c2082009fa58",
      "tree": "91209b4149bf791c36ed50da3d0261f491cd27b4",
      "parents": [
        "562d94d98f7032bdc4a99d9124a78a543dbea225"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed Oct 10 02:18:27 2007 +0200"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Oct 09 21:44:06 2007 -0400"
      },
      "message": "[CPUFREQ] Don\u0027t take semaphore in cpufreq_quick_get()\n\nI don\u0027t see any reason to take an expensive lock in cpufreq_quick_get()\nReading policy-\u003ecur is a single atomic operation and after\nthe lock is dropped again the state could change any time anyways.\n\nSo don\u0027t take the lock in the first place.\n\nThis also makes this function interrupt safe which is useful\nfor some code of mine.\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: \"Pallipadi, Venkatesh\" \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "55395ae72b6e5ae614d28df74158c47454652583",
      "tree": "1e78d5102b5ad87ae304103699c0c36b75627b41",
      "parents": [
        "6070b5de50ab5e3f810628a9cbb04deecf30a85f"
      ],
      "author": {
        "name": "Satyam Sharma",
        "email": "satyam@infradead.org",
        "time": "Tue Oct 02 13:28:15 2007 -0700"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Thu Oct 04 18:40:57 2007 -0400"
      },
      "message": "[CPUFREQ] cpufreq_stats: misc cpuinit section annotations\n\n* Stop referencing the callback directly from the __init and __exit\n  functions of this driver, and instead explicitly call\n  cpufreq_update_policy() et al. This enables the callback function\n  to be marked as __cpuinit (and the notifier_block __cpuinitdata),\n  thereby saving space when HOTPLUG_CPU\u003dn. This also enables us to\n  use other tricks to replace __cpuinit{data} in future.\n\n* cpufreq_stats_free_table() is only called from __cpuinit or __exit\n  marked functions, making it an ideal candidate for __cpuexit.\n\n* Fix missing space in the module description\n\nSigned-off-by: Satyam Sharma \u003csatyam@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "dd184a01b8ece6bac2f7a63de99a4a4d29552746",
      "tree": "ddf4a212eb3af1df9e5dc7ed3e0cd3c1a409b2d8",
      "parents": [
        "6afde10c3f58cc3ac593f5b4505b8b1cf719f5d6"
      ],
      "author": {
        "name": "Satyam Sharma",
        "email": "satyam@infradead.org",
        "time": "Tue Oct 02 13:28:14 2007 -0700"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Thu Oct 04 18:40:57 2007 -0400"
      },
      "message": "[CPUFREQ] mark hotplug notifier callback as __cpuinit\n\nThe notifier_block is already __cpuinitdata, thereby allowing us to safely\nmark the callback function as __cpuinit also, thereby saving space when\nHOTPLUG_CPU\u003dn.\n\nSigned-off-by: Satyam Sharma \u003csatyam@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "6afde10c3f58cc3ac593f5b4505b8b1cf719f5d6",
      "tree": "28f8d8af521abb7186836bd7003cec237907b79a",
      "parents": [
        "1c2562459faedc35927546cfa5273ec6c2884cce"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Tue Oct 02 13:28:13 2007 -0700"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Thu Oct 04 18:40:57 2007 -0400"
      },
      "message": "[CPUFREQ] Only check for transition latency on problematic governors (kconfig fix)\n\nCc: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "1c2562459faedc35927546cfa5273ec6c2884cce",
      "tree": "a6133aa5c0ac2b4a8cb12fa37c28e755a458aef0",
      "parents": [
        "8122c6cea033e8034e99d3b10a4e3f377ce23994"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Tue Oct 02 13:28:12 2007 -0700"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Thu Oct 04 18:40:57 2007 -0400"
      },
      "message": "[CPUFREQ] allow ondemand and conservative cpufreq governors to be used as default\n\nDepending on the transition latency of the HW for cpufreq switches, the\nondemand or conservative governor cannot be used with certain cpufreq\ndrivers.  Still the ondemand should be the default governor on a wide range\nof systems.  This patch allows this and lets the governor fallback to the\nperformance governor at cpufreq driver load time, if the driver does not\nsupport fast enough frequency switching.\n\nMain benefit is that on e.g.  installation or other systems without\nuserspace support a working dynamic cpufreq support can be achieved on most\nsystems by simply loading the cpufreq driver.  This is especially essential\nfor recent x86(_64) laptop hardware which may rely on working dynamic\ncpufreq OS support.\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Bryan Wu \u003cbryan.wu@analog.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "8122c6cea033e8034e99d3b10a4e3f377ce23994",
      "tree": "00c7263e242e5c821abfe627bace54bba7696777",
      "parents": [
        "a09d60a622ea4a3592dc6836e709d4a7a4ed4025"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Tue Oct 02 13:28:09 2007 -0700"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Thu Oct 04 18:40:57 2007 -0400"
      },
      "message": "[CPUFREQ] move policy\u0027s governor initialisation out of low-level drivers into cpufreq core\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Bryan Wu \u003cbryan.wu@analog.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "084f34939424161669467c19280dbcf637730314",
      "tree": "85285adb98b7306a28152cf48bfae98d3f1f05c8",
      "parents": [
        "91973de736bc97dc04156242c5a4b00993b6c902"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Mon Jul 09 11:35:28 2007 -0700"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Fri Jul 13 01:29:51 2007 -0400"
      },
      "message": "[CPUFREQ] Restore previously used governor on a hot-replugged CPU\n\nNegative side effect: needs NR_CPUs pointer array of memory in\nCONFIG_HOTPLUG_CPU case.\n\nStill needs userspace track keeping and rewriting of governors if governors\nchange while a CPU is not active (always the governor at CPU remove time is\nrestored).\n\nMove of policy-\u003euser_policy.governor assignment is just a minor cleanup.\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d8671\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nSigned-off-by: Mattia Dongili \u003cmalattia@linux.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "91973de736bc97dc04156242c5a4b00993b6c902",
      "tree": "8d94fefd2c2f208e470510a4e607a32d013b969f",
      "parents": [
        "aac22d0a79f51d7bd93145be36322baaa4b423f8"
      ],
      "author": {
        "name": "Peter Oruba",
        "email": "peter.oruba@amd.com",
        "time": "Mon Jul 09 11:35:27 2007 -0700"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Fri Jul 13 01:29:51 2007 -0400"
      },
      "message": "[CPUFREQ] bugfix cpufreq in combination with performance governor\n\nThere is a frequency scaling issue that I encountered with the performance\ngovernor in combination with CPU hotplug.\n\nIn cpufreq.c CPU frequency is reduced to its minimum before the CPU gets\nunregistered and set offline.  Does that have a particular reason?\n\nSince the (k8-)governor does not monitor CPU frequency that setting also\napplies then to the remaining CPU as well and lets the system run on the\nlowest frequency although performance is chose as the policy.\n\nSigned-off-by: Peter Oruba \u003cpeter.oruba@amd.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "702ed6ef375c19d65f2eeeefd3851476f2c4cee4",
      "tree": "fe46588dcc716f64a04310797d9446573614d3fc",
      "parents": [
        "2f41fc806434f8466bb361570589a3f6099ca65d",
        "58a7295bc8073b9e668c329cb9ceb5b668c2b15d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 13:42:43 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 13:42:43 2007 -0700"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq\n\n* master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq:\n  [CPUFREQ] Fix sysfs_create_file return value handling\n  [CPUFREQ] ondemand: fix tickless accounting and software coordination bug\n  [CPUFREQ] ondemand: add a check to avoid negative load calculation\n  [CPUFREQ] Keep userspace governor quiet when it is not being used\n  [CPUFREQ] Longhaul - Proper register access\n  [CPUFREQ] Kconfig powernow-k8 driver should depend on ACPI P-States driver\n  [CPUFREQ] Longhaul - Replace ACPI functions with direct I/O\n  [CPUFREQ] Longhaul - Remove duplicate multipliers\n  [CPUFREQ] Longhaul - Embedded \"conservative\"\n  [CPUFREQ] acpi-cpufreq: Proper ReadModifyWrite of PERF_CTL MSR\n  [CPUFREQ] check return value of sysfs_create_file\n  [CPUFREQ] Longhaul - Check ACPI \"BM DMA in progress\" bit\n  [CPUFREQ] Longhaul - Move old_ratio to correct place\n  [CPUFREQ] Longhaul - VT8237 support\n  [CPUFREQ] Longhaul - Use all kinds of support\n  [CPUFREQ] powernow-k8: clarify number of cores.\n"
    },
    {
      "commit": "7b595756ec1f49e0049a9e01a1298d53a7faaa15",
      "tree": "cd06687ab3e5c7a5a4ef91903dff207a18c4db76",
      "parents": [
        "dbde0fcf9f8f6d477af3c32d9979e789ee680cde"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Jun 14 03:45:17 2007 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jul 11 16:09:06 2007 -0700"
      },
      "message": "sysfs: kill unnecessary attribute-\u003eowner\n\nsysfs is now completely out of driver/module lifetime game.  After\ndeletion, a sysfs node doesn\u0027t access anything outside sysfs proper,\nso there\u0027s no reason to hold onto the attribute owners.  Note that\noften the wrong modules were accounted for as owners leading to\naccessing removed modules.\n\nThis patch kills now unnecessary attribute-\u003eowner.  Note that with\nthis change, userland holding a sysfs node does not prevent the\nbacking module from being unloaded.\n\nFor more info regarding lifetime rule cleanup, please read the\nfollowing message.\n\n  http://article.gmane.org/gmane.linux.kernel/510293\n\n(tweaked by Greg to not delete the field just yet, to make it easier to\nmerge things properly.)\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "58a7295bc8073b9e668c329cb9ceb5b668c2b15d",
      "tree": "932958f082da6e6f115841cd56b5c7e7527006ed",
      "parents": [
        "ea48761519bd40d7a881c587b5f3177664b2987e"
      ],
      "author": {
        "name": "Tobias Klauser",
        "email": "tklauser@distanz.ch",
        "time": "Thu Jun 14 00:28:15 2007 +0200"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Thu Jun 21 12:57:54 2007 -0400"
      },
      "message": "[CPUFREQ] Fix sysfs_create_file return value handling\n\nCommit 0a4b2ccc555fa2ca6873d60219047104e4805d45 in cpufreq.git\neliminates the build warnings but does not pass on the error code of\nsysfs_create_file to the function calling cpufreq_add_dev. Instead some\nprevious value of ret would be returned.\n\nSigned-off-by: Tobias Klauser \u003ctklauser@distanz.ch\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "ea48761519bd40d7a881c587b5f3177664b2987e",
      "tree": "76694d9cd379490be903d8a73fa7588ad504197e",
      "parents": [
        "0af99b13c9f323e658b4f1d69a1ccae7d6f3f80a"
      ],
      "author": {
        "name": "Venki Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Wed Jun 20 14:26:24 2007 -0700"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Thu Jun 21 12:57:53 2007 -0400"
      },
      "message": "[CPUFREQ] ondemand: fix tickless accounting and software coordination bug\n\nWith tickless kernel and software coordination os P-states, ondemand\ncan look at wrong idle statistics. This can happen when ondemand sampling\nis happening on CPU 0 and due to software coordination sampling also looks at\nutilization of CPU 1. If CPU 1 is in tickless state at that moment, its idle\nstatistics will not be uptodate and CPU 0 thinks CPU 1 is idle for less\namount of time than it actually is.\n\nThis can be resolved by looking at all the busy times of CPUs, which is\naccurate, even with tickless, and use that to determine idle time in a\nround about way (total time - busy time).\n\nThanks to Arjan for originally reporting the ondemand bug on\nLenovo T61.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "0af99b13c9f323e658b4f1d69a1ccae7d6f3f80a",
      "tree": "531d6ae823c0e7facfd375106f79c213c4a1290b",
      "parents": [
        "c7f652e0487a35c16f6cd72707232b6a28647a10"
      ],
      "author": {
        "name": "Venki Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Wed Jun 20 14:24:52 2007 -0700"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Thu Jun 21 12:57:53 2007 -0400"
      },
      "message": "[CPUFREQ] ondemand: add a check to avoid negative load calculation\n\nDue to rounding and inexact jiffy accounting, idle_ticks can sometimes\nbe higher than total_ticks. Make sure those cases are handled as\nzero load case.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "c7f652e0487a35c16f6cd72707232b6a28647a10",
      "tree": "8ef6901d94aa0f168ae4ad07275c3cf15a0b3818",
      "parents": [
        "689eba77cbd0cfaaa3687cbe23e8b534f8ae0ebb"
      ],
      "author": {
        "name": "Venki Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Wed Jun 20 14:24:00 2007 -0700"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Thu Jun 21 12:57:53 2007 -0400"
      },
      "message": "[CPUFREQ] Keep userspace governor quiet when it is not being used\n\nUserspace governor registers a frequency change notifier at init time, even\nwhen no CPU is set to userspace governor. Make it register only when\natleast one CPU is using userspace.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "0a4b2ccc555fa2ca6873d60219047104e4805d45",
      "tree": "3641776d5ad881047b5fa3ff64f55ab427c85a40",
      "parents": [
        "489dc5cb18932d3cedaef03e84890475db17a843"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Mon May 21 07:20:04 2007 -0500"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue May 29 16:56:40 2007 -0400"
      },
      "message": "[CPUFREQ] check return value of sysfs_create_file\n\nEliminate build warning (sysfs_create_file return value must be checked)\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "8bb7844286fb8c9fce6f65d8288aeb09d03a5e0d",
      "tree": "f4e305edaedbde05774bb1e4acd89a9475661d2e",
      "parents": [
        "f37bc2712b54ec641e0c0c8634f1a4b61d9956c0"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed May 09 02:35:10 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:56 2007 -0700"
      },
      "message": "Add suspend-related notifications for CPU hotplug\n\nSince nonboot CPUs are now disabled after tasks and devices have been\nfrozen and the CPU hotplug infrastructure is used for this purpose, we need\nspecial CPU hotplug notifications that will help the CPU-hotplug-aware\nsubsystems distinguish normal CPU hotplug events from CPU hotplug events\nrelated to a system-wide suspend or resume operation in progress.  This\npatch introduces such notifications and causes them to be used during\nsuspend and resume transitions.  It also changes all of the\nCPU-hotplug-aware subsystems to take these notifications into consideration\n(for now they are handled in the same way as the corresponding \"normal\"\nones).\n\n[oleg@tv-sign.ru: cleanups]\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "28287033e12463c8ff89f1ea8038783d0360391c",
      "tree": "27eabb2890dd1e2e30363dee2f4263cbee906a42",
      "parents": [
        "6e453a67510a17f01b63835f18569e8c3939a38c"
      ],
      "author": {
        "name": "Venki Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Tue May 08 00:27:47 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:05 2007 -0700"
      },
      "message": "Add a new deferrable delayed work init\n\nAdd a new deferrable delayed work init.  This can be used to schedule work\nthat are \u0027unimportant\u0027 when CPU is idle and can be called later, when CPU\neventually comes out of idle.\n\nUse this init in cpufreq ondemand governor.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nCc: Dave Jones \u003cdavej@codemonkey.org.uk\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9101be532a3c60c7e8773868395e3b75259d84c3",
      "tree": "acaaa4642ac4f3b1ccb1805a4df3eeeed7c3c6db",
      "parents": [
        "07844252ffd81ec192a62014bada1016c9703765"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Wed Apr 18 16:18:13 2007 -0400"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Thu Apr 26 14:32:03 2007 -0400"
      },
      "message": "[CPUFREQ] cleanup kconfig options\n\nAdds proper lines to help output of kconfig so people can find the module names.\nAlso fixed some broken leading spaces versus tabs.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "632786ce9ff6206951ee4c84fe5c0d5c1d12f4cc",
      "tree": "c432e55bd84c566bcf7b2c84107d5c0178a20976",
      "parents": [
        "22c970f3468a6766b362d57fa32ebb92cb8cd6db"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Thu Apr 19 15:49:09 2007 +0200"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Thu Apr 26 14:32:02 2007 -0400"
      },
      "message": "[CPUFREQ] Remove deprecated /proc/acpi/processor/performance write support\n\nRemove deprecated /proc/acpi/processor/performance write support\n\nWriting to /proc/acpi/processor/xy/performance interferes with sysfs\ncpufreq interface. Also removes buggy cpufreq_set_policy exported symbol.\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "22c970f3468a6766b362d57fa32ebb92cb8cd6db",
      "tree": "09e666c2c1f1ac93a2a6deec703d667cdc41b250",
      "parents": [
        "e8e49190f64896afe79f7136a67c2bdefbd3e322"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Thu Apr 19 15:48:34 2007 +0200"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Thu Apr 26 14:32:02 2007 -0400"
      },
      "message": "[CPUFREQ] Fix limited cpufreq when booted on battery\n\nReferences:\nhttps://bugzilla.novell.com/show_bug.cgi?id\u003d231107\nhttps://bugzilla.novell.com/show_bug.cgi?id\u003d264077\n\nFix limited cpufreq when booted on battery\n\nIf booted on battery:\ncpufreq_set_policy (evil) is invoked which calls verify_within_limits.\nmax_freq gets lowered and therefore users_policy.max, which\nis used to restore higher freqs via update_policy later is set to the\nalready limited frequency -\u003e you can never go up again, even BIOS\nallows higher freqs later.\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "ec28297a562f2b022115b9eb82e4ea724d996240",
      "tree": "37443cab75290b45b65b491f6dd56882fad38dec",
      "parents": [
        "703071b5b93d88d5acb0edd5b9dd86c69ad970f2"
      ],
      "author": {
        "name": "Venki Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Mon Mar 26 12:03:19 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Mar 27 08:55:56 2007 -0700"
      },
      "message": "[PATCH] Fix maxcpus\u003d1 trigerring BUG() in cpufreq\n\nIngo reported it on lkml in the thread\n  \"2.6.21-rc5: maxcpus\u003d1 crash in cpufreq: kernel BUG at drivers/cpufreq/cpufreq.c:82!\"\n\nThis check added to remove_dev  is symmetric to one in add_dev and handles\ncallbacks for offline cpus cleanly.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "221dee285ee38099b82437531bcae9fa9cb64cc4",
      "tree": "1f91186091f0256e04c210a8ac76023cdeebf202",
      "parents": [
        "6f8c480f998a619082f18407f8d7f4c29e94dc6e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 26 14:55:48 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 26 14:55:48 2007 -0800"
      },
      "message": "Revert \"[CPUFREQ] constify cpufreq_driver where possible.\"\n\nThis reverts commit aeeddc1435c37fa3fc844f31d39c185b08de4158, which was\nhalf-baked and broken.  It just resulted in compile errors, since\ncpufreq_register_driver() still changes the \u0027driver_data\u0027 by setting\nbits in the flags field.  So claiming it is \u0027const\u0027 _really_ doesn\u0027t\nwork.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6f8c480f998a619082f18407f8d7f4c29e94dc6e",
      "tree": "5047fe0d685fe9eab64c506fa1001e7df5e65faa",
      "parents": [
        "038c068f63a950c3a6ccfa814831ccac0ad48fb1",
        "bd5ab26a7d0cc834d846fe5dd7291f0aed3be72b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 26 14:17:50 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 26 14:17:50 2007 -0800"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq\n\n* master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq:\n  [CPUFREQ] constify some data tables.\n  [CPUFREQ] constify cpufreq_driver where possible.\n  {rd,wr}msr_on_cpu SMP\u003dn optimization\n  [CPUFREQ] cpufreq_ondemand.c: don\u0027t use _WORK_NAR\n  rdmsr_on_cpu, wrmsr_on_cpu\n  [CPUFREQ] Revert default on deprecated config X86_SPEEDSTEP_CENTRINO_ACPI\n"
    },
    {
      "commit": "aeeddc1435c37fa3fc844f31d39c185b08de4158",
      "tree": "46269bbff184799c2cded9ccd433e980c38f7b4b",
      "parents": [
        "b44755cfaa72e7ed3d831a946bb4e7dfe7548966"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Thu Feb 22 19:08:27 2007 -0500"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Thu Feb 22 19:08:27 2007 -0500"
      },
      "message": "[CPUFREQ] constify cpufreq_driver where possible.\n\nNot all cases are possible due to -\u003eflags being set at runtime\non some drivers.\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "48ac3271e52d23ee987da93f80d20f6bec8e6717",
      "tree": "772efa621ceb4814ad296f5dd09fc46a320fcfa4",
      "parents": [
        "b077ffb3b767c3efb44d00b998385a9cb127255c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Mon Feb 19 00:44:07 2007 +0300"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Feb 20 14:23:43 2007 -0500"
      },
      "message": "[CPUFREQ] cpufreq_ondemand.c: don\u0027t use _WORK_NAR\n\nLooks like dbs_timer() is very careful wrt per_cpu(cpu_dbs_info),\nand it doesn\u0027t need the help of WORK_STRUCT_NOAUTOREL.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "ef29498655b18d2bfd69048e20835d19333981ab",
      "tree": "20f2038bd270cbdcd3b796c9fa6b749593cbde80",
      "parents": [
        "0187f221e96e3436d552c0c7143f183eb82fb658",
        "2b8c0e13026c30bd154dc521ffc235360830c712"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 16 08:16:01 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 16 08:16:01 2007 -0800"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq\n\n* master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq:\n  [CPUFREQ] Longhaul - Redo Longhaul ver. 2\n  [CPUFREQ] EPS - Correct 2nd brand test\n  [CPUFREQ] Longhaul - Separate frequency and voltage transition\n  [CPUFREQ] Longhaul - Models of Nehemiah\n  [CPUFREQ] Whitespace fixup\n  [CPUFREQ] Longhaul - Simplier minmult\n  [CPUFREQ] CPU_FREQ_TABLE shouldn\u0027t be a def_tristate\n  [CPUFREQ] ondemand governor use new cpufreq rwsem locking in work callback\n  [CPUFREQ] ondemand governor restructure the work callback\n  [CPUFREQ] Rewrite lock in cpufreq to eliminate cpufreq/hotplug related issues\n  [CPUFREQ] Remove hotplug cpu crap\n  [CPUFREQ] Enhanced PowerSaver driver\n  [CPUFREQ] Longhaul - Add VT8235 support\n  [CPUFREQ] Longhaul - Fix guess_fsb function\n  [CPUFREQ] Longhaul - Remove duplicate tables\n  [CPUFREQ] Longhaul - Introduce Nehemiah C\n  [CPUFREQ] fix cpuinfo_cur_freq for CPU_HW_PSTATE\n  [CPUFREQ] Longhaul - Remove \"ignore_latency\" option\n"
    },
    {
      "commit": "cd354f1ae75e6466a7e31b727faede57a1f89ca5",
      "tree": "09a2da1672465fefbc7fe06ff4e6084f1dd14c6b",
      "parents": [
        "3fc605a2aa38899c12180ca311f1eeb61a6d867e"
      ],
      "author": {
        "name": "Tim Schmielau",
        "email": "tim@physik3.uni-rostock.de",
        "time": "Wed Feb 14 00:33:14 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 14 08:09:54 2007 -0800"
      },
      "message": "[PATCH] remove many unneeded #includes of sched.h\n\nAfter Al Viro (finally) succeeded in removing the sched.h #include in module.h\nrecently, it makes sense again to remove other superfluous sched.h includes.\nThere are quite a lot of files which include it but don\u0027t actually need\nanything defined in there.  Presumably these includes were once needed for\nmacros that used to live in sched.h, but moved to other header files in the\ncourse of cleaning it up.\n\nTo ease the pain, this time I did not fiddle with any header files and only\nremoved #includes from .c-files, which tend to cause less trouble.\n\nCompile tested against 2.6.20-rc2 and 2.6.20-rc2-mm2 (with offsets) on alpha,\narm, i386, ia64, mips, powerpc, and x86_64 with allnoconfig, defconfig,\nallmodconfig, and allyesconfig as well as a few randconfigs on x86_64 and all\nconfigs in arch/arm/configs on arm.  I also checked that no new warnings were\nintroduced by the patch (actually, some warnings are removed that were emitted\nby unnecessarily included header files).\n\nSigned-off-by: Tim Schmielau \u003ctim@physik3.uni-rostock.de\u003e\nAcked-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c18a1483f478adbeb4cc7148db22c4a9c10aaee3",
      "tree": "2bb26c46e099da0690cde622283be460837aa46b",
      "parents": [
        "9addf3b6388459f315adc728d27d34603a00d427"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Sat Feb 10 20:03:51 2007 -0500"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Sat Feb 10 20:03:51 2007 -0500"
      },
      "message": "[CPUFREQ] Whitespace fixup\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "f0ec313a89a7377f440c815f82b0370bd67f62c6",
      "tree": "dc59980300b99a37bbd6071999283b63585d699d",
      "parents": [
        "56463b78cdca8e9ff8cc1759bca0c0777a061d6b"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Feb 05 16:12:45 2007 -0800"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Sat Feb 10 20:01:48 2007 -0500"
      },
      "message": "[CPUFREQ] CPU_FREQ_TABLE shouldn\u0027t be a def_tristate\n\nCPU_FREQ_TABLE enables helper code and gets select\u0027ed when it\u0027s required.\n\nBuilding it as a module when it\u0027s not required doesn\u0027t seem to make much sense.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "56463b78cdca8e9ff8cc1759bca0c0777a061d6b",
      "tree": "435e98e919e96da931b1874eae6c888b734dea6d",
      "parents": [
        "529af7a14f04f92213bac371931a2b2b060c63fa"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Mon Feb 05 16:12:45 2007 -0800"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Sat Feb 10 20:01:48 2007 -0500"
      },
      "message": "[CPUFREQ] ondemand governor use new cpufreq rwsem locking in work callback\n\nEliminate flush_workqueue in cpufreq_governor(STOP) callpath. Using flush\nthere has a deadlock potential as in\n\nhttp://uwsg.iu.edu/hypermail/linux/kernel/0611.3/1223.html\n\nAlso, cleanup the locking issues with do_dbs_timer delayed_work callback.  As\nit changes the CPU frequency using __cpufreq_target, it needs to have\npolicy_rwsem in write mode, which also protects it from hot plug.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nCc: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "529af7a14f04f92213bac371931a2b2b060c63fa",
      "tree": "f5abea57e39f694ab3dd3f65d0303f10f38c73c3",
      "parents": [
        "5a01f2e8f3ac134e24144d74bb48a60236f7024d"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Mon Feb 05 16:12:44 2007 -0800"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Sat Feb 10 20:01:47 2007 -0500"
      },
      "message": "[CPUFREQ] ondemand governor restructure the work callback\n\nRestructure the delayed_work callback in ondemand.\n\nThis eliminates the need for smp_processor_id in the callback function and\nalso helps in proper locking and avoiding flush_workqueue when stopping the\ngovernor (done in subsequent patch).\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nCc: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "5a01f2e8f3ac134e24144d74bb48a60236f7024d",
      "tree": "8d807b81618dc1b4782e0e58a9629a6d0a09fbe3",
      "parents": [
        "c120069779e3e35917c15393cf2847fa79811eb6"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Mon Feb 05 16:12:44 2007 -0800"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Sat Feb 10 20:01:47 2007 -0500"
      },
      "message": "[CPUFREQ] Rewrite lock in cpufreq to eliminate cpufreq/hotplug related issues\n\nYet another attempt to resolve cpufreq and hotplug locking issues.\n\nPatchset has 3 patches:\n* Rewrite the lock infrastructure of cpufreq using a per cpu rwsem.\n* Minor restructuring of work callback in ondemand driver.\n* Use the new cpufreq rwsem infrastructure in ondemand work.\n\nThis patch:\n\nConvert policy-\u003elock to rwsem and move it to per_cpu area.\nThis rwsem will protect against both changing/accessing policy\nrelated parameters and CPU hot plug/unplug.\n\n[malattia@linux.it: fix oops in kref_put()]\nCc: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nCc: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Mattia Dongili \u003cmalattia@linux.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "c120069779e3e35917c15393cf2847fa79811eb6",
      "tree": "9e1e5529b43c151ecc9d3743e5b51ff88eb52312",
      "parents": [
        "86acd49aa128bd7a1d4362c256c21fbdc2d5b1a0"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Mon Feb 05 16:12:43 2007 -0800"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Sat Feb 10 20:01:47 2007 -0500"
      },
      "message": "[CPUFREQ] Remove hotplug cpu crap\n\nThe hotplug CPU locking in cpufreq is horrendous.  No-one seems to care\nenough to fix it, so just remove it so that the 99.9% of the real world\nusers of this code can use cpufreq without being bothered by warnings.\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "0142f9dce8425da031d72dc3b70ee7161fcaaea2",
      "tree": "e311911a8eda0b3608f567090714bd742bda07bf",
      "parents": [
        "5263bf65d6342e12ab716db8e529501670979321"
      ],
      "author": {
        "name": "Ahmed S. Darwish",
        "email": "darwish.07@gmail.com",
        "time": "Fri Jan 05 05:44:54 2007 +0200"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Mon Jan 29 00:06:27 2007 -0500"
      },
      "message": "[CPUFREQ] check sysfs_create_link return value\n\nTrivial patch to check sysfs_create_link return values.\nFail gracefully if needed.\n\nSigned-off-by: Ahmed Darwish \u003cdarwish.07@gmail.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "8edc59d939ad233c24385fb67a62bd39db532901",
      "tree": "68f3f3fabc5310d0d3c0cdae1db1d4aef33ddccd",
      "parents": [
        "917325d30ab12f9f23aee5c91dc96dfe81b0c6be"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Tue Dec 19 12:58:55 2006 -0800"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Fri Dec 22 22:45:41 2006 -0500"
      },
      "message": "[CPUFREQ] Bug fix for acpi-cpufreq and cpufreq_stats oops on frequency change notification\n\nFixes the oops in cpufreq_stats with acpi_cpufreq driver.  The issue was\nthat the frequency was reported as 0 in acpi-cpufreq.c.  The bug is due to\ndifferent indicies for freq_table and ACPI perf table.\n\nAlso adds a check in cpufreq_stats to check for error return from\nfreq_table_get_index() and avoid using the error return value.\n\nPatch fixes the issue reported at\nhttp://www.ussg.iu.edu/hypermail/linux/kernel/0611.2/0629.html\nand also other similar issue here\nhttp://bugme.osdl.org/show_bug.cgi?id\u003d7383 comment 53\n\nSigned-off-by: Dhaval Giani \u003cdhaval.giani@gmail.com\u003e\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "4ab70df451c6183dd5474a68edac44684b0b7616",
      "tree": "d2ed54e9c9171b3a726bda0aeaf4deb832b73172",
      "parents": [
        "445722f97a0ecd3aed3f53d9f0dcaacaef8c6223"
      ],
      "author": {
        "name": "Dhaval Giani",
        "email": "dhaval.giani@gmail.com",
        "time": "Wed Dec 13 14:49:15 2006 +0530"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Wed Dec 13 10:11:25 2006 -0500"
      },
      "message": "[CPUFREQ] fixes typo in cpufreq.c\n\nThis patch fixes a typo in cpufreq.c\n\nFrom: Dhaval Giani \u003cdhaval.giani@gmail.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "c4366889dda8110247be59ca41fddb82951a8c26",
      "tree": "705c1a996bed8fd48ce94ff33ec9fd00f9b94875",
      "parents": [
        "db2fb9db5735cc532fd4fc55e94b9a3c3750378e",
        "e1036502e5263851259d147771226161e5ccc85a"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Dec 12 17:41:41 2006 -0500"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Dec 12 17:41:41 2006 -0500"
      },
      "message": "Merge ../linus\n\nConflicts:\n\n\tdrivers/cpufreq/cpufreq.c\n"
    },
    {
      "commit": "02316067852187b8bec781bec07410e91af79627",
      "tree": "856e3f4610c91a6548bf3bf5c70ecbc0b28a4145",
      "parents": [
        "a38a44c1a93078fc5fadc4ac2df8dea4697069e2"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 06 20:38:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:39 2006 -0800"
      },
      "message": "[PATCH] hotplug CPU: clean up hotcpu_notifier() use\n\nThere was lots of #ifdef noise in the kernel due to hotcpu_notifier(fn,\nprio) not correctly marking \u0027fn\u0027 as used in the !HOTPLUG_CPU case, and thus\ngenerating compiler warnings of unused symbols, hence forcing people to add\n#ifdefs.\n\nthe compiler can skip truly unused functions just fine:\n\n    text    data     bss     dec     hex filename\n 1624412  728710 3674856 6027978  5bfaca vmlinux.before\n 1624412  728710 3674856 6027978  5bfaca vmlinux.after\n\n[akpm@osdl.org: topology.c fix]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c4028958b6ecad064b1a6303a6a5906d4fe48d73",
      "tree": "1c4c89652c62a75da09f9b9442012007e4ac6250",
      "parents": [
        "65f27f38446e1976cc98fd3004b110fedcddd189"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 22 14:57:56 2006 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 22 14:57:56 2006 +0000"
      },
      "message": "WorkStruct: make allyesconfig\n\nFix up for make allyesconfig.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "65f27f38446e1976cc98fd3004b110fedcddd189",
      "tree": "68f8be93feae31dfa018c22db392a05546b63ee1",
      "parents": [
        "365970a1ea76d81cb1ad2f652acb605f06dae256"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 22 14:55:48 2006 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 22 14:55:48 2006 +0000"
      },
      "message": "WorkStruct: Pass the work_struct pointer instead of context data\n\nPass the work_struct pointer to the work function rather than context data.\nThe work function can use container_of() to work out the data.\n\nFor the cases where the container of the work_struct may go away the moment the\npending bit is cleared, it is made possible to defer the release of the\nstructure by deferring the clearing of the pending bit.\n\nTo make this work, an extra flag is introduced into the management side of the\nwork_struct.  This governs auto-release of the structure upon execution.\n\nOrdinarily, the work queue executor would release the work_struct for further\nscheduling or deallocation by clearing the pending bit prior to jumping to the\nwork function.  This means that, unless the driver makes some guarantee itself\nthat the work_struct won\u0027t go away, the work function may not access anything\nelse in the work_struct or its container lest they be deallocated..  This is a\nproblem if the auxiliary data is taken away (as done by the last patch).\n\nHowever, if the pending bit is *not* cleared before jumping to the work\nfunction, then the work function *may* access the work_struct and its container\nwith no problems.  But then the work function must itself release the\nwork_struct by calling work_release().\n\nIn most cases, automatic release is fine, so this is the default.  Special\ninitiators exist for the non-auto-release case (ending in _NAR).\n\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "6af6e1efb161ffe36e718b1fd58385710879af7c",
      "tree": "ccbe039979bf4829744f61052029c05662c0e195",
      "parents": [
        "b80ebbf39fc628afab7d9cf94b84cfc51d845b2f"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Nov 21 16:58:59 2006 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Tue Nov 21 14:07:15 2006 -0800"
      },
      "message": "[PATCH] Fix CPU_FREQ_GOV_ONDEMAND\u003dy compile error\n\nThe ONDEMAND governor needs FREQ_TABLE\n\nSigned-off-by: Mattia Dongili \u003cmalattia@linux.it\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b3438f8266cb1f5010085ac47d7ad6a36a212164",
      "tree": "bb74bd7a3ea7a629e380aa7761ba63a5e44992c7",
      "parents": [
        "f44ea623443ee0bec266d62f1cd346881224d47d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Mon Nov 20 11:47:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Mon Nov 20 11:47:18 2006 -0800"
      },
      "message": "Add \"pure_initcall\" for static variable initialization\n\nThis is a quick hack to overcome the fact that SRCU currently does not\nallow static initializers, and we need to sometimes initialize those\nthings before any other initializers (even \"core\" ones) can do so.\n\nCurrently we don\u0027t allow this at all for modules, and the only user that\nneeds is right now is cpufreq. As reported by Thomas Gleixner:\n\n   \"Commit b4dfdbb3c707474a2254c5b4d7e62be31a4b7da9 (\"[PATCH] cpufreq:\n    make the transition_notifier chain use SRCU breaks cpu frequency\n    notification users, which register the callback \u003e on core_init\n    level.\"\n\nCc: Thomas Gleixner \u003ctglx@timesys.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Andrew Morton \u003cakpm@osdl.org\u003e,\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e08f5f5bb5dfaaa28d69ffe37eb774533297657f",
      "tree": "3cda0e9a1d27c448fb4ceb81737eea695b17d2ed",
      "parents": [
        "95625b8f19e1e030c7fe3c010407d90fa248c68f"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Thu Oct 26 16:20:58 2006 +0530"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Mon Nov 06 19:16:34 2006 -0500"
      },
      "message": "[CPUFREQ] Fix coding style issues in cpufreq.\n\nClean up cpufreq subsystem to fix coding style issues and to improve\nthe readability.\n\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "914f7c31b0bea0ccf3bf474d0b99d803f7985097",
      "tree": "06c8ff4bf0f12170904bf681ffaedd14f368a7c8",
      "parents": [
        "95dd722700dc9bbb000d51cab07dde48720e9178"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 20 14:31:00 2006 -0700"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Sat Oct 21 01:33:12 2006 -0400"
      },
      "message": "[CPUFREQ] handle sysfs errors\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "dfde5d62ed9b28b0bda676c16e8cb635df244ef2",
      "tree": "12c690189fcc7155389860beae554199456b7d3e",
      "parents": [
        "a6f6e6e6ab464c9d1dff66570b78be2f66d8ba3d"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Tue Oct 03 12:38:45 2006 -0700"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Sun Oct 15 19:57:11 2006 -0400"
      },
      "message": "[CPUFREQ][8/8] acpi-cpufreq: Add support for freq feedback from hardware\n\nEnable ondemand governor and acpi-cpufreq to use IA32_APERF and IA32_MPERF MSR\nto get active frequency feedback for the last sampling interval. This will\nmake ondemand take right frequency decisions when hardware coordination of\nfrequency is going on.\n\nWithout APERF/MPERF, ondemand can take wrong decision at times due\nto underlying hardware coordination or TM2.\nExample:\n* CPU 0 and CPU 1 are hardware cooridnated.\n* CPU 1 running at highest frequency.\n* CPU 0 was running at highest freq. Now ondemand reduces it to\n  some intermediate frequency based on utilization.\n* Due to underlying hardware coordination with other CPU 1, CPU 0 continues to\n  run at highest frequency (as long as other CPU is at highest).\n* When ondemand samples CPU 0 again next time, without actual frequency\n  feedback from APERF/MPERF, it will think that previous frequency change\n  was successful and can go to wrong target frequency. This is because it\n  thinks that utilization it has got this sampling interval is when running at\n  intermediate frequency, rather than actual highest frequency.\n\nMore information about IA32_APERF IA32_MPERF MSR:\nRefer to IA-32 Intel® Architecture Software Developer\u0027s Manual at\nhttp://developer.intel.com\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "b4dfdbb3c707474a2254c5b4d7e62be31a4b7da9",
      "tree": "20558266428cb904c4ffc660647cfdb7e7abeae5",
      "parents": [
        "e6a92013ba458804161c0c5b6d134d82204dc233"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Wed Oct 04 02:17:06 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 07:55:30 2006 -0700"
      },
      "message": "[PATCH] cpufreq: make the transition_notifier chain use SRCU\n\nThis patch (as762) changes the cpufreq_transition_notifier_list from a\nblocking_notifier_head to an srcu_notifier_head.  This will prevent errors\ncaused attempting to call down_read() to access the notifier chain at a\ntime when interrupts must remain disabled, during system suspend.\n\nIt\u0027s not clear to me whether this is really necessary; perhaps the chain\ncould be made into an atomic_notifier.  However a couple of the callout\nroutines do use blocking operations, so this approach seems safer.\n\nThe head of the notifier chain needs to be initialized before use; this is\ndone by an __init routine at core_initcall time.  If this turns out not to\nbe a good choice, it can easily be changed.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nCc: Jesse Brandeburg \u003cjesse.brandeburg@gmail.com\u003e\nCc: Dave Jones \u003cdavej@codemonkey.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0e37b159aa7427bf311487e3ea03d8aa5ff5956e",
      "tree": "c337e1614689b65bd3af35af6c40b61c9b60de29",
      "parents": [
        "b278240839e20fa9384ea430df463b367b90e04e"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Sep 26 23:02:34 2006 -0400"
      },
      "committer": {
        "name": "Venkatesh Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Tue Sep 26 23:02:34 2006 -0400"
      },
      "message": "[CPUFREQ] Fix cut-n-paste bug in suspend printk\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "ddad65df0048e210c93640b59b3bad12701febb6",
      "tree": "5530a3fbeef881c48ca02e491529d709dc812ea0",
      "parents": [
        "8adcc0c674004c0f9467031a93dc639c2b01411f"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Fri Sep 22 19:15:23 2006 -0400"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Fri Sep 22 19:15:23 2006 -0400"
      },
      "message": "[CPUFREQ] Fix some more CPU hotplug locking.\n\nLukewarm IQ detected in hotplug locking\nBUG: warning at kernel/cpu.c:38/lock_cpu_hotplug()\n[\u003cb0134a42\u003e] lock_cpu_hotplug+0x42/0x65\n[\u003cb02f8af1\u003e] cpufreq_update_policy+0x25/0xad\n[\u003cb0358756\u003e] kprobe_flush_task+0x18/0x40\n[\u003cb0355aab\u003e] schedule+0x63f/0x68b\n[\u003cb01377c2\u003e] __link_module+0x0/0x1f\n[\u003cb0119e7d\u003e] __cond_resched+0x16/0x34\n[\u003cb03560bf\u003e] cond_resched+0x26/0x31\n[\u003cb0355b0e\u003e] wait_for_completion+0x17/0xb1\n[\u003cf965c547\u003e] cpufreq_stat_cpu_callback+0x13/0x20 [cpufreq_stats]\n[\u003cf9670074\u003e] cpufreq_stats_init+0x74/0x8b [cpufreq_stats]\n[\u003cb0137872\u003e] sys_init_module+0x91/0x174\n[\u003cb0102c81\u003e] sysenter_past_esp+0x56/0x79\n\nAs there are other places that call cpufreq_update_policy without\nthe hotplug lock, it seems better to keep the hotplug locking\nat the lower level for the time being until this is revamped.\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "3906f4edeef976c081c4e7bd92164d2f59c325ae",
      "tree": "6ad1309a5e2eda9c2dde0e9bd0dca8d0a4060b9b",
      "parents": [
        "b5ecf60fe6b18de0bc59d336d444835d4ef835ed"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Sep 05 17:15:47 2006 -0400"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Sep 05 17:15:47 2006 -0400"
      },
      "message": "[CPUFREQ] Fix sparse warning in ondemand\n\ndrivers/cpufreq/cpufreq_ondemand.c:323:2: warning: Using plain integer as NULL pointer\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "b5ecf60fe6b18de0bc59d336d444835d4ef835ed",
      "tree": "fa8ccb8598d475a149ac6fb1ada068717bfa179b",
      "parents": [
        "6595413fc9453a211f4b5d5cc42f0bbf3daa615b"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sun Aug 13 23:00:08 2006 +0200"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Mon Aug 14 01:18:54 2006 -0400"
      },
      "message": "[CPUFREQ] make drivers/cpufreq/cpufreq_ondemand.c:powersave_bias_target() static\n\nThis patch makes the needlessly global powersave_bias_target() static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "05ca0350e8caa91a5ec9961c585c98005b6934ea",
      "tree": "16eb1080f5db361dcd18821f7204b8edf5ffb698",
      "parents": [
        "1ce28d6b19112a7c76af8e971e2de3109d19a943"
      ],
      "author": {
        "name": "Alexey Starikovskiy",
        "email": "alexey_y_starikovskiy@linux.intel.com",
        "time": "Mon Jul 31 22:28:12 2006 +0400"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Fri Aug 11 17:59:57 2006 -0400"
      },
      "message": "[CPUFREQ][2/2] ondemand: updated add powersave_bias tunable\n\nondemand selects the minimum frequency that can retire\na workload with negligible idle time -- ideally resulting in the highest\nperformance/power efficiency with negligible performance impact.\n\nBut on some systems and some workloads, this algorithm\nis more performance biased than necessary, and\nde-tuning it a bit to allow some performance impact\ncan save measurable power.\n\nThis patch adds a \"powersave_bias\" tunable to ondemand\nto allow it to reduce its target frequency by a specified percent.\n\nBy default, the powersave_bias is 0 and has no effect.\npowersave_bias is in units of 0.1%, so it has an effective range\nof 1 through 1000, resulting in 0.1% to 100% impact.\n\nIn practice, users will not be able to detect a difference between\n0.1% increments, but 1.0% increments turned out to be too large.\nAlso, the max value of 1000 (100%) would simply peg the system\nin its deepest power saving P-state, unless the processor really has\na hardware P-state at 0Hz:-)\n\nFor example, If ondemand requests 2.0GHz based on utilization,\nand powersave_bias\u003d100, this code will knock 10% off the target\nand seek  a target of 1.8GHz instead of 2.0GHz until the\nnext sampling.  If 1.8 is an exact match with an hardware frequency\nwe use it, otherwise we average our time between the frequency\nnext higher than 1.8 and next lower than 1.8.\n\nNote that a user or administrative program can change powersave_bias\nat run-time depending on how they expect the system to be used.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi at intel.com\u003e\nSigned-off-by: Alexey Starikovskiy \u003calexey.y.starikovskiy at intel.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "1ce28d6b19112a7c76af8e971e2de3109d19a943",
      "tree": "5fe089fa4b9851ca4c975a5e13f636f95fa43078",
      "parents": [
        "cd878479792cc1e4bc9d62ed0ef2c4454743848c"
      ],
      "author": {
        "name": "Alexey Starikovskiy",
        "email": "alexey_y_starikovskiy@linux.intel.com",
        "time": "Mon Jul 31 22:25:20 2006 +0400"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Fri Aug 11 17:59:56 2006 -0400"
      },
      "message": "[CPUFREQ][1/2] ondemand: updated tune for hardware coordination\n\nTry to make dbs_check_cpu() call on all CPUs at the same jiffy.\nThis will help when multiple cores share P-states via Hardware Coordination.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi at intel.com\u003e\nSigned-off-by: Alexey Starikovskiy \u003calexey.y.starikovskiy at intel.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "cd878479792cc1e4bc9d62ed0ef2c4454743848c",
      "tree": "41abf6ff0cb2e4797fb14a31b1723371a5fda685",
      "parents": [
        "9f737633e6ee54fc174282d49b2559bd2208391d"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Fri Aug 11 17:59:28 2006 -0400"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Fri Aug 11 17:59:28 2006 -0400"
      },
      "message": "[CPUFREQ] Fix typo.\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "ea71497020c55cd39221e0abad5c1752ac6e3f47",
      "tree": "cd0fb594af99f384f11b0834d6302b956bfd6f15",
      "parents": [
        "3bcb09a35641f2840bd59d8f82154f830dca282c"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Thu Jul 06 12:32:01 2006 -0700"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Mon Jul 31 18:37:06 2006 -0400"
      },
      "message": "[CPUFREQ] [2/2] demand load governor modules.\n\nDemand-load cpufreq governor modules if needed.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "3bcb09a35641f2840bd59d8f82154f830dca282c",
      "tree": "57fc63ed401b27573d88f322487a6554f006c883",
      "parents": [
        "32deb2d5c4c291d7d9a73198dc357a151e4b978c"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Thu Jul 06 12:30:26 2006 -0700"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Mon Jul 31 18:37:06 2006 -0400"
      },
      "message": "[CPUFREQ] [1/2] add __find_governor helper and clean up some error handling.\n\nAdds a __find_governor() helper function to look up a governor by\nname.  Also restructures some error handling to conform to the\n\"single-exit\" model which is generally preferred for kernel code.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "9c9a43ed2734081124407c779b36a4761c41139b",
      "tree": "b32e4d83e840c46f8ef760bda594d7a02e1c41c9",
      "parents": [
        "49b1e3ea19b1c95c2f012b8331ffb3b169e4c042"
      ],
      "author": {
        "name": "Mattia Dongili",
        "email": "malattia@linux.it",
        "time": "Wed Jul 05 23:12:20 2006 +0200"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Mon Jul 31 18:37:05 2006 -0400"
      },
      "message": "[CPUFREQ] return error when failing to set minfreq\n\nI just stumbled on this bug/feature, this is how to reproduce it:\n\n# echo 450000 \u003e /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq\n# echo 450000 \u003e /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq\n# echo powersave \u003e /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor\n# cpufreq-info -p\n450000 450000 powersave\n# echo 1800000 \u003e /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq ; echo $?\n0\n# cpufreq-info -p\n450000 450000 powersave\n\nHere it is. The kernel refuses to set a min_freq higher than the\nmax_freq but it allows a max_freq lower than min_freq (lowering min_freq\nalso).\n\nThis behaviour is pretty straightforward (but undocumented) and it\ndoesn\u0027t return an error altough failing to accomplish the requested\naction (set min_freq).\nThe problem (IMO) is basically that userspace is not allowed to set a\nfull policy atomically while the kernel always does that thus it must\nenforce an ordering on operations.\n\nThe attached patch returns -EINVAL if trying to increase frequencies\nstarting from scaling_min_freq and documents the correct ordering of writes.\n\nSigned-off-by: Mattia Dongili \u003cmalattia@linux.it\u003e\nSigned-off-by: Dominik Brodowski \u003clinux at dominikbrodowski.net\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n\n--\n"
    },
    {
      "commit": "153d7f3fcae7ed4e19328549aa9467acdfbced10",
      "tree": "a7b15b844119663a276c7a99549ea5a06c16f19a",
      "parents": [
        "44eb123126d289bac398cac0232309c228386671"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Wed Jul 26 15:40:07 2006 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jul 26 07:21:40 2006 -0700"
      },
      "message": "[PATCH] Reorganize the cpufreq cpu hotplug locking to not be totally bizare\n\nThe patch below moves the cpu hotplugging higher up in the cpufreq\nlayering; this is needed to avoid recursive taking of the cpu hotplug\nlock and to otherwise detangle the mess.\n\nThe new rules are:\n1. you must do lock_cpu_hotplug() around the following functions:\n   __cpufreq_driver_target\n   __cpufreq_governor (for CPUFREQ_GOV_LIMITS operation only)\n   __cpufreq_set_policy\n2. governer methods (.governer) must NOT take the lock_cpu_hotplug()\n   lock in any way; they are called with the lock taken already\n3. if your governer spawns a thread that does things, like calling\n   __cpufreq_driver_target, your thread must honor rule #1.\n4. the policy lock and other cpufreq internal locks nest within\n   the lock_cpu_hotplug() lock.\n\nI\u0027m not entirely happy about how the __cpufreq_governor rule ended up\n(conditional locking rule depending on the argument) but basically all\ncallers pass this as a constant so it\u0027s not too horrible.\n\nThe patch also removes the cpufreq_governor() function since during the\nlocking audit it turned out to be entirely unused (so no need to fix it)\n\nThe patch works on my testbox, but it could use more testing\n(otoh... it can\u0027t be much worse than the current code)\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2cd7cbdf4bd0d0fe58e4dc903e8b413412595504",
      "tree": "ad368b1f9a26d06be6e8bd26d821f17670ad2ef4",
      "parents": [
        "12157a8d78af50842774bedb80b7b84a87f60951"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@macmini.osdl.org",
        "time": "Sun Jul 23 12:05:00 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@macmini.osdl.org",
        "time": "Sun Jul 23 12:05:00 2006 -0700"
      },
      "message": "[cpufreq] ondemand: make shutdown sequence more robust\n\nShutting down the ondemand policy was fraught with potential\nproblems, causing issues for SMP suspend (which wants to hot-\nunplug) all but the last CPU.\n\nThis should fix at least the worst problems (divide-by-zero\nand infinite wait for the workqueue to shut down).\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a496e25dfb25493a57bcee5d66875d6ff80a9093",
      "tree": "e0dc7f0f8151f6cf0ddc9ef987a6750e4e4a9ea3",
      "parents": [
        "120bda20c6f64b32e8bfbdd7b34feafaa5f5332e"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Fri Jul 07 12:31:27 2006 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 07 09:46:45 2006 -0700"
      },
      "message": "[PATCH] Fix cpufreq vs hotplug lockdep recursion.\n\n[ There\u0027s some not quite baked bits in cpufreq-git right now\n  so sending this on as a patch instead ]\n\nOn Thu, 2006-07-06 at 07:58 -0700, Tom London wrote:\n\n\u003e After installing .2356 I get this each time I boot:\n\u003e \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\u003e [ INFO: possible circular locking dependency detected ]\n\u003e -------------------------------------------------------\n\u003e S06cpuspeed/1620 is trying to acquire lock:\n\u003e  (dbs_mutex){--..}, at: [\u003cc060d6bb\u003e] mutex_lock+0x21/0x24\n\u003e\n\u003e but task is already holding lock:\n\u003e  (cpucontrol){--..}, at: [\u003cc060d6bb\u003e] mutex_lock+0x21/0x24\n\u003e\n\u003e which lock already depends on the new lock.\n\u003e\n\nmake sure the cpu hotplug recursive mutex (yuck) is taken early in the\ncpufreq codepaths to avoid a AB-BA deadlock.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ca78f6baca863afe2e6a244a0fe94b3a70211d46",
      "tree": "f5a3a169b6cfafa36f9c35cc86e782596c820915",
      "parents": [
        "7ad7153b051d9628ecd6a336b543ea6ef099bd2c",
        "ae90dd5dbee461652b90d9f7d292ba47dc3dc4b8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jul 04 14:00:26 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jul 04 14:00:26 2006 -0700"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq\n\n* master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq:\n  Move workqueue exports to where the functions are defined.\n  [CPUFREQ] Misc cleanups in ondemand.\n  [CPUFREQ] Make ondemand sampling per CPU and remove the mutex usage in sampling path.\n  [CPUFREQ] Add queue_delayed_work_on() interface for workqueues.\n  [CPUFREQ] Remove slowdown from ondemand sampling path.\n"
    },
    {
      "commit": "6ab3d5624e172c553004ecc862bfeac16d9d68b7",
      "tree": "6d98881fe91fd9583c109208d5c27131b93fa248",
      "parents": [
        "e02169b682bc448ccdc819dc8639ed34a23cedd8"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@wohnheim.fh-wedel.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "message": "Remove obsolete #include \u003clinux/config.h\u003e\n\nSigned-off-by: Jörn Engel \u003cjoern@wohnheim.fh-wedel.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "ffac80e925e54d84f6ea580231aa46d0ef051756",
      "tree": "18a1fad02d45bba365164923c674edfc69d1c0db",
      "parents": [
        "2f8a835c705794f71726eb12c06fb0f24fe07ed3"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Wed Jun 28 13:52:18 2006 -0700"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Fri Jun 30 01:36:40 2006 -0400"
      },
      "message": "[CPUFREQ] Misc cleanups in ondemand.\n\nMisc cleanups in ondemand. Should have zero functional impact.\nAlso adding Alexey as author.\n\nSigned-off-by: Alexey Starikovskiy \u003calexey.y.starikovskiy@intel.com\u003e\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "2f8a835c705794f71726eb12c06fb0f24fe07ed3",
      "tree": "c16b1a4bf85df6822b9bcedc608f1db9ddf6e571",
      "parents": [
        "7a6bc1cdd506cf81f856f0fef4e56a2ba0c5a26d"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Wed Jun 28 13:51:19 2006 -0700"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Fri Jun 30 01:33:31 2006 -0400"
      },
      "message": "[CPUFREQ] Make ondemand sampling per CPU and remove the mutex usage in sampling path.\n\nMake ondemand sampling per CPU and remove the mutex usage in sampling path.\n\nSigned-off-by: Alexey Starikovskiy \u003calexey.y.starikovskiy@intel.com\u003e\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "ccb2fe209dac9ff67f6351e783e610073afaaeaf",
      "tree": "ba6793c2045604d6db11b781d87a404cb30a54b8",
      "parents": [
        "501b7c77de3e90519e95fd99e923bf9a29cd120d"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Wed Jun 28 13:49:52 2006 -0700"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Fri Jun 30 01:29:47 2006 -0400"
      },
      "message": "[CPUFREQ] Remove slowdown from ondemand sampling path.\n\nRemove slowdown from ondemand sampling path. This reduces the code path length\nin dbs_check_cpu() by half. slowdown was not used by ondemand by default.\nIf there are any user level tools that were using this tunable, they\nmay report error now.\n\nSigned-off-by: Alexey Starikovskiy \u003calexey.y.starikovskiy@intel.com\u003e\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "74b85f3790aa2550c617fe14439482e13e615fa0",
      "tree": "125e9c503d483c304e111ca825358bd81e0610cd",
      "parents": [
        "65edc68c345cbe21d0b0375c3452a3ed5e322868"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Tue Jun 27 02:54:09 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:41 2006 -0700"
      },
      "message": "[PATCH] cpu hotplug: make cpu_notifier related notifier blocks __cpuinit only\n\nMake notifier_blocks associated with cpu_notifier as __cpuinitdata.\n\n__cpuinitdata makes sure that the data is init time only unless\nCONFIG_HOTPLUG_CPU is defined.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nCc: Ashok Raj \u003cashok.raj@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "65edc68c345cbe21d0b0375c3452a3ed5e322868",
      "tree": "07961d63cdacf95355a8db471c6ff4e321ca94fd",
      "parents": [
        "054cc8a2d808822dadf488a61729e3e550f114c4"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Tue Jun 27 02:54:08 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:41 2006 -0700"
      },
      "message": "[PATCH] cpu hotplug: make [un]register_cpu_notifier init time only\n\nCPUs come online only at init time (unless CONFIG_HOTPLUG_CPU is defined).\nSo, cpu_notifier functionality need to be available only at init time.\n\nThis patch makes register_cpu_notifier() available only at init time, unless\nCONFIG_HOTPLUG_CPU is defined.\n\nThis patch exports register_cpu_notifier() and unregister_cpu_notifier() only\nif CONFIG_HOTPLUG_CPU is defined.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nCc: Ashok Raj \u003cashok.raj@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9c7b216d23e820e0e148d5be01bbb5bd2d8378fe",
      "tree": "53e6c1e4870db49b4999b4053862d3f63375773f",
      "parents": [
        "6ac12dfe9c2027cd3c5ed603f11d1bb4f04906fe"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Tue Jun 27 02:54:07 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:40 2006 -0700"
      },
      "message": "[PATCH] cpu hotplug: revert init patch submitted for 2.6.17\n\nIn 2.6.17, there was a problem with cpu_notifiers and XFS.  I provided a\nband-aid solution to solve that problem.  In the process, i undid all the\nchanges you both were making to ensure that these notifiers were available\nonly at init time (unless CONFIG_HOTPLUG_CPU is defined).\n\nWe deferred the real fix to 2.6.18.  Here is a set of patches that fixes the\nXFS problem cleanly and makes the cpu notifiers available only at init time\n(unless CONFIG_HOTPLUG_CPU is defined).\n\nIf CONFIG_HOTPLUG_CPU is defined then cpu notifiers are available at run\ntime.\n\nThis patch reverts the notifier_call changes made in 2.6.17\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nCc: Ashok Raj \u003cashok.raj@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "138a0128c01899ee8492858a50856b90d0d9d815",
      "tree": "9f9865b39e7e65c2bb6763f0ad9d7b02aba59b33",
      "parents": [
        "8269730b389d4793348d521140f9c76fb1828249"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Jun 23 03:31:19 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 08:47:27 2006 -0700"
      },
      "message": "[PATCH] cpufreq build fix\n\ndrivers/cpufreq/cpufreq_ondemand.c: In function \u0027do_dbs_timer\u0027:\ndrivers/cpufreq/cpufreq_ondemand.c:374: warning: implicit declaration of function \u0027lock_cpu_hotplug\u0027\ndrivers/cpufreq/cpufreq_ondemand.c:381: warning: implicit declaration of function \u0027unlock_cpu_hotplug\u0027\ndrivers/cpufreq/cpufreq_conservative.c: In function \u0027do_dbs_timer\u0027:\ndrivers/cpufreq/cpufreq_conservative.c:425: warning: implicit declaration of function \u0027lock_cpu_hotplug\u0027\ndrivers/cpufreq/cpufreq_conservative.c:432: warning: implicit declaration of function \u0027unlock_cpu_hotplug\u0027\n\nCc: Dave Jones \u003cdavej@codemonkey.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4ec223d02f4d5f5a3129edc0e3d22550d6ac8a32",
      "tree": "753cec643fa59ccda64a95fa5436956e481c1137",
      "parents": [
        "9ed059e1551bf36092215b965838502ac21f42e4"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Wed Jun 21 15:18:34 2006 -0700"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Wed Jun 21 18:30:26 2006 -0400"
      },
      "message": "[CPUFREQ] Fix ondemand vs suspend deadlock\n\nRootcaused the bug to a deadlock in cpufreq and ondemand. Due to non-existent\nordering between cpu_hotplug lock and dbs_mutex. Basically a race condition\nbetween cpu_down() and do_dbs_timer().\n\ncpu_down() flow:\n* cpu_down() call for CPU 1\n* Takes hot plug lock\n* Calls pre down notifier\n*     cpufreq notifier handler calls cpufreq_driver_target() which takes\n      cpu_hotplug lock again. OK as cpu_hotplug lock is recursive in same\n      process context\n* CPU 1 goes down\n* Calls post down notifier\n*     cpufreq notifier handler calls ondemand event stop which takes dbs_mutex\n\nSo, cpu_hotplug lock is taken before dbs_mutex in this flow.\n\ndo_dbs_timer is triggerred by a periodic timer event.\nIt first takes dbs_mutex and then takes cpu_hotplug lock in\ncpufreq_driver_target().\nNote the reverse order here compared to above. So, if this timer event happens\nat right moment during cpu_down, system will deadlok.\n\nAttached patch fixes the issue for both ondemand and conservative.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "b10eec2246690f069febd3aa9578decd5ffb3f5b",
      "tree": "789c892dc6c2ec4e1aca1ab52fd068815c7f4692",
      "parents": [
        "8c362a5d62c98ee117b229c3555f402e72f5c21e"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "time": "Fri Apr 28 13:47:13 2006 +0200"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Sun Jun 04 19:47:38 2006 -0400"
      },
      "message": "[CPUFREQ] cpufreq core {d,}printk adjustments\n\nRemove KERN_* suffixes from some cpufreq driver\u0027s dprintk-s.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "484944a5b002cf87b38a8f073d37afcfb8afff28",
      "tree": "40a960d5b4bee4ea5e4bafb2f1017f5d98484b87",
      "parents": [
        "5557976ca97c3a3002805f575a45ad354e1050ff"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue May 30 18:09:31 2006 -0400"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue May 30 18:09:31 2006 -0400"
      },
      "message": "[CPUFREQ] Remove more freq_table reinitialisations.\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    }
  ],
  "next": "5557976ca97c3a3002805f575a45ad354e1050ff"
}
