)]}'
{
  "log": [
    {
      "commit": "455c017ae3934797653549704c286e7bcc3a9397",
      "tree": "7b5b67916b064e3ce7868082e0915f37b437aeb8",
      "parents": [
        "8bb7844286fb8c9fce6f65d8288aeb09d03a5e0d"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed May 09 02:35:11 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:56 2007 -0700"
      },
      "message": "microcode: use suspend-related CPU hotplug notifications\n\nMake the microcode driver use the suspend-related CPU hotplug notifications\nto handle the CPU hotplug events occuring during system-wide suspend and\nresume transitions.  Remove the global variable suspend_cpu_hotplug\npreviously used for this purpose.\n\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: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\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": "7b0834c26fd796c79dfcc3939ed2b9122b75246f",
      "tree": "870eb42cd02b9012fd0ab06d7efb5e7596376bad",
      "parents": [
        "10ab825bdef8df510f99c703a5a2d9b13a4e31a5"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Wed May 09 02:34:41 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:53 2007 -0700"
      },
      "message": "Remove kthread_bind() call from _cpu_down()\n\nWe are anyway kthread_stop()ping other per-cpu kernel threads after\nmove_task_off_dead_cpu(), so we can do it with the stop_machine_run thread\nas well.\n\nI just checked with Vatsa if there was any subtle reason why they\nhad put in the kthread_bind() in cpu.c. Vatsa cannot seem to recollect\nany and I can\u0027t see any. So let us just remove the kthread_bind.\n\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e7407dcc69e077ac34a527842db916abfbc458df",
      "tree": "138b24bceee828dc256bb81f2b592926be9f1515",
      "parents": [
        "5be9361cdff17fc76fa0c3e262ead94158555f16"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed May 09 02:34:04 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:51 2007 -0700"
      },
      "message": "call cpu_chain with CPU_DOWN_FAILED if CPU_DOWN_PREPARE failed\n\nThis makes cpu hotplug symmetrical: if CPU_UP_PREPARE fails we get\nCPU_UP_CANCELED, so we can undo what ever happened on PREPARE.  The same\nshould happen for CPU_DOWN_PREPARE.\n\n[akpm@linux-foundation.org: fix for reduce-size-of-task_struct-on-64-bit-machines]\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Gautham Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\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": "baaca49f415b25fdbe2a8f3c22b39929e450fbfd",
      "tree": "b152b4235fc07fe56619bd3a2e975e5ca90b8c5b",
      "parents": [
        "6f7cc11aa6c7d5002e16096c7590944daece70ed"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Wed May 09 02:34:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:51 2007 -0700"
      },
      "message": "Define and use new events,CPU_LOCK_ACQUIRE and CPU_LOCK_RELEASE\n\nThis is an attempt to provide an alternate mechanism for postponing\na hotplug event instead of using a global mechanism like lock_cpu_hotplug.\n\nThe proposal is to add two new events namely CPU_LOCK_ACQUIRE and\nCPU_LOCK_RELEASE. The notification for these two events would be sent\nout before and after a cpu_hotplug event respectively.\n\nDuring the CPU_LOCK_ACQUIRE event, a cpu-hotplug-aware subsystem is\nsupposed to acquire any per-subsystem hotcpu mutex ( Eg. workqueue_mutex\nin kernel/workqueue.c ).\n\nDuring the CPU_LOCK_RELEASE release event the cpu-hotplug-aware subsystem\nis supposed to release the per-subsystem hotcpu mutex.\n\nThe reasons for defining new events as opposed to reusing the existing events\nlike CPU_UP_PREPARE/CPU_UP_FAILED/CPU_ONLINE for locking/unlocking of\nper-subsystem hotcpu mutexes are as follow:\n\n\t- CPU_LOCK_ACQUIRE: All hotcpu mutexes are taken before subsystems\n\tstart handling pre-hotplug events like CPU_UP_PREPARE/CPU_DOWN_PREPARE\n\tetc, thus ensuring a clean handling of these events.\n\n\t- CPU_LOCK_RELEASE: The hotcpu mutexes will be released only after\n\tall subsystems have handled post-hotplug events like CPU_DOWN_FAILED,\n\tCPU_DEAD,CPU_ONLINE etc thereby ensuring that there are no subsequent\n\tclashes amongst the interdependent subsystems after a cpu hotplugs.\n\nThis patch also uses __raw_notifier_call chain in _cpu_up to take care\nof the dependency between the two consequetive calls to\nraw_notifier_call_chain.\n\n[akpm@linux-foundation.org: fix a bug]\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1d64b9cb1dc2a7cd521444e3d908adeccd026356",
      "tree": "31c6c7751b656e74b5ee05159c85154f710e8956",
      "parents": [
        "0c84ce268b69855919b6ac7edc8f11caf21e9c88"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Apr 01 23:49:49 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Apr 02 10:06:09 2007 -0700"
      },
      "message": "[PATCH] Fix microcode-related suspend problem\n\nFix the regression resulting from the recent change of suspend code\nordering that causes systems based on Intel x86 CPUs using the microcode\ndriver to hang during the resume.\n\nThe problem occurs since the microcode driver uses request_firmware() in\nits CPU hotplug notifier, which is called after tasks has been frozen and\nhangs.  It can be fixed by telling the microcode driver to use the\nmicrocode stored in memory during the resume instead of trying to load it\nfrom disk.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAdrian Bunk \u003cbunk@stusta.de\u003e\nCc: Tigran Aivazian \u003ctigran@aivazian.fsnet.co.uk\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Maxim \u003cmaximlevitsky@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ed746e3b18f4df18afa3763155972c5835f284c5",
      "tree": "322a5420ae8ca653839669035fde9f208d03a566",
      "parents": [
        "e3c7db621bed4afb8e231cb005057f2feb5db557"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Feb 10 01:43:32 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Feb 11 10:51:19 2007 -0800"
      },
      "message": "[PATCH] swsusp: Change code ordering in disk.c\n\nChange the ordering of code in kernel/power/disk.c so that device_suspend() is\ncalled before disable_nonboot_cpus() and platform_finish() is called after\nenable_nonboot_cpus() and before device_resume(), as indicated by the recent\ndiscussion on Linux-PM (cf.\nhttp://lists.osdl.org/pipermail/linux-pm/2006-November/004164.html).\n\nThe changes here only affect the built-in swsusp.\n\n[alexey.y.starikovskiy@linux.intel.com: fix LED blinking during image load]\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Nigel Cunningham \u003cnigel@suspend2.net\u003e\nCc: Patrick Mochel \u003cmochel@digitalimplant.org\u003e\nCc: Alexey Starikovskiy \u003calexey.y.starikovskiy@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b282b6f8a8d1cf3e132ce3769d7d1cac81d9dd2d",
      "tree": "a5201d54c20d85273694fb79d312ed9e1434e86d",
      "parents": [
        "0d103e90f63c4b78f2101f8c0bd303fa049ce9a7"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Wed Jan 10 23:15:34 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Jan 11 18:18:20 2007 -0800"
      },
      "message": "[PATCH] Change cpu_up and co from __devinit to __cpuinit\n\nCompiling the kernel with CONFIG_HOTPLUG \u003d y and CONFIG_HOTPLUG_CPU \u003d n\nwith CONFIG_RELOCATABLE \u003d y generates the following modpost warnings\n\nWARNING: vmlinux - Section mismatch: reference to .init.data: from\n.text between \u0027_cpu_up\u0027 (at offset 0xc0141b7d) and \u0027cpu_up\u0027\nWARNING: vmlinux - Section mismatch: reference to .init.data: from\n.text between \u0027_cpu_up\u0027 (at offset 0xc0141b9c) and \u0027cpu_up\u0027\nWARNING: vmlinux - Section mismatch: reference to .init.text:__cpu_up\nfrom .text between \u0027_cpu_up\u0027 (at offset 0xc0141bd8) and \u0027cpu_up\u0027\nWARNING: vmlinux - Section mismatch: reference to .init.data: from\n.text between \u0027_cpu_up\u0027 (at offset 0xc0141c05) and \u0027cpu_up\u0027\nWARNING: vmlinux - Section mismatch: reference to .init.data: from\n.text between \u0027_cpu_up\u0027 (at offset 0xc0141c26) and \u0027cpu_up\u0027\nWARNING: vmlinux - Section mismatch: reference to .init.data: from\n.text between \u0027_cpu_up\u0027 (at offset 0xc0141c37) and \u0027cpu_up\u0027\n\nThis is because cpu_up, _cpu_up and __cpu_up (in some architectures) are\ndefined as __devinit\nAND\n__cpu_up calls some __cpuinit functions.\n\nSince __cpuinit would map to __init with this kind of a configuration,\nwe get a .text refering .init.data warning.\n\nThis patch solves the problem by converting all of __cpu_up, _cpu_up\nand cpu_up from __devinit to __cpuinit. The approach is justified since\nthe callers of cpu_up are either dependent on CONFIG_HOTPLUG_CPU or\nare of __init type.\n\nThus when CONFIG_HOTPLUG_CPU\u003dy, all these cpu up functions would land up\nin .text section, and when CONFIG_HOTPLUG_CPU\u003dn, all these functions would\nland up in .init section.\n\nTested on a i386 SMP machine running linux-2.6.20-rc3-mm1.\n\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Vivek Goyal \u003cvgoyal@in.ibm.com\u003e\nCc: Mikael Starvik \u003cstarvik@axis.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e1d9fd2e3d33b2fec3207171ec8ca6e71d5c81c7",
      "tree": "541652a20988e413edeba6bd00d150a07d65227f",
      "parents": [
        "ffaa82008f1aad52a6d3979f49d2a76c2928b60f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Dec 23 16:55:29 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sat Dec 23 13:59:33 2006 -0800"
      },
      "message": "[PATCH] suspend: fix suspend on single-CPU systems\n\nClark Williams reported that suspend doesnt work on his laptop on\n2.6.20-rc1-rt kernels. The bug was introduced by the following cleanup\ncommit:\n\n commit 112cecb2cc0e7341db92281ba04b26c41bb8146d\n Author: Siddha, Suresh B \u003csuresh.b.siddha@intel.com\u003e\n Date:   Wed Dec 6 20:34:31 2006 -0800\n\n    [PATCH] suspend: don\u0027t change cpus_allowed for task initiating the suspend\n\nbecause with this change \u0027error\u0027 is not initialized to 0 anymore, if\nthere are no other online CPUs. (i.e. if the system is single-CPU).\n\nthe fix is the initialize it to 0. The really weird thing is that my\nversion of gcc does not warn about this non-initialized variable\nsituation ...\n\n(also fix the kernel printk in the error branch, it was missing a\n newline)\n\nReported-by: Clark Williams \u003cwilliams@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "112cecb2cc0e7341db92281ba04b26c41bb8146d",
      "tree": "5eed4de8bfa3ed7e7f71454e82d3e92a5ee36347",
      "parents": [
        "2d4a34c9365c6e3f94a5b26ce296e1fce9b66c8b"
      ],
      "author": {
        "name": "Siddha, Suresh B",
        "email": "suresh.b.siddha@intel.com",
        "time": "Wed Dec 06 20:34:31 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:28 2006 -0800"
      },
      "message": "[PATCH] suspend: don\u0027t change cpus_allowed for task initiating the suspend\n\nDon\u0027t modify the cpus_allowed of the task initiating the suspend.\n_cpu_down() already makes sure that the task doing the suspend doesn\u0027t run\non dying cpu.\n\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Nigel Cunningham \u003cnigel@suspend2.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4b96b1a10cb00c867103b21f0f2a6c91b705db11",
      "tree": "25b95e00b413025682b933da182caca2a048a475",
      "parents": [
        "d1ed6a3ea10aa7b199c434f6ffd1b6761896567a"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Sun Nov 05 23:52:04 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 06 01:46:22 2006 -0800"
      },
      "message": "[PATCH] Fix the spurious unlock_cpu_hotplug false warnings\n\nCpu-hotplug locking has a minor race case caused because of setting the\nvariable \"recursive\" to NULL *after* releasing the cpu_bitmask_lock in the\nfunction unlock_cpu_hotplug,instead of doing so before releasing the\ncpu_bitmask_lock.\n\nThis was the cause of most of the recent false spurious lock_cpu_unlock\nwarnings.\n\nThis should fix the problem reported by Martin Lorenz reported in\nhttp://lkml.org/lkml/2006/10/29/127.\n\nThanks to Srinivasa DS for pointing it out.\n\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8fa1d7d3b2c51594c0f3aa151983dd51f605e07d",
      "tree": "8fbc0037f98d1cc3201ca1a816b42ad87930e2db",
      "parents": [
        "bb1d860551c4307b1a7ee9a21b120319075e987e"
      ],
      "author": {
        "name": "Satoru Takeuchi",
        "email": "takeuchi_satoru@jp.fujitsu.com",
        "time": "Sat Oct 28 10:38:57 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 28 11:30:55 2006 -0700"
      },
      "message": "[PATCH] cpu-hotplug: release `workqueue_mutex\u0027 properly on CPU hot-remove\n\n_cpu_down() acquires `workqueue_mutex\u0027 on its process, but doen\u0027t release it\nif __cpu_disable() fails.\n\nSigned-off-by: Satoru Takeuchi \u003ctakeuchi_satoru@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bd5349cfd2b9bbb10a3dbcd3fe5cbaabe0b2ab9e",
      "tree": "20a55c6592f0934d6dccebb7972d28d120b4badd",
      "parents": [
        "bea493a031fe3337f4fe5479e8e865513828ea76"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 17 00:10:35 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 17 08:18:48 2006 -0700"
      },
      "message": "[PATCH] Convert cpu hotplug notifiers to use raw_notifier instead of blocking_notifier\n\nThe use of blocking notifier by _cpu_up and _cpu_down in cpu.c has two\nproblem.\n\n1/ An interaction with the workqueue notifier causes lockdep to spit a\n   warning.\n\n2/ A notifier could conceivable be added or removed while _cpu_up or\n   _cpu_down are in process.  As each notifier is called twice (prepare\n   then commit/abort) this could be unhealthy.\n\nTo fix to we simply take cpu_add_remove_lock while adding or removing\nnotifiers to/from the list.\n\nThis makes the \u0027blocking\u0027 usage unnecessary as all accesses to cpu_chain\nare now protected by cpu_add_remove_lock.  So change \"blocking\" to \"raw\" in\nall relevant places.  This fixes 1.\n\nCredit: Andrew Morton\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Michal Piotrowski \u003cmichal.k.k.piotrowski@gmail.com\u003e (reporter)\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e3920fb42c8ddfe63befb54d95c0e13eabacea9b",
      "tree": "08371a71e58e6e9d3ec62dfa6a22b3b5e6ff0fd5",
      "parents": [
        "e8eff5ac294e12531c4195e0c15a222d3c9015e5"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 25 23:32:48 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:59 2006 -0700"
      },
      "message": "[PATCH] Disable CPU hotplug during suspend\n\nThe current suspend code has to be run on one CPU, so we use the CPU\nhotplug to take the non-boot CPUs offline on SMP machines.  However, we\nshould also make sure that these CPUs will not be enabled by someone else\nafter we have disabled them.\n\nThe functions disable_nonboot_cpus() and enable_nonboot_cpus() are moved to\nkernel/cpu.c, because they now refer to some stuff in there that should\nbetter be static.  Also it\u0027s better if disable_nonboot_cpus() returns an\nerror instead of panicking if something goes wrong, and\nenable_nonboot_cpus() has no reason to panic(), because the CPUs may have\nbeen enabled by the userland before it tries to take them online.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "aa95387774039096c11803c04011f1aa42d85758",
      "tree": "b8d3c845efedc2d67bcaff0038b4306fa375379c",
      "parents": [
        "2cd7cbdf4bd0d0fe58e4dc903e8b413412595504"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@macmini.osdl.org",
        "time": "Sun Jul 23 12:12:16 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@macmini.osdl.org",
        "time": "Sun Jul 23 12:12:16 2006 -0700"
      },
      "message": "cpu hotplug: simplify and hopefully fix locking\n\nThe CPU hotplug locking was quite messy, with a recursive lock to\nhandle the fact that both the actual up/down sequence wanted to\nprotect itself from being re-entered, but the callbacks that it\ncalled also tended to want to protect themselves from CPU events.\n\nThis splits the lock into two (one to serialize the whole hotplug\nsequence, the other to protect against the CPU present bitmaps\nchanging). The latter still allows recursive usage because some\nsubsystems (ondemand policy for cpufreq at least) had already gotten\ntoo used to the lax locking, but the locking mistakes are hopefully\nnow less fundamental, and we now warn about recursive lock usage\nwhen we see it, in the hope that it can be fixed.\n\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": "81615b624a45621b758380ec45d750483eae281d",
      "tree": "9373ca3e4a484fe4fdac48ae6e6d204c7e560121",
      "parents": [
        "1fb00c6cbd8356f43b46322742f3c01c2a1f02da"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jun 26 00:24:32 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:16 2006 -0700"
      },
      "message": "[PATCH] Convert kernel/cpu.c to mutexes\n\nConvert kernel/cpu.c from semaphore to mutex.\n\nI\u0027ve reviewed all lock_cpu_hotplug() critical sections, and they all seem to\nfit mutex semantics.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\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": "e041c683412d5bf44dc2b109053e3b837b71742d",
      "tree": "9d271066ef379da0c0fb3b8cb4137abd5d2ebba0",
      "parents": [
        "76b81e2b0e2241accebcc68e126bc5ab958661b9"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Mon Mar 27 01:16:30 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:50 2006 -0800"
      },
      "message": "[PATCH] Notifier chain update: API changes\n\nThe kernel\u0027s implementation of notifier chains is unsafe.  There is no\nprotection against entries being added to or removed from a chain while the\nchain is in use.  The issues were discussed in this thread:\n\n    http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d113018709002036\u0026w\u003d2\n\nWe noticed that notifier chains in the kernel fall into two basic usage\nclasses:\n\n\t\"Blocking\" chains are always called from a process context\n\tand the callout routines are allowed to sleep;\n\n\t\"Atomic\" chains can be called from an atomic context and\n\tthe callout routines are not allowed to sleep.\n\nWe decided to codify this distinction and make it part of the API.  Therefore\nthis set of patches introduces three new, parallel APIs: one for blocking\nnotifiers, one for atomic notifiers, and one for \"raw\" notifiers (which is\nreally just the old API under a new name).  New kinds of data structures are\nused for the heads of the chains, and new routines are defined for\nregistration, unregistration, and calling a chain.  The three APIs are\nexplained in include/linux/notifier.h and their implementation is in\nkernel/sys.c.\n\nWith atomic and blocking chains, the implementation guarantees that the chain\nlinks will not be corrupted and that chain callers will not get messed up by\nentries being added or removed.  For raw chains the implementation provides no\nguarantees at all; users of this API must provide their own protections.  (The\nidea was that situations may come up where the assumptions of the atomic and\nblocking APIs are not appropriate, so it should be possible for users to\nhandle these things in their own way.)\n\nThere are some limitations, which should not be too hard to live with.  For\natomic/blocking chains, registration and unregistration must always be done in\na process context since the chain is protected by a mutex/rwsem.  Also, a\ncallout routine for a non-raw chain must not try to register or unregister\nentries on its own chain.  (This did happen in a couple of places and the code\nhad to be changed to avoid it.)\n\nSince atomic chains may be called from within an NMI handler, they cannot use\nspinlocks for synchronization.  Instead we use RCU.  The overhead falls almost\nentirely in the unregister routine, which is okay since unregistration is much\nless frequent that calling a chain.\n\nHere is the list of chains that we adjusted and their classifications.  None\nof them use the raw API, so for the moment it is only a placeholder.\n\n  ATOMIC CHAINS\n  -------------\narch/i386/kernel/traps.c:\t\ti386die_chain\narch/ia64/kernel/traps.c:\t\tia64die_chain\narch/powerpc/kernel/traps.c:\t\tpowerpc_die_chain\narch/sparc64/kernel/traps.c:\t\tsparc64die_chain\narch/x86_64/kernel/traps.c:\t\tdie_chain\ndrivers/char/ipmi/ipmi_si_intf.c:\txaction_notifier_list\nkernel/panic.c:\t\t\t\tpanic_notifier_list\nkernel/profile.c:\t\t\ttask_free_notifier\nnet/bluetooth/hci_core.c:\t\thci_notifier\nnet/ipv4/netfilter/ip_conntrack_core.c:\tip_conntrack_chain\nnet/ipv4/netfilter/ip_conntrack_core.c:\tip_conntrack_expect_chain\nnet/ipv6/addrconf.c:\t\t\tinet6addr_chain\nnet/netfilter/nf_conntrack_core.c:\tnf_conntrack_chain\nnet/netfilter/nf_conntrack_core.c:\tnf_conntrack_expect_chain\nnet/netlink/af_netlink.c:\t\tnetlink_chain\n\n  BLOCKING CHAINS\n  ---------------\narch/powerpc/platforms/pseries/reconfig.c:\tpSeries_reconfig_chain\narch/s390/kernel/process.c:\t\tidle_chain\narch/x86_64/kernel/process.c\t\tidle_notifier\ndrivers/base/memory.c:\t\t\tmemory_chain\ndrivers/cpufreq/cpufreq.c\t\tcpufreq_policy_notifier_list\ndrivers/cpufreq/cpufreq.c\t\tcpufreq_transition_notifier_list\ndrivers/macintosh/adb.c:\t\tadb_client_list\ndrivers/macintosh/via-pmu.c\t\tsleep_notifier_list\ndrivers/macintosh/via-pmu68k.c\t\tsleep_notifier_list\ndrivers/macintosh/windfarm_core.c\twf_client_list\ndrivers/usb/core/notify.c\t\tusb_notifier_list\ndrivers/video/fbmem.c\t\t\tfb_notifier_list\nkernel/cpu.c\t\t\t\tcpu_chain\nkernel/module.c\t\t\t\tmodule_notify_list\nkernel/profile.c\t\t\tmunmap_notifier\nkernel/profile.c\t\t\ttask_exit_notifier\nkernel/sys.c\t\t\t\treboot_notifier_list\nnet/core/dev.c\t\t\t\tnetdev_chain\nnet/decnet/dn_dev.c:\t\t\tdnaddr_chain\nnet/ipv4/devinet.c:\t\t\tinetaddr_chain\n\nIt\u0027s possible that some of these classifications are wrong.  If they are,\nplease let us know or submit a patch to fix them.  Note that any chain that\ngets called very frequently should be atomic, because the rwsem read-locking\nused for blocking chains is very likely to incur cache misses on SMP systems.\n(However, if the chain\u0027s callout routines may sleep then the chain cannot be\natomic.)\n\nThe patch set was written by Alan Stern and Chandra Seetharaman, incorporating\nmaterial written by Keith Owens and suggestions from Paul McKenney and Andrew\nMorton.\n\n[jes@sgi.com: restructure the notifier chain initialization macros]\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Jes Sorensen \u003cjes@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6978c7052f2e22c6c40781cdd4eba5c4bce9a789",
      "tree": "eb93e551109b441052db414b7074d8b2a0f19e45",
      "parents": [
        "8cd5283b897f56004631944dd2888e9a7b843f89"
      ],
      "author": {
        "name": "Eric Sesterhenn",
        "email": "snakebyte@gmx.de",
        "time": "Fri Mar 24 18:45:21 2006 +0100"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Mar 24 18:45:21 2006 +0100"
      },
      "message": "BUG_ON() Conversion in kernel/cpu.c\n\nthis changes if() BUG(); constructs to BUG_ON() which is\ncleaner, contains unlikely() and can better optimized away.\n\nSigned-off-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "a9d9baa1e819b2f92f9cfa5240f766c535e636a6",
      "tree": "0ae15e5b1071b395affa0ac9abf6fd746ad60b0e",
      "parents": [
        "e0f39591cc178026607fcbbe9a53be435fe8285d"
      ],
      "author": {
        "name": "Ashok Raj",
        "email": "ashok.raj@intel.com",
        "time": "Mon Nov 28 13:43:46 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 28 14:42:23 2005 -0800"
      },
      "message": "[PATCH] clean up lock_cpu_hotplug() in cpufreq\n\nThere are some callers in cpufreq hotplug notify path that the lowest\nfunction calls lock_cpu_hotplug().  The lock is already held during\ncpu_up() and cpu_down() calls when the notify calls are broadcast to\nregistered clients.\n\nIdeally if possible, we could disable_preempt() at the highest caller and\nmake sure we dont sleep in the path down in cpufreq-\u003edriver_target() calls\nbut the calls are so intertwined and cumbersome to cleanup.\n\nHence we consistently use lock_cpu_hotplug() and unlock_cpu_hotplug() in\nall places.\n\n - Removed export of cpucontrol semaphore and made it static.\n - removed explicit uses of up/down with lock_cpu_hotplug()\n   so we can keep track of the the callers in same thread context and\n   just keep refcounts without calling a down() that causes a deadlock.\n - Removed current_in_hotplug() uses\n - Removed PF_HOTPLUG_CPU in sched.h introduced for the current_in_hotplug()\n   temporary workaround.\n\nTested with insmod of cpufreq_stat.ko, and logical online/offline\nto make sure we dont have any hang situations.\n\nSigned-off-by: Ashok Raj \u003cashok.raj@intel.com\u003e\nCc: Zwane Mwaikambo \u003czwane@linuxpower.ca\u003e\nCc: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: \"Siddha, Suresh B\" \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "90d45d17f3e68608ac7ba8fc3d7acce022a19c8e",
      "tree": "615b2f21c3e02e0ec901febd180014fed64a6a01",
      "parents": [
        "330d57fb98a916fa8e1363846540dd420e99499a"
      ],
      "author": {
        "name": "Ashok Raj",
        "email": "ashok.raj@intel.com",
        "time": "Tue Nov 08 21:34:24 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 09 07:55:50 2005 -0800"
      },
      "message": "[PATCH] cpu hotplug: fix locking in cpufreq drivers\n\nWhen calling target drivers to set frequency, we take cpucontrol lock.\nWhen we modified the code to accomodate CPU hotplug, there was an attempt\nto take a double lock of cpucontrol leading to a deadlock.  Since the\ncurrent thread context is already holding the cpucontrol lock, we dont need\nto make another attempt to acquire it.\n\nNow we leave a trace in current-\u003eflags indicating current thread already is\nunder cpucontrol lock held, so we dont attempt to do this another time.\n\nThanks to Andrew Morton for the beating:-)\n\nFrom: Brice Goglin \u003cBrice.Goglin@ens-lyon.org\u003e\n\n  Build fix\n\n(akpm: this patch is still unpleasant.  Ashok continues to look for a cleaner\nsolution, doesn\u0027t he?  ;))\n\nSigned-off-by: Ashok Raj \u003cashok.raj@intel.com\u003e\nSigned-off-by: Brice Goglin \u003cBrice.Goglin@ens-lyon.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c32b6b8e524d2c337767d312814484d9289550cf",
      "tree": "02e634b0b48db6eccc8774369366daa1893921ea",
      "parents": [
        "d434fca737bee0862625c2377b987a7713b6b487"
      ],
      "author": {
        "name": "Ashok Raj",
        "email": "ashok.raj@intel.com",
        "time": "Sun Oct 30 14:59:54 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:14 2005 -0800"
      },
      "message": "[PATCH] create and destroy cpufreq sysfs entries based on cpu notifiers\n\ncpufreq entries in sysfs should only be populated when CPU is online state.\n When we either boot with maxcpus\u003dx and then boot the other cpus by echoing\nto sysfs online file, these entries should be created and destroyed when\nCPU_DEAD is notified.  Same treatement as cache entries under sysfs.\n\nWe place the processor in the lowest frequency, so hw managed P-State\ntransitions can still work on the other threads to save power.\n\nPrimary goal was to just make these directories appear/disapper dynamically.\n\nThere is one in this patch i had to do, which i really dont like myself but\nprobably best if someone handling the cpufreq infrastructure could give\nthis code right treatment if this is not acceptable.  I guess its probably\ngood for the first cut.\n\n- Converting lock_cpu_hotplug()/unlock_cpu_hotplug() to disable/enable preempt.\n  The locking was smack in the middle of the notification path, when the\n  hotplug is already holding the lock. I tried another solution to avoid this\n  so avoid taking locks if we know we are from notification path. The solution\n  was getting very ugly and i decided this was probably good for this iteration\n  until someone who understands cpufreq could do a better job than me.\n\n(akpm: export cpucontrol to GPL modules: drivers/cpufreq/cpufreq_stats.c now\ndoes lock_cpu_hotplug())\n\nSigned-off-by: Ashok Raj \u003cashok.raj@intel.com\u003e\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nCc: Dave Jones \u003cdavej@codemonkey.org.uk\u003e\nCc: Zwane Mwaikambo \u003czwane@holomorphy.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f370513640492641b4046bfd9a6e4714f6ae530d",
      "tree": "46da47197fcbb3614b51c5f1fac841bf26d5e572",
      "parents": [
        "d92de65cab5980c16d4a1c326c1ef9a591892883"
      ],
      "author": {
        "name": "Zwane Mwaikambo",
        "email": "zwane@linuxpower.ca",
        "time": "Sat Jun 25 14:54:50 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Jun 25 16:24:29 2005 -0700"
      },
      "message": "[PATCH] i386 CPU hotplug\n\n(The i386 CPU hotplug patch provides infrastructure for some work which Pavel\nis doing as well as for ACPI S3 (suspend-to-RAM) work which Li Shaohua\n\u003cshaohua.li@intel.com\u003e is doing)\n\nThe following provides i386 architecture support for safely unregistering and\nregistering processors during runtime, updated for the current -mm tree.  In\norder to avoid dumping cpu hotplug code into kernel/irq/* i dropped the\ncpu_online check in do_IRQ() by modifying fixup_irqs().  The difference being\nthat on cpu offline, fixup_irqs() is called before we clear the cpu from\ncpu_online_map and a long delay in order to ensure that we never have any\nqueued external interrupts on the APICs.  There are additional changes to s390\nand ppc64 to account for this change.\n\n1) Add CONFIG_HOTPLUG_CPU\n2) disable local APIC timer on dead cpus.\n3) Disable preempt around irq balancing to prevent CPUs going down.\n4) Print irq stats for all possible cpus.\n5) Debugging check for interrupts on offline cpus.\n6) Hacky fixup_irqs() to redirect irqs when cpus go off/online.\n7) play_dead() for offline cpus to spin inside.\n8) Handle offline cpus set in flush_tlb_others().\n9) Grab lock earlier in smp_call_function() to prevent CPUs going down.\n10) Implement __cpu_disable() and __cpu_die().\n11) Enable local interrupts in cpu_enable() after fixup_irqs()\n12) Don\u0027t fiddle with NMI on dead cpu, but leave intact on other cpus.\n13) Program IRQ affinity whilst cpu is still in cpu_online_map on offline.\n\nSigned-off-by: Zwane Mwaikambo \u003czwane@linuxpower.ca\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
