)]}'
{
  "log": [
    {
      "commit": "72eb6a791459c87a0340318840bb3bd9252b627b",
      "tree": "3bfb8ad99f9c7e511f37f72d57b56a2cea06d753",
      "parents": [
        "23d69b09b78c4876e134f104a3814c30747c53f1",
        "55ee4ef30241a62b700f79517e6d5ef2ddbefa67"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 17:02:58 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 17:02:58 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\n* \u0027for-2.6.38\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu: (30 commits)\n  gameport: use this_cpu_read instead of lookup\n  x86: udelay: Use this_cpu_read to avoid address calculation\n  x86: Use this_cpu_inc_return for nmi counter\n  x86: Replace uses of current_cpu_data with this_cpu ops\n  x86: Use this_cpu_ops to optimize code\n  vmstat: User per cpu atomics to avoid interrupt disable / enable\n  irq_work: Use per cpu atomics instead of regular atomics\n  cpuops: Use cmpxchg for xchg to avoid lock semantics\n  x86: this_cpu_cmpxchg and this_cpu_xchg operations\n  percpu: Generic this_cpu_cmpxchg() and this_cpu_xchg support\n  percpu,x86: relocate this_cpu_add_return() and friends\n  connector: Use this_cpu operations\n  xen: Use this_cpu_inc_return\n  taskstats: Use this_cpu_ops\n  random: Use this_cpu_inc_return\n  fs: Use this_cpu_inc_return in buffer.c\n  highmem: Use this_cpu_xx_return() operations\n  vmstat: Use this_cpu_inc_return for vm statistics\n  x86: Support for this_cpu_add, sub, dec, inc_return\n  percpu: Generic support for this_cpu_add, sub, dec, inc_return\n  ...\n\nFixed up conflicts: in arch/x86/kernel/{apic/nmi.c, apic/x2apic_uv_x.c, process.c}\nas per Tejun.\n"
    },
    {
      "commit": "abb359450f20c32ae03039d8736f12b1d561caf5",
      "tree": "6e8723885feb66a138f19f0ff31615dc13a8d859",
      "parents": [
        "cb600d2f83c854ec3d6660063e4466431999489b",
        "4e3dbdb1392a83bd21a6ff8f6bc785495058d37c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 12:30:19 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 12:30:19 2011 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1436 commits)\n  cassini: Use local-mac-address prom property for Cassini MAC address\n  net: remove the duplicate #ifdef __KERNEL__\n  net: bridge: check the length of skb after nf_bridge_maybe_copy_header()\n  netconsole: clarify stopping message\n  netconsole: don\u0027t announce stopping if nothing happened\n  cnic: Fix the type field in SPQ messages\n  netfilter: fix export secctx error handling\n  netfilter: fix the race when initializing nf_ct_expect_hash_rnd\n  ipv4: IP defragmentation must be ECN aware\n  net: r6040: Return proper error for r6040_init_one\n  dcb: use after free in dcb_flushapp()\n  dcb: unlock on error in dcbnl_ieee_get()\n  net: ixp4xx_eth: Return proper error for eth_init_one\n  include/linux/if_ether.h: Add #define ETH_P_LINK_CTL for HPNA and wlan local tunnel\n  net: add POLLPRI to sock_def_readable()\n  af_unix: Avoid socket-\u003esk NULL OOPS in stream connect security hooks.\n  net_sched: pfifo_head_drop problem\n  mac80211: remove stray extern\n  mac80211: implement off-channel TX using hw r-o-c offload\n  mac80211: implement hardware offload for remain-on-channel\n  ...\n"
    },
    {
      "commit": "dda5f0a372873bca5f0b1d1866d7784dffd8b675",
      "tree": "1f745951b51ef9dcd127ca3c65ecb1d2ce4967c2",
      "parents": [
        "65b2074f84be2287e020839e93b4cdaaf60eb37c",
        "88606e80da0e8d862a42ee19e5bb60b01b940ea7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 10:42:43 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 10:42:43 2011 -0800"
      },
      "message": "Merge branch \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  MAINTAINERS: Update timer related entries\n  timers: Use this_cpu_read\n  timerqueue: Make timerqueue_getnext() static inline\n  hrtimer: fix timerqueue conversion flub\n  hrtimers: Convert hrtimers to use timerlist infrastructure\n  timers: Fixup allmodconfig build issue\n  timers: Rename timerlist infrastructure to timerqueue\n  timers: Introduce timerlist infrastructure.\n  hrtimer: Remove stale comment on curr_timer\n  timer: Warn when del_timer_sync() is called in hardirq context\n  timer: Del_timer_sync() can be used in softirq context\n  timer: Make try_to_del_timer_sync() the same on SMP and UP\n  posix-timers: Annotate lock_timer()\n  timer: Permit statically-declared work with deferrable timers\n  time: Use ARRAY_SIZE macro in timecompare.c\n  timer: Initialize the field slack of timer_list\n  timer_list: Remove alignment padding on 64 bit when CONFIG_TIMER_STATS\n  time: Compensate for rounding on odd-frequency clocksources\n\nFix up trivial conflict in MAINTAINERS\n"
    },
    {
      "commit": "17f7f4d9fcce8f1b75b5f735569309dee7665968",
      "tree": "14d7e49ca0053a0fcab3c33b5023bf3f90c5c08a",
      "parents": [
        "041110a439e21cd40709ead4ffbfa8034619ad77",
        "d7c1255a3a21e98bdc64df8ccf005a174d7e6289"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 26 22:37:05 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 26 22:37:05 2010 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tnet/ipv4/fib_frontend.c\n"
    },
    {
      "commit": "4a7863cc2eb5f9804f1c4e9156619a801cd7f14f",
      "tree": "5bcc9f40715aa7c210f8f708a3138dccc84e1ed6",
      "parents": [
        "9fb67204d7a00a6444bc121f221527034613d338"
      ],
      "author": {
        "name": "Don Zickus",
        "email": "dzickus@redhat.com",
        "time": "Wed Dec 22 14:00:03 2010 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 22 22:15:32 2010 +0100"
      },
      "message": "x86, nmi_watchdog: Remove ARCH_HAS_NMI_WATCHDOG and rely on CONFIG_HARDLOCKUP_DETECTOR\n\nThe x86 arch has shifted its use of the nmi_watchdog from a\nlocal implementation to the global one provide by\nkernel/watchdog.c.  This shift has caused a whole bunch of\ncompile problems under different config options.  I attempt to\nsimplify things with the patch below.\n\nIn order to simplify things, I had to come to terms with the\nmeaning of two terms ARCH_HAS_NMI_WATCHDOG and\nCONFIG_HARDLOCKUP_DETECTOR.  Basically they mean the same thing,\nthe former on a local level and the latter on a global level.\n\nWith the old x86 nmi watchdog gone, there is no need to rely on\ndefining the ARCH_HAS_NMI_WATCHDOG variable because it doesn\u0027t\nmake sense any more.  x86 will now use the global\nimplementation.\n\nThe changes below do a few things.  First it changes the few\nplaces that relied on ARCH_HAS_NMI_WATCHDOG to use\nCONFIG_X86_LOCAL_APIC (the former was an alias for the latter\nanyway, so nothing unusual here).  Those pieces of code were\nrelying more on local apic functionality the nmi watchdog\nfunctionality, so the change should make sense.\n\nSecond, I removed the x86 implementation of\ntouch_nmi_watchdog().  It isn\u0027t need now, instead x86 will rely\non kernel/watchdog.c\u0027s implementation.\n\nThird, I removed the #define ARCH_HAS_NMI_WATCHDOG itself from\nx86.  And tweaked the include/linux/nmi.h file to tell users to\nlook for an externally defined touch_nmi_watchdog in the case of\nARCH_HAS_NMI_WATCHDOG _or_ CONFIG_HARDLOCKUP_DETECTOR. This\nchanges removes some of the ugliness in that file.\n\nFinally, I added a Kconfig dependency for\nCONFIG_HARDLOCKUP_DETECTOR that said you can\u0027t have\nARCH_HAS_NMI_WATCHDOG _and_ CONFIG_HARDLOCKUP_DETECTOR.  You can\nonly have one nmi_watchdog.\n\nTested with\nARCH\u003di386: allnoconfig, defconfig, allyesconfig, (various broken\nconfigs) ARCH\u003dx86_64: allnoconfig, defconfig, allyesconfig,\n(various broken configs)\n\nHopefully, after this patch I won\u0027t get any more compile broken\nemails. :-)\n\nv3:\n  changed a couple of \u0027linux/nmi.h\u0027 -\u003e \u0027asm/nmi.h\u0027 to pick-up correct function\n  prototypes when CONFIG_HARDLOCKUP_DETECTOR is not set.\n\nSigned-off-by: Don Zickus \u003cdzickus@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: fweisbec@gmail.com\nLKML-Reference: \u003c1293044403-14117-1-git-send-email-dzickus@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "819a72af8d6653daa48334f24ce0a935ccdd33c7",
      "tree": "d834c9c7c66821d08ec965aab04d0c9ded263085",
      "parents": [
        "e72df0b847adf064e64bcbd5141f0031524e723e"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux.com",
        "time": "Mon Dec 06 11:16:19 2010 -0600"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Dec 17 15:07:18 2010 +0100"
      },
      "message": "percpucounter: Optimize __percpu_counter_add a bit through the use of this_cpu() options.\n\nThe this_cpu_* options can be used to optimize __percpu_counter_add a bit. Avoids\nsome address arithmetic and saves 12 bytes.\n\nBefore:\n\n\n00000000000001d3 \u003c__percpu_counter_add\u003e:\n 1d3:\t55                   \tpush   %rbp\n 1d4:\t48 89 e5             \tmov    %rsp,%rbp\n 1d7:\t41 55                \tpush   %r13\n 1d9:\t41 54                \tpush   %r12\n 1db:\t53                   \tpush   %rbx\n 1dc:\t48 89 fb             \tmov    %rdi,%rbx\n 1df:\t48 83 ec 08          \tsub    $0x8,%rsp\n 1e3:\t4c 8b 67 30          \tmov    0x30(%rdi),%r12\n 1e7:\t65 4c 03 24 25 00 00 \tadd    %gs:0x0,%r12\n 1ee:\t00 00\n 1f0:\t4d 63 2c 24          \tmovslq (%r12),%r13\n 1f4:\t48 63 c2             \tmovslq %edx,%rax\n 1f7:\t49 01 f5             \tadd    %rsi,%r13\n 1fa:\t49 39 c5             \tcmp    %rax,%r13\n 1fd:\t7d 0a                \tjge    209 \u003c__percpu_counter_add+0x36\u003e\n 1ff:\tf7 da                \tneg    %edx\n 201:\t48 63 d2             \tmovslq %edx,%rdx\n 204:\t49 39 d5             \tcmp    %rdx,%r13\n 207:\t7f 1e                \tjg     227 \u003c__percpu_counter_add+0x54\u003e\n 209:\t48 89 df             \tmov    %rbx,%rdi\n 20c:\te8 00 00 00 00       \tcallq  211 \u003c__percpu_counter_add+0x3e\u003e\n 211:\t4c 01 6b 18          \tadd    %r13,0x18(%rbx)\n 215:\t48 89 df             \tmov    %rbx,%rdi\n 218:\t41 c7 04 24 00 00 00 \tmovl   $0x0,(%r12)\n 21f:\t00\n 220:\te8 00 00 00 00       \tcallq  225 \u003c__percpu_counter_add+0x52\u003e\n 225:\teb 04                \tjmp    22b \u003c__percpu_counter_add+0x58\u003e\n 227:\t45 89 2c 24          \tmov    %r13d,(%r12)\n 22b:\t5b                   \tpop    %rbx\n 22c:\t5b                   \tpop    %rbx\n 22d:\t41 5c                \tpop    %r12\n 22f:\t41 5d                \tpop    %r13\n 231:\tc9                   \tleaveq\n 232:\tc3                   \tretq\n\n\nAfter:\n\n00000000000001d3 \u003c__percpu_counter_add\u003e:\n 1d3:\t55                   \tpush   %rbp\n 1d4:\t48 63 ca             \tmovslq %edx,%rcx\n 1d7:\t48 89 e5             \tmov    %rsp,%rbp\n 1da:\t41 54                \tpush   %r12\n 1dc:\t53                   \tpush   %rbx\n 1dd:\t48 89 fb             \tmov    %rdi,%rbx\n 1e0:\t48 8b 47 30          \tmov    0x30(%rdi),%rax\n 1e4:\t65 44 8b 20          \tmov    %gs:(%rax),%r12d\n 1e8:\t4d 63 e4             \tmovslq %r12d,%r12\n 1eb:\t49 01 f4             \tadd    %rsi,%r12\n 1ee:\t49 39 cc             \tcmp    %rcx,%r12\n 1f1:\t7d 0a                \tjge    1fd \u003c__percpu_counter_add+0x2a\u003e\n 1f3:\tf7 da                \tneg    %edx\n 1f5:\t48 63 d2             \tmovslq %edx,%rdx\n 1f8:\t49 39 d4             \tcmp    %rdx,%r12\n 1fb:\t7f 21                \tjg     21e \u003c__percpu_counter_add+0x4b\u003e\n 1fd:\t48 89 df             \tmov    %rbx,%rdi\n 200:\te8 00 00 00 00       \tcallq  205 \u003c__percpu_counter_add+0x32\u003e\n 205:\t4c 01 63 18          \tadd    %r12,0x18(%rbx)\n 209:\t48 8b 43 30          \tmov    0x30(%rbx),%rax\n 20d:\t48 89 df             \tmov    %rbx,%rdi\n 210:\t65 c7 00 00 00 00 00 \tmovl   $0x0,%gs:(%rax)\n 217:\te8 00 00 00 00       \tcallq  21c \u003c__percpu_counter_add+0x49\u003e\n 21c:\teb 04                \tjmp    222 \u003c__percpu_counter_add+0x4f\u003e\n 21e:\t65 44 89 20          \tmov    %r12d,%gs:(%rax)\n 222:\t5b                   \tpop    %rbx\n 223:\t41 5c                \tpop    %r12\n 225:\tc9                   \tleaveq\n 226:\tc3                   \tretq\n\nReviewed-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nReviewed-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nAcked-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "1d212aa96e1b63459486f729af9a3fa38768b801",
      "tree": "e91e74db57a5bb7884b4681cdb788d405ec8f10f",
      "parents": [
        "8c4877a4128e7931077b024a891a4b284d8756a3",
        "b7613370db5ba66ad81e41cd3a5417fde4d5e03c"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 13 15:20:45 2010 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 13 15:20:45 2010 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem\n"
    },
    {
      "commit": "45f74264e18449cf3c93cccaf098ee6e9524ab78",
      "tree": "d5208559825ea479dce08df7658f0590aabea43b",
      "parents": [
        "b007c389d3e09b823eccda1503390fa2a9adca0d"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Dec 11 12:34:34 2010 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Dec 11 12:34:34 2010 +0100"
      },
      "message": "timerqueue: Make timerqueue_getnext() static inline\n\nNo point in calling a function just to dereference a pointer.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "9bb99b147018945366c763b3d4d7008927dc8557",
      "tree": "4a0f34124883a36fc4030ac91582eb797fbcc138",
      "parents": [
        "1f5a24794a54588ea3a9efd521be31d826e0b9d7"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Dec 06 13:32:12 2010 -0800"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Fri Dec 10 11:54:02 2010 -0800"
      },
      "message": "timers: Fixup allmodconfig build issue\n\nAdds missed EXPORT_SYMBOL lines that cause the following build\nfailures with allmodconfig:\nERROR: \"timerqueue_add\" [drivers/rtc/rtc-core.ko] undefined!\nERROR: \"timerqueue_getnext\" [drivers/rtc/rtc-core.ko] undefined!\nERROR: \"timerqueue_del\" [drivers/rtc/rtc-core.ko] undefined!\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nReported-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "1f5a24794a54588ea3a9efd521be31d826e0b9d7",
      "tree": "58dd33af6093cd3a0fed59a12ed41d6c7d8083ba",
      "parents": [
        "87de5ac782761a3ebf806e434e8c9cc205a87274"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Dec 09 12:02:18 2010 -0800"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Fri Dec 10 11:52:17 2010 -0800"
      },
      "message": "timers: Rename timerlist infrastructure to timerqueue\n\nThomas pointed out a namespace collision between the new timerlist\ninfrastructure I introduced and the existing timer_list.c\n\nSo to avoid confusion, I\u0027ve renamed the timerlist infrastructure\nto timerqueue.\n\nReported-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "af5568843594fb71055debe36e521fa8072fcecc",
      "tree": "4f35966cb4e1018b05c87d7a10c337d888949e22",
      "parents": [
        "5dcc03fe29537edd7819f5b121bf3d779693f37b"
      ],
      "author": {
        "name": "Bruno Randolf",
        "email": "br1@einfach.org",
        "time": "Thu Dec 02 19:50:37 2010 +0900"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Mon Dec 06 15:58:43 2010 -0500"
      },
      "message": "lib: Improve EWMA efficiency by using bitshifts\n\nUsing bitshifts instead of division and multiplication should improve\nperformance. That requires weight and factor to be powers of two, but i think\nthis is something we can live with.\n\nThanks to Peter Zijlstra for the improved formula!\n\nSigned-off-by: Bruno Randolf \u003cbr1@einfach.org\u003e\n\n--\n\nv2:\tuse log2.h functions\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "87de5ac782761a3ebf806e434e8c9cc205a87274",
      "tree": "8186969d00da5d0daea37fcb92538bbc72c8f086",
      "parents": [
        "5e4f083f78d03e9f8d2e327daccde16976f9bb00"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Sep 20 17:42:46 2010 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Dec 02 16:41:39 2010 -0800"
      },
      "message": "timers: Introduce timerlist infrastructure.\n\nThe timerlist infrastructure is a thin layer over the rbtree\ncode that implements a simple list of timers sorted by an\nexpires value, and a getnext function that provides a pointer\nto the earliest timer.\n\nThis infrastructure allows drivers and other kernel infrastructure\nto easily implement timers without duplicating code.\n\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nLKML Reference: \u003c1290136329-18291-2-git-send-email-john.stultz@linaro.org\u003e\nReviewed-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: Richard Cochran \u003crichardcochran@gmail.com\u003e\n"
    },
    {
      "commit": "bcb38ceb225f5d5b2198a2755277cd441ed1e82b",
      "tree": "2a436b318c56d058bd8f8d24eb1ec85c7268a9ed",
      "parents": [
        "8f1b1a509658bee2397ddb9937cbfa1b71cdca17"
      ],
      "author": {
        "name": "Dave Airlie",
        "email": "airlied@redhat.com",
        "time": "Tue Nov 30 09:15:46 2010 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 29 15:18:28 2010 -0800"
      },
      "message": "Revert \"debug_locks: set oops_in_progress if we will log messages.\"\n\nThis reverts commit e0fdace10e75dac67d906213b780ff1b1a4cc360.\n\nOn-list discussion seems to suggest that the robustness fixes for printk\nmake this unnecessary and DaveM has also agreed in person at Kernel Summit\nand on list.\n\nThe main problem with this code is once we hit a lockdep splat we always\nkeep oops_in_progress set, the console layer uses oops_in_progress with KMS\nto decide when it should be showing the oops and not showing X, so it causes\nproblems around suspend/resume time when a userspace resume can cause a console\nswitch away from X, only if oops_in_progress is set (which is what we want\nif an oops actually is in progress, but not because we had a lockdep splat\n2 days prior).\n\nCc: David S Miller \u003cdavem@davemloft.net\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Dave Airlie \u003cairlied@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "51cce8a590c4696d62bfacc63378d1036084cef7",
      "tree": "dc24485bdff37ca6a83c69e93ffdbe5c5807b59d",
      "parents": [
        "2fe66ec242d3f76e3b0101f36419e7e5405bcff3",
        "4f8559383c41262b50dc758e2e310f257ce6a14d"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 24 16:49:20 2010 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 24 16:49:20 2010 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem\n"
    },
    {
      "commit": "c5485a7e7569ab32eea240c850198519e2a765ef",
      "tree": "928a8556deaec0811d1b83102b33365aab28a270",
      "parents": [
        "50a9432daeece6fc1309bef1dc0a7b8fde8204cb"
      ],
      "author": {
        "name": "Bruno Randolf",
        "email": "br1@einfach.org",
        "time": "Tue Nov 16 10:58:37 2010 +0900"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Nov 18 14:21:52 2010 -0500"
      },
      "message": "lib: Add generic exponentially weighted moving average (EWMA) function\n\nThis adds generic functions for calculating Exponentially Weighted Moving\nAverages (EWMA). This implementation makes use of a structure which keeps the\nEWMA parameters and a scaled up internal representation to reduce rounding\nerrors.\n\nThe original idea for this implementation came from the rt2x00 driver\n(rt2x00link.c). I would like to use it in several places in the mac80211 and\nath5k code and I hope it can be useful in many other places in the kernel code.\n\nSigned-off-by: Bruno Randolf \u003cbr1@einfach.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "3654654f7aa79a37dde130afb7409c55b11807e7",
      "tree": "4e65c0d211a6cc748509b7f3b2da7c45b05d3266",
      "parents": [
        "9d82ca98f71fd686ef2f3017c5e3e6a4871b6e46"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Tue Nov 16 09:52:32 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 16 09:52:32 2010 -0800"
      },
      "message": "netlink: let nlmsg and nla functions take pointer-to-const args\n\nThe changed functions do not modify the NL messages and/or attributes\nat all. They should use const (similar to strchr), so that callers\nwhich have a const nlmsg/nlattr around can make use of them without\ncasting.\n\nWhile at it, constify a data array.\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@medozas.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "27d20fddc8af539464fc3ba499d6a830054c3bd6",
      "tree": "23514cfe88f90150a8635c47586a8a378fb905e3",
      "parents": [
        "eaf06b241b091357e72b76863ba16e89610d31bd"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Thu Nov 11 14:05:19 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 12 07:55:32 2010 -0800"
      },
      "message": "radix-tree: fix RCU bug\n\nSalman Qazi describes the following radix-tree bug:\n\nIn the following case, we get can get a deadlock:\n\n0.  The radix tree contains two items, one has the index 0.\n1.  The reader (in this case find_get_pages) takes the rcu_read_lock.\n2.  The reader acquires slot(s) for item(s) including the index 0 item.\n3.  The non-zero index item is deleted, and as a consequence the other item is\n    moved to the root of the tree. The place where it used to be is queued for\n    deletion after the readers finish.\n3b. The zero item is deleted, removing it from the direct slot, it remains in\n    the rcu-delayed indirect node.\n4.  The reader looks at the index 0 slot, and finds that the page has 0 ref\n    count\n5.  The reader looks at it again, hoping that the item will either be freed or\n    the ref count will increase. This never happens, as the slot it is looking\n    at will never be updated. Also, this slot can never be reclaimed because\n    the reader is holding rcu_read_lock and is in an infinite loop.\n\nThe fix is to re-use the same \"indirect\" pointer case that requires a slot\nlookup retry into a general \"retry the lookup\" bit.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nReported-by: Salman Qazi \u003csqazi@google.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e3e1288e86a07cdeb0aee5860a2dff111c6eff79",
      "tree": "cd22f8051a456c9d2b95698b6fe402776a67469b",
      "parents": [
        "9ae6d039224def926656206725ae6e89d1331417",
        "964dc256bb91e990277010a3f6dc66daa130be8b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 19:04:36 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 19:04:36 2010 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx: (48 commits)\n  DMAENGINE: move COH901318 to arch_initcall\n  dma: imx-dma: fix signedness bug\n  dma/timberdale: simplify conditional\n  ste_dma40: remove channel_type\n  ste_dma40: remove enum for endianess\n  ste_dma40: remove TIM_FOR_LINK option\n  ste_dma40: move mode_opt to separate config\n  ste_dma40: move channel mode to a separate field\n  ste_dma40: move priority to separate field\n  ste_dma40: add variable to indicate valid dma_cfg\n  async_tx: make async_tx channel switching opt-in\n  move async raid6 test to lib/Kconfig.debug\n  dmaengine: Add Freescale i.MX1/21/27 DMA driver\n  intel_mid_dma: change the slave interface\n  intel_mid_dma: fix the WARN_ONs\n  intel_mid_dma: Add sg list support to DMA driver\n  intel_mid_dma: Allow DMAC2 to share interrupt\n  intel_mid_dma: Allow IRQ sharing\n  intel_mid_dma: Add runtime PM support\n  DMAENGINE: define a dummy filter function for ste_dma40\n  ...\n"
    },
    {
      "commit": "56083ab17e0075e538270823c374b59cc97e73b9",
      "tree": "5c29be7c976d1c96a8abd3280d5efb75b73e4c96",
      "parents": [
        "ee2f154a598e96df2ebb01648a7699373bc085c7"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue Oct 26 14:19:08 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 17:40:56 2010 -0700"
      },
      "message": "docbook: add idr/ida to kernel-api docbook\n\nAdd idr/ida to kernel-api docbook.\nFix typos and kernel-doc notation.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Naohiro Aota \u003cnaota@elisp.net\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e404f91ed2180dfecbab15dd4d39c543353385fb",
      "tree": "c256e29b1c738d5e5b5478f19b369b1fd90bd1e2",
      "parents": [
        "18a043f9413277523cf5011e594caa1747db4948",
        "e18105c128734b1671739ad4d85e216ebec28c61"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 17:25:38 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 17:25:38 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:\n  arch/tile: convert a BUG_ON to BUILD_BUG_ON\n  arch/tile: make ptrace() work properly for TILE-Gx COMPAT mode\n  arch/tile: support new info op generated by compiler\n  arch/tile: minor whitespace/naming changes for string support files\n  arch/tile: enable single-step support for TILE-Gx\n  arch/tile: parameterize system PLs to support KVM port\n  arch/tile: add Tilera\u0027s \u003carch/sim.h\u003e header as an open-source header\n  arch/tile: Bomb C99 comments to C89 comments in tile\u0027s \u003carch/sim_def.h\u003e\n  arch/tile: prevent corrupt top frame from causing backtracer runaway\n  arch/tile: various top-level Makefile cleanups\n  arch/tile: change lower bound on syscall error return to -4095\n  arch/tile: properly export __mb_incoherent for modules\n  arch/tile: provide a definition of MAP_STACK\n  kmemleak: add TILE to the list of supported architectures.\n  char: hvc: check for error case\n  arch/tile: Add a warning if we try to allocate too much vmalloc memory.\n  arch/tile: update some comments to clarify register usage.\n  arch/tile: use better \"punctuation\" for VMSPLIT_3_5G and friends\n  arch/tile: Use \u003casm-generic/syscalls.h\u003e\n  tile: replace some BUG_ON checks with BUILD_BUG_ON checks\n"
    },
    {
      "commit": "658716d19f8f155c67d4677ba68034b8e492dfbe",
      "tree": "8743b9a16606a63dc33f93c580367baf36692454",
      "parents": [
        "5d051decfc27cdf33fbbd2bfca958d0d2c903569"
      ],
      "author": {
        "name": "Brian Behlendorf",
        "email": "behlendorf1@llnl.gov",
        "time": "Tue Oct 26 14:23:10 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:19 2010 -0700"
      },
      "message": "div64_u64(): improve precision on 32bit platforms\n\nThe current implementation of div64_u64 for 32bit systems returns an\napproximately correct result when the divisor exceeds 32bits.  Since doing\n64bit division using 32bit hardware is a long since solved problem we just\nuse one of the existing proven methods.\n\nAdditionally, add a div64_s64 function to correctly handle doing signed\n64bit division.\n\nAddresses https://bugzilla.redhat.com/show_bug.cgi?id\u003d616105\n\nSigned-off-by: Brian Behlendorf \u003cbehlendorf1@llnl.gov\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Ben Woodard \u003cbwoodard@llnl.gov\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: Mark Grondona \u003cmgrondona@llnl.gov\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5d051decfc27cdf33fbbd2bfca958d0d2c903569",
      "tree": "4f6579fdf86218d5214bf76e20e0534ea9a4c5c9",
      "parents": [
        "ea00c30b5b31baa91be29bee966204eccc15e9d3"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue Oct 26 14:23:09 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:19 2010 -0700"
      },
      "message": "lib/parser: cleanup match_number()\n\nUse new variable \u0027len\u0027 to make code more readable.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ea00c30b5b31baa91be29bee966204eccc15e9d3",
      "tree": "de5ad33475f3234048cc07d4676d963b8b4f314e",
      "parents": [
        "041b78f232bb87b2de8ca3fed50384bc7dc9c2de"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux.com",
        "time": "Tue Oct 26 14:23:09 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:19 2010 -0700"
      },
      "message": "percpu_counter: use this_cpu_ptr() instead of per_cpu_ptr()\n\nthis_cpu_ptr() avoids an array lookup and can use the percpu offset of the\nlocal cpu directly.\n\nSigned-off-by: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Tejun Heo \u003ctj@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": "041b78f232bb87b2de8ca3fed50384bc7dc9c2de",
      "tree": "ca76ca89b76360f9fbc5987519d6cf0c8c53cdda",
      "parents": [
        "014afa943d44f0df8e65bc4bd071c67772277d93"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Oct 26 14:23:08 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:19 2010 -0700"
      },
      "message": "lib/list_sort: test: check element addresses\n\nImprove \u0027lib_sort()\u0027 test and check that:\n o \u0027cmp()\u0027 is called only for elements which were present in the original list,\n   i.e., the \u0027a\u0027 and \u0027b\u0027 parameters are valid\n o the resulted (sorted) list consists onlly of the original elements\n o intdoruce \"poison\" fields to make sure data around \u0027struc list_head\u0027 field\n   are not corrupted.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nCc: Don Mullis \u003cdon.mullis@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "014afa943d44f0df8e65bc4bd071c67772277d93",
      "tree": "46c77d478f852c80a8c902a203d93bd6f0914cf1",
      "parents": [
        "f3dc0e384248ea6fda0987f909007fa9ab5fb51a"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Oct 26 14:23:08 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:19 2010 -0700"
      },
      "message": "lib/list_sort: test: unify test messages\n\nThis patch unifies \u0027list_sort_test()\u0027 messages a bit and makes sure all of\nthem start with the \"list_sort_test:\" prefix to make it obvious for users\nwhere the messages come from.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nCc: Don Mullis \u003cdon.mullis@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f3dc0e384248ea6fda0987f909007fa9ab5fb51a",
      "tree": "1c834baf780e16a9e47d1cacd41498dbb361483a",
      "parents": [
        "eeee9ebb54b76a33a13d2c926ffb018a4aea410f"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Oct 26 14:23:07 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:19 2010 -0700"
      },
      "message": "lib/list_sort: test: improve errors handling\n\nThe \u0027lib_sort()\u0027 test does not free memory if it fails, and it makes the\nkernel panic if it cannot allocate memory.  This patch fixes the problem.\n\nThis patch also changes several small things:\n o use \u0027list_add()\u0027 helper instead of adding manually\n o introduce temporary \u0027el1\u0027 variable to avoid ugly and unreadalbe\n   \"if\" statement\n o make \u0027head\u0027 to be stack variable instead of \u0027kmalloc()\u0027ed, which\n   simplifies code a bit\n\nOverall, this patch is of clean-up type.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nCc: Don Mullis \u003cdon.mullis@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "eeee9ebb54b76a33a13d2c926ffb018a4aea410f",
      "tree": "96e40d9c6690878008d6d4f1ca672fc6578d6d2d",
      "parents": [
        "bb2ab10fa693110cffa7087ffe2749d6e9a27d5f"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Oct 26 14:23:06 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:19 2010 -0700"
      },
      "message": "lib/list_sort: test: use generic random32\n\nInstead of using own pseudo-random generator, use generic linux\n\u0027random32()\u0027 function.  Presumably, this should improve test coverage.\n\nAt the same time, do the following changes:\n  o Use shorter macro name for test list length\n  o Do not use strange \u0027l_h\u0027 name for \u0027struct list_head\u0027 element,\n    use \u0027list\u0027, because it is traditional name and thus, makes the\n    code more obvious and readable.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nCc: Don Mullis \u003cdon.mullis@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bb2ab10fa693110cffa7087ffe2749d6e9a27d5f",
      "tree": "f45c76ec0bdae972fc8a1bb2cf04bca31c02c88c",
      "parents": [
        "6d411e6c01608cefb7b9ea6712110538a1432f9f"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Oct 26 14:23:06 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:18 2010 -0700"
      },
      "message": "lib/list_sort: test: use more reasonable printk levels\n\nI do not see any reason to use KERN_WARN for normal messages and\nKERN_EMERG for error messages in the lib_sort testing routine.  Let\u0027s use\nmore reasonable KERN_NORM and KERN_ERR levels.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nCc: Don Mullis \u003cdon.mullis@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6d411e6c01608cefb7b9ea6712110538a1432f9f",
      "tree": "5466fa9f8cd1ee9cdd1f5da01ae0ea14fe8437b7",
      "parents": [
        "e2852ae825dba5ebc159788720baec1a28a57125"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Oct 26 14:23:05 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:18 2010 -0700"
      },
      "message": "lib/Kconfig.debug: add list_sort debugging switch\n\nWhile hunting a non-existing bug in \u0027list_sort()\u0027, I\u0027ve improved the\n\u0027list_sort_test()\u0027 function which tests the \u0027list_sort()\u0027 library call.\nAlthough at the end I found a bug in my code, but not in \u0027list_sort()\u0027, I\nthink my clean-ups and improvements are worth merging because they make\nthe test function better.\n\nThis patch:\n\nMake the self-tests selectable via Kconfig rather than by manual enabling\nof DEBUG_LIST_SORT.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nCc: Don Mullis \u003cdon.mullis@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e2852ae825dba5ebc159788720baec1a28a57125",
      "tree": "9d7ed7731505ca02a0f35e8003ebe1cceefe7ecb",
      "parents": [
        "066a9be6c0124edc9527088231f03c6236be375d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Oct 26 14:23:05 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:18 2010 -0700"
      },
      "message": "percpu_counter: add debugobj support\n\nAll percpu counters are linked to a global list on initialization and\nremoved from it on destruction.  The list is walked during CPU up/down.\nIf a percpu counter is freed without being properly destroyed, the system\nwill oops only on the next CPU up/down making it pretty nasty to track\ndown.  This patch adds debugobj support for percpu counters so that such\nproblems can be found easily.\n\nAs percpu counters don\u0027t make sense on stack and can\u0027t be statically\ninitialized, debugobj support is pretty simple.  It\u0027s initialized and\nactivated on counter initialization, and deactivatd and destroyed on\ncounter destruction.  With this patch applied, the bug fixed by commit\n602586a83b719df0fbd94196a1359ed35aeb2df3 (shmem: put_super must\npercpu_counter_destroy) triggers the following warning on tmpfs unmount\nand the system won\u0027t oops on the next cpu up/down operation.\n\n ------------[ cut here ]------------\n WARNING: at lib/debugobjects.c:259 debug_print_object+0x5c/0x70()\n Hardware name: Bochs\n ODEBUG: free active (active state 0) object type: percpu_counter\n Modules linked in:\n Pid: 3999, comm: umount Not tainted 2.6.36-rc2-work+ #5\n Call Trace:\n  [\u003cffffffff81083f7f\u003e] warn_slowpath_common+0x7f/0xc0\n  [\u003cffffffff81084076\u003e] warn_slowpath_fmt+0x46/0x50\n  [\u003cffffffff813b45cc\u003e] debug_print_object+0x5c/0x70\n  [\u003cffffffff813b50e5\u003e] debug_check_no_obj_freed+0x125/0x210\n  [\u003cffffffff811577d3\u003e] kfree+0xb3/0x2f0\n  [\u003cffffffff81132edd\u003e] shmem_put_super+0x1d/0x30\n  [\u003cffffffff81162e96\u003e] generic_shutdown_super+0x56/0xe0\n  [\u003cffffffff81162f86\u003e] kill_anon_super+0x16/0x60\n  [\u003cffffffff81162ff7\u003e] kill_litter_super+0x27/0x30\n  [\u003cffffffff81163295\u003e] deactivate_locked_super+0x45/0x60\n  [\u003cffffffff81163cfa\u003e] deactivate_super+0x4a/0x70\n  [\u003cffffffff8117d446\u003e] mntput_no_expire+0x86/0xe0\n  [\u003cffffffff8117df7f\u003e] sys_umount+0x6f/0x360\n  [\u003cffffffff8103f01b\u003e] system_call_fastpath+0x16/0x1b\n ---[ end trace cce2a341ba3611a7 ]---\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Thomas Gleixner \u003ctglxlinutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "066a9be6c0124edc9527088231f03c6236be375d",
      "tree": "49350239a1505bb08ed67a19ad2a15466f7b7526",
      "parents": [
        "66f1991bc2357436498ac990302b6f5bf403d7ef"
      ],
      "author": {
        "name": "Naohiro Aota",
        "email": "naota@elisp.net",
        "time": "Tue Oct 26 14:23:03 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:18 2010 -0700"
      },
      "message": "idr: fix idr_pre_get() locking description\n\nDespite the idr_pre_get() kernel-doc, there are some cases where you can\ncall idr_pre_get() from within locked regions.  Add a description for such\ncases.\n\nSee also: http://lkml.org/lkml/2010/9/16/462\n\n[akpm@linux-foundation.org: cleanups, grammatical fixes]\nSigned-off-by: Naohiro Aota \u003cnaota@elisp.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "66f1991bc2357436498ac990302b6f5bf403d7ef",
      "tree": "1b98628c3863b23f81f9475d7c29f096206512c6",
      "parents": [
        "1fa7e5473cba543b02a396ced9e407f614bb117c"
      ],
      "author": {
        "name": "Andy Shevchenko",
        "email": "andy.shevchenko@gmail.com",
        "time": "Tue Oct 26 14:23:03 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:18 2010 -0700"
      },
      "message": "lib/bitmap.c: use hex_to_bin()\n\nSigned-off-by: Andy Shevchenko \u003candy.shevchenko@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b903c0b8899b46829a9b80ba55b61079b35940ec",
      "tree": "c5fd68065bf1fe9d89c08d979fccfea4b78ba4f4",
      "parents": [
        "5e0579812834ab7fa072db4a15ebdff68d62e2e7"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Tue Oct 26 14:22:50 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:16 2010 -0700"
      },
      "message": "lib: fix scnprintf() if @size is \u003d\u003d 0\n\nscnprintf() should return 0 if @size is \u003d\u003d 0. Update the comment for it,\nas @size is unsigned.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5e0579812834ab7fa072db4a15ebdff68d62e2e7",
      "tree": "5bd1869f615609a3dc47a867d322cb4dbca0ca03",
      "parents": [
        "77006a0a828249dd69341f960043ee41e7487aa0"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Oct 26 14:22:50 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:16 2010 -0700"
      },
      "message": "vsprintf.c: use default pointer field size for \"(null)\" strings\n\nIt might be nicer to align the output.\n\nFor instance, ACPI messages sometimes have \"(null)\" pointers.\n\n$ dmesg | grep \"(null)\"  -A 1 -B 1\n[    0.198733] ACPI: Dynamic OEM Table Load:\n[    0.198745] ACPI: SSDT (null) 00239 (v02  PmRef  Cpu0Ist 00003000 INTL 20051117)\n[    0.199294] ACPI: SSDT 7f596e10 001C7 (v02  PmRef  Cpu0Cst 00003001 INTL 20051117)\n[    0.200708] ACPI: Dynamic OEM Table Load:\n[    0.200721] ACPI: SSDT (null) 001C7 (v02  PmRef  Cpu0Cst 00003001 INTL 20051117)\n[    0.201950] ACPI: SSDT 7f597f10 000D0 (v02  PmRef  Cpu1Ist 00003000 INTL 20051117)\n[    0.203386] ACPI: Dynamic OEM Table Load:\n[    0.203398] ACPI: SSDT (null) 000D0 (v02  PmRef  Cpu1Ist 00003000 INTL 20051117)\n[    0.203871] ACPI: SSDT 7f595f10 00083 (v02  PmRef  Cpu1Cst 00003000 INTL 20051117)\n[    0.205301] ACPI: Dynamic OEM Table Load:\n[    0.205315] ACPI: SSDT (null) 00083 (v02  PmRef  Cpu1Cst 00003000 INTL 20051117)\n\n[akpm@linux-foundation.org: add code comment]\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8474b591faf3bb0a1e08a60d21d6baac498f15e4",
      "tree": "20ef171bed75108535151479a6f656a9fc4a51db",
      "parents": [
        "52c5171214ff3327961d0ce0db7e8d2ce55004fd"
      ],
      "author": {
        "name": "Masanori ITOH",
        "email": "itoumsn@nttdata.co.jp",
        "time": "Tue Oct 26 14:21:20 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:04 2010 -0700"
      },
      "message": "percpu: fix list_head init bug in __percpu_counter_init()\n\nWARNING: at lib/list_debug.c:26 __list_add+0x3f/0x81()\nHardware name: Express5800/B120a [N8400-085]\nlist_add corruption. next-\u003eprev should be prev (ffffffff81a7ea00), but was dead000000200200. (next\u003dffff88080b872d58).\nModules linked in: aoe ipt_MASQUERADE iptable_nat nf_nat autofs4 sunrpc bridge 8021q garp stp llc ipv6 cpufreq_ondemand acpi_cpufreq freq_table dm_round_robin dm_multipath kvm_intel kvm uinput lpfc scsi_transport_fc igb ioatdma scsi_tgt i2c_i801 i2c_core dca iTCO_wdt iTCO_vendor_support pcspkr shpchp megaraid_sas [last unloaded: aoe]\nPid: 54, comm: events/3 Tainted: G        W  2.6.34-vanilla1 #1\nCall Trace:\n[\u003cffffffff8104bd77\u003e] warn_slowpath_common+0x7c/0x94\n[\u003cffffffff8104bde6\u003e] warn_slowpath_fmt+0x41/0x43\n[\u003cffffffff8120fd2e\u003e] __list_add+0x3f/0x81\n[\u003cffffffff81212a12\u003e] __percpu_counter_init+0x59/0x6b\n[\u003cffffffff810d8499\u003e] bdi_init+0x118/0x17e\n[\u003cffffffff811f2c50\u003e] blk_alloc_queue_node+0x79/0x143\n[\u003cffffffff811f2d2b\u003e] blk_alloc_queue+0x11/0x13\n[\u003cffffffffa02a931d\u003e] aoeblk_gdalloc+0x8e/0x1c9 [aoe]\n[\u003cffffffffa02aa655\u003e] aoecmd_sleepwork+0x25/0xa8 [aoe]\n[\u003cffffffff8106186c\u003e] worker_thread+0x1a9/0x237\n[\u003cffffffffa02aa630\u003e] ? aoecmd_sleepwork+0x0/0xa8 [aoe]\n[\u003cffffffff81065827\u003e] ? autoremove_wake_function+0x0/0x39\n[\u003cffffffff810616c3\u003e] ? worker_thread+0x0/0x237\n[\u003cffffffff810653ad\u003e] kthread+0x7f/0x87\n[\u003cffffffff8100aa24\u003e] kernel_thread_helper+0x4/0x10\n[\u003cffffffff8106532e\u003e] ? kthread+0x0/0x87\n[\u003cffffffff8100aa20\u003e] ? kernel_thread_helper+0x0/0x10\n\nIt\u0027s because there is no initialization code for a list_head contained in\nthe struct backing_dev_info under CONFIG_HOTPLUG_CPU, and the bug comes up\nwhen block device drivers calling blk_alloc_queue() are used.  In case of\nme, I got them by using aoe.\n\nSigned-off-by: Masanori Itoh \u003citoumsn@nttdata.co.jp\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "229aebb873e29726b91e076161649cf45154b0bf",
      "tree": "acc02a3702215bce8d914f4c8cc3d7a1382b1c67",
      "parents": [
        "8de547e1824437f3c6af180d3ed2162fa4b3f389",
        "50a23e6eec6f20d55a3a920e47adb455bff6046e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 24 13:41:39 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 24 13:41:39 2010 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)\n  Update broken web addresses in arch directory.\n  Update broken web addresses in the kernel.\n  Revert \"drivers/usb: Remove unnecessary return\u0027s from void functions\" for musb gadget\n  Revert \"Fix typo: configuation \u003d\u003e configuration\" partially\n  ida: document IDA_BITMAP_LONGS calculation\n  ext2: fix a typo on comment in ext2/inode.c\n  drivers/scsi: Remove unnecessary casts of private_data\n  drivers/s390: Remove unnecessary casts of private_data\n  net/sunrpc/rpc_pipe.c: Remove unnecessary casts of private_data\n  drivers/infiniband: Remove unnecessary casts of private_data\n  drivers/gpu/drm: Remove unnecessary casts of private_data\n  kernel/pm_qos_params.c: Remove unnecessary casts of private_data\n  fs/ecryptfs: Remove unnecessary casts of private_data\n  fs/seq_file.c: Remove unnecessary casts of private_data\n  arm: uengine.c: remove C99 comments\n  arm: scoop.c: remove C99 comments\n  Fix typo configue \u003d\u003e configure in comments\n  Fix typo: configuation \u003d\u003e configuration\n  Fix typo interrest[ing|ed] \u003d\u003e interest[ing|ed]\n  Fix various typos of valid in comments\n  ...\n\nFix up trivial conflicts in:\n\tdrivers/char/ipmi/ipmi_si_intf.c\n\tdrivers/usb/gadget/rndis.c\n\tnet/irda/irnet/irnet_ppp.c\n"
    },
    {
      "commit": "6d4121f6c20a0e86231d52f535f1c82423b3326f",
      "tree": "5c235cac699ca86b504850aa663ddadde0455a61",
      "parents": [
        "92a5bbc11ff2442a54b2f1d313088c245828ef4e",
        "35da7a307c535f9c2929cae277f3df425c9f9b1e"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@kernel.org",
        "time": "Sun Oct 24 19:57:05 2010 +0300"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@kernel.org",
        "time": "Sun Oct 24 19:57:05 2010 +0300"
      },
      "message": "Merge branch \u0027master\u0027 into for-linus\n\nConflicts:\n\tinclude/linux/percpu.h\n\tmm/percpu.c\n"
    },
    {
      "commit": "b9da0571050c09863e59f94d0b8594a290d61b88",
      "tree": "3632c4fee768db9a27a5c872bd42133692e2f3d0",
      "parents": [
        "f8cae0f03f75adb54b1d48ddbc90f84a1f5de186",
        "5abd935661e01289ba143c3b2c1ba300c65bcc5f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 19:36:42 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 19:36:42 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (31 commits)\n  driver core: Display error codes when class suspend fails\n  Driver core: Add section count to memory_block struct\n  Driver core: Add mutex for adding/removing memory blocks\n  Driver core: Move find_memory_block routine\n  hpilo: Despecificate driver from iLO generation\n  driver core: Convert link_mem_sections to use find_memory_block_hinted.\n  driver core: Introduce find_memory_block_hinted which utilizes kset_find_obj_hinted.\n  kobject: Introduce kset_find_obj_hinted.\n  driver core: fix build for CONFIG_BLOCK not enabled\n  driver-core: base: change to new flag variable\n  sysfs: only access bin file vm_ops with the active lock\n  sysfs: Fail bin file mmap if vma close is implemented.\n  FW_LOADER: fix kconfig dependency warning on HOTPLUG\n  uio: Statically allocate uio_class and use class .dev_attrs.\n  uio: Support 2^MINOR_BITS minors\n  uio: Cleanup irq handling.\n  uio: Don\u0027t clear driver data\n  uio: Fix lack of locking in init_uio_class\n  SYSFS: Allow boot time switching between deprecated and modern sysfs layout\n  driver core: remove CONFIG_SYSFS_DEPRECATED_V2 but keep it for block devices\n  ...\n"
    },
    {
      "commit": "092e0e7e520a1fca03e13c9f2d157432a8657ff2",
      "tree": "451897252c4c08c4b5a8ef535da156f1e817e80b",
      "parents": [
        "79f14b7c56d3b3ba58f8b43d1f70b9b71477a800",
        "776c163b1b93c8dfa5edba885bc2bfbc2d228a5f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "message": "Merge branch \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:\n  vfs: make no_llseek the default\n  vfs: don\u0027t use BKL in default_llseek\n  llseek: automatically add .llseek fop\n  libfs: use generic_file_llseek for simple_attr\n  mac80211: disallow seeks in minstrel debug code\n  lirc: make chardev nonseekable\n  viotape: use noop_llseek\n  raw: use explicit llseek file operations\n  ibmasmfs: use generic_file_llseek\n  spufs: use llseek in all file operations\n  arm/omap: use generic_file_llseek in iommu_debug\n  lkdtm: use generic_file_llseek in debugfs\n  net/wireless: use generic_file_llseek in debugfs\n  drm: use noop_llseek\n"
    },
    {
      "commit": "5704e44d283e907623e3775c1262f206a2c48cf3",
      "tree": "0a981b24173e90854e7b7d812b35859e1e5f0174",
      "parents": [
        "91151240ed8e97cc4457dae4094153c2744f1eb8",
        "6de5bd128d381ad88ac6d419a5e597048eb468cf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:43:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:43:11 2010 -0700"
      },
      "message": "Merge branch \u0027config\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027config\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:\n  BKL: introduce CONFIG_BKL.\n  dabusb: remove the BKL\n  sunrpc: remove the big kernel lock\n  init/main.c: remove BKL notations\n  blktrace: remove the big kernel lock\n  rtmutex-tester: make it build without BKL\n  dvb-core: kill the big kernel lock\n  dvb/bt8xx: kill the big kernel lock\n  tlclk: remove big kernel lock\n  fix rawctl compat ioctls breakage on amd64 and itanic\n  uml: kill big kernel lock\n  parisc: remove big kernel lock\n  cris: autoconvert trivial BKL users\n  alpha: kill big kernel lock\n  isapnp: BKL removal\n  s390/block: kill the big kernel lock\n  hpet: kill BKL, add compat_ioctl\n"
    },
    {
      "commit": "c25d1dfbd403209025df41a737f82ce8f43d93f5",
      "tree": "35110a432101ff146bae3656137d9ba6f37b38fd",
      "parents": [
        "ead454feb6cbfe0fa6a1eeb30aa9abc338dacf62"
      ],
      "author": {
        "name": "Robin Holt",
        "email": "holt@sgi.com",
        "time": "Wed Sep 29 14:00:54 2010 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 22 10:16:44 2010 -0700"
      },
      "message": "kobject: Introduce kset_find_obj_hinted.\n\nOne call chain getting to kset_find_obj is:\n  link_mem_sections()\n    find_mem_section()\n      kset_find_obj()\n\nThis is done during boot.  The memory sections were added in a linearly\nincreasing order and link_mem_sections tends to utilize them in that\nsame linear order.\n\nIntroduce a kset_find_obj_hinted which is passed the result of the\nprevious kset_find_obj which it uses for a quick \"is the next object\nour desired object\" check before falling back to the old behavior.\n\nSigned-off-by: Robin Holt \u003cholt@sgi.com\u003e\nTo: Robert P. J. Day \u003crpjday@crashcourse.ca\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "6a5c083de2f5fbf89a4b0a251be2c2205434d7ea",
      "tree": "72f738d63e35749da1d79f534494cff10e644208",
      "parents": [
        "a648ec05bb950fae2f35d0490ddd6cf15010af72"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Fri Aug 06 16:11:03 2010 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 22 10:16:42 2010 -0700"
      },
      "message": "Dynamic Debug: Initialize dynamic debug earlier via arch_initcall\n\nHaving the ddebug_query\u003d boot parameter it makes sense to set up\ndynamic debug as soon as possible.\n\nI expect sysfs files cannot be set up via an arch_initcall, because\nthis one is even before fs_initcall. Therefore I splitted the\ndynamic_debug_init function into an early one and a later one providing\n/sys/../dynamic_debug/control file.\n\nPossibly dynamic_debug can be initialized even earlier, not sure whether\nthis still makes sense then. I picked up arch_initcall as it covers\nquite a lot already.\n\nDynamic debug needs to allocate memory, therefore it\u0027s not easily possible to\nset it up even before the command line gets parsed.\nTherefore the boot param query string is stored in a temp string which is\napplied when dynamic debug gets set up.\n\nThis has been tested with ddebug_query\u003d\"file ec.c +p\"\nand I could retrieve pr_debug() messages early at boot during ACPI setup:\nACPI: EC: Look up EC in DSDT\nACPI: EC: ---\u003e status \u003d 0x08\nACPI: EC: transaction start\nACPI: EC: \u003c--- command \u003d 0x80\nACPI: EC: ~~~\u003e interrupt\nACPI: EC: ---\u003e status \u003d 0x08\nACPI: EC: \u003c--- data \u003d 0xa4\n...\nACPI: Interpreter enabled\nACPI: (supports S0 S3 S4 S5)\nACPI: Using IOAPIC for interrupt routing\nACPI: EC: ---\u003e status \u003d 0x00\nACPI: EC: transaction start\nACPI: EC: \u003c--- command \u003d 0x80\n\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nAcked-by: jbaron@redhat.com\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCC: linux-acpi@vger.kernel.org\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "a648ec05bb950fae2f35d0490ddd6cf15010af72",
      "tree": "cde3ca36db486e51d85c31619bf67f8d60215179",
      "parents": [
        "fd89cfb8718753459fcea3fe6103d19de5e86c9b"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Fri Aug 06 16:11:02 2010 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 22 10:16:42 2010 -0700"
      },
      "message": "Dynamic Debug: Introduce ddebug_query\u003d boot parameter\n\nDynamic debug lacks the ability to enable debug messages at boot time.\nOne could patch initramfs or service startup scripts to write to\n/sys/../dynamic_debug/control, but this sucks.\n\nThis patch makes it possible to pass a query in the same format one can\nwrite to /sys/../dynamic_debug/control via boot param.\nWhen dynamic debug gets initialized, this query will automatically be\napplied.\n\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nAcked-by: jbaron@redhat.com\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "fd89cfb8718753459fcea3fe6103d19de5e86c9b",
      "tree": "8e05f06fc4954d55b75ec8c8dfeacce3c198f264",
      "parents": [
        "f6f94e2ab1b33f0082ac22d71f66385a60d8157f"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Fri Aug 06 16:11:01 2010 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 22 10:16:42 2010 -0700"
      },
      "message": "Dynamic Debug: Split out query string parsing/setup from proc_write\n\nThe parsing and applying of dynamic debug strings is not only useful for\n/sys/../dynamic_debug/control write access, but can also be used for\nboot parameter parsing.\nThe boot parameter is introduced in a follow up patch.\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nAcked-by: jbaron@redhat.com\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "a9ccd80aadadef8c424142d41fddea7c0880f0e9",
      "tree": "d8f1078b9154ce4b4046d4fa2d744e22e260b0eb",
      "parents": [
        "81d1c3a52cd78fdbb9f0d80214fc9e7d49bf22c0",
        "e79f86b2ef9c0a8c47225217c1018b7d3d90101c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 14:04:25 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 14:04:25 2010 -0700"
      },
      "message": "Merge branch \u0027stable/swiotlb-0.9\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb-2.6\n\n* \u0027stable/swiotlb-0.9\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb-2.6:\n  swiotlb: Use page alignment for early buffer allocation\n  swiotlb: make io_tlb_overflow static\n"
    },
    {
      "commit": "5d70f79b5ef6ea2de4f72a37b2d96e2601e40a22",
      "tree": "a0d6de0930ba83ecf4629c2e2e261f5eaa2d8f33",
      "parents": [
        "888a6f77e0418b049f83d37547c209b904d30af4",
        "750ed158bf6c782d2813da1bca2c824365a0b777"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 12:54:49 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 12:54:49 2010 -0700"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (163 commits)\n  tracing: Fix compile issue for trace_sched_wakeup.c\n  [S390] hardirq: remove pointless header file includes\n  [IA64] Move local_softirq_pending() definition\n  perf, powerpc: Fix power_pmu_event_init to not use event-\u003ectx\n  ftrace: Remove recursion between recordmcount and scripts/mod/empty\n  jump_label: Add COND_STMT(), reducer wrappery\n  perf: Optimize sw events\n  perf: Use jump_labels to optimize the scheduler hooks\n  jump_label: Add atomic_t interface\n  jump_label: Use more consistent naming\n  perf, hw_breakpoint: Fix crash in hw_breakpoint creation\n  perf: Find task before event alloc\n  perf: Fix task refcount bugs\n  perf: Fix group moving\n  irq_work: Add generic hardirq context callbacks\n  perf_events: Fix transaction recovery in group_sched_in()\n  perf_events: Fix bogus AMD64 generic TLB events\n  perf_events: Fix bogus context time tracking\n  tracing: Remove parent recording in latency tracer graph options\n  tracing: Use one prologue for the preempt irqs off tracer function tracers\n  ...\n"
    },
    {
      "commit": "6de5bd128d381ad88ac6d419a5e597048eb468cf",
      "tree": "7b3a0440f645c6e98367a87b1ca0ed1e0df204dd",
      "parents": [
        "7ff52efdca367d4bfe2449bd3d4a1f8172c5953a"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sat Sep 11 18:00:57 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Thu Oct 21 15:44:13 2010 +0200"
      },
      "message": "BKL: introduce CONFIG_BKL.\n\nWith all the patches we have queued in the BKL removal tree, only a\nfew dozen modules are left that actually rely on the BKL, and even\nthere are lots of low-hanging fruit. We need to decide what to do\nabout them, this patch illustrates one of the options:\n\nEvery user of the BKL is marked as \u0027depends on BKL\u0027 in Kconfig,\nand the CONFIG_BKL becomes a user-visible option. If it gets\ndisabled, no BKL using module can be built any more and the BKL\ncode itself is compiled out.\n\nThe one exception is file locking, which is practically always\nenabled and does a \u0027select BKL\u0027 instead. This effectively forces\nCONFIG_BKL to be enabled until we have solved the fs/lockd\nmess and can apply the patch that removes the BKL from fs/locks.c.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "3b6e901f839f42afb40f614418df82c08b01320a",
      "tree": "04056f3347b926e9623c225acd496e39b9d1b85a",
      "parents": [
        "d580ff8699e8811a9af37e9de4dea375401bdeec"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Oct 14 21:10:38 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 19:58:56 2010 +0200"
      },
      "message": "jump_label: Use more consistent naming\n\nNow that there\u0027s still only a few users around, rename things to make\nthem more consistent.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20101014203625.448565169@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6038f373a3dc1f1c26496e60b6c40b164716f07e",
      "tree": "a0d3bbd026eea41b9fc36b8c722cbaf56cd9f825",
      "parents": [
        "1ec5584e3edf9c4bf2c88c846534d19cf986ba11"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sun Aug 15 18:52:59 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Fri Oct 15 15:53:27 2010 +0200"
      },
      "message": "llseek: automatically add .llseek fop\n\nAll file_operations should get a .llseek operation so we can make\nnonseekable_open the default for future file operations without a\n.llseek pointer.\n\nThe three cases that we can automatically detect are no_llseek, seq_lseek\nand default_llseek. For cases where we can we can automatically prove that\nthe file offset is always ignored, we use noop_llseek, which maintains\nthe current behavior of not returning an error from a seek.\n\nNew drivers should normally not use noop_llseek but instead use no_llseek\nand call nonseekable_open at open time.  Existing drivers can be converted\nto do the same when the maintainer knows for certain that no user code\nrelies on calling seek on the device file.\n\nThe generated code is often incorrectly indented and right now contains\ncomments that clarify for each added line why a specific variant was\nchosen. In the version that gets submitted upstream, the comments will\nbe gone and I will manually fix the indentation, because there does not\nseem to be a way to do that using coccinelle.\n\nSome amount of new code is currently sitting in linux-next that should get\nthe same modifications, which I will do at the end of the merge window.\n\nMany thanks to Julia Lawall for helping me learn to write a semantic\npatch that does all this.\n\n\u003d\u003d\u003d\u003d\u003d begin semantic patch \u003d\u003d\u003d\u003d\u003d\n// This adds an llseek\u003d method to all file operations,\n// as a preparation for making no_llseek the default.\n//\n// The rules are\n// - use no_llseek explicitly if we do nonseekable_open\n// - use seq_lseek for sequential files\n// - use default_llseek if we know we access f_pos\n// - use noop_llseek if we know we don\u0027t access f_pos,\n//   but we still want to allow users to call lseek\n//\n@ open1 exists @\nidentifier nested_open;\n@@\nnested_open(...)\n{\n\u003c+...\nnonseekable_open(...)\n...+\u003e\n}\n\n@ open exists@\nidentifier open_f;\nidentifier i, f;\nidentifier open1.nested_open;\n@@\nint open_f(struct inode *i, struct file *f)\n{\n\u003c+...\n(\nnonseekable_open(...)\n|\nnested_open(...)\n)\n...+\u003e\n}\n\n@ read disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n   *off \u003d E\n|\n   *off +\u003d E\n|\n   func(..., off, ...)\n|\n   E \u003d *off\n)\n...+\u003e\n}\n\n@ read_no_fpos disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ write @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n  *off \u003d E\n|\n  *off +\u003d E\n|\n  func(..., off, ...)\n|\n  E \u003d *off\n)\n...+\u003e\n}\n\n@ write_no_fpos @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ fops0 @\nidentifier fops;\n@@\nstruct file_operations fops \u003d {\n ...\n};\n\n@ has_llseek depends on fops0 @\nidentifier fops0.fops;\nidentifier llseek_f;\n@@\nstruct file_operations fops \u003d {\n...\n .llseek \u003d llseek_f,\n...\n};\n\n@ has_read depends on fops0 @\nidentifier fops0.fops;\nidentifier read_f;\n@@\nstruct file_operations fops \u003d {\n...\n .read \u003d read_f,\n...\n};\n\n@ has_write depends on fops0 @\nidentifier fops0.fops;\nidentifier write_f;\n@@\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n...\n};\n\n@ has_open depends on fops0 @\nidentifier fops0.fops;\nidentifier open_f;\n@@\nstruct file_operations fops \u003d {\n...\n .open \u003d open_f,\n...\n};\n\n// use no_llseek if we call nonseekable_open\n////////////////////////////////////////////\n@ nonseekable1 depends on !has_llseek \u0026\u0026 has_open @\nidentifier fops0.fops;\nidentifier nso ~\u003d \"nonseekable_open\";\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d nso, ...\n+.llseek \u003d no_llseek, /* nonseekable */\n};\n\n@ nonseekable2 depends on !has_llseek @\nidentifier fops0.fops;\nidentifier open.open_f;\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d open_f, ...\n+.llseek \u003d no_llseek, /* open uses nonseekable */\n};\n\n// use seq_lseek for sequential files\n/////////////////////////////////////\n@ seq depends on !has_llseek @\nidentifier fops0.fops;\nidentifier sr ~\u003d \"seq_read\";\n@@\nstruct file_operations fops \u003d {\n...  .read \u003d sr, ...\n+.llseek \u003d seq_lseek, /* we have seq_read */\n};\n\n// use default_llseek if there is a readdir\n///////////////////////////////////////////\n@ fops1 depends on !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier readdir_e;\n@@\n// any other fop is used that changes pos\nstruct file_operations fops \u003d {\n... .readdir \u003d readdir_e, ...\n+.llseek \u003d default_llseek, /* readdir is present */\n};\n\n// use default_llseek if at least one of read/write touches f_pos\n/////////////////////////////////////////////////////////////////\n@ fops2 depends on !fops1 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read.read_f;\n@@\n// read fops use offset\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d default_llseek, /* read accesses f_pos */\n};\n\n@ fops3 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+\t.llseek \u003d default_llseek, /* write accesses f_pos */\n};\n\n// Use noop_llseek if neither read nor write accesses f_pos\n///////////////////////////////////////////////////////////\n\n@ fops4 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !fops3 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\nidentifier write_no_fpos.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n .read \u003d read_f,\n...\n+.llseek \u003d noop_llseek, /* read and write both use no f_pos */\n};\n\n@ depends on has_write \u0026\u0026 !has_read \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write_no_fpos.write_f;\n@@\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+.llseek \u003d noop_llseek, /* write uses no f_pos */\n};\n\n@ depends on has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\n@@\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d noop_llseek, /* read uses no f_pos */\n};\n\n@ depends on !has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\n@@\nstruct file_operations fops \u003d {\n...\n+.llseek \u003d noop_llseek, /* no read or write fn */\n};\n\u003d\u003d\u003d\u003d\u003d End semantic patch \u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "6b945df74233386aab526cddd3593ed4b854f574",
      "tree": "6d93d4a5ed3d427c9bd8cf665139f2c21cc676ca",
      "parents": [
        "6496a5c9e7ccc4e2ec34c09d04a819f8fdc29981"
      ],
      "author": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@tilera.com",
        "time": "Thu Oct 14 14:54:47 2010 -0400"
      },
      "committer": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@tilera.com",
        "time": "Thu Oct 14 14:54:47 2010 -0400"
      },
      "message": "kmemleak: add TILE to the list of supported architectures.\n\nAll the necessary functionality was already there; we just need\nto make it possible to select the config option.\n\nSigned-off-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\n"
    },
    {
      "commit": "e79f86b2ef9c0a8c47225217c1018b7d3d90101c",
      "tree": "53ba03cad303a566831fa03ebbfc408ab36ae36c",
      "parents": [
        "03620b2d7545fee29ecd3bb270f206b9cff75e58"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Mon Oct 11 10:40:25 2010 -0700"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Mon Oct 11 17:08:36 2010 -0400"
      },
      "message": "swiotlb: Use page alignment for early buffer allocation\n\nWe could call free_bootmem_late() if swiotlb is not used, and\nit will shrink to page alignment.\n\nSo alloc them with page alignment at first, to avoid lose two pages\n\nbefore patch:\n[    0.000000]     memblock_x86_reserve_range: [00d3600000, 00d7600000]   swiotlb buffer\n[    0.000000]     memblock_x86_reserve_range: [00d7e7ef40, 00d7e9ef40]     swiotlb list\n[    0.000000]     memblock_x86_reserve_range: [00d7e3ef40, 00d7e7ef40]  swiotlb orig_ad\n[    0.000000]     memblock_x86_reserve_range: [000008a000, 0000092000]  swiotlb overflo\n\nafter patch will get\n[    0.000000]     memblock_x86_reserve_range: [00d3600000, 00d7600000]   swiotlb buffer\n[    0.000000]     memblock_x86_reserve_range: [00d7e7e000, 00d7e9e000]     swiotlb list\n[    0.000000]     memblock_x86_reserve_range: [00d7e3e000, 00d7e7e000]  swiotlb orig_ad\n[    0.000000]     memblock_x86_reserve_range: [000008a000, 0000092000]  swiotlb overflo\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nAcked-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Becky Bruce \u003cbeckyb@kernel.crashing.org\u003e\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\n"
    },
    {
      "commit": "03620b2d7545fee29ecd3bb270f206b9cff75e58",
      "tree": "1f768d8f00ab55b810a29eed086684ff6c7e8743",
      "parents": [
        "cb655d0f3d57c23db51b981648e452988c0223f9"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Mon Aug 02 23:48:06 2010 +0900"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Mon Oct 11 14:54:27 2010 -0400"
      },
      "message": "swiotlb: make io_tlb_overflow static\n\nWe don\u0027t need to export io_tlb_overflow_buffer. I\u0027ll remove\nio_tlb_overflow_buffer completely in the long term though.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\n"
    },
    {
      "commit": "7cd2541cf2395962daf98ec32a141aba3398a9b2",
      "tree": "3c8bebb277462ba0de9d44233a970d34056dc45e",
      "parents": [
        "c62f981f9309486ba5546edbb5925f71e441fa65",
        "cb655d0f3d57c23db51b981648e452988c0223f9"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 08 10:46:27 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 08 10:46:27 2010 +0200"
      },
      "message": "Merge commit \u0027v2.6.36-rc7\u0027 into perf/core\n\nConflicts:\n\tarch/x86/kernel/module.c\n\nMerge reason: Resolve the conflict, pick up fixes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "400fb7f6a0cfe13025cb0296fdb4737da7025a8a",
      "tree": "f0e956b04e3c566020b2ce1ba9454d3e4a49cf63",
      "parents": [
        "6391987d6f8ced7d0fafaa1440dcc57bb4b34d8f"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Thu Oct 07 15:25:04 2010 -0700"
      },
      "committer": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Thu Oct 07 15:25:04 2010 -0700"
      },
      "message": "move async raid6 test to lib/Kconfig.debug\n\nThe prompt for \"Self test for hardware accelerated raid6 recovery\" does not\nbelong in the top level configuration menu.  All the options in\ncrypto/async_tx/Kconfig are selected and do not depend on CRYPTO.\nKconfig.debug seems like a reasonable fit.\n\nCc: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nCc: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\n"
    },
    {
      "commit": "556ef63255f1a6f82910a637c4164dbf7d3d1af2",
      "tree": "ae209fe4959e0837bf4eb72abc6e02c8a82179a1",
      "parents": [
        "d4f8f217b8a5d5bd02af979650418dca4caec472",
        "cb655d0f3d57c23db51b981648e452988c0223f9"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 07 09:43:38 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 07 09:43:45 2010 +0200"
      },
      "message": "Merge commit \u0027v2.6.36-rc7\u0027 into core/rcu\n\nMerge reason: Update from -rc3 to -rc7.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d4f8f217b8a5d5bd02af979650418dca4caec472",
      "tree": "af047bfa9729c975e24cb7624107574e884d3a57",
      "parents": [
        "2dfbf4dfbe47a484bae20456c12b40763b9b6af7",
        "773e3f93577ffb493fb7c39b1a6ecf39b5748e87"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 07 09:43:11 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 07 09:43:11 2010 +0200"
      },
      "message": "Merge branch \u0027rcu/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-2.6-rcu into core/rcu\n"
    },
    {
      "commit": "ab4d5ed5eeda4f57c50d14131ce1b1da75d0c938",
      "tree": "e0c574c802138d9b6514dae4f2c46fcc6365b951",
      "parents": [
        "15b7c5142049e7efc3071280e1370dc3b8add6f5"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux.com",
        "time": "Tue Oct 05 13:57:26 2010 -0500"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@kernel.org",
        "time": "Wed Oct 06 16:54:36 2010 +0300"
      },
      "message": "slub: Enable sysfs support for !CONFIG_SLUB_DEBUG\n\nCurrently disabling CONFIG_SLUB_DEBUG also disabled SYSFS support meaning\nthat the slabs cannot be tuned without DEBUG.\n\nMake SYSFS support independent of CONFIG_SLUB_DEBUG\n\nSigned-off-by: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\n"
    },
    {
      "commit": "5336377d6225959624146629ce3fc88ee8ecda3d",
      "tree": "571b9db75d1ba50faa1e399509563f367fd5694f",
      "parents": [
        "2f6b3aa7a563d05453c4d73ccf88191aee84333f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 05 11:29:27 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 05 11:29:27 2010 -0700"
      },
      "message": "modules: Fix module_bug_list list corruption race\n\nWith all the recent module loading cleanups, we\u0027ve minimized the code\nthat sits under module_mutex, fixing various deadlocks and making it\npossible to do most of the module loading in parallel.\n\nHowever, that whole conversion totally missed the rather obscure code\nthat adds a new module to the list for BUG() handling.  That code was\ndoubly obscure because (a) the code itself lives in lib/bugs.c (for\ndubious reasons) and (b) it gets called from the architecture-specific\n\"module_finalize()\" rather than from generic code.\n\nCalling it from arch-specific code makes no sense what-so-ever to begin\nwith, and is now actively wrong since that code isn\u0027t protected by the\nmodule loading lock any more.\n\nSo this commit moves the \"module_bug_{finalize,cleanup}()\" calls away\nfrom the arch-specific code, and into the generic code - and in the\nprocess protects it with the module_mutex so that the list operations\nare now safe.\n\nFuture fixups:\n - move the module list handling code into kernel/module.c where it\n   belongs.\n - get rid of \u0027module_bug_list\u0027 and just use the regular list of modules\n   (called \u0027modules\u0027 - imagine that) that we already create and maintain\n   for other reasons.\n\nReported-and-tested-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Adrian Bunk \u003cbunk@kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f015ac3edd84ad72f88e08a4d83c56c360aae404",
      "tree": "87f88c4e502d69752776dd36451d0ece5416f9f1",
      "parents": [
        "982f7c2b2e6a28f8f266e075d92e19c0dd4c6e56"
      ],
      "author": {
        "name": "Don Mullis",
        "email": "don.mullis@gmail.com",
        "time": "Thu Sep 30 15:15:32 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 01 10:50:58 2010 -0700"
      },
      "message": "lib/list_sort: do not pass bad pointers to cmp callback\n\nIf the original list is a POT in length, the first callback from line 73\nwill pass a\u003d\u003db both pointing to the original list_head.  This is dangerous\nbecause the \u0027list_sort()\u0027 user can use \u0027container_of()\u0027 and accesses the\n\"containing\" object, which does not necessary exist for the list head.  So\nthe user can access RAM which does not belong to him.  If this is a write\naccess, we can end up with memory corruption.\n\nSigned-off-by: Don Mullis \u003cdon.mullis@gmail.com\u003e\nTested-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2dfbf4dfbe47a484bae20456c12b40763b9b6af7",
      "tree": "466a7dcef708a96c419083d587b00313cf7b3785",
      "parents": [
        "269dcc1c2ec25864308ee03a3fa26ea819d9f5d0"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Sep 15 23:30:48 2010 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Sep 23 09:16:54 2010 -0700"
      },
      "message": "rcu: Add advice to PROVE_RCU_REPEATEDLY kernel config parameter\n\nThe PROVE_RCU_REPEATEDLY has no \"Say Y\"/\"Say N\" advice, so this commit\nadds it.\n\nReported-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "52159d98be6f26c48f5e02c7ab3c9848a85979b5",
      "tree": "29ba759acd0a9fd82b796b9e965dab5ed9d30ce6",
      "parents": [
        "8f7b50c514206211cc282a4247f7b12f18dee674"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Fri Sep 17 11:09:17 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Sep 22 16:31:19 2010 -0400"
      },
      "message": "jump label: Convert dynamic debug to use jump labels\n\nConvert the \u0027dynamic debug\u0027 infrastructure to use jump labels.\n\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nLKML-Reference: \u003cb77627358cea3e27d7be4386f45f66219afb8452.1284733808.git.jbaron@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "3aabae7d9dfaed60effe93662f02c19bafc18537",
      "tree": "af94cdd69add07601d9f3f5988dfc1dc255e3886",
      "parents": [
        "79e406d7b00ab2b261ae32a59f266fd3b7af6f29",
        "57c072c7113f54f9512624d6c665db6184448782"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 15 10:27:31 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 15 10:27:31 2010 +0200"
      },
      "message": "Merge branch \u0027tip/perf/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core\n"
    },
    {
      "commit": "ff3cb3fec3c5bbb5110e652bbdd410bc99a47e9f",
      "tree": "5b6834a3a4ecd479d544f8cc8cd10811c1ae13e1",
      "parents": [
        "6ccaa3172941c0a97c7f1c5155b1d32ecd27ec2f",
        "be14eb619108fa8b7120eb2c42d66d5f623ae10e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 10 07:26:27 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 10 07:26:27 2010 -0700"
      },
      "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: Range check cpu in blk_cpu_to_group\n  scatterlist: prevent invalid free when alloc fails\n  writeback: Fix lost wake-up shutting down writeback thread\n  writeback: do not lose wakeup events when forking bdi threads\n  cciss: fix reporting of max queue depth since init\n  block: switch s390 tape_block and mg_disk to elevator_change()\n  block: add function call to switch the IO scheduler from a driver\n  fs/bio-integrity.c: return -ENOMEM on kmalloc failure\n  bio-integrity.c: remove dependency on __GFP_NOFAIL\n  BLOCK: fix bio.bi_rw handling\n  block: put dev-\u003ekobj in blk_register_queue fail path\n  cciss: handle allocation failure\n  cfq-iosched: Documentation help for new tunables\n  cfq-iosched: blktrace print per slice sector stats\n  cfq-iosched: Implement tunable group_idle\n  cfq-iosched: Do group share accounting in IOPS when slice_idle\u003d0\n  cfq-iosched: Do not idle if slice_idle\u003d0\n  cciss: disable doorbell reset on reset_devices\n  blkio: Fix return code for mkdir calls\n"
    },
    {
      "commit": "46b93b74fc022885ab69dfc8e2af0562dd626638",
      "tree": "43596f815dd0210df9985ae64e7ef3c9ca160eab",
      "parents": [
        "3449dafaf514f83de8d9a41f2c437a8803eea24d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Aug 31 16:35:20 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Aug 31 16:35:20 2010 -0400"
      },
      "message": "tracing/lockdep: Fix dependency of TRACE_IRQFLAGS\n\nWhen CONFIG_IRQSOFF_TRACER is set and CONFIG_PROVE_LOCKING is not, we\nget the following error:\n\n$  make oldconfig\nscripts/kconfig/conf --oldconfig arch/x86/Kconfig\nwarning: (IRQSOFF_TRACER \u0026\u0026 TRACING_SUPPORT \u0026\u0026 FTRACE \u0026\u0026 TRACE_IRQFLAGS_SUPPORT \u0026\u0026 !ARCH_USES_GETTIMEOFFSET) selects TRACE_IRQFLAGS which has unmet direct dependencies (DEBUG_KERNEL \u0026\u0026 TRACE_IRQFLAGS_SUPPORT \u0026\u0026 PROVE_LOCKING)\nwarning: (IRQSOFF_TRACER \u0026\u0026 TRACING_SUPPORT \u0026\u0026 FTRACE \u0026\u0026 TRACE_IRQFLAGS_SUPPORT \u0026\u0026 !ARCH_USES_GETTIMEOFFSET) selects TRACE_IRQFLAGS which has unmet direct dependencies (DEBUG_KERNEL \u0026\u0026 TRACE_IRQFLAGS_SUPPORT \u0026\u0026 PROVE_LOCKING)\n\nThis is because IRQSOFF_TRACER selects TRACE_IRQFLAGS but TRACE_IRQFLAGS\nhas PROVE_LOCKING as a dependency. This code is incorrect, and\nthis patch changes the TRACE_IRQFLAGS to be just a simple bool that\ndoes not depend or select anything. Instead both IRQSOFF_TRACER and\nPROVE_LOCKING select it.\n\nReported-by: Richard Kennedy \u003crichard@rsk.demon.co.uk\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "1458ce166c1b333ecbaf8caa9f4f54eab3a522a7",
      "tree": "3375dc429c3c637a05f1c185d767bf911d4e92ee",
      "parents": [
        "ea24ea850bcd7dd5f0994de2cf99ace10c4484cc"
      ],
      "author": {
        "name": "Naohiro Aota",
        "email": "naota@elisp.net",
        "time": "Fri Aug 27 17:43:46 2010 +0900"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Aug 31 09:43:59 2010 +0200"
      },
      "message": "idr: describe how nextidp works in idr_get_next().\n\nIt was unclear in original kernel-doc how nextidp worked in\nidr_get_next(). Let\u0027s describe it.\n\nSigned-off-by: Naohiro Aota \u003cnaota@elisp.net\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "ea24ea850bcd7dd5f0994de2cf99ace10c4484cc",
      "tree": "e7380a9077841a8a7ed7246cd85a3d55c1d2929a",
      "parents": [
        "10466f5ae36074bb620e4add1247fbf78ee564c0"
      ],
      "author": {
        "name": "Naohiro Aota",
        "email": "naota@elisp.net",
        "time": "Tue Aug 31 00:37:03 2010 +0900"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Aug 31 09:32:02 2010 +0200"
      },
      "message": "idr: fix kernel-doc warnings.\n\nFix the following kernel-doc warnings.\n\n% perl scripts/kernel-doc lib/idr.c \u003e /dev/null\nWarning(lib/idr.c:300): No description found for parameter \u0027starting_id\u0027\nWarning(lib/idr.c:300): Excess function parameter \u0027start_id\u0027 description in \u0027idr_get_new_above\u0027\nWarning(lib/idr.c:485): No description found for parameter \u0027idp\u0027\nWarning(lib/idr.c:596): No description found for parameter \u0027nextidp\u0027\nWarning(lib/idr.c:596): Excess function parameter \u0027id\u0027 description in \u0027idr_get_next\u0027\nWarning(lib/idr.c:774): No description found for parameter \u0027starting_id\u0027\nWarning(lib/idr.c:774): Excess function parameter \u0027staring_id\u0027 description in \u0027ida_get_new_above\u0027\nWarning(lib/idr.c:918): No description found for parameter \u0027ida\u0027\n\nSigned-off-by: Naohiro Aota \u003cnaota@elisp.net\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "edce6820a9fdda85521211cb334a183e34cc455e",
      "tree": "c2944c0a6e175cd089dde7b808398763ae5c50dd",
      "parents": [
        "b76b4014f9d988d2412b873e4d4c13c7f9afc4e4"
      ],
      "author": {
        "name": "Jeffrey Carlyle",
        "email": "jeff.carlyle@motorola.com",
        "time": "Mon Aug 30 19:55:09 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Mon Aug 30 19:55:09 2010 +0200"
      },
      "message": "scatterlist: prevent invalid free when alloc fails\n\nWhen alloc fails, free_table is being called. Depending on the number of\nbytes requested, we determine if we are going to call _get_free_page()\nor kmalloc(). When alloc fails, our math is wrong (due to sg_size - 1),\nand the last buffer is wrongfully assumed to have been allocated by\nkmalloc. Hence, kfree gets called and a panic occurs.\n\nSigned-off-by: Jeffrey Carlyle \u003cjeff.carlyle@motorola.com\u003e\nSigned-off-by: Olusanya Soyannwo \u003cc23746@motorola.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "7c44ece988a3419e51c833cf14be186a22224dd1",
      "tree": "914239dd8f2ce809caf94f6fa7b73cc302f679c4",
      "parents": [
        "2bfc96a127bc1cc94d26bfaa40159966064f9c8c"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Aug 30 17:35:52 2010 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Aug 30 17:35:52 2010 +1000"
      },
      "message": "Move .gitignore from drivers/md to lib/raid6\n\nAnother missing bit of the raid6 -\u003e /lib move.\n\nReported-by: Andreas Schwab \u003cschwab@linux-m68k.org\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "f6e6e7799ebcad40fa15e4015beca2d776554302",
      "tree": "7d6c211016663cb5182f72f5d5e747326f417a9e",
      "parents": [
        "f45f3c1f3f616ca1d1e1eb5e7a720ca63cb59550"
      ],
      "author": {
        "name": "Xiaotian Feng",
        "email": "xtfeng@gmail.com",
        "time": "Fri Aug 13 18:58:10 2010 +0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Aug 23 18:12:46 2010 -0700"
      },
      "message": "kobject_uevent: fix typo in comments\n\ns/ending/sending, s/kobject_uevent()/kobject_uevent_env() in the comments.\n\nSigned-off-by: Xiaotian Feng \u003cxtfeng@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "a6b9b4d50f492630443b38404d1f436b3b748c14",
      "tree": "f3512389c42cecfae50b6a315ec6ab1fa470e30d",
      "parents": [
        "e36c886a0f9d624377977fa6cae309cfd7f362fa",
        "28457ee69c473a903e51e26c7bcd6f1e9eceb93e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 23 11:32:34 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 23 11:32:34 2010 +0200"
      },
      "message": "Merge branch \u0027rcu/next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-2.6-rcu into core/rcu\n"
    },
    {
      "commit": "9ee47476d6734c9deb9ae9ab05d963302f6b6150",
      "tree": "d6d5a54831322628427eb54cb3edc2f78a6125f4",
      "parents": [
        "76be97c1fc945db08aae1f1b746012662d643e97",
        "144dcfc01221e1a79fa47ca897df7d5e3ab298e6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 22 19:55:14 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 22 19:55:14 2010 -0700"
      },
      "message": "Merge branch \u0027radix-tree\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/xfsdev\n\n* \u0027radix-tree\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/xfsdev:\n  radix-tree: radix_tree_range_tag_if_tagged() can set incorrect tags\n  radix-tree: clear all tags in radix_tree_node_rcu_free\n"
    },
    {
      "commit": "144dcfc01221e1a79fa47ca897df7d5e3ab298e6",
      "tree": "70b0d0bf73815fb242502a562da3a8c7667843ba",
      "parents": [
        "b6dd08652e2b70e73661c4975ae46398066c06f8"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon Aug 23 10:33:53 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Aug 23 10:33:53 2010 +1000"
      },
      "message": "radix-tree: radix_tree_range_tag_if_tagged() can set incorrect tags\n\nCommit ebf8aa44beed48cd17893a83d92a4403e5f9d9e2 (\"radix-tree:\nomplement function radix_tree_range_tag_if_tagged\") does not safely\nset tags on on intermediate tree nodes. The code walks down the tree\nsetting tags before it has fully resolved the path to the leaf under\nthe assumption there will be a leaf slot with the tag set in the\nrange it is searching.\n\nUnfortunately, this is not a valid assumption - we can abort after\nsetting a tag on an intermediate node if we overrun the number of\ntags we are allowed to set in a batch, or stop scanning because we\nwe have passed the last scan index before we reach a leaf slot with\nthe tag we are searching for set.\n\nAs a result, we can leave the function with tags set on intemediate\nnodes which can be tripped over later by tag-based lookups. The\nresult of these stale tags is that lookup may end prematurely or\nlivelock because the lookup cannot make progress.\n\nThe fix for the problem involves reocrding the traversal path we\ntake to the leaf nodes, and only propagating the tags back up the\ntree once the tag is set in the leaf node slot. We are already\nrecording the path for efficient traversal, so there is no\nadditional overhead to do the intermediately node tag setting in\nthis manner.\n\nThis fixes a radix tree lookup livelock triggered by the new\nwriteback sync livelock avoidance code introduced in commit\nf446daaea9d4a420d16c606f755f3689dcb2d0ce (\"mm: implement writeback\nlivelock avoidance using page tagging\").\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "b6dd08652e2b70e73661c4975ae46398066c06f8",
      "tree": "fa70f295a5074627a6b6dba11a8c8cf90d4e4b95",
      "parents": [
        "da5cabf80e2433131bf0ed8993abc0f7ea618c73"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon Aug 23 10:33:19 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Aug 23 10:33:19 2010 +1000"
      },
      "message": "radix-tree: clear all tags in radix_tree_node_rcu_free\n\nCommit f446daaea9d4a420d16c606f755f3689dcb2d0ce (\"mm: implement\nwriteback livelock avoidance using page tagging\") introduced a new\nradix tree tag, increasing the number of tags in each node from 2 to\n3. It did not, however, fix up the code in\nradix_tree_node_rcu_free() that cleans up after radix_tree_shrink()\nand hence could leave stray tags set in the new tag array.\n\nThe result is that the livelock avoidance code added in the the\nabove commit would hit stale tags when doing tag based lookups,\nresulting in livelocks when trying to traverse the tree.\n\nFix this problem in radix_tree_node_rcu_free() so it doesn\u0027t happen\nagain in the future by using a loop to walk all the tags up to\nRADIX_TREE_MAX_TAGS to clear the stray tags radix_tree_shrink()\nleaves behind.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nAcked-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "d5ed3a4af77b851b6271ad3d9abc4c57fa3ce0f5",
      "tree": "f06894404e4af25051e8918bfd3fdac95974fc97",
      "parents": [
        "f2e41e910320197d55b52e28d99a07130f2ae738"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Aug 19 14:13:33 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 20 09:34:55 2010 -0700"
      },
      "message": "lib/radix-tree.c: fix overflow in radix_tree_range_tag_if_tagged()\n\nWhen radix_tree_maxindex() is ~0UL, it can happen that scanning overflows\nindex and tree traversal code goes astray reading memory until it hits\nunreadable memory.  Check for overflow and exit in that case.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.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": "910b1b7e19a292ff685001caf1bf1a9775b771a1",
      "tree": "7ec42bf018ab62c3c2180fbe168cd6130556cb80",
      "parents": [
        "687d7a960aea46e016182c7ce346d62c4dbd0366"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jul 21 08:05:56 2010 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Aug 19 17:18:04 2010 -0700"
      },
      "message": "rcu: Allow RCU CPU stall warnings to be off at boot, but manually enablable\n\nCurrently, if RCU CPU stall warnings are enabled, they are enabled\nimmediately upon boot.  They can be manually disabled via /sys (and\nalso re-enabled via /sys), and are automatically disabled upon panic.\nHowever, some users need RCU CPU stalls to be disabled at boot time,\nbut to be enabled without rebuilding/rebooting.  For example, someone\nrunning a real-time application in production might not want the\nadditional latency of RCU CPU stall detection in normal operation, but\nmight need to enable it at any point for fault isolation purposes.\n\nThis commit therefore provides a new CONFIG_RCU_CPU_STALL_DETECTOR_RUNNABLE\nkernel configuration parameter that maintains the current behavior\n(enable at boot) by default, but allows a kernel to be configured\nwith RCU CPU stall detection built into the kernel, but disabled at\nboot time.\n\nRequested-by: Clark Williams \u003cwilliams@redhat.com\u003e\nRequested-by: John Kacur \u003cjkacur@redhat.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "a1115570b31091f3e3ab9e6cf7ee8d320a42be84",
      "tree": "1253b42dd3348fb733fdf51bcf30f1abf1388b19",
      "parents": [
        "374a8e0dc33c984fac284de7d57d77af3cfdbfb7"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Thu Feb 25 23:43:52 2010 +0100"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Aug 19 17:18:03 2010 -0700"
      },
      "message": "radix-tree: __rcu annotations\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "b163760e37047781b37c412cde54d146ac4b651f",
      "tree": "5b447a210c81b78e20393472f4b53623c8fed28b",
      "parents": [
        "4221a9918e38b7494cee341dda7b7b4bb8c04bde"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jun 02 16:21:38 2010 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Aug 19 17:18:02 2010 -0700"
      },
      "message": "rcu: make CPU stall warning timeout configurable\n\nAlso set the default to 60 seconds, up from the previous hard-coded timeout\nof 10 seconds.  This allows people who care to set short timeouts, while\navoiding people with unusual configurations (make randconfig!!!) from being\nbothered with spurious CPU stall warnings.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "ca5ecddfa8fcbd948c95530e7e817cee9fb43a3d",
      "tree": "0ad1c320c2e6612a9a230a58d8588850701c048c",
      "parents": [
        "d34a16661ed0fed433c9469d7cfa3ca4d30ca42e"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Apr 28 14:39:09 2010 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Aug 19 17:17:59 2010 -0700"
      },
      "message": "rcu: define __rcu address space modifier for sparse\n\nThis commit provides definitions for the __rcu annotation defined earlier.\nThis annotation permits sparse to check for correct use of RCU-protected\npointers.  If a pointer that is annotated with __rcu is accessed\ndirectly (as opposed to via rcu_dereference(), rcu_assign_pointer(),\nor one of their variants), sparse can be made to complain.  To enable\nsuch complaints, use the new default-disabled CONFIG_SPARSE_RCU_POINTER\nkernel configuration option.  Please note that these sparse complaints are\nintended to be a debugging aid, -not- a code-style-enforcement mechanism.\n\nThere are special rcu_dereference_protected() and rcu_access_pointer()\naccessors for use when RCU read-side protection is not required, for\nexample, when no other CPU has access to the data structure in question\nor while the current CPU hold the update-side lock.\n\nThis patch also updates a number of docbook comments that were showing\ntheir age.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Christopher Li \u003csparse@chrisli.org\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "625fdcaa6d2a3db6a922bbd833450424e906111c",
      "tree": "187a6b40d5cb40e082449f0810b89d5b5a96180c",
      "parents": [
        "f24645a991e6758a4544ed7667cf919fea328a95"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Thu Aug 12 12:31:21 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Aug 17 09:09:03 2010 +0200"
      },
      "message": "latencytop: Fix kconfig dependency warnings\n\nwarning: (LATENCYTOP \u0026\u0026 HAVE_LATENCYTOP_SUPPORT) selects\nSCHED_DEBUG which has unmet direct dependencies (DEBUG_KERNEL \u0026\u0026\nPROC_FS) warning: (LATENCYTOP \u0026\u0026 HAVE_LATENCYTOP_SUPPORT) selects\nSCHEDSTATS which has unmet direct dependencies (DEBUG_KERNEL \u0026\u0026 PROC_FS)\n\nAdd depends on STACKTRACE_SUPPORT for \u0027select STACKTRACE\u0027.\nAdd depends on PROC_FS since that is where the output goes.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nLKML-Reference: \u003c20100812123121.a7c99cde.randy.dunlap@oracle.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7367f5b013fee33f7d40a5a10a39d5134f529ec8",
      "tree": "aaf1366025364174d93c1ad33c79da4fd58aa917",
      "parents": [
        "ce4327d372af7e2f2d403286e9904ab012e72827",
        "a8e026c785b3fecef0ef5c00c15223542c4db8f5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 10:08:10 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 10:08:10 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://neil.brown.name/md\n\n* \u0027for-linus\u0027 of git://neil.brown.name/md:\n  Further tidyup of raid6 naming in lib/raid6\n  Make lib/raid6/test build correctly.\n  Rename raid6 files now they\u0027re in a \u0027raid6\u0027 directory.\n"
    },
    {
      "commit": "1490cf5f0cb07dd49cdab4bceb769d7f711d7ca6",
      "tree": "368983c4a0e92467368bb41c2cc326611aa0f31e",
      "parents": [
        "019fca84e7c4b94817abc77df9081ba208fcc46a"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Aug 12 16:54:52 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 09:51:35 2010 -0700"
      },
      "message": "MN10300: Don\u0027t try and #include \u003clinux/slab.h\u003e in lib/inflate.c from bootloader\n\nDon\u0027t try and #include \u003clinux/slab.h\u003e in lib/inflate.c from the bootloader code\nas linux/slab.h hauls in function defs that aren\u0027t available in the bootloader\ncode and may also haul in conflicting functions.\n\nTo fix this, make the inclusion of linux/slab.h contingent on NO_INFLATE_MALLOC\nas are the usages of kmalloc() and kfree().\n\nIn MN10300, this causes the following errors:\n\nIn file included from include/linux/string.h:21,\n                 from include/linux/bitmap.h:8,\n                 from include/linux/nodemask.h:93,\n                 from include/linux/mmzone.h:16,\n                 from include/linux/gfp.h:4,\n                 from include/linux/slab.h:12,\n                 from arch/mn10300/boot/compressed/../../../../lib/inflate.c:106,\n                 from arch/mn10300/boot/compressed/misc.c:170:\n/warthog/am33/linux-2.6-mn10300/arch/mn10300/include/asm/string.h:19: error: conflicting types for \u0027memset\u0027\narch/mn10300/boot/compressed/misc.c:59: error: previous definition of \u0027memset\u0027 was here\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a8e026c785b3fecef0ef5c00c15223542c4db8f5",
      "tree": "580baa4e5a3e5bed4cef74a4e9a523b8010f6020",
      "parents": [
        "d5302fe41ffb28d0a48be6a71becba36d3453ae0"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Aug 12 06:44:54 2010 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Aug 12 06:44:54 2010 +1000"
      },
      "message": "Further tidyup of raid6 naming in lib/raid6\n\nRename raid6/raid6x86.h to raid6/x86.h\nand modify some comments.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "d5302fe41ffb28d0a48be6a71becba36d3453ae0",
      "tree": "02414f0dc4ad18b6a6a096efb69046281248dd2b",
      "parents": [
        "cc4589ebfae6f8dbb5cf880a0a67eedab3416492"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Aug 12 06:38:24 2010 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Aug 12 06:38:24 2010 +1000"
      },
      "message": "Make lib/raid6/test build correctly.\n\nSome bit-rot needs to be cleaned out.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "dd21e9bdff14a9882f2c485fe533c6ce64ea2675",
      "tree": "3731ef6f08fbc98e49a36372e4b73e4c8ab8de27",
      "parents": [
        "5bf2b19320ec31d094d7370fdf536f7fd91fd799"
      ],
      "author": {
        "name": "Prarit Bhargava",
        "email": "prarit@redhat.com",
        "time": "Tue Aug 10 18:03:40 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:23 2010 -0700"
      },
      "message": "lib/decompress_bunzip2.c: fix checkstack warning\n\nFix checkstack error:\n\nlib/decompress_bunzip2.c: In function `get_next_block\u0027:\nlib/decompress_bunzip2.c:511: warning: the frame size of 1932 bytes is larger than 1024 bytes\n\nbyteCount, symToByte, and mtfSymbol cannot be declared static or allocated\ndynamically so place them in the bunzip_data struct.\n\nSigned-off-by: Prarit Bhargava \u003cprarit@redhat.com\u003e\nCc: Phillip Lougher \u003cphillip@lougher.demon.co.uk\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "863a6049202412a6d655d052eb1c45ca7dd74a83",
      "tree": "9550c1f6c484460cb646f4472558512ac8a9f149",
      "parents": [
        "e2e7e093259d4c6b73b432122974393d6fcdfc2a"
      ],
      "author": {
        "name": "Anton Blanchard",
        "email": "anton@samba.org",
        "time": "Tue Aug 10 18:03:30 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:22 2010 -0700"
      },
      "message": "lib/bug.c: add oops end marker to WARN implementation\n\nWe are missing the oops end marker for the exception based WARN implementation\nin lib/bug.c. This is useful for logfile analysis tools.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: \"Kirill A. Shutemov\" \u003ckirill@shutemov.name\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e2e7e093259d4c6b73b432122974393d6fcdfc2a",
      "tree": "d8a5ff294a21c074724539f4fc8f9b7783ae96b4",
      "parents": [
        "c7ff0d9c92435e836e13aaa8d0e56d4000424bcc"
      ],
      "author": {
        "name": "Anton Blanchard",
        "email": "anton@samba.org",
        "time": "Tue Aug 10 18:03:29 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:22 2010 -0700"
      },
      "message": "lib/bug.c: make WARN implementation match the kernel/panic.c one\n\nThere are a few issues with the exception based WARN implementation in\nlib/bug.c:\n\n- Inconsistent printk flags. The \"cut here\" line is printed at KERN_EMERG, so\n  the console and all logged in users see the single line:\n\n------------[ cut here ]------------\n\n  for each WARN. Fix this so we print everything at KERN_WARNING to match the\n  kernel/panic.c version.\n\n- The lib/bug.c WARN would print \"Badness at\". Change it to match the\n  kernel/panic.c version which prints \"WARNING: at\".\n\n- Print the list of modules, similar to kernel/panic.c of modules, similar to\n  kernel/panic.c\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: \"Kirill A. Shutemov\" \u003ckirill@shutemov.name\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cc4589ebfae6f8dbb5cf880a0a67eedab3416492",
      "tree": "404335e6dec9d79351f537de58979a8b964e2b0c",
      "parents": [
        "3d30701b58970425e1d45994d6cb82f828924fdd"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Wed Aug 11 00:19:05 2010 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Wed Aug 11 00:19:05 2010 +0100"
      },
      "message": "Rename raid6 files now they\u0027re in a \u0027raid6\u0027 directory.\n\nLinus asks \u0027why \"raid6\" twice?\u0027. No reason.\n\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "3d30701b58970425e1d45994d6cb82f828924fdd",
      "tree": "8b14cf462628bebf8548c1b8c205a674564052d1",
      "parents": [
        "8cbd84f2dd4e52a8771b191030c374ba3e56d291",
        "fd8aa2c1811bf60ccb2d5de0579c6f62aec1772d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 15:38:19 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 15:38:19 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://neil.brown.name/md\n\n* \u0027for-linus\u0027 of git://neil.brown.name/md: (24 commits)\n  md: clean up do_md_stop\n  md: fix another deadlock with removing sysfs attributes.\n  md: move revalidate_disk() back outside open_mutex\n  md/raid10: fix deadlock with unaligned read during resync\n  md/bitmap:  separate out loading a bitmap from initialising the structures.\n  md/bitmap: prepare for storing write-intent-bitmap via dm-dirty-log.\n  md/bitmap: optimise scanning of empty bitmaps.\n  md/bitmap: clean up plugging calls.\n  md/bitmap: reduce dependence on sysfs.\n  md/bitmap: white space clean up and similar.\n  md/raid5: export raid5 unplugging interface.\n  md/plug: optionally use plugger to unplug an array during resync/recovery.\n  md/raid5: add simple plugging infrastructure.\n  md/raid5: export is_congested test\n  raid5: Don\u0027t set read-ahead when there is no queue\n  md: add support for raising dm events.\n  md: export various start/stop interfaces\n  md: split out md_rdev_init\n  md: be more careful setting MD_CHANGE_CLEAN\n  md/raid5: ensure we create a unique name for kmem_cache when mddev has no gendisk\n  ...\n"
    },
    {
      "commit": "4c619407b0439c59c20398b9459020c0d297f424",
      "tree": "17d5401aebd5fe00a4878353353e29fc8c569b89",
      "parents": [
        "26b55633a891a28bf04f42882de145eb8e9cb9ad",
        "145b64b9588c123d2bd00981c5ce8e03215ed2ee"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 13:58:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 13:58:11 2010 -0700"
      },
      "message": "Merge branch \u0027kmemleak\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-2.6-cm\n\n* \u0027kmemleak\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-2.6-cm:\n  kmemleak: Fix typo in the comment\n  lib/scatterlist: Hook sg_kmalloc into kmemleak (v2)\n  kmemleak: Add DocBook style comments to kmemleak.c\n  kmemleak: Introduce a default off mode for kmemleak\n  kmemleak: Show more information for objects found by alias\n"
    },
    {
      "commit": "a8618a0e8a06f75c6efec2a5477861d704d48b28",
      "tree": "02679a316c5dea69e337ff65219d7c116f5a59aa",
      "parents": [
        "424acaaeb3a3932d64a9b4bd59df6cf72c22d8f3"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Aug 09 17:21:20 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:11 2010 -0700"
      },
      "message": "rwsem: smaller wrappers around rwsem_down_failed_common\n\nMore code can be pushed from rwsem_down_read_failed and\nrwsem_down_write_failed into rwsem_down_failed_common.\n\nFollowing change adding down_read_critical infrastructure support also\nenjoys having flags available in a register rather than having to fish it\nout in the struct rwsem_waiter...\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Mike Waychison \u003cmikew@google.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "424acaaeb3a3932d64a9b4bd59df6cf72c22d8f3",
      "tree": "c3c55028aa6eff578bc6d4d984796c7ea1379061",
      "parents": [
        "fd41b33435ada87323cc86b50959fbffe35192c8"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Aug 09 17:21:19 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:11 2010 -0700"
      },
      "message": "rwsem: wake queued readers when writer blocks on active read lock\n\nThis change addresses the following situation:\n\n- Thread A acquires the rwsem for read\n- Thread B tries to acquire the rwsem for write, notices there is already\n  an active owner for the rwsem.\n- Thread C tries to acquire the rwsem for read, notices that thread B already\n  tried to acquire it.\n- Thread C grabs the spinlock and queues itself on the wait queue.\n- Thread B grabs the spinlock and queues itself behind C. At this point A is\n  the only remaining active owner on the rwsem.\n\nIn this situation thread B could notice that it was the last active writer\non the rwsem, and decide to wake C to let it proceed in parallel with A\nsince they both only want the rwsem for read.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Mike Waychison \u003cmikew@google.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fd41b33435ada87323cc86b50959fbffe35192c8",
      "tree": "6d2a7e79557e5de21bc91fce5b939c1f7dc1355c",
      "parents": [
        "70bdc6e0644f3535e93bac5c364ca199397e507e"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Aug 09 17:21:18 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:11 2010 -0700"
      },
      "message": "rwsem: let RWSEM_WAITING_BIAS represent any number of waiting threads\n\nPreviously each waiting thread added a bias of RWSEM_WAITING_BIAS.  With\nthis change, the bias is added only once to indicate that the wait list is\nnon-empty.\n\nThis has a few nice properties which will be used in following changes:\n- when the spinlock is held and the waiter list is known to be non-empty,\n  count \u003c RWSEM_WAITING_BIAS  \u003c\u003d\u003e  there is an active writer on that sem\n- count \u003d\u003d RWSEM_WAITING_BIAS  \u003c\u003d\u003e  there are waiting threads and no\n                                     active readers/writers on that sem\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Mike Waychison \u003cmikew@google.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "70bdc6e0644f3535e93bac5c364ca199397e507e",
      "tree": "af5264cc57fcd69deae10fdd67cb62461111aa4c",
      "parents": [
        "345af7bf3304410634c21ada4664fda83d4d9a16"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Aug 09 17:21:17 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:10 2010 -0700"
      },
      "message": "rwsem: lighter active count checks when waking up readers\n\nIn __rwsem_do_wake(), we can skip the active count check unless we come\nthere from up_xxxx().  Also when checking the active count, it is not\nactually necessary to increment it; this allows us to get rid of the read\nside undo code and simplify the calculation of the final rwsem count\nadjustment once we\u0027ve counted the reader threads to wake.\n\nThe basic observation is the following.  When there are waiter threads on\na rwsem and the spinlock is held, other threads can only increment the\nactive count by trying to grab the rwsem in down_xxxx().  However\ndown_xxxx() will notice there are waiter threads and take the down_failed\npath, blocking to acquire the spinlock on the way there.  Therefore, a\nthread observing an active count of zero with waiters queued and the\nspinlock held, is protected against other threads acquiring the rwsem\nuntil it wakes the last waiter or releases the spinlock.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Mike Waychison \u003cmikew@google.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "345af7bf3304410634c21ada4664fda83d4d9a16",
      "tree": "1fd8b49ef79796e561cce19794af371099f5e7ca",
      "parents": [
        "7721fea3d0fd93fb4d000eb737b444369358d6d3"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Aug 09 17:21:15 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:10 2010 -0700"
      },
      "message": "rwsem: fully separate code paths to wake writers vs readers\n\nThis is in preparation for later changes in the series.\n\nIn __rwsem_do_wake(), the first queued waiter is checked first in order to\ndetermine whether it\u0027s a writer or a reader.  The code paths diverge at\nthis point.  The code that checks and increments the rwsem active count is\nduplicated on both sides - the point is that later changes in the series\nwill be able to independently modify both sides.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Mike Waychison \u003cmikew@google.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ea98eed9bcb62d1319db8b1210712c6a110a886c",
      "tree": "fa394336975862de7a1ca99f890eac4d3098356f",
      "parents": [
        "559b140a36613bb5b63f258b2ad833dad8cd11d9"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Mon Aug 09 17:20:56 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:09 2010 -0700"
      },
      "message": "flex_array: add helpers to get and put to make pointers easy to use\n\nGetting and putting arrays of pointers with flex arrays is a PITA.  You\nhave to remember to pass \u0026ptr to the _put and you have to do weird and\nwacky casting to get the ptr back from the _get.  Add two functions\nflex_array_get_ptr() and flex_array_put_ptr() to handle all of the magic.\n\n[akpm@linux-foundation.org: simplification suggested by Joe]\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "559b140a36613bb5b63f258b2ad833dad8cd11d9",
      "tree": "5059f8a551b1cfb11f3a72f00b5f3ee584dd0a61",
      "parents": [
        "e3f76e3386ee38e3654e81c2f3933ccca1f2d639"
      ],
      "author": {
        "name": "Michal Nazarewicz",
        "email": "mina86@mina86.com",
        "time": "Mon Aug 09 17:20:54 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:09 2010 -0700"
      },
      "message": "lib: vsprintf: useless strlen() removed\n\nThe strict_strtoul() and strict_strtoull() functions used strlen() to\ncheck argument\u0027s length in a situation where it wasn\u0027t strictly necessary\n\nSigned-off-by: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nCc: \"Yi Yang\" \u003cyi.y.yang@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": "e3f76e3386ee38e3654e81c2f3933ccca1f2d639",
      "tree": "180f192f01aca166b30a1f1a119e9d0e9fb3714b",
      "parents": [
        "55817d3d5c480f96589359c10ad93fa2e707a029"
      ],
      "author": {
        "name": "Baruch Siach",
        "email": "baruch@tkos.co.il",
        "time": "Mon Aug 09 17:20:53 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:08 2010 -0700"
      },
      "message": "list debugging: warn when deleting a deleted entry\n\nUse the magic LIST_POISON* values to detect an incorrect use of list_del\non a deleted entry.  This DEBUG_LIST specific warning is easier to\nunderstand than the generic Oops message caused by LIST_POISON\ndereference.\n\nSigned-off-by: Baruch Siach \u003cbaruch@tkos.co.il\u003e\nCc: Dave Jones \u003cdavej@codemonkey.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e269b085175acf03fc687a7416b9fd84aa9c6c23",
      "tree": "4f07bf03153450695a1e34073413879173cdb2b4",
      "parents": [
        "85c9fe8fcaf630225b26047b3a7cc5167739eced"
      ],
      "author": {
        "name": "Anton Blanchard",
        "email": "anton@samba.org",
        "time": "Mon Aug 09 17:20:23 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:05 2010 -0700"
      },
      "message": "iommu: inline iommu_num_pages\n\nA profile of a network benchmark showed iommu_num_pages rather high up:\n\n     0.52%  iommu_num_pages\n\nLooking at the profile, an integer divide is taking almost all of the time:\n\n      %\n         :      c000000000376ea4 \u003c.iommu_num_pages\u003e:\n    1.93 :      c000000000376ea4:       fb e1 ff f8     std     r31,-8(r1)\n    0.00 :      c000000000376ea8:       f8 21 ff c1     stdu    r1,-64(r1)\n    0.00 :      c000000000376eac:       7c 3f 0b 78     mr      r31,r1\n    3.86 :      c000000000376eb0:       38 84 ff ff     addi    r4,r4,-1\n    0.00 :      c000000000376eb4:       38 05 ff ff     addi    r0,r5,-1\n    0.00 :      c000000000376eb8:       7c 84 2a 14     add     r4,r4,r5\n   46.95 :      c000000000376ebc:       7c 00 18 38     and     r0,r0,r3\n   45.66 :      c000000000376ec0:       7c 84 02 14     add     r4,r4,r0\n    0.00 :      c000000000376ec4:       7c 64 2b 92     divdu   r3,r4,r5\n    0.00 :      c000000000376ec8:       38 3f 00 40     addi    r1,r31,64\n    0.00 :      c000000000376ecc:       eb e1 ff f8     ld      r31,-8(r1)\n    1.61 :      c000000000376ed0:       4e 80 00 20     blr\n\nSince every caller of iommu_num_pages passes in a constant power of two\nwe can inline this such that the divide is replaced by a shift. The\nentire function is only a few instructions once optimised, so it is\na good candidate for inlining overall.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nCc: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ebf8aa44beed48cd17893a83d92a4403e5f9d9e2",
      "tree": "03607aa1cdbbb7fda935edb28bb3ad06423852ac",
      "parents": [
        "44ab57a06ded284db6ccdefc6b76eddb1c34d7ed"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Aug 09 17:19:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:59 2010 -0700"
      },
      "message": "radix-tree: omplement function radix_tree_range_tag_if_tagged\n\nImplement function for setting one tag if another tag is set for each item\nin given range.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "27f5e0f694fd0600274a76854636c0749e3bb1f6",
      "tree": "0d3a0387b42eb0a830fa5ba896a205b2a3807b8b",
      "parents": [
        "4e60c86bd9e5a7110ed28874d0b6592186550ae8"
      ],
      "author": {
        "name": "Tim Chen",
        "email": "tim.c.chen@linux.intel.com",
        "time": "Mon Aug 09 17:19:04 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:58 2010 -0700"
      },
      "message": "tmpfs: add accurate compare function to percpu_counter library\n\nAdd percpu_counter_compare that allows for a quick but accurate comparison\nof percpu_counter with a given value.\n\nA rough count is provided by the count field in percpu_counter structure,\nwithout accounting for the other values stored in individual cpu counters.\n\nThe actual count is a sum of count and the cpu counters.  However, count\nfield is never different from the actual value by a factor of\nbatch*num_online_cpu.  We do not need to get actual count for comparison\nif count is different from the given value by this factor and allows for\nquick comparison without summing up all the per cpu counters.\n\nSigned-off-by: Tim Chen \u003ctim.c.chen@linux.intel.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "2144381da478cc4aa3a29ee29b0c5e6ddaaced14"
}
