)]}'
{
  "log": [
    {
      "commit": "f9fc05e7620b3ffc93eeeda6d02fc70436676152",
      "tree": "2934c5c638af9c5ef977b64c7b2175653461bf3a",
      "parents": [
        "b88ed20594db2c685555b68c52b693b75738b2f5",
        "9a2bd244e18ffbb96c8b783210fda4eded7c7e6f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 10 14:41:06 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 10 14:41:06 2008 -0800"
      },
      "message": "Merge branch \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: CPU remove deadlock fix\n"
    },
    {
      "commit": "b88ed20594db2c685555b68c52b693b75738b2f5",
      "tree": "a8edcf975fb8437692bf670841859d4ac9fbd2f0",
      "parents": [
        "f4fd2c5b6f691ff71614acbc28461b3c1488c81b"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Wed Dec 10 20:48:52 2008 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 10 14:40:45 2008 -0800"
      },
      "message": "fix mapping_writably_mapped()\n\nLee Schermerhorn noticed yesterday that I broke the mapping_writably_mapped\ntest in 2.6.7!  Bad bad bug, good good find.\n\nThe i_mmap_writable count must be incremented for VM_SHARED (just as\ni_writecount is for VM_DENYWRITE, but while holding the i_mmap_lock)\nwhen dup_mmap() copies the vma for fork: it has its own more optimal\nversion of __vma_link_file(), and I missed this out.  So the count\nwas later going down to 0 (dangerous) when one end unmapped, then\nwrapping negative (inefficient) when the other end unmapped.\n\nThe only impact on x86 would have been that setting a mandatory lock on\na file which has at some time been opened O_RDWR and mapped MAP_SHARED\n(but not necessarily PROT_WRITE) across a fork, might fail with -EAGAIN\nwhen it should succeed, or succeed when it should fail.\n\nBut those architectures which rely on flush_dcache_page() to flush\nuserspace modifications back into the page before the kernel reads it,\nmay in some cases have skipped the flush after such a fork - though any\nrepetitive test will soon wrap the count negative, in which case it will\nflush_dcache_page() unnecessarily.\n\nFix would be a two-liner, but mapping variable added, and comment moved.\n\nReported-by: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9c24624727f6d6c460e45762a408ca5f5b9b8ef2",
      "tree": "39f41dc5e46a9f0e1151963eb1d4f2b7ff77ee3d",
      "parents": [
        "6ee5a399d6a92a52646836a6e10faf255c16393e"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Dec 09 13:14:27 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 10 08:01:54 2008 -0800"
      },
      "message": "KSYM_SYMBOL_LEN fixes\n\nMiles Lane tailing /sys files hit a BUG which Pekka Enberg has tracked\nto my 966c8c12dc9e77f931e2281ba25d2f0244b06949 sprint_symbol(): use\nless stack exposing a bug in slub\u0027s list_locations() -\nkallsyms_lookup() writes a 0 to namebuf[KSYM_NAME_LEN-1], but that was\nbeyond the end of page provided.\n\nThe 100 slop which list_locations() allows at end of page looks roughly\nenough for all the other stuff it might print after the symbol before\nit checks again: break out KSYM_SYMBOL_LEN earlier than before.\n\nLatencytop and ftrace and are using KSYM_NAME_LEN buffers where they\nneed KSYM_SYMBOL_LEN buffers, and vmallocinfo a 2*KSYM_NAME_LEN buffer\nwhere it wants a KSYM_SYMBOL_LEN buffer: fix those before anyone copies\nthem.\n\n[akpm@linux-foundation.org: ftrace.h needs module.h]\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc Miles Lane \u003cmiles.lane@gmail.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fbb5b7ae4b442f1923513dc6165a66c7a7f29073",
      "tree": "e49f1c838a58912a36d03e12d1dab44d2df439d6",
      "parents": [
        "361371201b60ffd686a694c848c1d5ad6061725f"
      ],
      "author": {
        "name": "Tom Zanussi",
        "email": "zanussi@comcast.net",
        "time": "Tue Dec 09 13:14:10 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 10 08:01:52 2008 -0800"
      },
      "message": "relayfs: fix infinite loop with splice()\n\nRunning kmemtraced, which uses splice() on relayfs, causes a hard lock on\nx86-64 SMP.  As described by Tom Zanussi:\n\n  It looks like you hit the same problem as described here:\n\n  commit 8191ecd1d14c6914c660dfa007154860a7908857\n\n      splice: fix infinite loop in generic_file_splice_read()\n\n  relay uses the same loop but it never got noticed or fixed.\n\nCc: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nTested-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9a2bd244e18ffbb96c8b783210fda4eded7c7e6f",
      "tree": "19ac3da79ea2c7245549cf69e8207a23f635d04e",
      "parents": [
        "43714539eab42b2fa3653ea7bd667b36c2291b11"
      ],
      "author": {
        "name": "Brian King",
        "email": "brking@linux.vnet.ibm.com",
        "time": "Tue Dec 09 08:47:00 2008 -0600"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 09 19:27:03 2008 +0100"
      },
      "message": "sched: CPU remove deadlock fix\n\nImpact: fix possible deadlock in CPU hot-remove path\n\nThis patch fixes a possible deadlock scenario in the CPU remove path.\nmigration_call grabs rq-\u003elock, then wakes up everything on rq-\u003emigration_queue\nwith the lock held. Then one of the tasks on the migration queue ends up\ncalling tg_shares_up which then also tries to acquire the same rq-\u003elock.\n\n[c000000058eab2e0] c000000000502078 ._spin_lock_irqsave+0x98/0xf0\n[c000000058eab370] c00000000008011c .tg_shares_up+0x10c/0x20c\n[c000000058eab430] c00000000007867c .walk_tg_tree+0xc4/0xfc\n[c000000058eab4d0] c0000000000840c8 .try_to_wake_up+0xb0/0x3c4\n[c000000058eab590] c0000000000799a0 .__wake_up_common+0x6c/0xe0\n[c000000058eab640] c00000000007ada4 .complete+0x54/0x80\n[c000000058eab6e0] c000000000509fa8 .migration_call+0x5fc/0x6f8\n[c000000058eab7c0] c000000000504074 .notifier_call_chain+0x68/0xe0\n[c000000058eab860] c000000000506568 ._cpu_down+0x2b0/0x3f4\n[c000000058eaba60] c000000000506750 .cpu_down+0xa4/0x108\n[c000000058eabb10] c000000000507e54 .store_online+0x44/0xa8\n[c000000058eabba0] c000000000396260 .sysdev_store+0x3c/0x50\n[c000000058eabc10] c0000000001a39b8 .sysfs_write_file+0x124/0x18c\n[c000000058eabcd0] c00000000013061c .vfs_write+0xd0/0x1bc\n[c000000058eabd70] c0000000001308a4 .sys_write+0x68/0x114\n[c000000058eabe30] c0000000000086b4 syscall_exit+0x0/0x40\n\nSigned-off-by: Brian King \u003cbrking@linux.vnet.ibm.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "48887e63d6e057543067327da6b091297f7fe645",
      "tree": "f290af5a887bcf840a63043eb2df3a4c02ccaea3",
      "parents": [
        "7f0ed77d241b60f70136f15b8eef30a3de1fa249"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Dec 06 01:05:50 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 09 02:27:41 2008 -0500"
      },
      "message": "[PATCH] fix broken timestamps in AVC generated by kernel threads\n\nTimestamp in audit_context is valid only if -\u003ein_syscall is set.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7f0ed77d241b60f70136f15b8eef30a3de1fa249",
      "tree": "23965f89b83f5bfd176eea4ea82dd3a7c90d1e6f",
      "parents": [
        "0b0c940a91f8e6fd0e1be3e01d5e98997446233b"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Mon Dec 01 14:16:06 2008 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 09 02:27:40 2008 -0500"
      },
      "message": "[patch 1/1] audit: remove excess kernel-doc\n\nDelete excess kernel-doc notation in kernel/auditsc.c:\n\nWarning(linux-2.6.27-git10//kernel/auditsc.c:1481): Excess function parameter or struct member \u0027tsk\u0027 description in \u0027audit_syscall_entry\u0027\nWarning(linux-2.6.27-git10//kernel/auditsc.c:1564): Excess function parameter or struct member \u0027tsk\u0027 description in \u0027audit_syscall_exit\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a64e64944f4b8ce3288519555dbaa0232414b8ac",
      "tree": "6b37f5444c49379580b6b4fead84a75ca474d0ab",
      "parents": [
        "a3f07114e3359fb98683069ae397220e8992a24a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Nov 12 18:37:41 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 09 02:27:38 2008 -0500"
      },
      "message": "[PATCH] return records for fork() both to child and parent\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a3f07114e3359fb98683069ae397220e8992a24a",
      "tree": "d5af821616dd749be416ccbbe3f25f6919ea0af9",
      "parents": [
        "218d11a8b071b23b76c484fd5f72a4fe3306801e"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Nov 05 12:47:09 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 09 02:27:37 2008 -0500"
      },
      "message": "[PATCH] Audit: make audit\u003d0 actually turn off audit\n\nCurrently audit\u003d0 on the kernel command line does absolutely nothing.\nAudit always loads and always uses its resources such as creating the\nkernel netlink socket.  This patch causes audit\u003d0 to actually disable\naudit.  Audit will use no resources and starting the userspace auditd\ndaemon will not cause the kernel audit system to activate.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bbeba4c35c252b2e961f09ce6ebe76b2cd5e7e3e",
      "tree": "3fb4c0ae65f0c13be884280755cf65314a93ebce",
      "parents": [
        "6df944c5f8194a1010f7166bcdd48667637f1af8",
        "2cbed8906fd1f3c6cc17cdf8aac1bfad2da7960c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 04 21:45:44 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 04 21:45:44 2008 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/bdev\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/bdev:\n  [PATCH] fix bogus argument of blkdev_put() in pktcdvd\n  [PATCH 2/2] documnt FMODE_ constants\n  [PATCH 1/2] kill FMODE_NDELAY_NOW\n  [PATCH] clean up blkdev_get a little bit\n  [PATCH] Fix block dev compat ioctl handling\n  [PATCH] kill obsolete temporary comment in swsusp_close()\n"
    },
    {
      "commit": "4857339d7c01cd81ce8872da2d1f9183b07b1c87",
      "tree": "49d311b8bd623810822106a706f9db886c6ffb07",
      "parents": [
        "0efcafb0fb7a163999a8821e8a5e7792fca90a2d",
        "6c9bacb41c10ba84ff68f238e234d96f35fb64f7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 04 21:40:29 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 04 21:40:29 2008 -0800"
      },
      "message": "Merge branch \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  time: catch xtime_nsec underflows and fix them\n  posix-cpu-timers: fix clock_gettime with CLOCK_PROCESS_CPUTIME_ID\n"
    },
    {
      "commit": "3b666ce6a246cb9b89d335738d84af36883b911d",
      "tree": "59ef04850352e6e748c308000ea4fe6e221d0dfc",
      "parents": [
        "56d18e9932ebf4e8eca42d2ce509450e6c9c1666",
        "201955463a5c1a70d3f70d1598b27e4c2c402642"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 04 21:39:41 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 04 21:39:41 2008 -0800"
      },
      "message": "Merge branch \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  check_hung_task(): unsigned sysctl_hung_task_warnings cannot be less than 0\n  documentation: local_ops fix on_each_cpu\n"
    },
    {
      "commit": "50c396d38c1a7f0c693579ec88cb4be3c0b0645e",
      "tree": "ba4771fb028bd042c4f977a5daf2af4a18af0e5c",
      "parents": [
        "feaf3848a813a106f163013af6fcf6c4bfec92d9"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Nov 30 01:47:12 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 04 04:22:54 2008 -0500"
      },
      "message": "[PATCH] kill obsolete temporary comment in swsusp_close()\n\nit had been put there to mark the call of blkdev_put() that\nneeded proper argument propagated to it; later patch in the\nsame series had done just that.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6c9bacb41c10ba84ff68f238e234d96f35fb64f7",
      "tree": "220e4bde083339abd25cb26b973585b9aa19ab80",
      "parents": [
        "eccdaeafaea3ed115068ba55d01f22e486e5437d"
      ],
      "author": {
        "name": "john stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Mon Dec 01 18:34:41 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 04 08:43:02 2008 +0100"
      },
      "message": "time: catch xtime_nsec underflows and fix them\n\nImpact: fix time warp bug\n\nAlex Shi, along with Yanmin Zhang have been noticing occasional time\ninconsistencies recently. Through their great diagnosis, they found that\nthe xtime_nsec value used in update_wall_time was occasionally going\nnegative. After looking through the code for awhile, I realized we have\nthe possibility for an underflow when three conditions are met in\nupdate_wall_time():\n\n  1) We have accumulated a second\u0027s worth of nanoseconds, so we\n     incremented xtime.tv_sec and appropriately decrement xtime_nsec.\n     (This doesn\u0027t cause xtime_nsec to go negative, but it can cause it\n      to be small).\n\n  2) The remaining offset value is large, but just slightly less then\n     cycle_interval.\n\n  3) clocksource_adjust() is speeding up the clock, causing a\n     corrective amount (compensating for the increase in the multiplier\n     being multiplied against the unaccumulated offset value) to be\n     subtracted from xtime_nsec.\n\nThis can cause xtime_nsec to underflow.\n\nUnfortunately, since we notify the NTP subsystem via second_overflow()\nwhenever we accumulate a full second, and this effects the error\naccumulation that has already occured, we cannot simply revert the\naccumulated second from xtime nor move the second accumulation to after\nthe clocksource_adjust call without a change in behavior.\n\nThis leaves us with (at least) two options:\n\n1) Simply return from clocksource_adjust() without making a change if we\n   notice the adjustment would cause xtime_nsec to go negative.\n\nThis would work, but I\u0027m concerned that if a large adjustment was needed\n(due to the error being large), it may be possible to get stuck with an\never increasing error that becomes too large to correct (since it may\nalways force xtime_nsec negative). This may just be paranoia on my part.\n\n2) Catch xtime_nsec if it is negative, then add back the amount its\n   negative to both xtime_nsec and the error.\n\nThis second method is consistent with how we\u0027ve handled earlier rounding\nissues, and also has the benefit that the error being added is always in\nthe oposite direction also always equal or smaller then the correction\nbeing applied. So the risk of a corner case where things get out of\ncontrol is lessened.\n\nThis patch fixes bug 11970, as tested by Yanmin Zhang\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d11970\n\nReported-by: alex.shi@intel.com\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nAcked-by: \"Zhang, Yanmin\" \u003cyanmin_zhang@linux.intel.com\u003e\nTested-by: \"Zhang, Yanmin\" \u003cyanmin_zhang@linux.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "201955463a5c1a70d3f70d1598b27e4c2c402642",
      "tree": "8e577f526e7ce09b5d710e1960dd5d74b6207f7c",
      "parents": [
        "02d43b1d13a0a55a75bb5c5f98d2b13dbe71ecf9"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Tue Dec 02 22:55:38 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 03 10:11:51 2008 +0100"
      },
      "message": "check_hung_task(): unsigned sysctl_hung_task_warnings cannot be less than 0\n\nImpact: fix warnings-limit cutoff check for debug feature\n\nunsigned sysctl_hung_task_warnings cannot be less than 0\n\nSigned-off-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a8005992836434cab6182c6147993d21442184c1",
      "tree": "d1fec47b2a2febf700d6d7a1f09c3d695a945bf9",
      "parents": [
        "c4c6fa9891f3d1bcaae4f39fb751d5302965b566"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Mon Dec 01 13:14:00 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 01 19:55:24 2008 -0800"
      },
      "message": "taint: add missing comment\n\nThe description for \u0027D\u0027 was missing in the comment...  (causing me a\nminute of WTF followed by looking at more of the code)\n\nSigned-off-by: Arjan van de Ven \u003carjan@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": "7ef9964e6d1b911b78709f144000aacadd0ebc21",
      "tree": "30667d0a2f8e53973ff48d2c02df48bbc6fe74aa",
      "parents": [
        "b7d271df873c5121a4ca1c70dea126b5920ec2f1"
      ],
      "author": {
        "name": "Davide Libenzi",
        "email": "davidel@xmailserver.org",
        "time": "Mon Dec 01 13:13:55 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 01 19:55:24 2008 -0800"
      },
      "message": "epoll: introduce resource usage limits\n\nIt has been thought that the per-user file descriptors limit would also\nlimit the resources that a normal user can request via the epoll\ninterface.  Vegard Nossum reported a very simple program (a modified\nversion attached) that can make a normal user to request a pretty large\namount of kernel memory, well within the its maximum number of fds.  To\nsolve such problem, default limits are now imposed, and /proc based\nconfiguration has been introduced.  A new directory has been created,\nnamed /proc/sys/fs/epoll/ and inside there, there are two configuration\npoints:\n\n  max_user_instances \u003d Maximum number of devices - per user\n\n  max_user_watches   \u003d Maximum number of \"watched\" fds - per user\n\nThe current default for \"max_user_watches\" limits the memory used by epoll\nto store \"watches\", to 1/32 of the amount of the low RAM.  As example, a\n256MB 32bit machine, will have \"max_user_watches\" set to roughly 90000.\nThat should be enough to not break existing heavy epoll users.  The\ndefault value for \"max_user_instances\" is set to 128, that should be\nenough too.\n\nThis also changes the userspace, because a new error code can now come out\nfrom EPOLL_CTL_ADD (-ENOSPC).  The EMFILE from epoll_create() was already\nlisted, so that should be ok.\n\n[akpm@linux-foundation.org: use get_current_user()]\nSigned-off-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nCc: \u003cstable@kernel.org\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nReported-by: Vegard Nossum \u003cvegardno@ifi.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9bd062d9eaf9e790330f37d9f4518e1b95131f6c",
      "tree": "a209a707eddf645bdeed3e9c82603ead64eea515",
      "parents": [
        "72244c0e68dd664b894adb34a8772a6e4673b4c1",
        "af6d596fd603219b054c1c90fb16672a9fd441bd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 30 13:06:47 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 30 13:06:47 2008 -0800"
      },
      "message": "Merge branch \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: prevent divide by zero error in cpu_avg_load_per_task, update\n  sched, cpusets: fix warning in kernel/cpuset.c\n  sched: prevent divide by zero error in cpu_avg_load_per_task\n"
    },
    {
      "commit": "72244c0e68dd664b894adb34a8772a6e4673b4c1",
      "tree": "5fa5bd9ff7b3d52f9b89898c0f12cfe163b72987",
      "parents": [
        "93b10052f9146eab4e848b474baf10c2ea22acb3",
        "2ed1cdcf9a83205d1343f29b630abff232eaa72c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 30 13:06:20 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 30 13:06:20 2008 -0800"
      },
      "message": "Merge branch \u0027irq-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  irq.h: fix missing/extra kernel-doc\n  genirq: __irq_set_trigger: change pr_warning to pr_debug\n  irq: fix typo\n  x86: apic honour irq affinity which was set in early boot\n  genirq: fix the affinity setting in setup_irq\n  genirq: keep affinities set from userspace across free/request_irq()\n"
    },
    {
      "commit": "93b10052f9146eab4e848b474baf10c2ea22acb3",
      "tree": "d7286d6c2ee0bb233524771bac7934275d4bb8ee",
      "parents": [
        "7bbc67fbf60b698b43692fc6ea16c526bf1c5e26",
        "b0788caf7af773b6c2374590dabd3a205f0918a8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 30 13:05:46 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 30 13:05:46 2008 -0800"
      },
      "message": "Merge branch \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  lockdep: consistent alignement for lockdep info\n"
    },
    {
      "commit": "7bbc67fbf60b698b43692fc6ea16c526bf1c5e26",
      "tree": "35b4c929ecea3d3fc54f221501a25c136bd6b1a6",
      "parents": [
        "66a45cc4cc1c1f7d1ccae4d0fee261eab5560682",
        "4f5a7f40ddbae98569acbb99118a98570315579c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 30 13:05:31 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 30 13:05:31 2008 -0800"
      },
      "message": "Merge branch \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  ftrace: prevent recursion\n  tracing, doc: update mmiotrace documentation\n  x86, mmiotrace: fix buffer overrun detection\n  function tracing: fix wrong position computing of stack_trace\n"
    },
    {
      "commit": "96b8936a9ed08746e47081458a5eb9e43a751e24",
      "tree": "d1a738fdd95dda182f99c90fe3079283e0b07307",
      "parents": [
        "16799c6a4d5156c6ee185b51b7586cca1aae0800"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Nov 25 08:10:03 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 30 11:00:15 2008 -0800"
      },
      "message": "remove __ARCH_WANT_COMPAT_SYS_PTRACE\n\nAll architectures now use the generic compat_sys_ptrace, as should every\nnew architecture that needs 32bit compat (if we\u0027ll ever get another).\n\nRemove the now superflous __ARCH_WANT_COMPAT_SYS_PTRACE define, and also\nkill a comment about __ARCH_SYS_PTRACE that was added after\n__ARCH_SYS_PTRACE was already gone.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8419641450edc838a6ce7cdf0f99d262bf0af2d5",
      "tree": "1a396f0bafecd6ebcf15db23ca89b0cb8e33bda0",
      "parents": [
        "b0385146bcdd24b0390c2b60fd05a083888835db"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Sat Nov 22 17:36:44 2008 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 30 10:03:37 2008 -0800"
      },
      "message": "cpuinit fixes in kernel/*\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "af6d596fd603219b054c1c90fb16672a9fd441bd",
      "tree": "e3e5a85532079aedc9b0b194a319ec084b8a4449",
      "parents": [
        "1583715ddb61f822041807a0f18b3b4845e88c76"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Nov 29 20:45:15 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Nov 29 20:45:15 2008 +0100"
      },
      "message": "sched: prevent divide by zero error in cpu_avg_load_per_task, update\n\nRegarding the bug addressed in:\n\n  4cd4262: sched: prevent divide by zero error in cpu_avg_load_per_task\n\nLinus points out that the fix is not complete:\n\n\u003e There\u0027s nothing that keeps gcc from deciding not to reload\n\u003e rq-\u003enr_running.\n\u003e\n\u003e Of course, in _practice_, I don\u0027t think gcc ever will (if it decides\n\u003e that it will spill, gcc is likely going to decide that it will\n\u003e literally spill the local variable to the stack rather than decide to\n\u003e reload off the pointer), but it\u0027s a valid compiler optimization, and\n\u003e it even has a name (rematerialization).\n\u003e\n\u003e So I suspect that your patch does fix the bug, but it still leaves the\n\u003e fairly unlikely _potential_ for it to re-appear at some point.\n\u003e\n\u003e We have ACCESS_ONCE() as a macro to guarantee that the compiler\n\u003e doesn\u0027t rematerialize a pointer access. That also would clarify\n\u003e the fact that we access something unsafe outside a lock.\n\nSo make sure our nr_running value is immutable and cannot change\nafter we check it for nonzero.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1583715ddb61f822041807a0f18b3b4845e88c76",
      "tree": "cdc54eb7c0105197560641745059db7c20166eec",
      "parents": [
        "4cd4262034849da01eb88659af677b69f8169f06"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 25 10:27:49 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Nov 29 20:39:29 2008 +0100"
      },
      "message": "sched, cpusets: fix warning in kernel/cpuset.c\n\nthis warning:\n\n  kernel/cpuset.c: In function ‘generate_sched_domains’:\n  kernel/cpuset.c:588: warning: ‘ndoms’ may be used uninitialized in this function\n\ntriggers because GCC does not recognize that ndoms stays uninitialized\nonly if doms is NULL - but that flow is covered at the end of\ngenerate_sched_domains().\n\nHelp out GCC by initializing this variable to 0. (that\u0027s prudent anyway)\n\nAlso, this function needs a splitup and code flow simplification:\nwith 160 lines length it\u0027s clearly too long.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4cd4262034849da01eb88659af677b69f8169f06",
      "tree": "eaab94e7fd4a436bcead7efd6684405252f336c4",
      "parents": [
        "ee2f6cc7f9ea2542ad46070ed62ba7aa04d08871"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Nov 26 21:04:24 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 27 10:29:52 2008 +0100"
      },
      "message": "sched: prevent divide by zero error in cpu_avg_load_per_task\n\nImpact: fix divide by zero crash in scheduler rebalance irq\n\nWhile testing the branch profiler, I hit this crash:\n\ndivide error: 0000 [#1] PREEMPT SMP\n[...]\nRIP: 0010:[\u003cffffffff8024a008\u003e]  [\u003cffffffff8024a008\u003e] cpu_avg_load_per_task+0x50/0x7f\n[...]\nCall Trace:\n \u003cIRQ\u003e \u003c0\u003e [\u003cffffffff8024fd43\u003e] find_busiest_group+0x3e5/0xcaa\n [\u003cffffffff8025da75\u003e] rebalance_domains+0x2da/0xa21\n [\u003cffffffff80478769\u003e] ? find_next_bit+0x1b2/0x1e6\n [\u003cffffffff8025e2ce\u003e] run_rebalance_domains+0x112/0x19f\n [\u003cffffffff8026d7c2\u003e] __do_softirq+0xa8/0x232\n [\u003cffffffff8020ea7c\u003e] call_softirq+0x1c/0x3e\n [\u003cffffffff8021047a\u003e] do_softirq+0x94/0x1cd\n [\u003cffffffff8026d5eb\u003e] irq_exit+0x6b/0x10e\n [\u003cffffffff8022e6ec\u003e] smp_apic_timer_interrupt+0xd3/0xff\n [\u003cffffffff8020e4b3\u003e] apic_timer_interrupt+0x13/0x20\n\nThe code for cpu_avg_load_per_task has:\n\n\tif (rq-\u003enr_running)\n\t\trq-\u003eavg_load_per_task \u003d rq-\u003eload.weight / rq-\u003enr_running;\n\nThe runqueue lock is not held here, and there is nothing that prevents\nthe rq-\u003enr_running from going to zero after it passes the if condition.\n\nThe branch profiler simply made the race window bigger.\n\nThis patch saves off the rq-\u003enr_running to a local variable and uses that\nfor both the condition and the division.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nPeter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4f5a7f40ddbae98569acbb99118a98570315579c",
      "tree": "82eca15746f525acc19fd9e3f33cb08c6c8bc3e6",
      "parents": [
        "fb91ee6cf5b8be5360acec577458e29ec7e97e5e"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Thu Nov 27 10:21:46 2008 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 27 10:11:53 2008 +0100"
      },
      "message": "ftrace: prevent recursion\n\nImpact: prevent unnecessary stack recursion\n\nif the resched flag was set before we entered, then don\u0027t reschedule.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "eccdaeafaea3ed115068ba55d01f22e486e5437d",
      "tree": "75b59c0bcbf00c869e4b25b3bf34671ba4c3b8c1",
      "parents": [
        "13d428afc007fcfcd6deeb215618f54cf9c0cae6"
      ],
      "author": {
        "name": "Petr Tesarik",
        "email": "ptesarik@suse.cz",
        "time": "Mon Nov 24 15:46:31 2008 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Nov 24 16:41:40 2008 +0100"
      },
      "message": "posix-cpu-timers: fix clock_gettime with CLOCK_PROCESS_CPUTIME_ID\n\nSince CLOCK_PROCESS_CPUTIME_ID is in fact translated to -6, the switch\nstatement in cpu_clock_sample_group() must first mask off the irrelevant\nbits, similar to cpu_clock_sample().\n\nSigned-off-by: Petr Tesarik \u003cptesarik@suse.cz\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n--\n posix-cpu-timers.c |    2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\n"
    },
    {
      "commit": "7ee1768ddb3075ae3a0801cc2d0ea4195530a7db",
      "tree": "403dea91103838cbe56bca586a8f41a470e7a1e4",
      "parents": [
        "522a110b42b306d696cf84e34c677ed0e7080194"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pq@iki.fi",
        "time": "Sun Nov 23 21:24:30 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 20:33:23 2008 +0100"
      },
      "message": "x86, mmiotrace: fix buffer overrun detection\n\nImpact: fix mmiotrace overrun tracing\n\nWhen ftrace framework moved to use the ring buffer facility, the buffer\noverrun detection was broken after 2.6.27 by commit\n\n| commit 3928a8a2d98081d1bc3c0a84a2d70e29b90ecf1c\n| Author: Steven Rostedt \u003crostedt@goodmis.org\u003e\n| Date:   Mon Sep 29 23:02:41 2008 -0400\n|\n|     ftrace: make work with new ring buffer\n|\n|     This patch ports ftrace over to the new ring buffer.\n\nThe detection is now fixed by using the ring buffer API.\n\nWhen mmiotrace detects a buffer overrun, it will report the number of\nlost events. People reading an mmiotrace log must know if something was\nmissed, otherwise the data may not make sense.\n\nSigned-off-by: Pekka Paalanen \u003cpq@iki.fi\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9f1441644213e5f6faa150206399fe511eba2eb6",
      "tree": "e59d4e6475aa84f7e821a8c607deb56b85e19e95",
      "parents": [
        "3ff68a6a106c362a6811d3e51bced58e6fc87de7",
        "13d428afc007fcfcd6deeb215618f54cf9c0cae6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 10:52:33 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 10:52:33 2008 +0100"
      },
      "message": "Merge commit \u0027v2.6.28-rc6\u0027 into irq/urgent\n"
    },
    {
      "commit": "b0788caf7af773b6c2374590dabd3a205f0918a8",
      "tree": "d98fec3093b87aa72b3484c994f90956da6e5905",
      "parents": [
        "13d428afc007fcfcd6deeb215618f54cf9c0cae6"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Nov 21 15:57:32 2008 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 21 08:59:40 2008 +0100"
      },
      "message": "lockdep: consistent alignement for lockdep info\n\nImpact: prettify /proc/lockdep_info\n\nJust feel odd that not all lines of lockdep info are aligned.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "522a110b42b306d696cf84e34c677ed0e7080194",
      "tree": "a77d238aed14185cb5662daae5f01f0da405a834",
      "parents": [
        "ed313489badef16d700f5a3be50e8fd8f8294bc8"
      ],
      "author": {
        "name": "Liming Wang",
        "email": "liming.wang@windriver.com",
        "time": "Fri Nov 21 11:00:18 2008 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 21 08:49:52 2008 +0100"
      },
      "message": "function tracing: fix wrong position computing of stack_trace\n\nImpact: make output of stack_trace complete if buffer overruns\n\nWhen read buffer overruns, the output of stack_trace isn\u0027t complete.\n\nWhen printing records with seq_printf in t_show, if the read buffer\nhas overruned by the current record, then this record won\u0027t be\nprinted to user space through read buffer, it will just be dropped in\nthis printing.\n\nWhen next printing, t_start should return the \"*pos\"th record, which\nis the one dropped by previous printing, but it just returns\n(m-\u003eprivate + *pos)th record.\n\nHere we use a more sane method to implement seq_operations which can\nbe found in kernel code. Thus we needn\u0027t initialize m-\u003eprivate.\n\nAbout testing, it\u0027s not easy to overrun read buffer, but we can use\nseq_printf to print more padding bytes in t_show, then it\u0027s easy to\ncheck whether or not records are lost.\n\nThis commit has been tested on both condition of overrun and non\noverrun.\n\nSigned-off-by: Liming Wang \u003climing.wang@windriver.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "95763dd52b4b9b3578d3428001ece1e11b016ffc",
      "tree": "fae1b9baa31810dcf45aa2fe2ab38a8fdbbd1a43",
      "parents": [
        "0260da162fa12c899b4377e71c243a631438c148",
        "6d5b43a67accf6793ed259f6534b4bd53b1e5696"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 20 13:11:21 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 20 13:11:21 2008 -0800"
      },
      "message": "Merge branch \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  ftrace: fix dyn ftrace filter selection\n  ftrace: make filtered functions effective on setting\n  ftrace: fix set_ftrace_filter\n  trace: introduce missing mutex_unlock()\n  tracing: kernel/trace/trace.c: introduce missing kfree()\n"
    },
    {
      "commit": "33d283bef23132c48195eafc21449f8ba88fce6b",
      "tree": "e4a04851127f2f46122cb96fc13e8da71a7bcf10",
      "parents": [
        "ea7e743e49b94749fc739baaf160809ed279aeda"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Nov 19 15:36:48 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 19 18:50:00 2008 -0800"
      },
      "message": "cgroups: fix a serious bug in cgroupstats\n\nTry this, and you\u0027ll get oops immediately:\n # cd Documentation/accounting/\n # gcc -o getdelays getdelays.c\n # mount -t cgroup -o debug xxx /mnt\n # ./getdelays -C /mnt/tasks\n\nBecause a normal file\u0027s dentry-\u003ed_fsdata is a pointer to struct cftype,\nnot struct cgroup.\n\nAfter the patch, it returns EINVAL if we try to get cgroupstats\nfrom a normal file.\n\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.25.x, 2.6.26.x, 2.6.27.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "966c8c12dc9e77f931e2281ba25d2f0244b06949",
      "tree": "8914c842252f6872cca006b482d32ee7a12da808",
      "parents": [
        "3fa59dfbc3b223f02c26593be69ce6fc9a940405"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Wed Nov 19 15:36:36 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 19 18:49:58 2008 -0800"
      },
      "message": "sprint_symbol(): use less stack\n\nsprint_symbol(), itself used when dumping stacks, has been wasting 128\nbytes of stack: lookup the symbol directly into the buffer supplied by the\ncaller, instead of using a locally declared namebuf.\n\nI believe the name !\u003d buffer strcpy() is obsolete: the design here dates\nfrom when module symbol lookup pointed into a supposedly const but sadly\nvolatile table; nowadays it copies, but an uncalled strcpy() looks better\nhere than the risk of a recursive BUG_ON().\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3fa59dfbc3b223f02c26593be69ce6fc9a940405",
      "tree": "d3d9df521342b49abc636e1ee465b704858b3e0d",
      "parents": [
        "0ae15132a4f5c758a6ffcde74495641dc3f62ba1"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Nov 19 15:36:34 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 19 18:49:58 2008 -0800"
      },
      "message": "cgroup: fix potential deadlock in pre_destroy\n\nAs Balbir pointed out, memcg\u0027s pre_destroy handler has potential deadlock.\n\nIt has following lock sequence.\n\n\tcgroup_mutex (cgroup_rmdir)\n\t    -\u003e pre_destroy -\u003e mem_cgroup_pre_destroy-\u003e force_empty\n\t\t-\u003e cpu_hotplug.lock. (lru_add_drain_all-\u003e\n\t\t\t\t      schedule_work-\u003e\n                                      get_online_cpus)\n\nBut, cpuset has following.\n\tcpu_hotplug.lock (call notifier)\n\t\t-\u003e cgroup_mutex. (within notifier)\n\nThen, this lock sequence should be fixed.\n\nConsidering how pre_destroy works, it\u0027s not necessary to holding\ncgroup_mutex() while calling it.\n\nAs a side effect, we don\u0027t have to wait at this mutex while memcg\u0027s\nforce_empty works.(it can be long when there are tons of pages.)\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f481891fdc49d3d1b8a9674a1825d183069a805f",
      "tree": "4f027a1321dcd06165394d0a23e49df51c8befc1",
      "parents": [
        "ac97b9f9a2d0b83488e0bbcb8517b229d5c9b142"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Wed Nov 19 15:36:30 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 19 18:49:58 2008 -0800"
      },
      "message": "cpuset: update top cpuset\u0027s mems after adding a node\n\nAfter adding a node into the machine, top cpuset\u0027s mems isn\u0027t updated.\n\nBy reviewing the code, we found that the update function\n\n  cpuset_track_online_nodes()\n\nwas invoked after node_states[N_ONLINE] changes.  It is wrong because\nN_ONLINE just means node has pgdat, and if node has/added memory, we use\nN_HIGH_MEMORY.  So, We should invoke the update function after\nnode_states[N_HIGH_MEMORY] changes, just like its commit says.\n\nThis patch fixes it.  And we use notifier of memory hotplug instead of\ndirect calling of cpuset_track_online_nodes().\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nAcked-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Paul Menage \u003cmenage@google.com\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "de11defebf00007677fb7ee91d9b089b78786fbb",
      "tree": "8219faf1b7992be77a612e778c2573c55f56cf19",
      "parents": [
        "cf7ee554f3a324e98181b0ea249d9d5be3a0acb8"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Nov 19 15:36:14 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 19 18:49:57 2008 -0800"
      },
      "message": "reintroduce accept4\n\nIntroduce a new accept4() system call.  The addition of this system call\nmatches analogous changes in 2.6.27 (dup3(), evenfd2(), signalfd4(),\ninotify_init1(), epoll_create1(), pipe2()) which added new system calls\nthat differed from analogous traditional system calls in adding a flags\nargument that can be used to access additional functionality.\n\nThe accept4() system call is exactly the same as accept(), except that\nit adds a flags bit-mask argument.  Two flags are initially implemented.\n(Most of the new system calls in 2.6.27 also had both of these flags.)\n\nSOCK_CLOEXEC causes the close-on-exec (FD_CLOEXEC) flag to be enabled\nfor the new file descriptor returned by accept4().  This is a useful\nsecurity feature to avoid leaking information in a multithreaded\nprogram where one thread is doing an accept() at the same time as\nanother thread is doing a fork() plus exec().  More details here:\nhttp://udrepper.livejournal.com/20407.html \"Secure File Descriptor Handling\",\nUlrich Drepper).\n\nThe other flag is SOCK_NONBLOCK, which causes the O_NONBLOCK flag\nto be enabled on the new open file description created by accept4().\n(This flag is merely a convenience, saving the use of additional calls\nfcntl(F_GETFL) and fcntl (F_SETFL) to achieve the same result.\n\nHere\u0027s a test program.  Works on x86-32.  Should work on x86-64, but\nI (mtk) don\u0027t have a system to hand to test with.\n\nIt tests accept4() with each of the four possible combinations of\nSOCK_CLOEXEC and SOCK_NONBLOCK set/clear in \u0027flags\u0027, and verifies\nthat the appropriate flags are set on the file descriptor/open file\ndescription returned by accept4().\n\nI tested Ulrich\u0027s patch in this thread by applying against 2.6.28-rc2,\nand it passes according to my test program.\n\n/* test_accept4.c\n\n  Copyright (C) 2008, Linux Foundation, written by Michael Kerrisk\n       \u003cmtk.manpages@gmail.com\u003e\n\n  Licensed under the GNU GPLv2 or later.\n*/\n#define _GNU_SOURCE\n#include \u003cunistd.h\u003e\n#include \u003csys/syscall.h\u003e\n#include \u003csys/socket.h\u003e\n#include \u003cnetinet/in.h\u003e\n#include \u003cstdlib.h\u003e\n#include \u003cfcntl.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003cstring.h\u003e\n\n#define PORT_NUM 33333\n\n#define die(msg) do { perror(msg); exit(EXIT_FAILURE); } while (0)\n\n/**********************************************************************/\n\n/* The following is what we need until glibc gets a wrapper for\n  accept4() */\n\n/* Flags for socket(), socketpair(), accept4() */\n#ifndef SOCK_CLOEXEC\n#define SOCK_CLOEXEC    O_CLOEXEC\n#endif\n#ifndef SOCK_NONBLOCK\n#define SOCK_NONBLOCK   O_NONBLOCK\n#endif\n\n#ifdef __x86_64__\n#define SYS_accept4 288\n#elif __i386__\n#define USE_SOCKETCALL 1\n#define SYS_ACCEPT4 18\n#else\n#error \"Sorry -- don\u0027t know the syscall # on this architecture\"\n#endif\n\nstatic int\naccept4(int fd, struct sockaddr *sockaddr, socklen_t *addrlen, int flags)\n{\n   printf(\"Calling accept4(): flags \u003d %x\", flags);\n   if (flags !\u003d 0) {\n       printf(\" (\");\n       if (flags \u0026 SOCK_CLOEXEC)\n           printf(\"SOCK_CLOEXEC\");\n       if ((flags \u0026 SOCK_CLOEXEC) \u0026\u0026 (flags \u0026 SOCK_NONBLOCK))\n           printf(\" \");\n       if (flags \u0026 SOCK_NONBLOCK)\n           printf(\"SOCK_NONBLOCK\");\n       printf(\")\");\n   }\n   printf(\"\\n\");\n\n#if USE_SOCKETCALL\n   long args[6];\n\n   args[0] \u003d fd;\n   args[1] \u003d (long) sockaddr;\n   args[2] \u003d (long) addrlen;\n   args[3] \u003d flags;\n\n   return syscall(SYS_socketcall, SYS_ACCEPT4, args);\n#else\n   return syscall(SYS_accept4, fd, sockaddr, addrlen, flags);\n#endif\n}\n\n/**********************************************************************/\n\nstatic int\ndo_test(int lfd, struct sockaddr_in *conn_addr,\n       int closeonexec_flag, int nonblock_flag)\n{\n   int connfd, acceptfd;\n   int fdf, flf, fdf_pass, flf_pass;\n   struct sockaddr_in claddr;\n   socklen_t addrlen;\n\n   printf(\"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\\n\");\n\n   connfd \u003d socket(AF_INET, SOCK_STREAM, 0);\n   if (connfd \u003d\u003d -1)\n       die(\"socket\");\n   if (connect(connfd, (struct sockaddr *) conn_addr,\n               sizeof(struct sockaddr_in)) \u003d\u003d -1)\n       die(\"connect\");\n\n   addrlen \u003d sizeof(struct sockaddr_in);\n   acceptfd \u003d accept4(lfd, (struct sockaddr *) \u0026claddr, \u0026addrlen,\n                      closeonexec_flag | nonblock_flag);\n   if (acceptfd \u003d\u003d -1) {\n       perror(\"accept4()\");\n       close(connfd);\n       return 0;\n   }\n\n   fdf \u003d fcntl(acceptfd, F_GETFD);\n   if (fdf \u003d\u003d -1)\n       die(\"fcntl:F_GETFD\");\n   fdf_pass \u003d ((fdf \u0026 FD_CLOEXEC) !\u003d 0) \u003d\u003d\n              ((closeonexec_flag \u0026 SOCK_CLOEXEC) !\u003d 0);\n   printf(\"Close-on-exec flag is %sset (%s); \",\n           (fdf \u0026 FD_CLOEXEC) ? \"\" : \"not \",\n           fdf_pass ? \"OK\" : \"failed\");\n\n   flf \u003d fcntl(acceptfd, F_GETFL);\n   if (flf \u003d\u003d -1)\n       die(\"fcntl:F_GETFD\");\n   flf_pass \u003d ((flf \u0026 O_NONBLOCK) !\u003d 0) \u003d\u003d\n              ((nonblock_flag \u0026 SOCK_NONBLOCK) !\u003d0);\n   printf(\"nonblock flag is %sset (%s)\\n\",\n           (flf \u0026 O_NONBLOCK) ? \"\" : \"not \",\n           flf_pass ? \"OK\" : \"failed\");\n\n   close(acceptfd);\n   close(connfd);\n\n   printf(\"Test result: %s\\n\", (fdf_pass \u0026\u0026 flf_pass) ? \"PASS\" : \"FAIL\");\n   return fdf_pass \u0026\u0026 flf_pass;\n}\n\nstatic int\ncreate_listening_socket(int port_num)\n{\n   struct sockaddr_in svaddr;\n   int lfd;\n   int optval;\n\n   memset(\u0026svaddr, 0, sizeof(struct sockaddr_in));\n   svaddr.sin_family \u003d AF_INET;\n   svaddr.sin_addr.s_addr \u003d htonl(INADDR_ANY);\n   svaddr.sin_port \u003d htons(port_num);\n\n   lfd \u003d socket(AF_INET, SOCK_STREAM, 0);\n   if (lfd \u003d\u003d -1)\n       die(\"socket\");\n\n   optval \u003d 1;\n   if (setsockopt(lfd, SOL_SOCKET, SO_REUSEADDR, \u0026optval,\n                  sizeof(optval)) \u003d\u003d -1)\n       die(\"setsockopt\");\n\n   if (bind(lfd, (struct sockaddr *) \u0026svaddr,\n            sizeof(struct sockaddr_in)) \u003d\u003d -1)\n       die(\"bind\");\n\n   if (listen(lfd, 5) \u003d\u003d -1)\n       die(\"listen\");\n\n   return lfd;\n}\n\nint\nmain(int argc, char *argv[])\n{\n   struct sockaddr_in conn_addr;\n   int lfd;\n   int port_num;\n   int passed;\n\n   passed \u003d 1;\n\n   port_num \u003d (argc \u003e 1) ? atoi(argv[1]) : PORT_NUM;\n\n   memset(\u0026conn_addr, 0, sizeof(struct sockaddr_in));\n   conn_addr.sin_family \u003d AF_INET;\n   conn_addr.sin_addr.s_addr \u003d htonl(INADDR_LOOPBACK);\n   conn_addr.sin_port \u003d htons(port_num);\n\n   lfd \u003d create_listening_socket(port_num);\n\n   if (!do_test(lfd, \u0026conn_addr, 0, 0))\n       passed \u003d 0;\n   if (!do_test(lfd, \u0026conn_addr, SOCK_CLOEXEC, 0))\n       passed \u003d 0;\n   if (!do_test(lfd, \u0026conn_addr, 0, SOCK_NONBLOCK))\n       passed \u003d 0;\n   if (!do_test(lfd, \u0026conn_addr, SOCK_CLOEXEC, SOCK_NONBLOCK))\n       passed \u003d 0;\n\n   close(lfd);\n\n   exit(passed ? EXIT_SUCCESS : EXIT_FAILURE);\n}\n\n[mtk.manpages@gmail.com: rewrote changelog, updated test program]\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nTested-by: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nAcked-by: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nCc: \u003clinux-api@vger.kernel.org\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6d5b43a67accf6793ed259f6534b4bd53b1e5696",
      "tree": "b22f2b7dc929b523faf63d2734d8b22b5fd4a843",
      "parents": [
        "641d2f63cfe24539e154efa2f932937934c27dde",
        "32464779a1b8c15e9aa9aa0306b2f735080df9d8"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 19 09:00:50 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 19 09:00:50 2008 +0100"
      },
      "message": "Merge branch \u0027tip/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/urgent\n"
    },
    {
      "commit": "32464779a1b8c15e9aa9aa0306b2f735080df9d8",
      "tree": "c26673645d5695f29b15a743476b76ce44048218",
      "parents": [
        "820432783190b4096499e38a4a4d7095c511913d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Nov 18 20:33:02 2008 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Nov 19 00:19:47 2008 -0500"
      },
      "message": "ftrace: fix dyn ftrace filter selection\n\nImpact: clean up and fix for dyn ftrace filter selection\n\nThe previous logic of the dynamic ftrace selection of enabling\nor disabling functions was complex and incorrect. This patch simplifies\nthe code and corrects the usage. This simplification also makes the\ncode more robust.\n\nHere is the correct logic:\n\n  Given a function that can be traced by dynamic ftrace:\n\n  If the function is not to be traced, disable it if it was enabled.\n  (this is if the function is in the set_ftrace_notrace file)\n\n  (filter is on if there exists any functions in set_ftrace_filter file)\n\n  If the filter is on, and we are enabling functions:\n    If the function is in set_ftrace_filter, enable it if it is not\n      already enabled.\n    If the function is not in set_ftrace_filter, disable it if it is not\n      already disabled.\n\n  Otherwise, if the filter is off and we are enabling function tracing:\n    Enable the function if it is not already enabled.\n\n  Otherwise, if we are disabling function tracing:\n    Disable the function if it is not already disabled.\n\nThis code now sets or clears the ENABLED flag in the record, and at the\nend it will enable the function if the flag is set, or disable the function\nif the flag is cleared.\n\nThe parameters for the function that does the above logic is also\nsimplified. Instead of passing in confusing \"new\" and \"old\" where\nthey might be swapped if the \"enabled\" flag is not set. The old logic\neven had one of the above always NULL and had to be filled in. The new\nlogic simply passes in one parameter called \"nop\". A \"call\" is calculated\nin the code, and at the end of the logic, when we know we need to either\ndisable or enable the function, we can then use the \"nop\" and \"call\"\nproperly.\n\nThis code is more robust than the previous version.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "820432783190b4096499e38a4a4d7095c511913d",
      "tree": "d8300e0853c44fbc157625a1b57f55c7162d01c9",
      "parents": [
        "f10ed36ec1118c6f9523cd7e53cb0aadb53efe9f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Nov 18 23:57:14 2008 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Nov 19 00:18:54 2008 -0500"
      },
      "message": "ftrace: make filtered functions effective on setting\n\nImpact: fix filter selection to apply when set\n\nIt can be confusing when the set_filter_functions is set (or cleared)\nand the functions being recorded by the dynamic tracer does not\nmatch.\n\nThis patch causes the code to be updated if the function tracer is\nenabled and the filter is changed.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f10ed36ec1118c6f9523cd7e53cb0aadb53efe9f",
      "tree": "d3f801ab1c8ab58642b04a0f5a51b25741261667",
      "parents": [
        "1e74f3000b86969de421ca0da08f42e7d21cbd99"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 07 22:36:02 2008 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Nov 19 00:17:45 2008 -0500"
      },
      "message": "ftrace: fix set_ftrace_filter\n\nImpact: fix of output of set_ftrace_filter\n\nThe commit \"ftrace: do not show freed records in\n             available_filter_functions\"\n\nRemoved a bit too much from the set_ftrace_filter code, where we now see\nall functions in the set_ftrace_filter file even when we set a filter.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "641d2f63cfe24539e154efa2f932937934c27dde",
      "tree": "fdd8dce64b14efecffb062480ad02bf2e57ac041",
      "parents": [
        "5177dc3f2b3220b2dcfcf35eb9e6ec53ee818231"
      ],
      "author": {
        "name": "Vegard Nossum",
        "email": "vegard.nossum@gmail.com",
        "time": "Tue Nov 18 19:22:13 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 18 21:37:15 2008 +0100"
      },
      "message": "trace: introduce missing mutex_unlock()\n\nImpact: fix tracing buffer mutex leak in case of allocation failure\n\nThis error was spotted by this semantic patch:\n\n  http://www.emn.fr/x-info/coccinelle/mut.html\n\nIt looks correct as far as I can tell. Please review.\n\nSigned-off-by: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5177dc3f2b3220b2dcfcf35eb9e6ec53ee818231",
      "tree": "29dd80a7b33426d0890aa07b5864224557c62af7",
      "parents": [
        "0bb943c7a2136716757a263f604d26309fd98042",
        "7f0f598a0069d1ab072375965a4b69137233169c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 18 21:37:07 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 18 21:37:07 2008 +0100"
      },
      "message": "Merge branch \u0027linus\u0027 into tracing/urgent\n"
    },
    {
      "commit": "7f0f598a0069d1ab072375965a4b69137233169c",
      "tree": "00cb9320e0caef179d6075b54fa611de6551e3e2",
      "parents": [
        "a6a0c4ca7edb378a8a7332501f097089cb1051c4",
        "c26156b2534c75bb3cdedf76f6ad1340971cf5bd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 18 08:07:51 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 18 08:07:51 2008 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  block: hold extra reference to bio in blk_rq_map_user_iov()\n  relay: fix cpu offline problem\n  Release old elevator on change elevator\n  block: fix boot failure with CONFIG_DEBUG_BLOCK_EXT_DEVT\u003dy and nash\n  block/md: fix md autodetection\n  block: make add_partition() return pointer to hd_struct\n  block: fix add_partition() error path\n"
    },
    {
      "commit": "a6a0c4ca7edb378a8a7332501f097089cb1051c4",
      "tree": "afc4bd95482576e7dfd0685d1cb2bed6cac65db9",
      "parents": [
        "72b51a6b4d803381f16d819df392dd1efd1c7181"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Tue Nov 18 06:56:51 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 18 08:07:36 2008 -0800"
      },
      "message": "suspend: use WARN not WARN_ON to print the message\n\nBy using WARN(), kerneloops.org can collect which component is causing\nthe delay and make statistics about that. suspend_test_finish() is\ncurrently the number 2 item but unless we can collect who\u0027s causing\nit we\u0027re not going to be able to fix the hot topic ones..\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "72b51a6b4d803381f16d819df392dd1efd1c7181",
      "tree": "7e27a03c10cb2f5e6593dd599b3c8b0bcd0f9ee9",
      "parents": [
        "8c60bfb0666952728b3be73ef9bc133d686aebba",
        "e270219f4372b58bd3eeac12bd9f7edc592b8f6b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 18 08:06:35 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 18 08:06:35 2008 -0800"
      },
      "message": "Merge branch \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  kernel/profile.c: fix section mismatch warning\n  function tracing: fix wrong pos computing when read buffer has been fulfilled\n  tracing: fix mmiotrace resizing crash\n  ring-buffer: no preempt for sched_clock()\n  ring-buffer: buffer record on/off switch\n"
    },
    {
      "commit": "8c60bfb0666952728b3be73ef9bc133d686aebba",
      "tree": "d532c12f7e414ee3ce6ed3bda912fa145e96de29",
      "parents": [
        "b6584065ee833dcec20683be7fc25da3f2268cee",
        "700018e0a77b4113172257fcdaa1c58e27a5074f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 18 08:06:21 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 18 08:06:21 2008 -0800"
      },
      "message": "Merge branch \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  cpuset: fix regression when failed to generate sched domains\n  sched, signals: fix the racy usage of -\u003esignal in account_group_xxx/run_posix_cpu_timers\n  sched: fix kernel warning on /proc/sched_debug access\n  sched: correct sched-rt-group.txt pathname in init/Kconfig\n"
    },
    {
      "commit": "0bb943c7a2136716757a263f604d26309fd98042",
      "tree": "80af655ff3272a820a9090e6fa08c9e6472f0bed",
      "parents": [
        "e270219f4372b58bd3eeac12bd9f7edc592b8f6b"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Fri Nov 14 19:05:31 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 18 16:59:58 2008 +0100"
      },
      "message": "tracing: kernel/trace/trace.c: introduce missing kfree()\n\nImpact: fix memory leak\n\nError handling code following a kzalloc should free the allocated data.\n\nThe semantic match that finds the problem is as follows:\n(http://www.emn.fr/x-info/coccinelle/)\n\n// \u003csmpl\u003e\n@r exists@\nlocal idexpression x;\nstatement S;\nexpression E;\nidentifier f,l;\nposition p1,p2;\nexpression *ptr !\u003d NULL;\n@@\n\n(\nif ((x@p1 \u003d \\(kmalloc\\|kzalloc\\|kcalloc\\)(...)) \u003d\u003d NULL) S\n|\nx@p1 \u003d \\(kmalloc\\|kzalloc\\|kcalloc\\)(...);\n...\nif (x \u003d\u003d NULL) S\n)\n\u003c... when !\u003d x\n     when !\u003d if (...) { \u003c+...x...+\u003e }\nx-\u003ef \u003d E\n...\u003e\n(\n return \\(0\\|\u003c+...x...+\u003e\\|ptr\\);\n|\n return@p2 ...;\n)\n\n@script:python@\np1 \u003c\u003c r.p1;\np2 \u003c\u003c r.p2;\n@@\n\nprint \"* file: %s kmalloc %s return %s\" % (p1[0].file,p1[0].line,p2[0].line)\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "98ba4031ab2adc8b394295e68aa4c8fe9d5060db",
      "tree": "893ac2f6e4efddf79c192e4bae512e3a3f864baa",
      "parents": [
        "68aee07f9bad2c830a898cf6d6bfc11ea24efc40"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Fri Nov 14 10:44:59 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Nov 18 15:08:56 2008 +0100"
      },
      "message": "relay: fix cpu offline problem\n\nrelay_open() will close allocated buffers when failed.\nbut if cpu offlined, some buffer will not be closed.\nthis patch fixed it.\n\nand did cleanup for relay_reset() too.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "e270219f4372b58bd3eeac12bd9f7edc592b8f6b",
      "tree": "0b7a2eafcc19d20e0fdd05b4525ea8b8684e73f5",
      "parents": [
        "5821e1b74f0d08952cb5da4bfd2d9a388d8df58e"
      ],
      "author": {
        "name": "Rakib Mullick",
        "email": "rakib.mullick@gmail.com",
        "time": "Tue Nov 18 10:15:24 2008 +0600"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 18 08:49:24 2008 +0100"
      },
      "message": "kernel/profile.c: fix section mismatch warning\n\nImpact: fix section mismatch warning in kernel/profile.c\n\nHere, profile_nop function has been called from a non-init function\ncreate_hash_tables(void). Which generetes a section mismatch warning.\nPreviously, create_hash_tables(void) was a init function. So, removing\n__init from create_hash_tables(void) requires profile_nop to be\nnon-init.\n\nThis patch makes profile_nop function inline and fixes the\nfollowing warning:\n\n WARNING: vmlinux.o(.text+0x6ebb6): Section mismatch in reference from\n the function create_hash_tables() to the function\n .init.text:profile_nop()\n The function create_hash_tables() references\n the function __init profile_nop().\n This is often because create_hash_tables lacks a __init\n annotation or the annotation of profile_nop is wrong.\n\nSigned-off-by: Rakib Mullick \u003crakib.mullick@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "700018e0a77b4113172257fcdaa1c58e27a5074f",
      "tree": "60ea1cc7682b19203e1caab15ebb2285153eeee7",
      "parents": [
        "ad133ba3dc283300e5b62b5b7211d2f39fbf6ee7"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Nov 18 14:02:03 2008 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 18 08:44:51 2008 +0100"
      },
      "message": "cpuset: fix regression when failed to generate sched domains\n\nImpact: properly rebuild sched-domains on kmalloc() failure\n\nWhen cpuset failed to generate sched domains due to kmalloc()\nfailure, the scheduler should fallback to the single partition\n\u0027fallback_doms\u0027 and rebuild sched domains, but now it only\ndestroys but not rebuilds sched domains.\n\nThe regression was introduced by:\n\n| commit dfb512ec4834116124da61d6c1ee10fd0aa32bd6\n| Author: Max Krasnyansky \u003cmaxk@qualcomm.com\u003e\n| Date:   Fri Aug 29 13:11:41 2008 -0700\n|\n|    sched: arch_reinit_sched_domains() must destroy domains to force rebuild\n\nAfter the above commit, partition_sched_domains(0, NULL, NULL) will\nonly destroy sched domains and partition_sched_domains(1, NULL, NULL)\nwill create the default sched domain.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Max Krasnyansky \u003cmaxk@qualcomm.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "65ecc14a30ad21bed9aabdfd6a2ae1a1aaaa6a00",
      "tree": "0245f08c672b54a914df9bbb54dff98ed685a3c7",
      "parents": [
        "e77a20e8ef6784586cfd66f4346af88ddb11173f"
      ],
      "author": {
        "name": "Kumar Gala",
        "email": "galak@kernel.crashing.org",
        "time": "Sat Nov 15 12:02:34 2008 -0600"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 17 13:24:35 2008 -0800"
      },
      "message": "Remove -mno-spe flags as they dont belong\n\nFor some unknown reason at Steven Rostedt added in disabling of the SPE\ninstruction generation for e500 based PPC cores in commit\n6ec562328fda585be2d7f472cfac99d3b44d362a.\n\nWe are removing it because:\n\n1. It generates e500 kernels that don\u0027t work\n2. its not the correct set of flags to do this\n3. we handle this in the arch/powerpc/Makefile already\n4. its unknown in talking to Steven why he did this\n\nSigned-off-by: Kumar Gala \u003cgalak@kernel.crashing.org\u003e\nTested-and-Acked-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ad133ba3dc283300e5b62b5b7211d2f39fbf6ee7",
      "tree": "4762492d6c564e0ac1ec47122a0d0d49b0d41e90",
      "parents": [
        "29d7b90c15035741d15421b36000509212b3e135"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Nov 17 15:39:47 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 17 16:49:35 2008 +0100"
      },
      "message": "sched, signals: fix the racy usage of -\u003esignal in account_group_xxx/run_posix_cpu_timers\n\nImpact: fix potential NULL dereference\n\nContrary to ad474caca3e2a0550b7ce0706527ad5ab389a4d4 changelog, other\nacct_group_xxx() helpers can be called after exit_notify() by timer tick.\nThanks to Roland for pointing out this. Somehow I missed this simple fact\nwhen I read the original patch, and I am afraid I confused Frank during\nthe discussion. Sorry.\n\nFortunately, these helpers work with current, we can check -\u003eexit_state\nto ensure that -\u003esignal can\u0027t go away under us.\n\nAlso, add the comment and compiler barrier to account_group_exec_runtime(),\nto make sure we load -\u003esignal only once.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e14c8bf86350f6c39186a139c5c584a6111b2f01",
      "tree": "c1e0b08fc5b8efff001aecf5e6fb803423bd1c71",
      "parents": [
        "5c06fe772da43db63b053addcd2c267f76d0be91"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Nov 17 08:22:18 2008 +1030"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 16 15:09:52 2008 -0800"
      },
      "message": "stop_machine: fix race with return value (fixes Bug #11989)\n\nBug #11989: Suspend failure on NForce4-based boards due to chanes in\nstop_machine\n\nWe should not access active.fnret outside the lock; in theory the next\nstop_machine could overwrite it.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nTested-by: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5821e1b74f0d08952cb5da4bfd2d9a388d8df58e",
      "tree": "e7bade7c500b2d4cd4d8c811a26c844c6f529366",
      "parents": [
        "ee51a1de7e3837577412be269e0100038068e691"
      ],
      "author": {
        "name": "walimis",
        "email": "walimisdev@gmail.com",
        "time": "Sat Nov 15 15:19:06 2008 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 08:32:05 2008 +0100"
      },
      "message": "function tracing: fix wrong pos computing when read buffer has been fulfilled\n\nImpact: make output of available_filter_functions complete\n\nphenomenon:\n\nThe first value of dyn_ftrace_total_info is not equal with\n`cat available_filter_functions | wc -l`, but they should be equal.\n\nroot cause:\n\nWhen printing functions with seq_printf in t_show, if the read buffer\nis just overflowed by current function record, then this function\nwon\u0027t be printed to user space through read buffer, it will\njust be dropped. So we can\u0027t see this function printing.\n\nSo, every time the last function to fill the read buffer, if overflowed,\nwill be dropped.\n\nThis also applies to set_ftrace_filter if set_ftrace_filter has\nmore bytes than read buffer.\n\nfix:\n\nThrough checking return value of seq_printf, if less than 0, we know\nthis function doesn\u0027t be printed. Then we decrease position to force\nthis function to be printed next time, in next read buffer.\n\nAnother little fix is to show correct allocating pages count.\n\nSigned-off-by: walimis \u003cwalimisdev@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "29d7b90c15035741d15421b36000509212b3e135",
      "tree": "a9978411950af9c4dbebcc82a944fef35a58f209",
      "parents": [
        "2fe401e38602e853e01376cdb670b0bc4d526a6d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 08:07:15 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 08:07:15 2008 +0100"
      },
      "message": "sched: fix kernel warning on /proc/sched_debug access\n\nLuis Henriques reported that with CONFIG_PREEMPT\u003dy + CONFIG_PREEMPT_DEBUG\u003dy +\nCONFIG_SCHED_DEBUG\u003dy + CONFIG_LATENCYTOP\u003dy enabled, the following warning\ntriggers when using latencytop:\n\n\u003e [  775.663239] BUG: using smp_processor_id() in preemptible [00000000] code: latencytop/6585\n\u003e [  775.663303] caller is native_sched_clock+0x3a/0x80\n\u003e [  775.663314] Pid: 6585, comm: latencytop Tainted: G        W 2.6.28-rc4-00355-g9c7c354 #1\n\u003e [  775.663322] Call Trace:\n\u003e [  775.663343]  [\u003cffffffff803a94e4\u003e] debug_smp_processor_id+0xe4/0xf0\n\u003e [  775.663356]  [\u003cffffffff80213f7a\u003e] native_sched_clock+0x3a/0x80\n\u003e [  775.663368]  [\u003cffffffff80213e19\u003e] sched_clock+0x9/0x10\n\u003e [  775.663381]  [\u003cffffffff8024550d\u003e] proc_sched_show_task+0x8bd/0x10e0\n\u003e [  775.663395]  [\u003cffffffff8034466e\u003e] sched_show+0x3e/0x80\n\u003e [  775.663408]  [\u003cffffffff8031039b\u003e] seq_read+0xdb/0x350\n\u003e [  775.663421]  [\u003cffffffff80368776\u003e] ? security_file_permission+0x16/0x20\n\u003e [  775.663435]  [\u003cffffffff802f4198\u003e] vfs_read+0xc8/0x170\n\u003e [  775.663447]  [\u003cffffffff802f4335\u003e] sys_read+0x55/0x90\n\u003e [  775.663460]  [\u003cffffffff8020c67a\u003e] system_call_fastpath+0x16/0x1b\n\u003e ...\n\nThis breakage was caused by me via:\n\n  7cbaef9: sched: optimize sched_clock() a bit\n\nChange the calls to cpu_clock().\n\nReported-by: Luis Henriques \u003chenrix@sapo.pt\u003e\n"
    },
    {
      "commit": "8f7b0ba1c853919b85b54774775f567f30006107",
      "tree": "1acd2b7ed5ed0de3eecfff9da5da4e779731f8a8",
      "parents": [
        "0d3b71009737511ea937ac405205fd8214b898bb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Sat Nov 15 01:15:43 2008 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 15 12:26:44 2008 -0800"
      },
      "message": "Fix inotify watch removal/umount races\n\nInotify watch removals suck violently.\n\nTo kick the watch out we need (in this order) inode-\u003einotify_mutex and\nih-\u003emutex.  That\u0027s fine if we have a hold on inode; however, for all\nother cases we need to make damn sure we don\u0027t race with umount.  We can\n*NOT* just grab a reference to a watch - inotify_unmount_inodes() will\nhappily sail past it and we\u0027ll end with reference to inode potentially\noutliving its superblock.\n\nIdeally we just want to grab an active reference to superblock if we\ncan; that will make sure we won\u0027t go into inotify_umount_inodes() until\nwe are done.  Cleanup is just deactivate_super().\n\nHowever, that leaves a messy case - what if we *are* racing with\numount() and active references to superblock can\u0027t be acquired anymore?\nWe can bump -\u003es_count, grab -\u003es_umount, which will almost certainly wait\nuntil the superblock is shut down and the watch in question is pining\nfor fjords.  That\u0027s fine, but there is a problem - we might have hit the\nwindow between -\u003es_active getting to 0 / -\u003es_count - below S_BIAS (i.e.\nthe moment when superblock is past the point of no return and is heading\nfor shutdown) and the moment when deactivate_super() acquires\n-\u003es_umount.\n\nWe could just do drop_super() yield() and retry, but that\u0027s rather\nantisocial and this stuff is luser-triggerable.  OTOH, having grabbed\n-\u003es_umount and having found that we\u0027d got there first (i.e.  that\n-\u003es_root is non-NULL) we know that we won\u0027t race with\ninotify_umount_inodes().\n\nSo we could grab a reference to watch and do the rest as above, just\nwith drop_super() instead of deactivate_super(), right? Wrong.  We had\nto drop ih-\u003emutex before we could grab -\u003es_umount.  So the watch\ncould\u0027ve been gone already.\n\nThat still can be dealt with - we need to save watch-\u003ewd, do idr_find()\nand compare its result with our pointer.  If they match, we either have\nthe damn thing still alive or we\u0027d lost not one but two races at once,\nthe watch had been killed and a new one got created with the same -\u003ewd\nat the same address.  That couldn\u0027t have happened in inotify_destroy(),\nbut inotify_rm_wd() could run into that.  Still, \"new one got created\"\nis not a problem - we have every right to kill it or leave it alone,\nwhatever\u0027s more convenient.\n\nSo we can use idr_find(...) \u003d\u003d watch \u0026\u0026 watch-\u003einode-\u003ei_sb \u003d\u003d sb as\n\"grab it and kill it\" check.  If it\u0027s been our original watch, we are\nfine, if it\u0027s a newcomer - nevermind, just pretend that we\u0027d won the\nrace and kill the fscker anyway; we are safe since we know that its\nsuperblock won\u0027t be going away.\n\nAnd yes, this is far beyond mere \"not very pretty\"; so\u0027s the entire\nconcept of inotify to start with.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8141c7f3e7aee618312fa1c15109e1219de784a7",
      "tree": "25513fc1c260af053fb9facf92df5b59bfe74c3a",
      "parents": [
        "9c7c354645535555785eb937dd46388b55e690d0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 15 10:20:36 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 15 10:20:36 2008 -0800"
      },
      "message": "Move \"exit_robust_list\" into mm_release()\n\nWe don\u0027t want to get rid of the futexes just at exit() time, we want to\ndrop them when doing an execve() too, since that gets rid of the\nprevious VM image too.\n\nDoing it at mm_release() time means that we automatically always do it\nwhen we disassociate a VM map from the task.\n\nReported-by: pageexec@freemail.hu\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Brad Spengler \u003cspender@grsecurity.net\u003e\nCc: Alex Efros \u003cpowerman@powerman.name\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ee51a1de7e3837577412be269e0100038068e691",
      "tree": "a93d6dfeec829b61d6a74b5a9c841bcfeaeeb31d",
      "parents": [
        "47e74f2ba8fbf9fb1378e2524e6cfdc2fb37f160"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 13 14:58:31 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 13 14:58:31 2008 +0100"
      },
      "message": "tracing: fix mmiotrace resizing crash\n\nPekka reported a crash when resizing the mmiotrace tracer (if only\nmmiotrace is enabled).\n\nThis happens because in that case we do not allocate the max buffer,\nbut we try to use it.\n\nMake ring_buffer_resize() idempotent against NULL buffers.\n\nReported-by: Pekka Paalanen \u003cpq@iki.fi\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3ff68a6a106c362a6811d3e51bced58e6fc87de7",
      "tree": "9a0a10ff49f7453d26afcced211307c818fd9fa9",
      "parents": [
        "f131e2436ddbac2527bb2d6297a823aae4b024f8"
      ],
      "author": {
        "name": "Mark Nelson",
        "email": "markn@au1.ibm.com",
        "time": "Thu Nov 13 21:37:41 2008 +1100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 13 11:59:48 2008 +0100"
      },
      "message": "genirq: __irq_set_trigger: change pr_warning to pr_debug\n\nCommit 0c5d1eb77a8be917b638344a22afe1398236482b (genirq: record trigger\ntype) caused powerpc platforms that had no set_type() function in their\nstruct irq_chip to spew out warnings about \"No set_type function for\nIRQ...\". This warning isn\u0027t necessarily justified though because the\ngeneric powerpc platform code calls set_irq_type() (which in turn calls\n__irq_set_trigger) with information from the device tree to establish\nthe interrupt mappings, regardless of whether the PIC can actually set\na type.\n\nA platform\u0027s irq_chip might not have a set_type function for a variety\nof reasons, for example: the platform may have the type essentially\nhard-coded, or as in the case for Cell interrupts are just messages\npast around that have no real concept of type, or the platform\ncould even have a virtual PIC as on the PS3.\n\nSigned-off-by: Mark Nelson \u003cmarkn@au1.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4ffaf869c7780bbdfc11291e5fd4b61dde662b1c",
      "tree": "bdd513a1dba0c7fc99645453aef5bc7bb7343a0e",
      "parents": [
        "65131cd52b9e7c5814298e05c3b7843f13e78d24",
        "5cbd54ef470d880fc37fbe4b21eb514806d51e0d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 12 17:22:44 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 12 17:22:44 2008 -0800"
      },
      "message": "Merge branch \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: fix init_idle()\u0027s use of sched_clock()\n  sched: fix stale value in average load per task\n"
    },
    {
      "commit": "7e036d040a28bf95255d7eb9faf0ffbba3677e99",
      "tree": "98203974c15ae4fc5aee5723b385b0f45c331ec7",
      "parents": [
        "084c304980f05833bc8a91b856af7dc7a7bb7d60"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Nov 12 13:26:57 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 12 17:17:17 2008 -0800"
      },
      "message": "kernel/kprobes.c: don\u0027t pad kretprobe_table_locks[] on uniprocessor builds\n\nWe only need the cacheline padding on SMP kernels.  Saves 6k:\n\n   text    data     bss     dec     hex filename\n   5713     388    8840   14941    3a5d kernel/kprobes.o\n   5713     388    2632    8733    221d kernel/kprobes.o\n\nAcked-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@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": "a189d0350f387786b1fb5a5d19e3a5ab0bc0cceb",
      "tree": "d6133d035e0d23a8271f12204e53338f8f343351",
      "parents": [
        "3b1b3f6e57064aa8f91c290fe51cda4c74642902"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Wed Nov 12 13:26:51 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 12 17:17:16 2008 -0800"
      },
      "message": "kprobes: disable preempt for module_text_address() and kernel_text_address()\n\n__register_kprobe() can be preempted after checking probing address but\nbefore module_text_address() or try_module_get(), and in this interval\nthe module can be unloaded.  In that case, try_module_get(probed_mod)\nwill access to invalid address, or kprobe will probe invalid address.\n\nThis patch uses preempt_disable() to protect it and uses\n__module_text_address() and __kernel_text_address().\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3b1b3f6e57064aa8f91c290fe51cda4c74642902",
      "tree": "2cf60a7bae5f184acbea4bff859be4e4132f9794",
      "parents": [
        "687446760bd008df96655cb8c5900f8e48a7118c"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Nov 12 13:26:50 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 12 17:17:16 2008 -0800"
      },
      "message": "freezer_cg: disable writing freezer.state of root cgroup\n\nWith this change, control file \u0027freezer.state\u0027 doesn\u0027t exist in root\ncgroup, making root cgroup unfreezable.\n\nI think it\u0027s reasonable to disallow freeze tasks in the root cgroup.  And\nthen we can avoid fork overhead when freezer subsystem is compiled but not\nused.\n\nAlso make writing invalid value to freezer.state returns EINVAL rather\nthan EIO.  This is more consistent with other cgroup subsystem.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: \"Serge E. Hallyn\" \u003cserue@us.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": "687446760bd008df96655cb8c5900f8e48a7118c",
      "tree": "b4834a1e88d98234cfad90a0880b54ba1cc3cc59",
      "parents": [
        "0bcb6069a6e1af5c114a2a8873ec43ada8933596"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Nov 12 13:26:49 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 12 17:17:16 2008 -0800"
      },
      "message": "freezer_cg: remove task_lock from freezer_fork()\n\nIn theory the task can be moved to another cgroup and the freezer will be\nfreed right after task_lock is dropped, so the lock results in zero\nprotection.\n\nBut in the case of freezer_fork() no lock is needed, since the task is not\nin tasklist yet so it won\u0027t be moved to another cgroup, so task-\u003ecgroups\nwon\u0027t be changed or invalidated.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: \"Serge E. Hallyn\" \u003cserue@us.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5cbd54ef470d880fc37fbe4b21eb514806d51e0d",
      "tree": "db9a73e605e0a2e7cfa13bd9697a113b5f6649eb",
      "parents": [
        "a2d477778e82a60a0b7114cefdb70aa43af28782"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 20:05:50 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 20:05:50 2008 +0100"
      },
      "message": "sched: fix init_idle()\u0027s use of sched_clock()\n\nMaciej Rutecki reported:\n\n\u003e I have this bug during suspend to disk:\n\u003e\n\u003e [  188.592151] Enabling non-boot CPUs ...\n\u003e [  188.592151] SMP alternatives: switching to SMP code\n\u003e [  188.666058] BUG: using smp_processor_id() in preemptible\n\u003e [00000000]\n\u003e code: suspend_to_disk/2934\n\u003e [  188.666064] caller is native_sched_clock+0x2b/0x80\n\nWhich, as noted by Linus, was caused by me, via:\n\n  7cbaef9c \"sched: optimize sched_clock() a bit\"\n\nMove the rq locking a bit earlier in the initialization sequence,\nthat will make the sched_clock() call in init_idle() non-preemptible.\n\nReported-by: Maciej Rutecki \u003cmaciej.rutecki@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a2d477778e82a60a0b7114cefdb70aa43af28782",
      "tree": "52fb05ee2d63765ddddcf4a2e06f310510607735",
      "parents": [
        "f21f237cf55494c3a4209de323281a3b0528da10"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Wed Nov 12 16:19:00 2008 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 12:33:50 2008 +0100"
      },
      "message": "sched: fix stale value in average load per task\n\nImpact: fix load balancer load average calculation accuracy\n\ncpu_avg_load_per_task() returns a stale value when nr_running is 0.\nIt returns an older stale (caculated when nr_running was non zero) value.\n\nThis patch returns and sets rq-\u003eavg_load_per_task to zero when nr_running\nis 0.\n\nCompile and boot tested on a x86_64 box.\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "47e74f2ba8fbf9fb1378e2524e6cfdc2fb37f160",
      "tree": "7d49bf91e5409c432b259c26fcadff0450dffe43",
      "parents": [
        "c1e7abbc7afc97367cd77c8f2895c2169a8f9c87"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Nov 12 00:01:27 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 11:23:36 2008 +0100"
      },
      "message": "ring-buffer: no preempt for sched_clock()\n\nImpact: disable preemption when calling sched_clock()\n\nThe ring_buffer_time_stamp still uses sched_clock as its counter.\nBut it is a bug to call it with preemption enabled. This requirement\nshould not be pushed to the ring_buffer_time_stamp callers, so\nthe ring_buffer_time_stamp needs to disable preemption when calling\nsched_clock.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "621a0d5207c18012cb39932f2d9830a11a6cb03d",
      "tree": "0e18c30c91620108b413197f9bc153ceb6e430ec",
      "parents": [
        "f21f237cf55494c3a4209de323281a3b0528da10"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Nov 12 09:36:35 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 09:54:40 2008 +0100"
      },
      "message": "hrtimer: clean up unused callback modes\n\nImpact: cleanup\n\ngit grep HRTIMER_CB_IRQSAFE revealed half the callback modes are actually\nunused.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c1e7abbc7afc97367cd77c8f2895c2169a8f9c87",
      "tree": "826aa8fff448bc3dcd167d3623fbcc311a768c1f",
      "parents": [
        "f21f237cf55494c3a4209de323281a3b0528da10",
        "a358324466b171e145df20bdb74fe81759906de6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 11 21:34:07 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 11 21:34:07 2008 +0100"
      },
      "message": "Merge branch \u0027devel\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/urgent\n"
    },
    {
      "commit": "a358324466b171e145df20bdb74fe81759906de6",
      "tree": "50b2b0b72ff40da6be232eb85d33a203612f3164",
      "parents": [
        "4143c5cb36331155a1823af8b3a8c761a59fed71"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Nov 11 15:01:42 2008 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Nov 11 15:02:04 2008 -0500"
      },
      "message": "ring-buffer: buffer record on/off switch\n\nImpact: enable/disable ring buffer recording API added\n\nSeveral kernel developers have requested that there be a way to stop\nrecording into the ring buffers with a simple switch that can also\nbe enabled from userspace. This patch addes a new kernel API to the\nring buffers called:\n\n tracing_on()\n tracing_off()\n\nWhen tracing_off() is called, all ring buffers will not be able to record\ninto their buffers.\n\ntracing_on() will enable the ring buffers again.\n\nThese two act like an on/off switch. That is, there is no counting of the\nnumber of times tracing_off or tracing_on has been called.\n\nA new file is added to the debugfs/tracing directory called\n\n  tracing_on\n\nThis allows for userspace applications to also flip the switch.\n\n  echo 0 \u003e debugfs/tracing/tracing_on\n\ndisables the tracing.\n\n  echo 1 \u003e /debugfs/tracing/tracing_on\n\nenables it.\n\nNote, this does not disable or enable any tracers. It only sets or clears\na flag that needs to be set in order for the ring buffers to write to\ntheir buffers. It is a global flag, and affects all ring buffers.\n\nThe buffers start out with tracing_on enabled.\n\nThere are now three flags that control recording into the buffers:\n\n tracing_on: which affects all ring buffer tracers.\n\n buffer-\u003erecord_disabled: which affects an allocated buffer, which may be set\n     if an anomaly is detected, and tracing is disabled.\n\n cpu_buffer-\u003erecord_disabled: which is set by tracing_stop() or if an\n     anomaly is detected. tracing_start can not reenable this if\n     an anomaly occurred.\n\nThe userspace debugfs/tracing/tracing_enabled is implemented with\ntracing_stop() but the user space code can not enable it if the kernel\ncalled tracing_stop().\n\nUserspace can enable the tracing_on even if the kernel disabled it.\nIt is just a switch used to stop tracing if a condition was hit.\ntracing_on is not for protecting critical areas in the kernel nor is\nit for stopping tracing if an anomaly occurred. This is because userspace\ncan reenable it at any time.\n\nSide effect: With this patch, I discovered a dead variable in ftrace.c\n  called tracing_on. This patch removes it.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "f21f237cf55494c3a4209de323281a3b0528da10",
      "tree": "40ebad408aebbc5bf4e54bd51a7c0077ad04508b",
      "parents": [
        "2f96cb57cde9957bac0991c712068d29364b2ac9",
        "5d5254f0d3b9bebc47d97e357374c0ad0c291a7d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 11 10:53:50 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 11 10:53:50 2008 -0800"
      },
      "message": "Merge branch \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  timers: handle HRTIMER_CB_IRQSAFE_UNLOCKED correctly from softirq context\n  nohz: disable tick_nohz_kick_tick() for now\n  irq: call __irq_enter() before calling the tick_idle_check\n  x86: HPET: enter hpet_interrupt_handler with interrupts disabled\n  x86: HPET: read from HPET_Tn_CMP() not HPET_T0_CMP\n  x86: HPET: convert WARN_ON to WARN_ON_ONCE\n"
    },
    {
      "commit": "2f96cb57cde9957bac0991c712068d29364b2ac9",
      "tree": "60e3f985b9e865f3a1fdda131599fa84159cc73e",
      "parents": [
        "09eb3b5b1bcab7b25e9dd57e90ee9753adf7afe2",
        "2002c69595a092518107f7e3c1294c9710bc92ae"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 11 10:52:25 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 11 10:52:25 2008 -0800"
      },
      "message": "Merge branch \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: release buddies on yield\n  fix for account_group_exec_runtime(), make sure -\u003esignal can\u0027t be freed under rq-\u003elock\n  sched: clean up debug info\n"
    },
    {
      "commit": "2002c69595a092518107f7e3c1294c9710bc92ae",
      "tree": "5935add4d4cd426b5b824474b7ec2ffea48d2951",
      "parents": [
        "ad474caca3e2a0550b7ce0706527ad5ab389a4d4"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Tue Nov 11 11:52:33 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 11 11:57:22 2008 +0100"
      },
      "message": "sched: release buddies on yield\n\nClear buddies on yield, so that the buddy rules don\u0027t schedule them\ndespite them being placed right-most.\n\nThis fixed a performance regression with yield-happy binary JVMs.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nTested-by: Lin Ming \u003cming.m.lin@intel.com\u003e\n"
    },
    {
      "commit": "5d5254f0d3b9bebc47d97e357374c0ad0c291a7d",
      "tree": "fea216db5914228fe80139f5e31621de86cc9e5d",
      "parents": [
        "ae99286b4f1be7788f2d6947c66a91dbd6351eec"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Sat Oct 25 10:22:38 2008 +0530"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Nov 11 10:46:42 2008 +0100"
      },
      "message": "timers: handle HRTIMER_CB_IRQSAFE_UNLOCKED correctly from softirq context\n\nImpact: fix incorrect locking triggered during hotplug-intense stress-tests\n\nWhile migrating the the CB_IRQSAFE_UNLOCKED timers during a cpu-offline,\nwe queue them on the cb_pending list, so that they won\u0027t go\nstale.\n\nThus, when the callbacks of the timers run from the softirq context,\nthey could run into potential deadlocks, since these callbacks\nassume that they\u0027re running with irq\u0027s disabled, thereby annoying\nlockdep!\n\nFix this by emulating hardirq context while running these callbacks from\nthe hrtimer softirq.\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\n[ INFO: inconsistent lock state ]\n2.6.27 #2\n--------------------------------\ninconsistent {in-hardirq-W} -\u003e {hardirq-on-W} usage.\nksoftirqd/0/4 [HC0[0]:SC1[1]:HE1:SE0] takes:\n (\u0026rq-\u003elock){++..}, at: [\u003cc011db84\u003e] sched_rt_period_timer+0x9e/0x1fc\n{in-hardirq-W} state was registered at:\n  [\u003cc014103c\u003e] __lock_acquire+0x549/0x121e\n  [\u003cc0107890\u003e] native_sched_clock+0x88/0x99\n  [\u003cc013aa12\u003e] clocksource_get_next+0x39/0x3f\n  [\u003cc0139abc\u003e] update_wall_time+0x616/0x7df\n  [\u003cc0141d6b\u003e] lock_acquire+0x5a/0x74\n  [\u003cc0121724\u003e] scheduler_tick+0x3a/0x18d\n  [\u003cc047ed45\u003e] _spin_lock+0x1c/0x45\n  [\u003cc0121724\u003e] scheduler_tick+0x3a/0x18d\n  [\u003cc0121724\u003e] scheduler_tick+0x3a/0x18d\n  [\u003cc012c436\u003e] update_process_times+0x3a/0x44\n  [\u003cc013c044\u003e] tick_periodic+0x63/0x6d\n  [\u003cc013c062\u003e] tick_handle_periodic+0x14/0x5e\n  [\u003cc010568c\u003e] timer_interrupt+0x44/0x4a\n  [\u003cc0150c9f\u003e] handle_IRQ_event+0x13/0x3d\n  [\u003cc0151c14\u003e] handle_level_irq+0x79/0xbd\n  [\u003cc0105634\u003e] do_IRQ+0x69/0x7d\n  [\u003cc01041e4\u003e] common_interrupt+0x28/0x30\n  [\u003cc047007b\u003e] aac_probe_one+0x1a3/0x3f3\n  [\u003cc047ec2d\u003e] _spin_unlock_irqrestore+0x36/0x39\n  [\u003cc01512b4\u003e] setup_irq+0x1be/0x1f9\n  [\u003cc065d70b\u003e] start_kernel+0x259/0x2c5\n  [\u003cffffffff\u003e] 0xffffffff\nirq event stamp: 50102\nhardirqs last  enabled at (50102): [\u003cc047ebf4\u003e] _spin_unlock_irq+0x20/0x23\nhardirqs last disabled at (50101): [\u003cc047edc2\u003e] _spin_lock_irq+0xa/0x4b\nsoftirqs last  enabled at (50088): [\u003cc0128ba6\u003e] do_softirq+0x37/0x4d\nsoftirqs last disabled at (50099): [\u003cc0128ba6\u003e] do_softirq+0x37/0x4d\n\nother info that might help us debug this:\nno locks held by ksoftirqd/0/4.\n\nstack backtrace:\nPid: 4, comm: ksoftirqd/0 Not tainted 2.6.27 #2\n [\u003cc013f6cb\u003e] print_usage_bug+0x13e/0x147\n [\u003cc013fef5\u003e] mark_lock+0x493/0x797\n [\u003cc01410b1\u003e] __lock_acquire+0x5be/0x121e\n [\u003cc0141d6b\u003e] lock_acquire+0x5a/0x74\n [\u003cc011db84\u003e] sched_rt_period_timer+0x9e/0x1fc\n [\u003cc047ed45\u003e] _spin_lock+0x1c/0x45\n [\u003cc011db84\u003e] sched_rt_period_timer+0x9e/0x1fc\n [\u003cc011db84\u003e] sched_rt_period_timer+0x9e/0x1fc\n [\u003cc01210fd\u003e] finish_task_switch+0x41/0xbd\n [\u003cc0107890\u003e] native_sched_clock+0x88/0x99\n [\u003cc011dae6\u003e] sched_rt_period_timer+0x0/0x1fc\n [\u003cc0136dda\u003e] run_hrtimer_pending+0x54/0xe5\n [\u003cc011dae6\u003e] sched_rt_period_timer+0x0/0x1fc\n [\u003cc0128afb\u003e] __do_softirq+0x7b/0xef\n [\u003cc0128ba6\u003e] do_softirq+0x37/0x4d\n [\u003cc0128c12\u003e] ksoftirqd+0x56/0xc5\n [\u003cc0128bbc\u003e] ksoftirqd+0x0/0xc5\n [\u003cc0134649\u003e] kthread+0x38/0x5d\n [\u003cc0134611\u003e] kthread+0x0/0x5d\n [\u003cc0104477\u003e] kernel_thread_helper+0x7/0x10\n \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "45b86a96f17cb2900f291129b0e67287400e45b2",
      "tree": "f7968bf36e3947ee42251f7eebc6ea5f24aca202",
      "parents": [
        "072ba49838b42c873c496d72c91bb237914cf3b6",
        "4143c5cb36331155a1823af8b3a8c761a59fed71"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 11 09:16:20 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 11 09:16:20 2008 +0100"
      },
      "message": "Merge branch \u0027devel\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/urgent\n"
    },
    {
      "commit": "ad474caca3e2a0550b7ce0706527ad5ab389a4d4",
      "tree": "6d4e5cbcee3a85230317a33d66655ece0c873f5c",
      "parents": [
        "5ac5c4d604bf894ef672a7971d03fefdc7ea7e49"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Nov 10 15:39:30 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 11 08:01:43 2008 +0100"
      },
      "message": "fix for account_group_exec_runtime(), make sure -\u003esignal can\u0027t be freed under rq-\u003elock\n\nImpact: fix hang/crash on ia64 under high load\n\nThis is ugly, but the simplest patch by far.\n\nUnlike other similar routines, account_group_exec_runtime() could be\ncalled \"implicitly\" from within scheduler after exit_notify(). This\nmeans we can race with the parent doing release_task(), we can\u0027t just\ncheck -\u003esignal !\u003d NULL.\n\nChange __exit_signal() to do spin_unlock_wait(\u0026task_rq(tsk)-\u003elock)\nbefore __cleanup_signal() to make sure -\u003esignal can\u0027t be freed under\ntask_rq(tsk)-\u003elock. Note that task_rq_unlock_wait() doesn\u0027t care\nabout the case when tsk changes cpu/rq under us, this should be OK.\n\nThanks to Ingo who nacked my previous buggy patch.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nReported-by: Doug Chapman \u003cdoug.chapman@hp.com\u003e\n"
    },
    {
      "commit": "4143c5cb36331155a1823af8b3a8c761a59fed71",
      "tree": "14ba50cd2a0acb5f18d7c657f08eaa586827fe27",
      "parents": [
        "bf5e6519b85b3853f2d0bb4f17a4e2eaeffeb574"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Nov 10 21:46:01 2008 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Nov 10 21:47:37 2008 -0500"
      },
      "message": "ring-buffer: prevent infinite looping on time stamping\n\nImpact: removal of unnecessary looping\n\nThe lockless part of the ring buffer allows for reentry into the code\nfrom interrupts. A timestamp is taken, a test is preformed and if it\ndetects that an interrupt occurred that did tracing, it tries again.\n\nThe problem arises if the timestamp code itself causes a trace.\nThe detection will detect this and loop again. The difference between\nthis and an interrupt doing tracing, is that this will fail every time,\nand cause an infinite loop.\n\nCurrently, we test if the loop happens 1000 times, and if so, it will\nproduce a warning and disable the ring buffer.\n\nThe problem with this approach is that it makes it difficult to perform\nsome types of tracing (tracing the timestamp code itself).\n\nEach trace entry has a delta timestamp from the previous entry.\nIf a trace entry is reserved but and interrupt occurs and traces before\nthe previous entry is commited, the delta timestamp for that entry will\nbe zero. This actually makes sense in terms of tracing, because the\ninterrupt entry happened before the preempted entry was commited, so\none may consider the two happening at the same time. The order is\nstill preserved in the buffer.\n\nWith this idea, instead of trying to get a new timestamp if an interrupt\nmade it in between the timestamp and the test, the entry could simply\nmake the delta zero and continue. This will prevent interrupts or\ntracers in the timer code from causing the above loop.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "bf5e6519b85b3853f2d0bb4f17a4e2eaeffeb574",
      "tree": "d5560a28100aed24e3bb09e68c17a0ea1fbde07b",
      "parents": [
        "3ad4f597058301c97f362e500a32f63f5c950a45"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Nov 10 21:46:00 2008 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Nov 10 21:47:35 2008 -0500"
      },
      "message": "ftrace: disable tracing on resize\n\nImpact: fix for bug on resize\n\nThis patch addresses the bug found here:\n\n http://bugzilla.kernel.org/show_bug.cgi?id\u003d11996\n\nWhen ftrace converted to the new unified trace buffer, the resizing of\nthe buffer was not protected as much as it was originally. If tracing\nis performed while the resize occurs, then the buffer can be corrupted.\n\nThis patch disables all ftrace buffer modifications before a resize\ntakes place.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "ae99286b4f1be7788f2d6947c66a91dbd6351eec",
      "tree": "a403ffaeaad1cb38afa79e2cca40ecc00ea694ab",
      "parents": [
        "ee5f80a993539490a07477ff2526bf62c503fbb4"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Nov 10 13:20:23 2008 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@apollo.(none)",
        "time": "Mon Nov 10 22:39:27 2008 +0100"
      },
      "message": "nohz: disable tick_nohz_kick_tick() for now\n\nImpact: nohz powersavings and wakeup regression\n\ncommit fb02fbc14d17837b4b7b02dbb36142c16a7bf208 (NOHZ: restart tick\ndevice from irq_enter()) causes a serious wakeup regression.\n\nWhile the patch is correct it does not take into account that spurious\nwakeups happen on x86. A fix for this issue is available, but we just\nrevert to the .27 behaviour and let long running softirqs screw\nthemself.\n\nDisable it for now.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "ee5f80a993539490a07477ff2526bf62c503fbb4",
      "tree": "4c23450fb35f9dfdb491506a3864647aae7e8e78",
      "parents": [
        "5ceb1a04187553e08c6ab60d30cee7c454ee139a"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Nov 07 11:06:00 2008 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@apollo.(none)",
        "time": "Mon Nov 10 22:36:39 2008 +0100"
      },
      "message": "irq: call __irq_enter() before calling the tick_idle_check\n\nImpact: avoid spurious ksoftirqd wakeups\n\nThe tick idle check which is called from irq_enter() was run before\nthe call to __irq_enter() which did not set the in_interrupt() bits in\npreempt_count. That way the raise of a softirq woke up softirqd for\nnothing as the softirq was handled on return from interrupt.\n\nCall __irq_enter() before calling into the tick idle check code.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5ac5c4d604bf894ef672a7971d03fefdc7ea7e49",
      "tree": "ee7b71de46c0c71dec9e9ebb0efd2e66ce1c7a6d",
      "parents": [
        "f7160c7573615ec82c691e294cf80d920b5d588d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Nov 10 10:46:32 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 10 10:51:51 2008 +0100"
      },
      "message": "sched: clean up debug info\n\nImpact: clean up and fix debug info printout\n\nWhile looking over the sched_debug code I noticed that we printed the rq\nschedstats for every cfs_rq, ammend this.\n\nAlso change nr_spead_over into an int, and fix a little buglet in\nmin_vruntime printing.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f131e2436ddbac2527bb2d6297a823aae4b024f8",
      "tree": "c200eb82c6e9924f19261e4fc2a7281a80346900",
      "parents": [
        "6c2e94033df5ca11149e52dd179b8dde3172e9bf"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Nov 08 09:57:40 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 09 22:26:45 2008 +0100"
      },
      "message": "irq: fix typo\n\nImpact: build fix\n\nfix build failure on UP.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "612e3684c1b7752d2890510e4f90115fd1eb2afb",
      "tree": "77d8b8de0a4ae3805cb38bfe60ed2b107fc87cad",
      "parents": [
        "f6d87f4bd259cf33e092cd1a8fde05f291c47af1"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Nov 07 13:58:46 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 09 22:23:54 2008 +0100"
      },
      "message": "genirq: fix the affinity setting in setup_irq\n\nThe affinity setting in setup irq is called before the NO_BALANCING\nflag is checked and might therefore override affinity settings from the\ncalling code with the default setting.\n\nMove the NO_BALANCING flag check before the call to the affinity\nsetting.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f6d87f4bd259cf33e092cd1a8fde05f291c47af1",
      "tree": "abaa66af3c80fb18a20004b8d97261c680551792",
      "parents": [
        "8b805ef617cf0e02f6d18b891f8deb6246421b01"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Nov 07 13:18:30 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 09 22:23:49 2008 +0100"
      },
      "message": "genirq: keep affinities set from userspace across free/request_irq()\n\nImpact: preserve user-modified affinities on interrupts\n\nKumar Galak noticed that commit\n18404756765c713a0be4eb1082920c04822ce588 (genirq: Expose default irq\naffinity mask (take 3))\n\noverrides an already set affinity setting across a free /\nrequest_irq(). Happens e.g. with ifdown/ifup of a network device.\n\nChange the logic to mark the affinities as set and keep them\nintact. This also fixes the unlocked access to irq_desc in\nirq_select_affinity() when called from irq_affinity_proc_write()\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cb56d98e2a7530615899597551db685d68a2e852",
      "tree": "458a2dc64385f35799c55971ea7b3fe1a2ec218f",
      "parents": [
        "6209344f5a3795d34b7f2c0061f49802283b6bdd",
        "984f2f377fdfd098f5ae58d09ee04d5e29e6112b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 09 12:20:56 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 09 12:20:56 2008 -0800"
      },
      "message": "Merge branch \u0027cpus4096\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027cpus4096\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  cpumask: introduce new API, without changing anything, v3\n  cpumask: new API, v2\n  cpumask: introduce new API, without changing anything\n"
    },
    {
      "commit": "ca3273f9646694e0419cfb9d6c12deb1c9aff27c",
      "tree": "53e0b28edddd5c29691c9ccc8a7f3c8c11ee9c83",
      "parents": [
        "f29c9b1ccb52904ee442a933cf3dee628f9f4e62"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Nov 07 14:47:21 2008 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 07 08:29:58 2008 +0100"
      },
      "message": "sched: fix memory leak in a failure path\n\nImpact: fix rare memory leak in the sched-domains manual reconfiguration code\n\nIn the failure path, rd is not attached to a sched domain,\nso it causes a leak.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f29c9b1ccb52904ee442a933cf3dee628f9f4e62",
      "tree": "836b4383a89a5aac64e50afd752a48b4bb0c167a",
      "parents": [
        "4bab0ea1d42dd1927af9df6fbf0003fc00617c50"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Nov 06 09:45:16 2008 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 07 08:29:57 2008 +0100"
      },
      "message": "sched: fix a bug in sched domain degenerate\n\nImpact: re-add incorrectly eliminated sched domain layers\n\n(1) on i386 with SCHED_SMT and SCHED_MC enabled\n\t# mount -t cgroup -o cpuset xxx /mnt\n\t# echo 0 \u003e /mnt/cpuset.sched_load_balance\n\t# mkdir /mnt/0\n\t# echo 0 \u003e /mnt/0/cpuset.cpus\n\t# dmesg\n\tCPU0 attaching sched-domain:\n\t domain 0: span 0 level CPU\n\t  groups: 0\n\n(2) on i386 with SCHED_MC enabled but SCHED_SMT disabled\n\t# same with (1)\n\t# dmesg\n\tCPU0 attaching NULL sched-domain.\n\nThe bug is that some sched domains may be skipped unintentionally when\ndegenerating (optimizing) sched domains.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e252f4db187ef02d06c8551069d944d327b8bb9a",
      "tree": "0e704cc34161fc839ef203fbf71106de52e19a7d",
      "parents": [
        "2e93960c4d712096902c16fe5511fc91502c2527",
        "7838c15b8dd18e78a523513749e5b54bda07b0cb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:53:47 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:53:47 2008 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  Block: use round_jiffies_up()\n  Add round_jiffies_up and related routines\n  block: fix __blkdev_get() for removable devices\n  generic-ipi: fix the smp_mb() placement\n  blk: move blk_delete_timer call in end_that_request_last\n  block: add timer on blkdev_dequeue_request() not elv_next_request()\n  bio: define __BIOVEC_PHYS_MERGEABLE\n  block: remove unused ll_new_mergeable()\n"
    },
    {
      "commit": "067ab19923673e3d8c982d877bedb9d65c976c22",
      "tree": "b11c20e4b5a6671355924b656f9348d4ece5523f",
      "parents": [
        "7597bc94d6f3bdccb086ac7f2ad91292fdaee2a4",
        "9fcd18c9e63e325dbd2b4c726623f760788d5aa8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:45:40 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:45:40 2008 -0800"
      },
      "message": "Merge branch \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: re-tune balancing\n  sched: fix buddies for group scheduling\n  sched: backward looking buddy\n  sched: fix fair preempt check\n  sched: cleanup fair task selection\n"
    },
    {
      "commit": "24eb089950ce44603b30a3145a2c8520e2b55bb1",
      "tree": "3cccd3e15589c693c8c4e6484a938d2343ef1abc",
      "parents": [
        "b41ad14c30acf023d09ac064096a4cf41248ce46"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Nov 06 12:53:32 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:19 2008 -0800"
      },
      "message": "cgroups: fix invalid cgrp-\u003edentry before cgroup has been completely removed\n\nThis fixes an oops when reading /proc/sched_debug.\n\nA cgroup won\u0027t be removed completely until finishing cgroup_diput(), so we\nshouldn\u0027t invalidate cgrp-\u003edentry in cgroup_rmdir().  Otherwise, when a\ngroup is being removed while cgroup_path() gets called, we may trigger\nNULL dereference BUG.\n\nThe bug can be reproduced:\n\n # cat test.sh\n #!/bin/sh\n mount -t cgroup -o cpu xxx /mnt\n for (( ; ; ))\n {\n\tmkdir /mnt/sub\n\trmdir /mnt/sub\n }\n # ./test.sh \u0026\n # cat /proc/sched_debug\n\nBUG: unable to handle kernel NULL pointer dereference at 00000038\nIP: [\u003cc045a47f\u003e] cgroup_path+0x39/0x90\n...\nCall Trace:\n [\u003cc0420344\u003e] ? print_cfs_rq+0x6e/0x75d\n [\u003cc0421160\u003e] ? sched_debug_show+0x72d/0xc1e\n...\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.26.x, 2.6.27.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2d3854a37e8b767a51aba38ed6d22817b0631e33",
      "tree": "3b55cc93720b2e525460216b196ed20298ae985b",
      "parents": [
        "75fa67706cce5272bcfc51ed646f2da21f3bdb6e"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Nov 05 13:39:10 2008 +1100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 06 09:05:33 2008 +0100"
      },
      "message": "cpumask: introduce new API, without changing anything\n\nImpact: introduce new APIs\n\nWe want to deprecate cpumasks on the stack, as we are headed for\ngynormous numbers of CPUs.  Eventually, we want to head towards an\nundefined \u0027struct cpumask\u0027 so they can never be declared on stack.\n\n1) New cpumask functions which take pointers instead of copies.\n   (cpus_* -\u003e cpumask_*)\n\n2) Several new helpers to reduce requirements for temporary cpumasks\n   (cpumask_first_and, cpumask_next_and, cpumask_any_and)\n\n3) Helpers for declaring cpumasks on or offstack for large NR_CPUS\n   (cpumask_var_t, alloc_cpumask_var and free_cpumask_var)\n\n4) \u0027struct cpumask\u0027 for explicitness and to mark new-style code.\n\n5) Make iterator functions stop at nr_cpu_ids (a runtime constant),\n   not NR_CPUS for time efficiency and for smaller dynamic allocations\n   in future.\n\n6) cpumask_copy() so we can allocate less than a full cpumask eventually\n   (for alloc_cpumask_var), and so we can eliminate the \u0027struct cpumask\u0027\n   definition eventually.\n\n7) work_on_cpu() helper for doing task on a CPU, rather than saving old\n   cpumask for current thread and manipulating it.\n\n8) smp_call_function_many() which is smp_call_function_mask() except\n   taking a cpumask pointer.\n\nNote that this patch simply introduces the new functions and leaves\nthe obsolescent ones in place.  This is to simplify the transition\npatches.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9c133c469d38043d5aadaa03f2fb840d88d1cf4f",
      "tree": "c9af63f0c25efc7454fc3f46b362c80056977341",
      "parents": [
        "89f97496e81d2112b5e41416fe3020688c443818"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Thu Nov 06 08:42:48 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Nov 06 08:42:48 2008 +0100"
      },
      "message": "Add round_jiffies_up and related routines\n\nThis patch (as1158b) adds round_jiffies_up() and friends.  These\nroutines work like the analogous round_jiffies() functions, except\nthat they will never round down.\n\nThe new routines will be useful for timeouts where we don\u0027t care\nexactly when the timer expires, provided it doesn\u0027t expire too soon.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "561920a0d2bb6d63343e83acfd784c0a77bd28d1",
      "tree": "7b87d9d867296d4a14e9b287129fcfd0b2cd1b47",
      "parents": [
        "e78042e5b83936b1d12a4b5bbb492bdd88ad76c6"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Thu Oct 30 18:28:41 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Nov 06 08:41:56 2008 +0100"
      },
      "message": "generic-ipi: fix the smp_mb() placement\n\nsmp_mb() is needed (to make the memory operations visible globally) before\nsending the ipi on the sender and the receiver (on Alpha atleast) needs\nsmp_read_barrier_depends() in the handler before reading the call_single_queue\nlist in a lock-free fashion.\n\nOn x86, x2apic mode register accesses for sending IPI\u0027s don\u0027t have serializing\nsemantics. So the need for smp_mb() before sending the IPI becomes more\ncritical in x2apic mode.\n\nRemove the unnecessary smp_mb() in csd_flag_wait(), as the presence of that\nsmp_mb() doesn\u0027t mean anything on the sender, when the ipi receiver is not\ndoing any thing special (like memory fence) after clearing the CSD_FLAG_WAIT.\n\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "02479099c286894644f8e96c6bbb535ab64662fd",
      "tree": "df25bc51ddb31a44c91b672311b532de626fadcb",
      "parents": [
        "4793241be408b3926ee00c704d7da3b3faf3a05f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Nov 04 21:25:10 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 05 10:30:15 2008 +0100"
      },
      "message": "sched: fix buddies for group scheduling\n\nImpact: scheduling order fix for group scheduling\n\nFor each level in the hierarchy, set the buddy to point to the right entity.\nTherefore, when we do the hierarchical schedule, we have a fair chance of\nending up where we meant to.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4793241be408b3926ee00c704d7da3b3faf3a05f",
      "tree": "d74144510d5258e5e941a8499538c3a0cdc868a7",
      "parents": [
        "d95f98d0691d3aba5e35850011946a08c9b36428"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Nov 04 21:25:09 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 05 10:30:14 2008 +0100"
      },
      "message": "sched: backward looking buddy\n\nImpact: improve/change/fix wakeup-buddy scheduling\n\nCurrently we only have a forward looking buddy, that is, we prefer to\nschedule to the task we last woke up, under the presumption that its\ngoing to consume the data we just produced, and therefore will have\ncache hot benefits.\n\nThis allows co-waking producer/consumer task pairs to run ahead of the\npack for a little while, keeping their cache warm. Without this, we\nwould interleave all pairs, utterly trashing the cache.\n\nThis patch introduces a backward looking buddy, that is, suppose that\nin the above scenario, the consumer preempts the producer before it\ncan go to sleep, we will therefore miss the wakeup from consumer to\nproducer (its already running, after all), breaking the cycle and\nreverting to the cache-trashing interleaved schedule pattern.\n\nThe backward buddy will try to schedule back to the task that woke us\nup in case the forward buddy is not available, under the assumption\nthat the last task will be the one with the most cache hot task around\nbarring current.\n\nThis will basically allow a task to continue after it got preempted.\n\nIn order to avoid starvation, we allow either buddy to get wakeup_gran\nahead of the pack.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d95f98d0691d3aba5e35850011946a08c9b36428",
      "tree": "51cef12b6ad712379b63b04bd5e16292e0bbe8f0",
      "parents": [
        "f4b6755fb37595da3630d1d6fc130ea6888cd48f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Nov 04 21:25:08 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 05 10:30:13 2008 +0100"
      },
      "message": "sched: fix fair preempt check\n\nImpact: fix cross-class preemption\n\nInter-class wakeup preemptions should go on class order.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f4b6755fb37595da3630d1d6fc130ea6888cd48f",
      "tree": "04501dab4a1573b5b6bc6932db08262806c2c0e2",
      "parents": [
        "75fa67706cce5272bcfc51ed646f2da21f3bdb6e"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Nov 04 21:25:07 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 05 10:30:13 2008 +0100"
      },
      "message": "sched: cleanup fair task selection\n\nImpact: cleanup\n\nClean up task selection\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "072ba49838b42c873c496d72c91bb237914cf3b6",
      "tree": "305ede989155e1d213255ead9101331bfd09f1cb",
      "parents": [
        "42ec632e7b0185d3776aa5d23380cbdc963151f2"
      ],
      "author": {
        "name": "Eric Anholt",
        "email": "eric@anholt.net",
        "time": "Sun Oct 26 15:26:57 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 05 10:22:42 2008 +0100"
      },
      "message": "ftrace: fix breakage in bin_fmt results\n\nIn 777e208d40d0953efc6fb4ab58590da3f7d8f02d we changed from outputting\nfield-\u003ecpu (a char) to iter-\u003ecpu (unsigned int), increasing the resulting\nstructure size by 3 bytes.\n\nSigned-off-by: Eric Anholt \u003ceric@anholt.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ],
  "next": "818e3dd30a4ff34fff6d90e87ae59c73f6a53691"
}
