)]}'
{
  "log": [
    {
      "commit": "b17cd8d69a75f921d9d444cc3ac9b5b1d0b66ca0",
      "tree": "0bf40bde5e39ef855b4d0afe74fb0a61cf7590f3",
      "parents": [
        "e658e9fe65306346e827676a121eca3534ad75ff"
      ],
      "author": {
        "name": "Brandon Philips",
        "email": "brandon@ifup.org",
        "time": "Sun Nov 07 01:28:24 2010 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Nov 10 16:57:11 2010 -0800"
      },
      "message": "driver core: prune docs about device_interface\n\ndrivers/base/intf.c was removed before the beginning of (git) time but\nits Documentation stuck around.  Remove it.\n\nSigned-off-by: Brandon Philips \u003cbrandon@ifup.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "db7bccf45cb87522096b8f43144e31ca605a9f24",
      "tree": "d16cc764243fb6feaa4c9dea5398e139c8012124",
      "parents": [
        "c8e55f360210c1bc49bea5d62bc3939b7ee13483"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jun 29 10:07:12 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jun 29 10:07:12 2010 +0200"
      },
      "message": "workqueue: reimplement CPU hotplugging support using trustee\n\nReimplement CPU hotplugging support using trustee thread.  On CPU\ndown, a trustee thread is created and each step of CPU down is\nexecuted by the trustee and workqueue_cpu_callback() simply drives and\nwaits for trustee state transitions.\n\nCPU down operation no longer waits for works to be drained but trustee\nsticks around till all pending works have been completed.  If CPU is\nbrought back up while works are still draining,\nworkqueue_cpu_callback() tells trustee to step down and tell workers\nto rebind to the cpu.\n\nAs it\u0027s difficult to tell whether cwqs are empty if it\u0027s freezing or\nfrozen, trustee doesn\u0027t consider draining to be complete while a gcwq\nis freezing or frozen (tracked by new GCWQ_FREEZING flag).  Also,\nworkers which get unbound from their cpu are marked with WORKER_ROGUE.\n\nTrustee based implementation doesn\u0027t bring any new feature at this\npoint but it will be used to manage worker pool when dynamic shared\nworker pool is implemented.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "3a101d0548e925ab16ca6aaa8cf4f767d322ddb0",
      "tree": "b90d8c5f2efe30fcfa49a00fdea037567c6cd46f",
      "parents": [
        "50a323b73069b169385a8ac65633dee837a7d13f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jun 08 21:40:36 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jun 08 21:40:36 2010 +0200"
      },
      "message": "sched: adjust when cpu_active and cpuset configurations are updated during cpu on/offlining\n\nCurrently, when a cpu goes down, cpu_active is cleared before\nCPU_DOWN_PREPARE starts and cpuset configuration is updated from a\ndefault priority cpu notifier.  When a cpu is coming up, it\u0027s set\nbefore CPU_ONLINE but cpuset configuration again is updated from the\nsame cpu notifier.\n\nFor cpu notifiers, this presents an inconsistent state.  Threads which\na CPU_DOWN_PREPARE notifier expects to be bound to the CPU can be\nmigrated to other cpus because the cpu is no more inactive.\n\nFix it by updating cpu_active in the highest priority cpu notifier and\ncpuset configuration in the second highest when a cpu is coming up.\nDown path is updated similarly.  This guarantees that all other cpu\nnotifiers see consistent cpu_active and cpuset configuration.\n\ncpuset_track_online_cpus() notifier is converted to\ncpuset_update_active_cpus() which just updates the configuration and\nnow called from cpuset_cpu_[in]active() notifiers registered from\nsched_init_smp().  If cpuset is disabled, cpuset_update_active_cpus()\ndegenerates into partition_sched_domains() making separate notifier\nfor !CONFIG_CPUSETS unnecessary.\n\nThis problem is triggered by cmwq.  During CPU_DOWN_PREPARE, hotplug\ncallback creates a kthread and kthread_bind()s it to the target cpu,\nand the thread is expected to run on that cpu.\n\n* Ingo\u0027s test discovered __cpuinit/exit markups were incorrect.\n  Fixed.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\n"
    },
    {
      "commit": "50a323b73069b169385a8ac65633dee837a7d13f",
      "tree": "020820efb3af12486981381a1e087c1907fdeeb8",
      "parents": [
        "3975d16760d4be7402d1067c548c30c427971331"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jun 08 21:40:36 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jun 08 21:40:36 2010 +0200"
      },
      "message": "sched: define and use CPU_PRI_* enums for cpu notifier priorities\n\nInstead of hardcoding priority 10 and 20 in sched and perf, collect\nthem into CPU_PRI_* enums.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "51badebdcf394cc5fd574a524b55b3f6085e5e9c",
      "tree": "2e8173c3995f45a88826d5f453545a2c8dd86621",
      "parents": [
        "b6db63d1a7f0138f348ba7a648df35ac6365988e"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Thu Nov 26 09:59:05 2009 +0000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Dec 09 17:09:36 2009 +1100"
      },
      "message": "powerpc/pseries: Serialize cpu hotplug operations during deactivate Vs deallocate\n\nCurrently the cpu-allocation/deallocation process comprises of two steps:\n- Set the indicators and to update the device tree with DLPAR node\n  information.\n\n- Online/offline the allocated/deallocated CPU.\n\nThis is achieved by writing to the sysfs tunables \"probe\" during allocation\nand \"release\" during deallocation.\n\nAt the sametime, the userspace can independently online/offline the CPUs of\nthe system using the sysfs tunable \"online\".\n\nIt is quite possible that when a userspace tool offlines a CPU\nfor the purpose of deallocation and is in the process of updating the device\ntree, some other userspace tool could bring the CPU back online by writing to\nthe \"online\" sysfs tunable thereby causing the deallocate process to fail.\n\nThe solution to this is to serialize writes to the \"probe/release\" sysfs\ntunable with the writes to the \"online\" sysfs tunable.\n\nThis patch employs a mutex to provide this serialization, which is a no-op on\nall architectures except PPC_PSERIES\n\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nAcked-by: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "12633e803a2a556f6469e0933d08233d0844a2d9",
      "tree": "d32e3e32c163a57c9681009f5ea965088d9e4579",
      "parents": [
        "ab519a011caa5ec47d992cb8a4fc8e7af9b9e3f8"
      ],
      "author": {
        "name": "Nathan Fontenot",
        "email": "nfont@austin.ibm.com",
        "time": "Wed Nov 25 17:23:25 2009 +0000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Dec 09 17:09:33 2009 +1100"
      },
      "message": "sysfs/cpu: Add probe/release files\n\nVersion 3 of this patch is updated with documentation added to\nDocumentation/ABI.  There are no changes to any of the C code from v2\nof the patch.\n\nIn order to support kernel DLPAR of CPU resources we need to provide an\ninterface to add (probe) and remove (release) the resource from the system.\nThis patch Creates new generic probe and release sysfs files to facilitate\ncpu probe/release.  The probe/release interface provides for allowing each\narch to supply their own routines for implementing the backend of adding\nand removing cpus to/from the system.\n\nThis also creates the powerpc specific stubs to handle the arch callouts\nfrom writes to the sysfs files.\n\nThe creation and use of these files is regulated by the\nCONFIG_ARCH_CPU_PROBE_RELEASE option so that only architectures that need the\ncapability will have the files created.\n\nSigned-off-by: Nathan Fontenot \u003cnfont@austin.ibm.com\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "799e64f05f4bfaad2bb3165cab95c8c992a1c296",
      "tree": "58fdef195cc924179a034d7f4f69c8ddaf0b994f",
      "parents": [
        "27569620c748ec13f801b4683b448a2ac2adaae4"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sat Aug 15 09:53:47 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Aug 15 19:02:07 2009 +0200"
      },
      "message": "cpu hotplug: Introduce cpu_notifier() to handle !HOTPLUG_CPU case\n\nThis patch introduces a new cpu_notifier() API that is similar\nto hotcpu_notifier(), but which also notifies of CPUs coming\nonline during boot in the !HOTPLUG_CPU case.\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nReported-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nTested-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: josht@linux.vnet.ibm.com\nCc: akpm@linux-foundation.org\nCc: mathieu.desnoyers@polymtl.ca\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nCc: benh@kernel.crashing.org\nLKML-Reference: \u003c12503552312611-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "31950eb66ff47c946fd9c65c2f8c94b6b7ba13fc",
      "tree": "1ab1e09bbe7a0b33bbf19dd725172827bac5bb88",
      "parents": [
        "ac1b7c378ef26fba6694d5f118fe7fc16fee2fe2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 22 21:18:12 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 22 21:18:12 2009 -0700"
      },
      "message": "mm/init: cpu_hotplug_init() must be initialized before SLAB\n\nSLAB uses get/put_online_cpus() which use a mutex which is itself only\ninitialized when cpu_hotplug_init() is called.  Currently we hang suring\nboot in SLAB due to doing that too late.\n\nReported by James Bottomley and Sachin Sant (and possibly others).\nDebugged by Benjamin Herrenschmidt.\n\nThis just removes the dynamic initialization of the data structures, and\nreplaces it with a static one, avoiding this dependency entirely, and\nremoving one unnecessary special initcall.\n\nTested-by: Sachin Sant \u003csachinp@in.ibm.com\u003e\nTested-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nTested-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "40e8a10de2c9f87e892dcd5a6f9d1b208329ffea",
      "tree": "e00ac938e40dfbc0595346487485317af84c6094",
      "parents": [
        "2355b70fd59cb5be7de2052a9edeee7afb7ff099"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Thu Apr 02 16:58:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:00 2009 -0700"
      },
      "message": "cpu hotplug: remove unused cpuhotplug_mutex_lock()\n\ncpuhotplug_mutex_lock() is not used, remove it.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-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": "e545a6140b698b2494daf0b32107bdcc5e901390",
      "tree": "63f302e25ba7a0705bbf051f3817fac8f8b98aba",
      "parents": [
        "7686ad5606f08d9dfb33a2087a36c8366366015b"
      ],
      "author": {
        "name": "Manfred Spraul",
        "email": "manfred@colorfullife.com",
        "time": "Sun Sep 07 16:57:22 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Sep 08 19:25:24 2008 +0200"
      },
      "message": "kernel/cpu.c: create a CPU_STARTING cpu_chain notifier\n\nRight now, there is no notifier that is called on a new cpu, before the new\ncpu begins processing interrupts/softirqs.\nVarious kernel function would need that notification, e.g. kvm works around\nby calling smp_call_function_single(), rcu polls cpu_online_map.\n\nThe patch adds a CPU_STARTING notification. It also adds a helper function\nthat sends the message to all cpu_chain handlers.\n\nTested on x86-64.\nAll other archs are untested. Especially on sparc, I\u0027m not sure if I got\nit right.\n\nSigned-off-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3da1c84c00c7e5fa8348336bd8c342f9128b0f14",
      "tree": "af960c65a670319fa86846a493a6d97f9fb37cd9",
      "parents": [
        "8616a89ab761239c963eea3a63be383f127cc7e8"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Jul 25 01:47:50 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:40 2008 -0700"
      },
      "message": "workqueues: make get_online_cpus() useable for work-\u003efunc()\n\nworkqueue_cpu_callback(CPU_DEAD) flushes cwq-\u003ethread under\ncpu_maps_update_begin().  This means that the multithreaded workqueues\ncan\u0027t use get_online_cpus() due to the possible deadlock, very bad and\nvery old problem.\n\nIntroduce the new state, CPU_POST_DEAD, which is called after\ncpu_hotplug_done() but before cpu_maps_update_done().\n\nChange workqueue_cpu_callback() to use CPU_POST_DEAD instead of CPU_DEAD.\nThis means that create/destroy functions can\u0027t rely on get_online_cpus()\nany longer and should take cpu_add_remove_lock instead.\n\n[akpm@linux-foundation.org: fix CONFIG_SMP\u003dn]\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Max Krasnyansky \u003cmaxk@qualcomm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.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": "f718e31819857825315300ea3c2dbc3f26ff3b0e",
      "tree": "fe8f54b1b4cbddb3573a89008faf0d132205d349",
      "parents": [
        "63e3453e547b20321381b212cb1ee11537dc843d"
      ],
      "author": {
        "name": "Sam Ravnborg",
        "email": "sam@ravnborg.org",
        "time": "Tue Apr 29 00:58:47 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:05:59 2008 -0700"
      },
      "message": "cpu: fix section mismatch warnings in hotcpu_register\n\nFix following warnings:\nWARNING: vmlinux.o(.data+0x5020): Section mismatch in reference from the variable cpu_vsyscall_notifier_nb.12876 to the function .cpuinit.text:cpu_vsyscall_notifier()\nWARNING: vmlinux.o(.data+0x9ce0): Section mismatch in reference from the variable profile_cpu_callback_nb.17654 to the function .devinit.text:profile_cpu_callback()\nWARNING: vmlinux.o(.data+0xd380): Section mismatch in reference from the variable workqueue_cpu_callback_nb.15004 to the function .devinit.text:workqueue_cpu_callback()\nWARNING: vmlinux.o(.data+0x11d00): Section mismatch in reference from the variable relay_hotcpu_callback_nb.19626 to the function .cpuinit.text:relay_hotcpu_callback()\nWARNING: vmlinux.o(.data+0x12970): Section mismatch in reference from the variable cpu_callback_nb.24694 to the function .devinit.text:cpu_callback()\nWARNING: vmlinux.o(.data+0x3fee0): Section mismatch in reference from the variable percpu_counter_hotcpu_callback_nb.10903 to the function .cpuinit.text:percpu_counter_hotcpu_callback()\nWARNING: vmlinux.o(.data+0x74ce0): Section mismatch in reference from the variable topology_cpu_callback_nb.12506 to the function .cpuinit.text:topology_cpu_callback()\n\nFunctions used as argument are by definition only used in HOTPLUG_CPU\nsituations so thay are annotated __cpuinit.  Annotate the static variable used\nby hotcpu_register with __cpuinitdata to match this definition.\n\nSigned-off-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: 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": "5a6483feb0c5193519625d0ea8c4254364d423cc",
      "tree": "2235220e522882ac5872937fa43d3d1b188c1f4e",
      "parents": [
        "cb688371e27880d86c42323826846d1cd7caad8f"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Tue Feb 26 10:00:17 2008 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "willy@linux.intel.com",
        "time": "Fri Apr 18 22:16:54 2008 -0400"
      },
      "message": "include: Remove unnecessary inclusions of asm/semaphore.h\n\nNone of these files use any of the functionality promised by\nasm/semaphore.h.  It\u0027s possible that they (or some user of them) rely\non it dragging in some unrelated header file, but I can\u0027t build all\nthese files, so we\u0027ll have to fix any build failures as they come up.\n\nSigned-off-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\n"
    },
    {
      "commit": "d0d23b5432fe61229dd3641c5e94d4130bc4e61b",
      "tree": "dbd5e2af9dcbeba8cdb0745fa22904102df8b8f1",
      "parents": [
        "95402b3829010fe1e208f44e4a158ccade88969a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:02 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:02 2008 +0100"
      },
      "message": "cpu-hotplug: fix build on !CONFIG_SMP\n\nfix build on !CONFIG_SMP.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "86ef5c9a8edd78e6bf92879f32329d89b2d55b5a",
      "tree": "7bf46885326a6fdbb0c3596855408e9a5634dd3a",
      "parents": [
        "d221938c049f4845da13c8593132595a6b9222a8"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Fri Jan 25 21:08:02 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:02 2008 +0100"
      },
      "message": "cpu-hotplug: replace lock_cpu_hotplug() with get_online_cpus()\n\nReplace all lock_cpu_hotplug/unlock_cpu_hotplug from the kernel and use\nget_online_cpus and put_online_cpus instead as it highlights the\nrefcount semantics in these operations.\n\nThe new API guarantees protection against the cpu-hotplug operation, but\nit doesn\u0027t guarantee serialized access to any of the local data\nstructures. Hence the changes needs to be reviewed.\n\nIn case of pseries_add_processor/pseries_remove_processor, use\ncpu_maps_update_begin()/cpu_maps_update_done() as we\u0027re modifying the\ncpu_present_map there.\n\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d221938c049f4845da13c8593132595a6b9222a8",
      "tree": "8eae6c7095a3d7d31d7435befc30019540a4d13e",
      "parents": [
        "6b2d7700266b9402e12824e11e0099ae6a4a6a79"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Fri Jan 25 21:08:01 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:01 2008 +0100"
      },
      "message": "cpu-hotplug: refcount based cpu hotplug\n\nThis patch implements a Refcount + Waitqueue based model for\ncpu-hotplug.\n\nNow, a thread which wants to prevent cpu-hotplug, will bump up a global\nrefcount and the thread which wants to perform a cpu-hotplug operation\nwill block till the global refcount goes to zero.\n\nThe readers, if any, during an ongoing cpu-hotplug operation are blocked\nuntil the cpu-hotplug operation is over.\n\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e [For !CONFIG_HOTPLUG_CPU ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a263898f628dd21e59210b547986c154788f628e",
      "tree": "b6c0a05c607c9b748336e629b3b6f4ddfea191ee",
      "parents": [
        "57a04513cb35086d54bcb2cb92e6627fc8fa0fae"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Dec 30 11:58:17 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Jan 06 12:39:42 2008 -0800"
      },
      "message": "CPU hotplug: fix cpu_is_offline() on !CONFIG_HOTPLUG_CPU\n\nmake randconfig bootup testing found that the cpufreq code\ncrashes on bootup, if the powernow-k8 driver is enabled and\nif maxcpus\u003d1 passed on the boot line to a !CONFIG_HOTPLUG_CPU\nkernel.\n\nFirst lockdep found out that there\u0027s an inconsistent unlock\nsequence:\n\n \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n [ BUG: bad unlock balance detected! ]\n -------------------------------------\n swapper/1 is trying to release lock (\u0026per_cpu(cpu_policy_rwsem, cpu)) at:\n [\u003cffffffff806ffd8e\u003e] unlock_policy_rwsem_write+0x3c/0x42\n but there are no more locks to release!\n\nCall Trace:\n [\u003cffffffff806ffd8e\u003e] unlock_policy_rwsem_write+0x3c/0x42\n [\u003cffffffff80251c29\u003e] print_unlock_inbalance_bug+0x104/0x12c\n [\u003cffffffff80252f3a\u003e] mark_held_locks+0x56/0x94\n [\u003cffffffff806ffd8e\u003e] unlock_policy_rwsem_write+0x3c/0x42\n [\u003cffffffff807008b6\u003e] cpufreq_add_dev+0x2a8/0x5c4\n ...\n\nthen shortly afterwards the cpufreq code crashed on an assert:\n\n ------------[ cut here ]------------\n kernel BUG at drivers/cpufreq/cpufreq.c:1068!\n invalid opcode: 0000 [1] SMP\n [...]\n Call Trace:\n  [\u003cffffffff805145d6\u003e] sysdev_driver_unregister+0x5b/0x91\n  [\u003cffffffff806ff520\u003e] cpufreq_register_driver+0x15d/0x1a2\n  [\u003cffffffff80cc0596\u003e] powernowk8_init+0x86/0x94\n [...]\n ---[ end trace 1e9219be2b4431de ]---\n\nthe bug was caused by maxcpus\u003d1 bootup, which brought up the\nsecondary core as !cpu_online() but !cpu_is_offline() either,\nwhich on on !CONFIG_HOTPLUG_CPU is always 0 (include/linux/cpu.h):\n\n  /* CPUs don\u0027t go offline once they\u0027re online w/o CONFIG_HOTPLUG_CPU */\n  static inline int cpu_is_offline(int cpu) { return 0; }\n\nbut the cpufreq code uses cpu_online() and cpu_is_offline() in\na mixed way - the low-level drivers use cpu_online(), while\nthe cpufreq core uses cpu_is_offline(). This opened up the\npossibility to add the non-initialized sysdev device of the\nsecondary core:\n\n cpufreq-core: trying to register driver powernow-k8\n cpufreq-core: adding CPU 0\n powernow-k8: BIOS error - no PSB or ACPI _PSS objects\n cpufreq-core: initialization failed\n cpufreq-core: adding CPU 1\n cpufreq-core: initialization failed\n\nwhich then blew up. The fix is to make cpu_is_offline() always\nthe negation of cpu_online(). With that fix applied the kernel\nboots up fine without crashing:\n\n Calling initcall 0xffffffff80cc0510: powernowk8_init+0x0/0x94()\n powernow-k8: Found 1 AMD Athlon(tm) 64 X2 Dual Core Processor 3800+ processors (1 cpu cores) (version 2.20.00)\n powernow-k8: BIOS error - no PSB or ACPI _PSS objects\n initcall 0xffffffff80cc0510: powernowk8_init+0x0/0x94() returned -19.\n initcall 0xffffffff80cc0510 ran for 19 msecs: powernowk8_init+0x0/0x94()\n Calling initcall 0xffffffff80cc328f: init_lapic_nmi_sysfs+0x0/0x39()\n\nWe could fix this by making CPU enumeration aware of max_cpus, but that\nwould be more fragile IMO, and the cpu_online(cpu) !\u003d cpu_is_offline(cpu)\npossibility was quite confusing and a continuous source of bugs too.\n\nMost distributions have kernels with CPU hotplug enabled, so this bug\nremained hidden for a long time.\n\nBug forensics:\n\nThe broken cpu_is_offline() API variant was introduced via:\n\n commit a59d2e4e6977e7b94e003c96a41f07e96cddc340\n Author: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n Date:   Mon Mar 8 06:06:03 2004 -0800\n\n     [PATCH] minor cleanups for hotplug CPUs\n\n( this predates linux-2.6.git, this commit is available from Thomas\u0027s\n  historic git tree. )\n\nThen 1.5 years later the cpufreq code made use of it:\n\n commit c32b6b8e524d2c337767d312814484d9289550cf\n Author: Ashok Raj \u003cashok.raj@intel.com\u003e\n Date:   Sun Oct 30 14:59:54 2005 -0800\n\n     [PATCH] create and destroy cpufreq sysfs entries based on cpu notifiers\n\n +       if (cpu_is_offline(cpu))\n +               return 0;\n\nwhich is a correct use of the subtly broken new API. v2.6.15 then\nshipped with this bug included.\n\nthen it took two more years for random-kernel qa to hit it.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "761bb431908e84d1793c5eb6c2ae2cc4926bed3e",
      "tree": "6b9afbc8b7156573da0d095390e4dbb3b16fd82c",
      "parents": [
        "4603ac180a824197c2262747948d0179eb076e9c"
      ],
      "author": {
        "name": "Satyam Sharma",
        "email": "satyam@infradead.org",
        "time": "Thu Oct 18 03:06:38 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:37:28 2007 -0700"
      },
      "message": "Redefine {un}register_hotcpu_notifier() !HOTPLUG_CPU stubs\n\nThe return of the present \"do {} while\" based stub definition of\nregister_hotcpu_notifier() cannot be checked.  This makes the stub\nasymmetric w.r.t.  the real HOTPLUG_CPU\u003dy implementation that is\nint-returning.  So let us redefine this to be consistent with the full\nversion.  Also do the same for unregister_hotcpu_notifier().\n\nWe cannot define these as static inline functions due to an existing GCC\nbug (#33172).  So define as macros that return appropriately instead (int\n\u00270\u0027 for the register_hotcpu_notifier case and void for\nunregister_hotcpu_notifier).\n\nSigned-off-by: Satyam Sharma \u003csatyam@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f3de4be9d5f8551d7880a1f1f5231a30e0161b1f",
      "tree": "9ebd397e6b253d144460f061b95ded60a7b0da0b",
      "parents": [
        "b07e35f94a7b6a059f889b904529ee907dc0634d"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Aug 30 23:56:29 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Aug 31 01:42:22 2007 -0700"
      },
      "message": "PM: Fix dependencies of CONFIG_SUSPEND and CONFIG_HIBERNATION\n\nDependencies of CONFIG_SUSPEND and CONFIG_HIBERNATION introduced by commit\n296699de6bdc717189a331ab6bbe90e05c94db06 \"Introduce CONFIG_SUSPEND for\nsuspend-to-Ram and standby\" are incorrect, as they don\u0027t cover the facts that\n(1) not all architectures support suspend and (2) SMP hibernation is only\npossible on X86 and PPC64 (if CONFIG_PPC64_SWSUSP is set).\n\nSigned-off-by: 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": "6707de00fdec3e3225192fe3dcd21323a8936b1f",
      "tree": "cce42f90c916b851de0c7c60b6d98c23191cd49c",
      "parents": [
        "963c6527e0a0e285736ad482b8142d098f9c2288"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sun Aug 12 18:08:19 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 12 18:08:19 2007 +0200"
      },
      "message": "sched: make global code static\n\nThis patch makes the following needlessly global code static:\n\n- arch_reinit_sched_domains()\n- struct attr_sched_mc_power_savings\n- struct attr_sched_smt_power_savings\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "dcf5008db171211e3c34c060cacfd788306b034b",
      "tree": "c506e1a6141b0d9c87f375cff57f623089ad2c27",
      "parents": [
        "32c3773011a9b3522bd4abadc7fad8c27417119f"
      ],
      "author": {
        "name": "Nathan Lynch",
        "email": "ntl@pobox.com",
        "time": "Sun Jul 15 23:41:09 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:48 2007 -0700"
      },
      "message": "remove unused lock_cpu_hotplug_interruptible definition\n\naa95387774039096c11803c04011f1aa42d85758 removed the implementation of\nlock_cpu_hotplug_interruptible and all users of it.  This stub definition\nfor !CONFIG_HOTPLUG_CPU was left over -- kill it now.\n\nSigned-off-by: Nathan Lynch \u003cntl@pobox.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3367b994fe4f131ab1240600682a1981de7cad0c",
      "tree": "2afbec0bf8943d628c48dfb07883b7ce62a5c318",
      "parents": [
        "28287033e12463c8ff89f1ea8038783d0360391c"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Tue May 08 00:27:52 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:05 2007 -0700"
      },
      "message": "\u003clinux/sysdev.h\u003e needs to include \u003clinux/module.h\u003e\n\nsysdev.h uses THIS_MODULE so should include \u003clinux/module.h\u003e.\n\n[akpm@linux-foundation.org: couple of fixes]\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.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": "47e627bc8c9a70392d2049e6af5bd55fae61fe53",
      "tree": "51d5d0ff1008d200a7076b5f3fa0966277cb4b24",
      "parents": [
        "1e8ba6fba5050ec11bba90c8622aa2ed95ff711f"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Feb 12 00:54:43 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:40 2007 -0800"
      },
      "message": "[PATCH] hotplug: Allow modules to use the cpu hotplug notifiers even if !CONFIG_HOTPLUG_CPU\n\nThe following patchset allows a host with running virtual machines to be\nsuspended and, on at least a subset of the machines tested, resumed.  Note\nthat this is orthogonal to suspending and resuming an individual guest to a\nfile.\n\nA side effect of implementing suspend/resume is that cpu hotplug is now\nsupported.  This should please the owners of big iron.\n\nThis patch:\n\nKVM wants the cpu hotplug notifications, both for cpu hotplug itself, but more\ncommonly for host suspend/resume.\n\nIn order to avoid extensive #ifdefs, provide stubs when CONFIG_CPU_HOTPLUG is\nnot defined.\n\nIn all, we have four cases:\n\n- UP: register and unregister stubbed out\n- SMP+hotplug: full register and unregister\n- SMP, no hotplug, core: register as __init, unregister stubbed\n      (cpus are brought up during core initialization)\n- SMP, no hotplug, module: register and unregister stubbed out\n      (cpus cannot be brought up during module lifetime)\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\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": "4522d58275f124105819723e24e912c8e5bf3cdd",
      "tree": "b92c29014fadffe049c1925676037f0092b8d112",
      "parents": [
        "6cf24f031bc97cb5a7c9df3b6e73c45b628b2b28",
        "64a26a731235b59c9d73bbe82c1f896d57400d37"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:59:11 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:59:11 2006 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://one.firstfloor.org/home/andi/git/linux-2.6\n\n* \u0027for-linus\u0027 of git://one.firstfloor.org/home/andi/git/linux-2.6: (156 commits)\n  [PATCH] x86-64: Export smp_call_function_single\n  [PATCH] i386: Clean up smp_tune_scheduling()\n  [PATCH] unwinder: move .eh_frame to RODATA\n  [PATCH] unwinder: fully support linker generated .eh_frame_hdr section\n  [PATCH] x86-64: don\u0027t use set_irq_regs()\n  [PATCH] x86-64: check vector in setup_ioapic_dest to verify if need setup_IO_APIC_irq\n  [PATCH] x86-64: Make ix86 default to HIGHMEM4G instead of NOHIGHMEM\n  [PATCH] i386: replace kmalloc+memset with kzalloc\n  [PATCH] x86-64: remove remaining pc98 code\n  [PATCH] x86-64: remove unused variable\n  [PATCH] x86-64: Fix constraints in atomic_add_return()\n  [PATCH] x86-64: fix asm constraints in i386 atomic_add_return\n  [PATCH] x86-64: Correct documentation for bzImage protocol v2.05\n  [PATCH] x86-64: replace kmalloc+memset with kzalloc in MTRR code\n  [PATCH] x86-64: Fix numaq build error\n  [PATCH] x86-64: include/asm-x86_64/cpufeature.h isn\u0027t a userspace header\n  [PATCH] unwinder: Add debugging output to the Dwarf2 unwinder\n  [PATCH] x86-64: Clarify error message in GART code\n  [PATCH] x86-64: Fix interrupt race in idle callback (3rd try)\n  [PATCH] x86-64: Remove unwind stack pointer alignment forcing again\n  ...\n\nFixed conflict in include/linux/uaccess.h manually\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f7dff2b12654149c9cac8d8c79b6588759edd5a9",
      "tree": "2fc9e50d6c796d48de577ee4b0704326337771ed",
      "parents": [
        "d3fa72e4556ec1f04e46a0d561d9e785ecaa173d"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Wed Dec 06 20:38:58 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:41 2006 -0800"
      },
      "message": "[PATCH] Handle per-subsystem mutexes for CONFIG_HOTPLUG_CPU not set\n\nProvide a common interface for all the subsystems to lock and unlock their\nper-subsystem hotcpu mutexes.\n\nWhen CONFIG_HOTPLUG_CPU is not set, these operations would be no-ops.\n\n[akpm@osdl.org: macros -\u003e inlines]\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": "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": "72486f1f8f0a2bc828b9d30cf4690cf2dd6807fc",
      "tree": "d99077e8758eb7aa87554186a6ae81e9cd81589a",
      "parents": [
        "fd6d7d26897dec834d0b9fbdc59819b0332a1257"
      ],
      "author": {
        "name": "Siddha, Suresh B",
        "email": "suresh.b.siddha@intel.com",
        "time": "Thu Dec 07 02:14:10 2006 +0100"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Thu Dec 07 02:14:10 2006 +0100"
      },
      "message": "[PATCH] i386: change the \u0027no_control\u0027 field to \u0027hotpluggable\u0027 in the struct cpu\n\nChange the \u0027no_control\u0027 field in the cpu struct to a more positive\nand better term \u0027hotpluggable\u0027. And change(/cleanup) the logic accordingly.\n\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: \"Li, Shaohua\" \u003cshaohua.li@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\n"
    },
    {
      "commit": "0344c6c5387ba335bba5a66fd44714b94c98573f",
      "tree": "b6f3da50e29f10cf96e2fe6e98ad6aef0ae4562a",
      "parents": [
        "e570beb6bb1a623849901efbf939063ec4775c9e"
      ],
      "author": {
        "name": "Christian Krafft",
        "email": "krafft@de.ibm.com",
        "time": "Tue Oct 24 18:31:24 2006 +0200"
      },
      "committer": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Wed Oct 25 14:20:22 2006 +1000"
      },
      "message": "[POWERPC] sysfs: add support for adding/removing spu sysfs attributes\n\nThis patch adds two functions to create and remove sysfs attributes and\nattribute_group to all cpus.  That allows to register sysfs attributes in\na subdirectory like: /sys/devices/system/cpu/cpuX/group_name/what_ever\nThis will be used by cbe_thermal to group all attributes dealing with\nthermal support in one directory.\n\nSigned-of-by: Christian Krafft \u003ckrafft@de.ibm.com\u003e\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.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": "e2c2770096b686b4d2456173f53cb50e01aa635c",
      "tree": "d1d23d331e52945b61783e53fea9be75c3a2379e",
      "parents": [
        "1add6781c85d7e2ee512315113a16193b3e3937d"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sat Jul 01 04:36:30 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Jul 01 09:56:03 2006 -0700"
      },
      "message": "[PATCH] hotcpu_notifier-fixes\n\nAlways use do {} while (0).  Failing to do so can cause subtle compile\nfailures or bugs.\n\nCc: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "39f4885c56073ecafd482d7e10dd7b17900fa312",
      "tree": "81a90a4b7bc4dae71613cce3e27da361b08ecb0a",
      "parents": [
        "26c2143b63b8078d08d562733716de142927e17a"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Tue Jun 27 02:54:10 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:41 2006 -0700"
      },
      "message": "[PATCH] cpu hotplug: add hotplug versions of cpu_notifier\n\nDefine new macros register_hotcpu_notifier() and unregister_hotcpu_notifier()\nthat redefines register_cpu_notifier() and unregister_cpu_notifier() for use\nonly when 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": "76b67ed9dce69a6a329cdd66f94af1787f417b62",
      "tree": "4d80993e607ae4a870f98ad3441795737570b012",
      "parents": [
        "dd0932d9d4301bd58a4d5a634a3a8298c4fc5e24"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Jun 27 02:53:41 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:37 2006 -0700"
      },
      "message": "[PATCH] node hotplug: register cpu: remove node struct\n\nWith Goto-san\u0027s patch, we can add new pgdat/node at runtime.  I\u0027m now\nconsidering node-hot-add with cpu + memory on ACPI.\n\nI found acpi container, which describes node, could evaluate cpu before\nmemory. This means cpu-hot-add occurs before memory hot add.\n\nIn most part, cpu-hot-add doesn\u0027t depend on node hot add.  But register_cpu(),\nwhich creates symbolic link from node to cpu, requires that node should be\nonlined before register_cpu().  When a node is onlined, its pgdat should be\nthere.\n\nThis patch-set holds off creating symbolic link from node to cpu\nuntil node is onlined.\n\nThis removes node arguments from register_cpu().\n\nNow, register_cpu() requires \u0027struct node\u0027 as its argument.  But the array of\nstruct node is now unified in driver/base/node.c now (By Goto\u0027s node hotplug\npatch).  We can get struct node in generic way.  So, this argument is not\nnecessary now.\n\nThis patch also guarantees add cpu under node only when node is onlined.  It\nis necessary for node-hot-add vs.  cpu-hot-add patch following this.\n\nMoreover, register_cpu calculates cpu-\u003enode_id by cpu_to_node() without regard\nto its \u0027struct node *root\u0027 argument.  This patch removes it.\n\nAlso modify callers of register_cpu()/unregister_cpu, whose args are changed\nby register-cpu-remove-node-struct patch.\n\n[Brice.Goglin@ens-lyon.org: fix it]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: Ashok Raj \u003cashok.raj@intel.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.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": "34f361ade2fb4a869f6a7714d01c04ce4cfa75d9",
      "tree": "a250999fc386ddbfe3c92e4d8ffdcf2d3393134a",
      "parents": [
        "f1a1c2dc2a956c375b432d2a9a28e52ba9d81c7c"
      ],
      "author": {
        "name": "Ashok Raj",
        "email": "ashok.raj@intel.com",
        "time": "Sat Mar 25 03:08:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:23:01 2006 -0800"
      },
      "message": "[PATCH] Check if cpu can be onlined before calling smp_prepare_cpu()\n\n- Moved check for online cpu out of smp_prepare_cpu()\n\n- Moved default declaration of smp_prepare_cpu() to kernel/cpu.c\n\n- Removed lock_cpu_hotplug() from smp_prepare_cpu() to around it, since\n  its called from cpu_up() as well now.\n\n- Removed clearing from cpu_present_map during cpu_offline as it breaks\n  using cpu_up() directly during a subsequent online operation.\n\nSigned-off-by: Ashok Raj \u003cashok.raj@intel.com\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: \"Li, Shaohua\" \u003cshaohua.li@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a29d642a4aa99c5234314ab2523281139226c231",
      "tree": "818996643addcea3963dd143a94ce3c293f225fd",
      "parents": [
        "7423172a50968de1905a61413c52bb070a62f5ce"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Tue Mar 07 23:53:25 2006 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Mar 20 13:42:59 2006 -0800"
      },
      "message": "[PATCH] get_cpu_sysdev() signedness fix\n\nDoing (int \u003c NR_CPUS) doesn\u0027t dtrt if it\u0027s negative..\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.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": "ad74557a49d1dea428fb0ad60e75a5aa37610e1d",
      "tree": "4240115b224d3b3a323da8aa9325fc3bf4b73b50",
      "parents": [
        "5d35704028d09a183448daceab5dcb94f21a3645"
      ],
      "author": {
        "name": "Ashok Raj",
        "email": "ashok.raj@intel.com",
        "time": "Sun Oct 30 14:59:49 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:14 2005 -0800"
      },
      "message": "[PATCH] introduce get_cpu_sysdev() to retrieve a sysfs entry for a cpu.\n\nSome modules creating sysfs entries under /sys/devices/system/cpu/cpuX/\nneed to know the parent sysfs entry to make devices under them.  This will\njust return the sysfs entry for a given cpu.\n\nsysfs entries showing under each cpu sysfs can be easily created if such\nentries can be created by registering a sysfs driver for cpuclass.  The\nissue is when the entry is created the CPU may not be online, hence we\nwould need to defer the creation until the online notification comes.\n\nCurrent users: cache entries for Intel CPU\u0027s and cpufreq subsystem.\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": "d51fe1be3f738e7d73f63bb5aa0df88bafb41a21",
      "tree": "6ba09a8214aed02d11c0f43bb281e3ed4d825463",
      "parents": [
        "6a9b28dda3baf6fbbda349788cfe236f631f0359"
      ],
      "author": {
        "name": "Rolf Eike Beer",
        "email": "eike-kernel@sf-tec.de",
        "time": "Fri Sep 02 08:59:25 2005 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Fri Sep 02 00:57:31 2005 -0700"
      },
      "message": "[PATCH] remove driverfs references from include/linux/cpu.h and net/sunrpc/rpc_pipe.c\n\nThis patch is against 2.6.10, but still applies cleanly. It\u0027s just\ns/driverfs/sysfs/ in these two files.\n\nSigned-off-by: Rolf Eike Beer \u003ceike-kernel@sf-tec.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "52a119feaad92d44a0e97d01b22afbcbaf3fc079",
      "tree": "d6ad98d25a0c4a3189af2ad960fe2f47d3eb00f1",
      "parents": [
        "e1367daf3eed5cd619ee88c9907e1e6ddaa58406"
      ],
      "author": {
        "name": "Ashok Raj",
        "email": "ashok.raj@intel.com",
        "time": "Sat Jun 25 14:54:57 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Jun 25 16:24:30 2005 -0700"
      },
      "message": "[PATCH] make smp_prepare_cpu to a weak function\n\nI really wish smp_prepare_cpu() would disappear eventually.  In the interim\nthis is ideally a weak function, so we dont end up changing several places\nto define this dummy in headers.\n\nToday since the dummy declaration is done only in drivers/base/cpu.c but\nthe function is called in kernel/power/smp.c i get undefined reference in\nmy cpu hotplug code for x86_64 under development.\n\nSigned-off-by: 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": "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"
    }
  ]
}
