)]}'
{
  "log": [
    {
      "commit": "5209f08dc8e5f520ca81b87fa9a7142f58a109f4",
      "tree": "744c8a417cfd530c1a1244f3a8f2ab09c018828b",
      "parents": [
        "e2862c9470beb842d3f1c1965b03a2112114c160"
      ],
      "author": {
        "name": "Jonas Bonn",
        "email": "jonas.bonn@gmail.com",
        "time": "Sat Oct 25 11:49:20 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 27 11:39:03 2008 +0100"
      },
      "message": "asm-generic: define DIE_OOPS in asm-generic\n\nImpact: build fix\n\nDIE_OOPS is now used in the generic trace handling code so it needs to\nbe defined for all architectures.  Define it in asm-generic so that it\u0027s\navailable to all by default and doesn\u0027t cause build errors for\narchitectures that rely on the generic implementation.\n\nSigned-off-by: Jonas Bonn \u003cjonas.bonn@gmail.com\u003e\nAcked-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a8ddac7e53e89cb877965097d05adfeb1c91def3",
      "tree": "db4ee686e50f7fb57b0cef20e0a8e7f06151e317",
      "parents": [
        "5a439c565799cb8d290d71ce375e86be64d43a4b"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 21 10:59:15 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 09:18:20 2008 -0700"
      },
      "message": "mutex: speed up generic mutex implementations\n\n- atomic operations which both modify the variable and return something imply\n  full smp memory barriers before and after the memory operations involved\n  (failing atomic_cmpxchg, atomic_add_unless, etc don\u0027t imply a barrier because\n  they don\u0027t modify the target). See Documentation/atomic_ops.txt.\n  So remove extra barriers and branches.\n\n- All architectures support atomic_cmpxchg. This has no relation to\n  __HAVE_ARCH_CMPXCHG. We can just take the atomic_cmpxchg path unconditionally\n\nThis reduces a simple single threaded fastpath lock+unlock test from 590 cycles\nto 203 cycles on a ppc970 system.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f6f286f33e843862c559bfea9281318c4cdec6b0",
      "tree": "e03836de9b23d76994365657af06a8465db7acea",
      "parents": [
        "5f41b8cdc6ef33b3432cee36264d628a80398362"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Mon Oct 20 14:41:03 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 15:29:57 2008 -0700"
      },
      "message": "fix WARN() for PPC\n\npowerpc doesn\u0027t use the generic WARN_ON infrastructure.  The newly\nintroduced WARN() as a result didn\u0027t print the message, this patch adds\nthe printk for this specific case.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "92b29b86fe2e183d44eb467e5e74a5f718ef2e43",
      "tree": "1bac8a1aa11d47322b66d10ec3a370016d843d06",
      "parents": [
        "b9d7ccf56be1ac77b71a284a1c0e6337f9a7aff0",
        "98d9c66ab07471006fd7910cb16453581c41a3e7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 13:35:07 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 13:35:07 2008 -0700"
      },
      "message": "Merge branch \u0027tracing-v28-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-v28-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (131 commits)\n  tracing/fastboot: improve help text\n  tracing/stacktrace: improve help text\n  tracing/fastboot: fix initcalls disposition in bootgraph.pl\n  tracing/fastboot: fix bootgraph.pl initcall name regexp\n  tracing/fastboot: fix issues and improve output of bootgraph.pl\n  tracepoints: synchronize unregister static inline\n  tracepoints: tracepoint_synchronize_unregister()\n  ftrace: make ftrace_test_p6nop disassembler-friendly\n  markers: fix synchronize marker unregister static inline\n  tracing/fastboot: add better resolution to initcall debug/tracing\n  trace: add build-time check to avoid overrunning hex buffer\n  ftrace: fix hex output mode of ftrace\n  tracing/fastboot: fix initcalls disposition in bootgraph.pl\n  tracing/fastboot: fix printk format typo in boot tracer\n  ftrace: return an error when setting a nonexistent tracer\n  ftrace: make some tracers reentrant\n  ring-buffer: make reentrant\n  ring-buffer: move page indexes into page headers\n  tracing/fastboot: only trace non-module initcalls\n  ftrace: move pc counter in irqtrace\n  ...\n\nManually fix conflicts:\n - init/main.c: initcall tracing\n - kernel/module.c: verbose level vs tracepoints\n - scripts/bootgraph.pl: fallout from cherry-picking commits.\n"
    },
    {
      "commit": "357c6e63590895dc87cc9300f5a1c27544ea69e8",
      "tree": "707cd1a80287e0f8f6f9d2879c322b2e71b2f995",
      "parents": [
        "fe20ba70abf7d6e5855c3dacc729490b3d0d077f"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Sat Oct 18 20:28:42 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:41 2008 -0700"
      },
      "message": "rtc: use bcd2bin/bin2bcd\n\nChange various rtc related code to use the new bcd2bin/bin2bcd functions\ninstead of the obsolete BCD_TO_BIN/BIN_TO_BCD/BCD2BIN/BIN2BCD macros.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c813b4e16ead3c3df98ac84419d4df2adf33fe01",
      "tree": "2ca4a5b6966d833b6149e3dda7a4e85d1255779c",
      "parents": [
        "c8d8a2321f9c4ee18fbcc399fdc2a77e580a03b9",
        "02683ffdf655b4ae15245376ba6fea6d9e5829a6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 12:40:26 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 12:40:26 2008 -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: (46 commits)\n  UIO: Fix mapping of logical and virtual memory\n  UIO: add automata sercos3 pci card support\n  UIO: Change driver name of uio_pdrv\n  UIO: Add alignment warnings for uio-mem\n  Driver core: add bus_sort_breadthfirst() function\n  NET: convert the phy_device file to use bus_find_device_by_name\n  kobject: Cleanup kobject_rename and !CONFIG_SYSFS\n  kobject: Fix kobject_rename and !CONFIG_SYSFS\n  sysfs: Make dir and name args to sysfs_notify() const\n  platform: add new device registration helper\n  sysfs: use ilookup5() instead of ilookup5_nowait()\n  PNP: create device attributes via default device attributes\n  Driver core: make bus_find_device_by_name() more robust\n  usb: turn dev_warn+WARN_ON combos into dev_WARN\n  debug: use dev_WARN() rather than WARN_ON() in device_pm_add()\n  debug: Introduce a dev_WARN() function\n  sysfs: fix deadlock\n  device model: Do a quickcheck for driver binding before doing an expensive check\n  Driver core: Fix cleanup in device_create_vargs().\n  Driver core: Clarify device cleanup.\n  ...\n"
    },
    {
      "commit": "35e8bb5175c1a6ff6253f1a2acb30bfe52a2f500",
      "tree": "88a1e9695824f88efef3340fd53f8dbe576f5852",
      "parents": [
        "93a22f8b95756c53e80308820892119c910d2739"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Wed Oct 15 22:03:16 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:40 2008 -0700"
      },
      "message": "gpiolib: request/free hooks\n\nAdd a new internal mechanism to gpiolib to support low power\noperations by letting gpio_chip instances see when their GPIOs\nare in use.  When no GPIOs are active, chips may be able to\nenter lower powered runtime states by disabling clocks and/or\npower domains.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: \"Magnus Damm\" \u003cmagnus.damm@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": "0f6d504e73b49374c6093efe6aa60ab55058248a",
      "tree": "414c9e591ba23b2126bc9cad4e0efb1b60693b2d",
      "parents": [
        "2f8d11971b9f54362437ce70f4d1911f0996d542"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Wed Oct 15 22:03:14 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:40 2008 -0700"
      },
      "message": "gpiolib: gpio_to_irq() hooks\n\nAdd a new gpiolib mechanism: gpio_chip instances can provide mappings\nbetween their (input) GPIOs and any associated IRQs.  This makes it easier\nfor platforms to support IRQs that are provided by board-specific external\nchips instead of as part of their core (such as SOC-integrated GPIOs).\n\nAlso update the irq_to_gpio() description, saying to avoid it because it\u0027s\nnot always supported.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4fd5463c43d75ec919e27abdcfde1b199c19541e",
      "tree": "c9cbc30718184ebc52a912786c4f9856f00bddbb",
      "parents": [
        "1716b0fea36c2be628440c1050182a1a1e9caae7"
      ],
      "author": {
        "name": "Dmitry Baryshkov",
        "email": "dbaryshkov@gmail.com",
        "time": "Wed Oct 15 22:03:10 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:40 2008 -0700"
      },
      "message": "gpio: make gpiochip label const\n\nMark gpiochip label as a const char pointer.  Fixes things like\n\narch/arm/common/scoop.c: In function `scoop_probe\u0027:\narch/arm/common/scoop.c:250: warning: assignment discards qualifiers from pointer target type\n\nSigned-off-by: Dmitry Baryshkov \u003cdbaryshkov@gmail.com\u003e\nAcked-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d5c003b4d1690e666dbab02bc8e705947baa848c",
      "tree": "868edee78b635698429173a95ac4215b932f0155",
      "parents": [
        "8e9c7716c138fa82d919bfe1115ec8c938e90918"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Oct 15 22:01:24 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:30 2008 -0700"
      },
      "message": "include: replace __FUNCTION__ with __func__\n\n__FUNCTION__ is gcc-specific, use __func__\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@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": "346e15beb5343c2eb8216d820f2ed8f150822b08",
      "tree": "6433cf2980bbfbed4a9482c5edb156fc8371e071",
      "parents": [
        "33376c1c043c05077b4ac79c33804266f6c45e49"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Tue Aug 12 16:46:19 2008 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Oct 16 09:24:47 2008 -0700"
      },
      "message": "driver core: basic infrastructure for per-module dynamic debug messages\n\nBase infrastructure to enable per-module debug messages.\n\nI\u0027ve introduced CONFIG_DYNAMIC_PRINTK_DEBUG, which when enabled centralizes\ncontrol of debugging statements on a per-module basis in one /proc file,\ncurrently, \u003cdebugfs\u003e/dynamic_printk/modules. When, CONFIG_DYNAMIC_PRINTK_DEBUG,\nis not set, debugging statements can still be enabled as before, often by\ndefining \u0027DEBUG\u0027 for the proper compilation unit. Thus, this patch set has no\naffect when CONFIG_DYNAMIC_PRINTK_DEBUG is not set.\n\nThe infrastructure currently ties into all pr_debug() and dev_dbg() calls. That\nis, if CONFIG_DYNAMIC_PRINTK_DEBUG is set, all pr_debug() and dev_dbg() calls\ncan be dynamically enabled/disabled on a per-module basis.\n\nFuture plans include extending this functionality to subsystems, that define \ntheir own debug levels and flags.\n\nUsage:\n\nDynamic debugging is controlled by the debugfs file, \n\u003cdebugfs\u003e/dynamic_printk/modules. This file contains a list of the modules that\ncan be enabled. The format of the file is as follows:\n\n\t\u003cmodule_name\u003e \u003cenabled\u003d0/1\u003e\n\t\t.\n\t\t.\n\t\t.\n\n\t\u003cmodule_name\u003e : Name of the module in which the debug call resides\n\t\u003cenabled\u003d0/1\u003e : whether the messages are enabled or not\n\nFor example:\n\n\tsnd_hda_intel enabled\u003d0\n\tfixup enabled\u003d1\n\tdriver enabled\u003d0\n\nEnable a module:\n\n\t$echo \"set enabled\u003d1 \u003cmodule_name\u003e\" \u003e dynamic_printk/modules\n\nDisable a module:\n\n\t$echo \"set enabled\u003d0 \u003cmodule_name\u003e\" \u003e dynamic_printk/modules\n\nEnable all modules:\n\n\t$echo \"set enabled\u003d1 all\" \u003e dynamic_printk/modules\n\nDisable all modules:\n\n\t$echo \"set enabled\u003d0 all\" \u003e dynamic_printk/modules\n\nFinally, passing \"dynamic_printk\" at the command line enables\ndebugging for all modules. This mode can be turned off via the above\ndisable command.\n\n[gkh: minor cleanups and tweaks to make the build work quietly]\n\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n"
    },
    {
      "commit": "8da3821ba5634497da63d58a69e24a97697c4a2b",
      "tree": "47d4d097b1cd2aafae2e3596a9ae0d1293228782",
      "parents": [
        "8b1fa1d7b22f386747c7b78b918d4c680c16066f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Aug 14 15:45:07 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:34:40 2008 +0200"
      },
      "message": "ftrace: create __mcount_loc section\n\nThis patch creates a section in the kernel called \"__mcount_loc\".\nThis will hold a list of pointers to the mcount relocation for\neach call site of mcount.\n\nFor example:\n\nobjdump -dr init/main.o\n[...]\nDisassembly of section .text:\n\n0000000000000000 \u003cdo_one_initcall\u003e:\n   0:   55                      push   %rbp\n[...]\n000000000000017b \u003cinit_post\u003e:\n 17b:   55                      push   %rbp\n 17c:   48 89 e5                mov    %rsp,%rbp\n 17f:   53                      push   %rbx\n 180:   48 83 ec 08             sub    $0x8,%rsp\n 184:   e8 00 00 00 00          callq  189 \u003cinit_post+0xe\u003e\n                        185: R_X86_64_PC32      mcount+0xfffffffffffffffc\n[...]\n\nWe will add a section to point to each function call.\n\n   .section __mcount_loc,\"a\",@progbits\n[...]\n   .quad .text + 0x185\n[...]\n\nThe offset to of the mcount call site in init_post is an offset from\nthe start of the section, and not the start of the function init_post.\nThe mcount relocation is at the call site 0x185 from the start of the\n.text section.\n\n  .text + 0x185  \u003d\u003d init_post + 0xa\n\nWe need a way to add this __mcount_loc section in a way that we do not\nlose the relocations after final link.  The .text section here will\nbe attached to all other .text sections after final link and the\noffsets will be meaningless.  We need to keep track of where these\n.text sections are.\n\nTo do this, we use the start of the first function in the section.\ndo_one_initcall.  We can make a tmp.s file with this function as a reference\nto the start of the .text section.\n\n   .section __mcount_loc,\"a\",@progbits\n[...]\n   .quad do_one_initcall + 0x185\n[...]\n\nThen we can compile the tmp.s into a tmp.o\n\n  gcc -c tmp.s -o tmp.o\n\nAnd link it into back into main.o.\n\n  ld -r main.o tmp.o -o tmp_main.o\n  mv tmp_main.o main.o\n\nBut we have a problem.  What happens if the first function in a section\nis not exported, and is a static function. The linker will not let\nthe tmp.o use it.  This case exists in main.o as well.\n\nDisassembly of section .init.text:\n\n0000000000000000 \u003cset_reset_devices\u003e:\n   0:   55                      push   %rbp\n   1:   48 89 e5                mov    %rsp,%rbp\n   4:   e8 00 00 00 00          callq  9 \u003cset_reset_devices+0x9\u003e\n                        5: R_X86_64_PC32        mcount+0xfffffffffffffffc\n\nThe first function in .init.text is a static function.\n\n00000000000000a8 t __setup_set_reset_devices\n000000000000105f t __setup_str_set_reset_devices\n0000000000000000 t set_reset_devices\n\nThe lowercase \u0027t\u0027 means that set_reset_devices is local and is not exported.\nIf we simply try to link the tmp.o with the set_reset_devices we end\nup with two symbols: one local and one global.\n\n .section __mcount_loc,\"a\",@progbits\n .quad set_reset_devices + 0x10\n\n00000000000000a8 t __setup_set_reset_devices\n000000000000105f t __setup_str_set_reset_devices\n0000000000000000 t set_reset_devices\n                 U set_reset_devices\n\nWe still have an undefined reference to set_reset_devices, and if we try\nto compile the kernel, we will end up with an undefined reference to\nset_reset_devices, or even worst, it could be exported someplace else,\nand then we will have a reference to the wrong location.\n\nTo handle this case, we make an intermediate step using objcopy.\nWe convert set_reset_devices into a global exported symbol before linking\nit with tmp.o and set it back afterwards.\n\n00000000000000a8 t __setup_set_reset_devices\n000000000000105f t __setup_str_set_reset_devices\n0000000000000000 T set_reset_devices\n\n00000000000000a8 t __setup_set_reset_devices\n000000000000105f t __setup_str_set_reset_devices\n0000000000000000 T set_reset_devices\n\n00000000000000a8 t __setup_set_reset_devices\n000000000000105f t __setup_str_set_reset_devices\n0000000000000000 t set_reset_devices\n\nNow we have a section in main.o called __mcount_loc that we can place\nsomewhere in the kernel using vmlinux.ld.S and access it to convert\nall these locations that call mcount into nops before starting SMP\nand thus, eliminating the need to do this with kstop_machine.\n\nNote, A well documented perl script (scripts/recordmcount.pl) is used\nto do all this in one location.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "97e1c18e8d17bd87e1e383b2e9d9fc740332c8e2",
      "tree": "5c6bfce8bacf04c2993a0029788a1370a483afa6",
      "parents": [
        "e7f2f9918c0e97aa98ba147ca387e2c7238f0711"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Fri Jul 18 12:16:16 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:28:28 2008 +0200"
      },
      "message": "tracing: Kernel Tracepoints\n\nImplementation of kernel tracepoints. Inspired from the Linux Kernel\nMarkers. Allows complete typing verification by declaring both tracing\nstatement inline functions and probe registration/unregistration static\ninline functions within the same macro \"DEFINE_TRACE\". No format string\nis required. See the tracepoint Documentation and Samples patches for\nusage examples.\n\nTaken from the documentation patch :\n\n\"A tracepoint placed in code provides a hook to call a function (probe)\nthat you can provide at runtime. A tracepoint can be \"on\" (a probe is\nconnected to it) or \"off\" (no probe is attached). When a tracepoint is\n\"off\" it has no effect, except for adding a tiny time penalty (checking\na condition for a branch) and space penalty (adding a few bytes for the\nfunction call at the end of the instrumented function and adds a data\nstructure in a separate section).  When a tracepoint is \"on\", the\nfunction you provide is called each time the tracepoint is executed, in\nthe execution context of the caller. When the function provided ends its\nexecution, it returns to the caller (continuing from the tracepoint\nsite).\n\nYou can put tracepoints at important locations in the code. They are\nlightweight hooks that can pass an arbitrary number of parameters, which\nprototypes are described in a tracepoint declaration placed in a header\nfile.\"\n\nAddition and removal of tracepoints is synchronized by RCU using the\nscheduler (and preempt_disable) as guarantees to find a quiescent state\n(this is really RCU \"classic\"). The update side uses rcu_barrier_sched()\nwith call_rcu_sched() and the read/execute side uses\n\"preempt_disable()/preempt_enable()\".\n\nWe make sure the previous array containing probes, which has been\nscheduled for deletion by the rcu callback, is indeed freed before we\nproceed to the next update. It therefore limits the rate of modification\nof a single tracepoint to one update per RCU period. The objective here\nis to permit fast batch add/removal of probes on _different_\ntracepoints.\n\nChangelog :\n- Use #name \":\" #proto as string to identify the tracepoint in the\n  tracepoint table. This will make sure not type mismatch happens due to\n  connexion of a probe with the wrong type to a tracepoint declared with\n  the same name in a different header.\n- Add tracepoint_entry_free_old.\n- Change __TO_TRACE to get rid of the \u0027i\u0027 iterator.\n\nMasami Hiramatsu \u003cmhiramat@redhat.com\u003e :\nTested on x86-64.\n\nPerformance impact of a tracepoint : same as markers, except that it\nadds about 70 bytes of instructions in an unlikely branch of each\ninstrumented function (the for loop, the stack setup and the function\ncall). It currently adds a memory read, a test and a conditional branch\nat the instrumentation site (in the hot path). Immediate values will\neventually change this into a load immediate, test and branch, which\nremoves the memory read which will make the i-cache impact smaller\n(changing the memory read for a load immediate removes 3-4 bytes per\nsite on x86_32 (depending on mov prefixes), or 7-8 bytes on x86_64, it\nalso saves the d-cache hit).\n\nAbout the performance impact of tracepoints (which is comparable to\nmarkers), even without immediate values optimizations, tests done by\nHideo Aoki on ia64 show no regression. His test case was using hackbench\non a kernel where scheduler instrumentation (about 5 events in code\nscheduler code) was added.\n\nQuoting Hideo Aoki about Markers :\n\nI evaluated overhead of kernel marker using linux-2.6-sched-fixes git\ntree, which includes several markers for LTTng, using an ia64 server.\n\nWhile the immediate trace mark feature isn\u0027t implemented on ia64, there\nis no major performance regression. So, I think that we don\u0027t have any\nissues to propose merging marker point patches into Linus\u0027s tree from\nthe viewpoint of performance impact.\n\nI prepared two kernels to evaluate. The first one was compiled without\nCONFIG_MARKERS. The second one was enabled CONFIG_MARKERS.\n\nI downloaded the original hackbench from the following URL:\nhttp://devresources.linux-foundation.org/craiger/hackbench/src/hackbench.c\n\nI ran hackbench 5 times in each condition and calculated the average and\ndifference between the kernels.\n\n    The parameter of hackbench: every 50 from 50 to 800\n    The number of CPUs of the server: 2, 4, and 8\n\nBelow is the results. As you can see, major performance regression\nwasn\u0027t found in any case. Even if number of processes increases,\ndifferences between marker-enabled kernel and marker- disabled kernel\ndoesn\u0027t increase. Moreover, if number of CPUs increases, the differences\ndoesn\u0027t increase either.\n\nCuriously, marker-enabled kernel is better than marker-disabled kernel\nin more than half cases, although I guess it comes from the difference\nof memory access pattern.\n\n* 2 CPUs\n\nNumber of | without      | with         | diff     | diff    |\nprocesses | Marker [Sec] | Marker [Sec] |   [Sec]  |   [%]   |\n--------------------------------------------------------------\n       50 |      4.811   |       4.872  |  +0.061  |  +1.27  |\n      100 |      9.854   |      10.309  |  +0.454  |  +4.61  |\n      150 |     15.602   |      15.040  |  -0.562  |  -3.6   |\n      200 |     20.489   |      20.380  |  -0.109  |  -0.53  |\n      250 |     25.798   |      25.652  |  -0.146  |  -0.56  |\n      300 |     31.260   |      30.797  |  -0.463  |  -1.48  |\n      350 |     36.121   |      35.770  |  -0.351  |  -0.97  |\n      400 |     42.288   |      42.102  |  -0.186  |  -0.44  |\n      450 |     47.778   |      47.253  |  -0.526  |  -1.1   |\n      500 |     51.953   |      52.278  |  +0.325  |  +0.63  |\n      550 |     58.401   |      57.700  |  -0.701  |  -1.2   |\n      600 |     63.334   |      63.222  |  -0.112  |  -0.18  |\n      650 |     68.816   |      68.511  |  -0.306  |  -0.44  |\n      700 |     74.667   |      74.088  |  -0.579  |  -0.78  |\n      750 |     78.612   |      79.582  |  +0.970  |  +1.23  |\n      800 |     85.431   |      85.263  |  -0.168  |  -0.2   |\n--------------------------------------------------------------\n\n* 4 CPUs\n\nNumber of | without      | with         | diff     | diff    |\nprocesses | Marker [Sec] | Marker [Sec] |   [Sec]  |   [%]   |\n--------------------------------------------------------------\n       50 |      2.586   |       2.584  |  -0.003  |  -0.1   |\n      100 |      5.254   |       5.283  |  +0.030  |  +0.56  |\n      150 |      8.012   |       8.074  |  +0.061  |  +0.76  |\n      200 |     11.172   |      11.000  |  -0.172  |  -1.54  |\n      250 |     13.917   |      14.036  |  +0.119  |  +0.86  |\n      300 |     16.905   |      16.543  |  -0.362  |  -2.14  |\n      350 |     19.901   |      20.036  |  +0.135  |  +0.68  |\n      400 |     22.908   |      23.094  |  +0.186  |  +0.81  |\n      450 |     26.273   |      26.101  |  -0.172  |  -0.66  |\n      500 |     29.554   |      29.092  |  -0.461  |  -1.56  |\n      550 |     32.377   |      32.274  |  -0.103  |  -0.32  |\n      600 |     35.855   |      35.322  |  -0.533  |  -1.49  |\n      650 |     39.192   |      38.388  |  -0.804  |  -2.05  |\n      700 |     41.744   |      41.719  |  -0.025  |  -0.06  |\n      750 |     45.016   |      44.496  |  -0.520  |  -1.16  |\n      800 |     48.212   |      47.603  |  -0.609  |  -1.26  |\n--------------------------------------------------------------\n\n* 8 CPUs\n\nNumber of | without      | with         | diff     | diff    |\nprocesses | Marker [Sec] | Marker [Sec] |   [Sec]  |   [%]   |\n--------------------------------------------------------------\n       50 |      2.094   |       2.072  |  -0.022  |  -1.07  |\n      100 |      4.162   |       4.273  |  +0.111  |  +2.66  |\n      150 |      6.485   |       6.540  |  +0.055  |  +0.84  |\n      200 |      8.556   |       8.478  |  -0.078  |  -0.91  |\n      250 |     10.458   |      10.258  |  -0.200  |  -1.91  |\n      300 |     12.425   |      12.750  |  +0.325  |  +2.62  |\n      350 |     14.807   |      14.839  |  +0.032  |  +0.22  |\n      400 |     16.801   |      16.959  |  +0.158  |  +0.94  |\n      450 |     19.478   |      19.009  |  -0.470  |  -2.41  |\n      500 |     21.296   |      21.504  |  +0.208  |  +0.98  |\n      550 |     23.842   |      23.979  |  +0.137  |  +0.57  |\n      600 |     26.309   |      26.111  |  -0.198  |  -0.75  |\n      650 |     28.705   |      28.446  |  -0.259  |  -0.9   |\n      700 |     31.233   |      31.394  |  +0.161  |  +0.52  |\n      750 |     34.064   |      33.720  |  -0.344  |  -1.01  |\n      800 |     36.320   |      36.114  |  -0.206  |  -0.57  |\n--------------------------------------------------------------\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nAcked-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nAcked-by: \u0027Peter Zijlstra\u0027 \u003cpeterz@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e758936e02700ff88a0b08b722a3847b95283ef2",
      "tree": "50c919bef1b459a778b85159d5929de95b6c4a01",
      "parents": [
        "239cfbde1f5843c4a24199f117d5f67f637d72d5",
        "4480f15b3306f43bbb0310d461142b4e897ca45b"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Oct 13 17:13:56 2008 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Oct 13 17:13:56 2008 +0100"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6\n\nConflicts:\n\n\tinclude/asm-x86/statfs.h\n"
    },
    {
      "commit": "206855c321adee56db3946ca09a5887cddb9d598",
      "tree": "13a2729d4d0e37170552bd9ad3c6bba71ba0c55c",
      "parents": [
        "e8d3f455de4f42d4bab2f6f1aeb2cf3bd18eb508",
        "cb58ffc3889f0545628f138f849e759a331b8ddc"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Oct 12 11:32:17 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Oct 12 11:32:17 2008 +0200"
      },
      "message": "Merge branch \u0027x86/urgent\u0027 into core/signal\n\nConflicts:\n\tarch/x86/kernel/signal_64.c\n"
    },
    {
      "commit": "0afe2db21394820d32646a695eccf3fbfe6ab5c7",
      "tree": "6d925383f444a242ebc77d167420efb7e6ad8d99",
      "parents": [
        "d84705969f898f294bc3fc32eca33580f14105bd",
        "43603c8df97f246e8be7b9cc92a8f968a85108bd"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Oct 11 20:23:20 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Oct 11 20:23:20 2008 +0200"
      },
      "message": "Merge branch \u0027x86/unify-cpu-detect\u0027 into x86-v28-for-linus-phase4-D\n\nConflicts:\n\tarch/x86/kernel/cpu/common.c\n\tarch/x86/kernel/signal_64.c\n\tinclude/asm-x86/cpufeature.h\n"
    },
    {
      "commit": "da654b74bda14c45a7d98c731bf3c1a43b6b74e2",
      "tree": "e3cc6f1a1f7300c07e59c9091cd2ede0c5da8d4d",
      "parents": [
        "101d5b713700b902b1c200cdd1925c3cb7d34567"
      ],
      "author": {
        "name": "Srinivasa Ds",
        "email": "srinivasa@in.ibm.com",
        "time": "Tue Sep 23 15:23:52 2008 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 23 13:26:52 2008 +0200"
      },
      "message": "signals: demultiplexing SIGTRAP signal\n\nCurrently a SIGTRAP can denote any one of below reasons.\n\t- Breakpoint hit\n\t- H/W debug register hit\n\t- Single step\n\t- Signal sent through kill() or rasie()\n\nArchitectures like powerpc/parisc provides infrastructure to demultiplex\nSIGTRAP signal by passing down the information for receiving SIGTRAP through\nsi_code of siginfot_t structure. Here is an attempt is generalise this\ninfrastructure by extending it to x86 and x86_64 archs.\n\nSigned-off-by: Srinivasa DS \u003csrinivasa@in.ibm.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: akpm@linux-foundation.org\nCc: paulus@samba.org\nCc: linuxppc-dev@ozlabs.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "45e9c0de2e86485f8b6633fd64ab19cfbff167f6",
      "tree": "0d4b478f259ea083e3f94363eebdf518413162ae",
      "parents": [
        "c8b0f4382cd7b5e58b17bd30d16898b7f249813c"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Mon Sep 15 16:43:18 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 16 19:39:33 2008 -0700"
      },
      "message": "warn: Turn the netdev timeout WARN_ON() into a WARN()\n\nthis patch turns the netdev timeout WARN_ON_ONCE() into a WARN_ONCE(),\nso that the device and driver names are inside the warning message.\nThis helps automated tools like kerneloops.org to collect the data\nand do statistics, as well as making it more likely that humans\ncut-n-paste the important message as part of a bugreport.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "59c37bf8924c30fbac7ebb66a1d92dcb9f05f6b1",
      "tree": "2ffc3f2ce655806424d022f3a4daec7665ab888f",
      "parents": [
        "ec70cae8698632917f06110fdb70c6364281ecc6",
        "adee14b2e1557d0a8559f29681732d05a89dfc35"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 10 14:00:45 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 10 14:00:45 2008 +0200"
      },
      "message": "Merge commit \u0027v2.6.27-rc6\u0027 into x86/unify-cpu-detect\n\nConflicts:\n\tarch/x86/kernel/cpu/amd.c\n\tarch/x86/kernel/cpu/common.c\n\tarch/x86/kernel/cpu/common_64.c\n\tarch/x86/kernel/cpu/feature_names.c\n\tinclude/asm-x86/cpufeature.h\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "deac93df26b20cf8438339b5935b5f5643bc30c9",
      "tree": "8e67edd505e4a8bde380c724b67ce9ca98b8ee91",
      "parents": [
        "7ae115b4f50d3c5824f1a15e572b5de9d1b06d35"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Wed Sep 03 20:43:36 2008 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 09 11:51:15 2008 -0700"
      },
      "message": "lib: Correct printk %pF to work on all architectures\n\nIt was introduced by \"vsprintf: add support for \u0027%pS\u0027 and \u0027%pF\u0027 pointer\nformats\" in commit 0fe1ef24f7bd0020f29ffe287dfdb9ead33ca0b2.  However,\nthe current way its coded doesn\u0027t work on parisc64.  For two reasons: 1)\nparisc isn\u0027t in the #ifdef and 2) parisc has a different format for\nfunction descriptors\n\nMake dereference_function_descriptor() more accommodating by allowing\narchitecture overrides.  I put the three overrides (for parisc64, ppc64\nand ia64) in arch/kernel/module.c because that\u0027s where the kernel\ninternal linker which knows how to deal with function descriptors sits.\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nAcked-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nAcked-by: Tony Luck \u003ctony.luck@intel.com\u003e\nAcked-by: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "22f30168d296dbb54a21ebad44c9d735bca6f67b",
      "tree": "6006e18acb6b1157d9b1b0cf9790f4369d84bc4c",
      "parents": [
        "34a35bddb9382fc2663e3137875ee58928f7d704"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Sep 05 14:00:23 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 05 14:39:38 2008 -0700"
      },
      "message": "tracehook: comment pasto fixes\n\nFix some pasto\u0027s in comments in the new linux/tracehook.h and\nasm-generic/syscall.h files.\n\nReported-by: Wenji Huang \u003cwenji.huang@oracle.com\u003e\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "afbc8d8e72daa5a5faf6a0242186bdfcc42b2427",
      "tree": "8d3c699c56daffdaa1d18507f23044fb7b9fd36f",
      "parents": [
        "076c7f4c6c55c37975c8e04ae6827267794d5d2e"
      ],
      "author": {
        "name": "Khem Raj",
        "email": "raj.khem@gmail.com",
        "time": "Thu Sep 04 23:11:01 2008 -0700"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Fri Sep 05 15:44:31 2008 +0100"
      },
      "message": "Fix conditional export of kvh.h and a.out.h to userspace.\n\nSome architectures have moved the asm/ into arch/ and some have not.\nThis patch checks for a.out.h and kvh.h in both places before exporting\nthe corresponding file from linux/\n\n[dwmw2: simplified a little]\nSigned-off-by: Khem Raj \u003craj.khem@gmail.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "d3d0ba7b8fb8f57c33207adcb41f40c176148c03",
      "tree": "39a93460aa2c6eb8286fbba6c551f95443e175dd",
      "parents": [
        "9042763808c5285a1a61b45b0fe98a710a4c903c",
        "63cc8c75156462d4b42cbdd76c293b7eee7ddbfe"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 05 09:24:30 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 05 09:24:30 2008 +0200"
      },
      "message": "Merge commit \u002763cc8c75156462d4b42cbdd76c293b7eee7ddbfe\u0027:\n\n  \"percpu: introduce DEFINE_PER_CPU_PAGE_ALIGNED() macro\"\n\ninto x86/core\n\nConflicts:\n\tarch/x86/kernel/cpu/common.c\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "92a7507926b0698711ed010288b57582776eec31",
      "tree": "e0ab785a101838be177f8b7f75c1641c2805875f",
      "parents": [
        "aa7a7fb3990ffc74945494cbd2fc6e920825ee2c"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Sep 01 14:07:11 2008 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Thu Sep 04 09:46:08 2008 +0100"
      },
      "message": "Make \u003casm-generic/statfs.h\u003e suitable for 64-bit platforms.\n\nAt the moment, 64-bit platforms (other than Alpha) are all redefining\nthings for themselves instead of using \u003casm-generic/statfs.h\u003e.\n\nAs is ARM, since it has special requirements w.r.t. padding.\n\nMake \u003casm-generic/statfs.h\u003e more generic, and they can use it directly.\n\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "38c052f8cff1bd323ccfa968136a9556652ee420",
      "tree": "6cee3c0384438e13f065d196195a5d46a3941e4b",
      "parents": [
        "3c4fbe5e01d7e5309be5045e7ae0db20a049e6dc"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Aug 23 17:59:07 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Aug 23 18:02:18 2008 +0200"
      },
      "message": "rtc: fix deadlock\n\nif get_rtc_time() is _ever_ called with IRQs off, we deadlock badly\nin it, waiting for jiffies to increment.\n\nSo make the code more robust by doing an explicit mdelay(20).\n\nThis solves a very hard to reproduce/debug hard lockup reported\nby Mikael Pettersson.\n\nReported-by: Mikael Pettersson \u003cmikpe@it.uu.se\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5f8c3c8edff426fd87098f057688463107fcd9ce",
      "tree": "f0c12022b9513796cc74a389bc47d4b9b013d0e9",
      "parents": [
        "666593137185dc0ad1ee8966c8d7fef8f4bb84b2"
      ],
      "author": {
        "name": "Michael Abbott",
        "email": "michael@araneidae.co.uk",
        "time": "Tue Aug 12 15:09:11 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 12 16:07:31 2008 -0700"
      },
      "message": "Make ioctl.h compatible with userland\n\nThe attached patch seems to already exist in a number of branches -- it\nkeeps popping up on Google for me, and is certainly already in Debian --\nbut is strangely absent from mainstream.\n\nThe problem appears to be that the patched file ends up as part of the\ntarget toolchain, but unfortunately the gcc constant folding doesn\u0027t\nappear to eliminate the __invalid_size_argument_for_IOC value early\nenough.  Certainly compiling C++ programs which use _IO...  macros as\nconstants fails without this patch.\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c6de002617c199f80f9a2a713dffc263bdc69b81",
      "tree": "f86f31fcb65c2d0447e11c7f920bbb4ae1f4fbcf",
      "parents": [
        "ea44c1d60df3640bd956a67c392865c44fe9bc45"
      ],
      "author": {
        "name": "Yoshinori Sato",
        "email": "ysato@users.sourceforge.jp",
        "time": "Thu Jul 31 00:07:29 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 01 12:46:41 2008 -0700"
      },
      "message": "Missing symbol prefix on vmlinux.lds.h\n\nARCH\u003dh8300:\n\ninit/main.c:781: undefined reference to `___early_initcall_end\u0027\n\nSame problem have\n__start___bug_table\n__stop___bug_table\n__tracedata_start\n__tracedata_end\n__per_cpu_start\n__per_cpu_end\n\nWhen defining a symbol in vmlinux.lds, use the VMLINUX_SYMBOL macro.\nVMLINUX_SYMBOL adds a prefix charactor.\n\nYou can\u0027t just use straight symbol names in common header files as they\ndont take into consideration weird arch-specific ABI conventions.  in the\ncase of Blackfin/h8300, the ABI dictates that any C-visible symbols have\nan underscore prefixed to them.  Thus all symbols in vmlinux.lds.h need to\nbe wrapped in VMLINUX_SYMBOL() so that each arch can put hide this magic\nin their own files.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Yoshinori Sato \u003cysato@users.sourceforge.jp\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: \"Mike Frysinger\" \u003cvapier.adi@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": "1d9b9f6a53d77ed801ba875f937d6dabbfc381ce",
      "tree": "36ea93b80a444c3b37111e352790ebc07f29379f",
      "parents": [
        "a3ad7f128c637b7612ebeacb1f85fec933bb1195",
        "12c0b20fa4afb5c8a377d6987fb2dcf353e1dce1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 28 18:14:24 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 28 18:14:24 2008 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6: (21 commits)\n  x86/PCI: use dev_printk when possible\n  PCI: add D3 power state avoidance quirk\n  PCI: fix bogus \"\u0027device\u0027 may be used uninitialized\" warning in pci_slot\n  PCI: add an option to allow ASPM enabled forcibly\n  PCI: disable ASPM on pre-1.1 PCIe devices\n  PCI: disable ASPM per ACPI FADT setting\n  PCI MSI: Don\u0027t disable MSIs if the mask bit isn\u0027t supported\n  PCI: handle 64-bit resources better on 32-bit machines\n  PCI: rewrite PCI BAR reading code\n  PCI: document pci_target_state\n  PCI hotplug: fix typo in pcie hotplug output\n  x86 gart: replace to_pages macro with iommu_num_pages\n  x86, AMD IOMMU: replace to_pages macro with iommu_num_pages\n  iommu: add iommu_num_pages helper function\n  dma-coherent: add documentation to new interfaces\n  Cris: convert to using generic dma-coherent mem allocator\n  Sh: use generic per-device coherent dma allocator\n  ARM: support generic per-device coherent dma mem\n  Generic dma-coherent: fix DMA_MEMORY_EXCLUSIVE\n  x86: use generic per-device dma coherent allocator\n  ...\n"
    },
    {
      "commit": "34ee55014283a60efa3534c06e010579ffdd3756",
      "tree": "b81583dd2fd06368e959efd0c38ab23874b49c6d",
      "parents": [
        "c27ef92d8e0c29a9e8b8ee1b04f3d2cace482d92"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Mon Jul 28 15:46:40 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 28 16:30:21 2008 -0700"
      },
      "message": "include/asm-generic/pgtable-nopmd.h: macros are noxious, reason #435\n\narch/x86/mm/pgtable.c: In function \u0027pgd_mop_up_pmds\u0027:\n  arch/x86/mm/pgtable.c:194: warning: unused variable \u0027pmd\u0027\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "25947d5ac56004378d8c2d31ebf22600d5bc0c02",
      "tree": "9c31bdb948e5bbb01e481fb1d74b9983aa93c987",
      "parents": [
        "e3b6e806cf7e45ac5e6ac0625cebafa4de3394aa"
      ],
      "author": {
        "name": "Atsushi Nemoto",
        "email": "anemo@mba.ocn.ne.jp",
        "time": "Mon Jul 28 15:46:38 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 28 16:30:21 2008 -0700"
      },
      "message": "gpio: fix build on CONFIG_GPIO_SYSFS\u003dn\n\nIf CONFIG_GENERIC_GPIO\u003dy \u0026\u0026 CONFIG_GPIO_SYSFS\u003dn, gpio_export() in\nasm-generic/gpio.h refers -ENOSYS and causes build error.\n\nSigned-off-by: Atsushi Nemoto \u003canemo@mba.ocn.ne.jp\u003e\nAcked-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cb28a1bbdb4790378e7366d6c9ee1d2340b84f92",
      "tree": "316436f77dac75335fd2c3ef5f109e71606c50d3",
      "parents": [
        "b6d4f7e3ef25beb8c658c97867d98883e69dc544",
        "f934fb19ef34730263e6afc01e8ec27a8a71470f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 29 00:07:55 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 29 00:07:55 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into core/generic-dma-coherent\n\nConflicts:\n\n\tarch/x86/Kconfig\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6948385cbd83201fb933125c1a578b29b456605d",
      "tree": "fd08f30c84d02cfb1ad696d04605565974fae7be",
      "parents": [
        "7a76d89232f20411f32e7a79ccc1e2f95e9f826b",
        "56b2f0706d82535fd8d85503f2dcc0be40c8e55d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 27 09:59:59 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 27 09:59:59 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-next\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-next: (25 commits)\n  setlocalversion: do not describe if there is nothing to describe\n  kconfig: fix typos: \"Suport\" -\u003e \"Support\"\n  kconfig: make defconfig is no longer chatty\n  kconfig: make oldconfig is now less chatty\n  kconfig: speed up all*config + randconfig\n  kconfig: set all new symbols automatically\n  kconfig: add diffconfig utility\n  kbuild: remove Module.markers during mrproper\n  kbuild: sparse needs CF not CHECKFLAGS\n  kernel-doc: handle/strip __init\n  vmlinux.lds: move __attribute__((__cold__)) functions back into final .text section\n  init: fix URL of \"The GNU Accounting Utilities\"\n  kbuild: add arch/$ARCH/include to search path\n  kbuild: asm symlink support for arch/$ARCH/include\n  kbuild: support arch/$ARCH/include for tags, cscope\n  kbuild: prepare headers_* for arch/$ARCH/include\n  kbuild: install all headers when arch is changed\n  kbuild: make clean removes *.o.* as well\n  kbuild: optimize headers_* targets\n  kbuild: only one call for include/ in make headers_*\n  ...\n"
    },
    {
      "commit": "6a9436d0c3cbe8941b1acd5b0736d355295cad98",
      "tree": "d29f52ca2778aa2aa1ee66158b234e4ac462013b",
      "parents": [
        "a048d3aff8b828b6c0fa7ddd90a531248ab4e0f9"
      ],
      "author": {
        "name": "Michael Buesch",
        "email": "mb@bu3sch.de",
        "time": "Sat Jul 26 15:22:26 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 20:16:47 2008 -0700"
      },
      "message": "gpiolib: fix typo in comment\n\nThis fixes an off-by-one error in a comment.\n\nSigned-off-by: Michael Buesch \u003cmb@bu3sch.de\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "828c365cc8b8d38c346fccb19fa80d28f2240831",
      "tree": "cedb0f1ce389f4b12d7b0975ce52c8af7939cfcd",
      "parents": [
        "64b1208d5b0ef8859fd52ea7ae286a3eb994669b"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:57 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:09 2008 -0700"
      },
      "message": "tracehook: asm/syscall.h\n\nThis adds asm-generic/syscall.h, which documents what a real\nasm-ARCH/syscall.h file should define.  This is not used yet, but will\nprovide all the machine-dependent details of examining a user system call\nabout to begin, in progress, or just ended.\n\nEach arch should add an asm-ARCH/syscall.h that defines all the entry\npoints documented in asm-generic/syscall.h, as short inlines if possible.\nThis lets us write new tracing code that understands user system call\nregisters, without any new arch-specific work.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-by: 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": "c2147a5092cfe13dbf3210e54e8a622015edeecc",
      "tree": "e34e0daee3cc0b19914a27d6f7f284b1fc22aa93",
      "parents": [
        "89081d17f7bb81d89fa1aa9b70f821c5cf4d39e9"
      ],
      "author": {
        "name": "Eduard - Gabriel Munteanu",
        "email": "eduard.munteanu@linux360.ro",
        "time": "Fri Jul 25 19:45:11 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:04 2008 -0700"
      },
      "message": "Better interface for hooking early initcalls\n\nAdded early initcall (pre-SMP) support, using an identical interface to\nthat of regular initcalls.  Functions called from do_pre_smp_initcalls()\ncould be converted to use this cleaner interface.\n\nThis is required by CPU hotplug, because early users have to register\nnotifiers before going SMP.  One such CPU hotplug user is the relay\ninterface with buffer-only channels, which needs to register such a\nnotifier, to be usable in early code.  This in turn is used by kmemtrace.\n\nSigned-off-by: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nCc: Tom Zanussi \u003ctzanussi@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": "8d8bb39b9eba32dd70e87fd5ad5c5dd4ba118e06",
      "tree": "64090a84f4c4466f9f30ff46c993e0cede379052",
      "parents": [
        "c485b465a031b6f9b9a51300e0ee1f86efc6db87"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Fri Jul 25 19:44:49 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:03 2008 -0700"
      },
      "message": "dma-mapping: add the device argument to dma_mapping_error()\n\nAdd per-device dma_mapping_ops support for CONFIG_X86_64 as POWER\narchitecture does:\n\nThis enables us to cleanly fix the Calgary IOMMU issue that some devices\nare not behind the IOMMU (http://lkml.org/lkml/2008/5/8/423).\n\nI think that per-device dma_mapping_ops support would be also helpful for\nKVM people to support PCI passthrough but Andi thinks that this makes it\ndifficult to support the PCI passthrough (see the above thread).  So I\nCC\u0027ed this to KVM camp.  Comments are appreciated.\n\nA pointer to dma_mapping_ops to struct dev_archdata is added.  If the\npointer is non NULL, DMA operations in asm/dma-mapping.h use it.  If it\u0027s\nNULL, the system-wide dma_ops pointer is used as before.\n\nIf it\u0027s useful for KVM people, I plan to implement a mechanism to register\na hook called when a new pci (or dma capable) device is created (it works\nwith hot plugging).  It enables IOMMUs to set up an appropriate\ndma_mapping_ops per device.\n\nThe major obstacle is that dma_mapping_error doesn\u0027t take a pointer to the\ndevice unlike other DMA operations.  So x86 can\u0027t have dma_mapping_ops per\ndevice.  Note all the POWER IOMMUs use the same dma_mapping_error function\nso this is not a problem for POWER but x86 IOMMUs use different\ndma_mapping_error functions.\n\nThe first patch adds the device argument to dma_mapping_error.  The patch\nis trivial but large since it touches lots of drivers and dma-mapping.h in\nall the architecture.\n\nThis patch:\n\ndma_mapping_error() doesn\u0027t take a pointer to the device unlike other DMA\noperations.  So we can\u0027t have dma_mapping_ops per device.\n\nNote that POWER already has dma_mapping_ops per device but all the POWER\nIOMMUs use the same dma_mapping_error function.  x86 IOMMUs use device\nargument.\n\n[akpm@linux-foundation.org: fix sge]\n[akpm@linux-foundation.org: fix svc_rdma]\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: fix bnx2x]\n[akpm@linux-foundation.org: fix s2io]\n[akpm@linux-foundation.org: fix pasemi_mac]\n[akpm@linux-foundation.org: fix sdhci]\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: fix sparc]\n[akpm@linux-foundation.org: fix ibmvscsi]\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Muli Ben-Yehuda \u003cmuli@il.ibm.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fb5e2b379732e1a6ea32392980bb42e0212db842",
      "tree": "ce9506474dcd426ea0102836e9b719d7cb73a844",
      "parents": [
        "37a4c940749670671adab211a2d9c9fed9f3f757"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "time": "Wed Jun 18 12:36:01 2008 +0100"
      },
      "committer": {
        "name": "Sam Ravnborg",
        "email": "sam@ravnborg.org",
        "time": "Fri Jul 25 22:12:37 2008 +0200"
      },
      "message": "vmlinux.lds: move __attribute__((__cold__)) functions back into final .text section\n\nDue to the addition of __attribute__((__cold__)) to a few symbols\nwithout adjusting the linker scripts, those symbols currently may end\nup outside the [_stext,_etext) range, as they get placed in\n.text.unlikely by (at least) gcc 4.3.0. This may confuse code not only\noutside of the kernel, symbol_put_addr()\u0027s BUG() could also trigger.\nHence we need to add .text.unlikely (and for future uses of\n__attribute__((__hot__)) also .text.hot) to the TEXT_TEXT() macro.\n\nIssue observed by Lukas Lipavsky.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nTested-by: Lukas Lipavsky \u003cllipavsky@suse.cz\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\n"
    },
    {
      "commit": "762b8291be6944bd891fbe2c8976a2b2e5bbc726",
      "tree": "4ce2572c050d473bd8dcde8bfbaad0ab830b1b1c",
      "parents": [
        "c6af5e9f8a57467df2e55e428316a43480174521",
        "7dcf2a9fced59e58e4694cdcf15850c01fdba89b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 12:01:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 12:01:37 2008 -0700"
      },
      "message": "Merge git://git.infradead.org/~dwmw2/random-2.6\n\n* git://git.infradead.org/~dwmw2/random-2.6:\n  remove dummy asm/kvm.h files\n  firmware: create firmware binaries during \u0027make modules\u0027.\n"
    },
    {
      "commit": "7dcf2a9fced59e58e4694cdcf15850c01fdba89b",
      "tree": "635476803ae017229f4a3dfaf7288d770b0dc1bf",
      "parents": [
        "44463f7dd6c8039904333e4374e5c6e9ad83006f"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Tue Jul 01 19:27:16 2008 +0300"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Fri Jul 25 14:35:50 2008 -0400"
      },
      "message": "remove dummy asm/kvm.h files\n\nThis patch removes the dummy asm/kvm.h files on architectures not (yet)\nsupporting KVM and uses the same conditional headers installation as\nalready used for a.out.h .\n\nAlso removed are superfluous install rules in the s390 and x86 Kbuild\nfiles (they are already in Kbuild.asm).\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "7444a72effa632fcd8edc566f880d96fe213c73b",
      "tree": "89d3e70c22751a6b00091df2b4dce7202eb3b1f5",
      "parents": [
        "ff1d5c2f0268f4e32103536e2e65480b5b7b6530"
      ],
      "author": {
        "name": "Michael Buesch",
        "email": "mb@bu3sch.de",
        "time": "Fri Jul 25 01:46:11 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:30 2008 -0700"
      },
      "message": "gpiolib: allow user-selection\n\nThis patch adds functionality to the gpio-lib subsystem to make it\npossible to enable the gpio-lib code even if the architecture code didn\u0027t\nrequest to get it built in.\n\nThe archtitecture code does still need to implement the gpiolib accessor\nfunctions in its asm/gpio.h file.  This patch adds the implementations for\nx86 and PPC.\n\nWith these changes it is possible to run generic GPIO expansion cards on\nevery architecture that implements the trivial wrapper functions.  Support\nfor more architectures can easily be added.\n\nSigned-off-by: Michael Buesch \u003cmb@bu3sch.de\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: Jesper Nilsson \u003cjesper.nilsson@axis.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Samuel Ortiz \u003csameo@openedhand.com\u003e\nCc: Kumar Gala \u003cgalak@gate.crashing.org\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d8f388d8dc8d4f36539dd37c1fff62cc404ea0fc",
      "tree": "df8603775c889f29f8a03c77b9f7913bfd90d296",
      "parents": [
        "8b6dd986823a8d92ed9f54baa5cef8604d9d9d44"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Fri Jul 25 01:46:07 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:30 2008 -0700"
      },
      "message": "gpio: sysfs interface\n\nThis adds a simple sysfs interface for GPIOs.\n\n    /sys/class/gpio\n    \t/export ... asks the kernel to export a GPIO to userspace\n    \t/unexport ... to return a GPIO to the kernel\n        /gpioN ... for each exported GPIO #N\n\t    /value ... always readable, writes fail for input GPIOs\n\t    /direction ... r/w as: in, out (default low); write high, low\n\t/gpiochipN ... for each gpiochip; #N is its first GPIO\n\t    /base ... (r/o) same as N\n\t    /label ... (r/o) descriptive, not necessarily unique\n\t    /ngpio ... (r/o) number of GPIOs; numbered N .. N+(ngpio - 1)\n\nGPIOs claimed by kernel code may be exported by its owner using a new\ngpio_export() call, which should be most useful for driver debugging.\nSuch exports may optionally be done without a \"direction\" attribute.\n\nUserspace may ask to take over a GPIO by writing to a sysfs control file,\nhelping to cope with incomplete board support or other \"one-off\"\nrequirements that don\u0027t merit full kernel support:\n\n  echo 23 \u003e /sys/class/gpio/export\n\t... will gpio_request(23, \"sysfs\") and gpio_export(23);\n\tuse /sys/class/gpio/gpio-23/direction to (re)configure it,\n\twhen that GPIO can be used as both input and output.\n  echo 23 \u003e /sys/class/gpio/unexport\n\t... will gpio_free(23), when it was exported as above\n\nThe extra D-space footprint is a few hundred bytes, except for the sysfs\nresources associated with each exported GPIO.  The additional I-space\nfootprint is about two thirds of the current size of gpiolib (!).  Since\nno /dev node creation is involved, no \"udev\" support is needed.\n\nRelated changes:\n\n  * This adds a device pointer to \"struct gpio_chip\".  When GPIO\n    providers initialize that, sysfs gpio class devices become children of\n    that device instead of being \"virtual\" devices.\n\n  * The (few) gpio_chip providers which have such a device node have\n    been updated.\n\n  * Some gpio_chip drivers also needed to update their module \"owner\"\n    field ...  for which missing kerneldoc was added.\n\n  * Some gpio_chips don\u0027t support input GPIOs.  Those GPIOs are now\n    flagged appropriately when the chip is registered.\n\nBased on previous patches, and discussion both on and off LKML.\n\nA Documentation/ABI/testing/sysfs-gpio update is ready to submit once this\nmerges to mainline.\n\n[akpm@linux-foundation.org: a few maintenance build fixes]\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: Guennadi Liakhovetski \u003cg.liakhovetski@pengutronix.de\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "717115e1a5856b57af0f71e1df7149108294fc10",
      "tree": "9528a992245c2fb993a0cf0bc8221dc7dea5d259",
      "parents": [
        "2711b793eb62a5873a0ba583a69252040aef176e"
      ],
      "author": {
        "name": "Dave Young",
        "email": "hidave.darkstar@gmail.com",
        "time": "Fri Jul 25 01:45:58 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:29 2008 -0700"
      },
      "message": "printk ratelimiting rewrite\n\nAll ratelimit user use same jiffies and burst params, so some messages\n(callbacks) will be lost.\n\nFor example:\na call printk_ratelimit(5 * HZ, 1)\nb call printk_ratelimit(5 * HZ, 1) before the 5*HZ timeout of a, then b will\nwill be supressed.\n\n- rewrite __ratelimit, and use a ratelimit_state as parameter.  Thanks for\n  hints from andrew.\n\n- Add WARN_ON_RATELIMIT, update rcupreempt.h\n\n- remove __printk_ratelimit\n\n- use __ratelimit in net_ratelimit\n\nSigned-off-by: Dave Young \u003chidave.darkstar@gmail.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nCc: Dave Young \u003chidave.darkstar@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": "a8f18b909c0a3f22630846207035c8b84bb252b8",
      "tree": "72a2dee787b9d077cc24f5cf7392b071401506ec",
      "parents": [
        "b6c63937001889af6fe431aaba97e59d04e028e7"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Fri Jul 25 01:45:53 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:29 2008 -0700"
      },
      "message": "Add a WARN() macro; this is WARN_ON() + printk arguments\n\nAdd a WARN() macro that acts like WARN_ON(), with the added feature that it\ntakes a printk like argument that is printed as part of the warning message.\n\n[akpm@linux-foundation.org: fix printk arguments]\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Jiri Slaby \u003cjirislaby@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": "f16695f4ac088cf7593e113574046d2d7e5af5eb",
      "tree": "6941bbb7cb6ab0c75a914eb5e30e5e02570540c6",
      "parents": [
        "cebbd3fb803603b12408458ba17c29ce1e15a5f2"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Jul 25 01:45:36 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:27 2008 -0700"
      },
      "message": "asm-generic/int-ll64.h: always provide __{s,u}64\n\nSeveral compilers offer \"long long\" without claiming to support C99.\n\nConsidering how frequent __s64/__u64 are used our userspace headers are\nanyway unusable without __s64/__u64 available.\n\nAlways offer __s64/__u64 to non-gcc non-C99 compilers - if they provide\n\"long long\" that makes the headers compiling and if they don\u0027t they are\nanyway screwed.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Harvey Harrison \u003charvey.harrison@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": "f6dc8ccaab6d8f63cbae1e6c73fe972b26f5376c",
      "tree": "c5643fcdc884a8d0bfc3f1bc28039cab7394e5bc",
      "parents": [
        "323ec001c6bb98eeabb5abbdbb8c8055d9496554",
        "5b664cb235e97afbf34db9c4d77f08ebd725335e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 18 21:13:20 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 18 21:13:20 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into core/generic-dma-coherent\n\nConflicts:\n\n\tkernel/Makefile\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "dc7c65db2845a8d17432d89252c4227a9a7cb15f",
      "tree": "79030b0aaaafc04bc4303c21495134e744afc058",
      "parents": [
        "8a0ca91e1db5de5eb5b18cfa919d52ff8be375af",
        "58b6e5538460be358fdf1286d9a2fbcfcc2cfaba"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 16 17:25:46 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 16 17:25:46 2008 -0700"
      },
      "message": "Merge branch \u0027linux-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6\n\n* \u0027linux-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6: (72 commits)\n  Revert \"x86/PCI: ACPI based PCI gap calculation\"\n  PCI: remove unnecessary volatile in PCIe hotplug struct controller\n  x86/PCI: ACPI based PCI gap calculation\n  PCI: include linux/pm_wakeup.h for device_set_wakeup_capable\n  PCI PM: Fix pci_prepare_to_sleep\n  x86/PCI: Fix PCI config space for domains \u003e 0\n  Fix acpi_pm_device_sleep_wake() by providing a stub for CONFIG_PM_SLEEP\u003dn\n  PCI: Simplify PCI device PM code\n  PCI PM: Introduce pci_prepare_to_sleep and pci_back_from_sleep\n  PCI ACPI: Rework PCI handling of wake-up\n  ACPI: Introduce new device wakeup flag \u0027prepared\u0027\n  ACPI: Introduce acpi_device_sleep_wake function\n  PCI: rework pci_set_power_state function to call platform first\n  PCI: Introduce platform_pci_power_manageable function\n  ACPI: Introduce acpi_bus_power_manageable function\n  PCI: make pci_name use dev_name\n  PCI: handle pci_name() being const\n  PCI: add stub for pci_set_consistent_dma_mask()\n  PCI: remove unused arch pcibios_update_resource() functions\n  PCI: fix pci_setup_device()\u0027s sprinting into a const buffer\n  ...\n\nFixed up conflicts in various files (arch/x86/kernel/setup_64.c,\narch/x86/pci/irq.c, arch/x86/pci/pci.h, drivers/acpi/sleep/main.c,\ndrivers/pci/pci.c, drivers/pci/pci.h, include/acpi/acpi_bus.h) from x86\nand ACPI updates manually.\n"
    },
    {
      "commit": "fe1a6875fcaaac2041945008a9875d2c07be1d9b",
      "tree": "5875f52aa0a859a91b96076279f028246475a6cb",
      "parents": [
        "de3b69d7d87e1e86c0307f0f15b377dcebeab906"
      ],
      "author": {
        "name": "Sebastian Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Tue Jul 15 22:28:46 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 15 13:58:40 2008 -0700"
      },
      "message": "mm: fix build on non-mmu machines\n\nCommit 1ea0704e0d aka \"mm: add a ptep_modify_prot transaction abstraction\"\n\ncaused:\n\n|  CC      init/main.o\n|In file included from include2/asm/pgtable.h:68,\n|                 from /home/bigeasy/git/linux-2.6-m68k/include/linux/mm.h:39,\n|                 from include2/asm/uaccess.h:8,\n|                 from /home/bigeasy/git/linux-2.6-m68k/include/linux/poll.h:13,\n|                 from /home/bigeasy/git/linux-2.6-m68k/include/linux/rtc.h:113,\n|                 from /home/bigeasy/git/linux-2.6-m68k/include/linux/efi.h:19,\n|                 from /home/bigeasy/git/linux-2.6-m68k/init/main.c:43:\n|/linux-2.6/include/asm-generic/pgtable.h: In function \u0027__ptep_modify_prot_start\u0027:\n|/linux-2.6/include/asm-generic/pgtable.h:209: error: implicit declaration of function \u0027ptep_get_and_clear\u0027\n|/linux-2.6/include/asm-generic/pgtable.h:209: error: incompatible types in return\n|/linux-2.6/include/asm-generic/pgtable.h: In function \u0027__ptep_modify_prot_commit\u0027:\n|/linux-2.6/include/asm-generic/pgtable.h:220: error: implicit declaration of function \u0027set_pte_at\u0027\n|make[2]: *** [init/main.o] Error 1\n|make[1]: *** [init] Error 2\n|make: *** [sub-make] Error 2\n\non my m68knommu box.\n\nAcked-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Sebastian Siewior \u003cbigeasy@linutronix.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5a86102248592e178a9023359ccf7f0e489d8e35",
      "tree": "9e5fdb9aafca687fa412f7c034f2cfbb834b8567",
      "parents": [
        "85082fd7cbe3173198aac0eb5e85ab1edcc6352c",
        "751851af7aae9b8bd5a60b3897209081fbc18b2b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 14 16:54:07 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 14 16:54:07 2008 -0700"
      },
      "message": "Merge branch \u0027for-2.6.27\u0027 of git://git.infradead.org/users/dwmw2/firmware-2.6\n\n* \u0027for-2.6.27\u0027 of git://git.infradead.org/users/dwmw2/firmware-2.6: (64 commits)\n  firmware: convert sb16_csp driver to use firmware loader exclusively\n  dsp56k: use request_firmware\n  edgeport-ti: use request_firmware()\n  edgeport: use request_firmware()\n  vicam: use request_firmware()\n  dabusb: use request_firmware()\n  cpia2: use request_firmware()\n  ip2: use request_firmware()\n  firmware: convert Ambassador ATM driver to request_firmware()\n  whiteheat: use request_firmware()\n  ti_usb_3410_5052: use request_firmware()\n  emi62: use request_firmware()\n  emi26: use request_firmware()\n  keyspan_pda: use request_firmware()\n  keyspan: use request_firmware()\n  ttusb-budget: use request_firmware()\n  kaweth: use request_firmware()\n  smctr: use request_firmware()\n  firmware: convert ymfpci driver to use firmware loader exclusively\n  firmware: convert maestro3 driver to use firmware loader exclusively\n  ...\n\nFix up trivial conflicts with BKL removal in drivers/char/dsp56k.c and\ndrivers/char/ip2/ip2main.c manually.\n"
    },
    {
      "commit": "751851af7aae9b8bd5a60b3897209081fbc18b2b",
      "tree": "5cb8dbb71d691a760da61e319796800ee42cc1c5",
      "parents": [
        "a41eebab7537890409ea9dfe0fcda9b5fbdb090d",
        "d71792ac3d48df6693f7b339e02494efc27036c3"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jul 14 15:49:04 2008 -0700"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jul 14 15:51:11 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git\n\nConflicts:\n\n\tsound/pci/Kconfig\n"
    },
    {
      "commit": "d18bb9a548e550f3ced57618e75085fb3f173133",
      "tree": "ea6be1655c55422cb5a1df84ae08f150b60e6808",
      "parents": [
        "4bb0057f996b1491f93a64879f4c53c83bc0f0c7",
        "6d72b7952fa7d7c61d021398970c29afde6a4443"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 14 15:28:10 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 14 15:28:10 2008 -0700"
      },
      "message": "Merge branch \u0027core/rodata\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core/rodata\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  move BUG_TABLE into RODATA\n"
    },
    {
      "commit": "11369f356b66d363a615fde2c5526962f7683674",
      "tree": "9723013073973c413e7cde295e99221ff40afca3",
      "parents": [
        "ce8b06b985ae48f9425de6e4641e77cb3613ef00"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Tue Jul 08 14:35:21 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jul 13 19:11:58 2008 +0200"
      },
      "message": "x86: change _node_to_cpumask_ptr to return const ptr\n\n  * Strengthen the return type for the _node_to_cpumask_ptr to be\n    a const pointer.  This adds compiler checking to insure that\n    node_to_cpumask_map[] is not changed inadvertently.\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nCc: \"akpm@linux-foundation.org\" \u003cakpm@linux-foundation.org\u003e\nCc: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nAcked-by: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5658c769443d543728b6c5c673dffc2df8676317",
      "tree": "539477c713c5d231fd3112e4bd8ae8aff4acefa7",
      "parents": [
        "b7a39bd0afc4021e8ad2b1189e884551e147427f"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Fri May 23 13:52:42 2008 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Thu Jul 10 14:30:13 2008 +0100"
      },
      "message": "firmware: allow firmware files to be built into kernel image\n\nSome drivers have their own hacks to bypass the kernel\u0027s firmware loader\nand build their firmware into the kernel; this renders those unnecessary.\n\nOther drivers don\u0027t use the firmware loader at all, because they always\nwant the firmware to be available. This allows them to start using the\nfirmware loader.\n\nA third set of drivers already use the firmware loader, but can\u0027t be\nused without help from userspace, which sometimes requires an initrd.\nThis allows them to work in a static kernel.\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "6924d1ab8b7bbe5ab416713f5701b3316b2df85b",
      "tree": "affbf0ff13f7522336f25505e8e7b5f12a34e705",
      "parents": [
        "4e78c91abe1a40b905611100a593be62784ba355",
        "25556c1699ad84dd6077adf67c92eba362aa7dc2",
        "b764a15f679942a7bc9d4f9645299e1defcc5b43",
        "437a0a54eea7b101e8a5b70688009956f6522ed0",
        "41b3eae669fb1ef6ae4acaa937b4e4617a1aa078",
        "84e65b0a84a2c856bef36f13d122047678408b0a",
        "684eb0163a98bc329193b4aa4535cdd705a5dd58",
        "93022136fff9e6130aa128a5ed8a599e93ac813c",
        "5cb04df8d3f03e37a19f2502591a84156be71772",
        "44974c8fc1d7047abe414562e0782320f4c1f511",
        "48cf937f48f68bd1e61f37c6357dbff5adb95532",
        "205f93288093df69f9ab5f6981aef27b91088b28",
        "c54f9da1c8ceee19436430afac0798a989eb886d",
        "0ed368c71aa65cba8d349432bd4dab4a9a2eb39c",
        "b478458aeebfc55fe409abec43794ac72a623c79",
        "2d144e63098be47c21ad59d68a4fd17bd73a3aaf",
        "607baf1f4ef94637ab0f7d0e258932851dc5c0a2",
        "33af9039cbf629041da2bfa0cf451208391a1ec3",
        "3557b18fcbe0e29706214f3c7cc680a7823605eb",
        "63687a528c39a67c1a213cdffa09feb0e6af9dbe",
        "009b9fc98ddd83f9139fdabb12c0d7a8535d5421",
        "f6477cc76c73833a56e97f1fafc36a7ca92927e5",
        "e6b0edef3453677b13e175a104a83eb36d062dd3",
        "400d34944c4ad82a817c06e570bc93b1114aa596"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 08 09:16:56 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 08 09:16:56 2008 +0200"
      },
      "message": "Merge branches \u0027x86/numa-fixes\u0027, \u0027x86/apic\u0027, \u0027x86/apm\u0027, \u0027x86/bitops\u0027, \u0027x86/build\u0027, \u0027x86/cleanups\u0027, \u0027x86/cpa\u0027, \u0027x86/cpu\u0027, \u0027x86/defconfig\u0027, \u0027x86/gart\u0027, \u0027x86/i8259\u0027, \u0027x86/intel\u0027, \u0027x86/irqstats\u0027, \u0027x86/kconfig\u0027, \u0027x86/ldt\u0027, \u0027x86/mce\u0027, \u0027x86/memtest\u0027, \u0027x86/pat\u0027, \u0027x86/ptemask\u0027, \u0027x86/resumetrace\u0027, \u0027x86/threadinfo\u0027, \u0027x86/timers\u0027, \u0027x86/vdso\u0027 and \u0027x86/xen\u0027 into x86/devel\n"
    },
    {
      "commit": "cde53535991fbb5c34a1566f25955297c1487b8d",
      "tree": "4f87e67b52c8761cfc421a619379263733b91159",
      "parents": [
        "a926c063738f31c8c8b5c2b883812a40e7868072"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jul 04 09:59:22 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 04 10:40:04 2008 -0700"
      },
      "message": "Christoph has moved\n\nRemove all clameter@sgi.com addresses from the kernel tree since they will\nbecome invalid on June 27th.  Change my maintainer email address for the\nslab allocators to cl@linux-foundation.org (which will be the new email\naddress for the future).\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ee7e5516be4f2107535ad5a3d47d9c79f93661a2",
      "tree": "57bdb330864036d6241deb8e69f351ee5ee01adb",
      "parents": [
        "543cf4cb3fe6f6cae3651ba918b9c56200b257d0"
      ],
      "author": {
        "name": "Dmitry Baryshkov",
        "email": "dbaryshkov@gmail.com",
        "time": "Sun Jun 29 14:18:46 2008 +0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jun 30 12:51:05 2008 +0200"
      },
      "message": "generic: per-device coherent dma allocator\n\nCurrently x86_32, sh and cris-v32 provide per-device coherent dma\nmemory allocator.\n\nHowever their implementation is nearly identical. Refactor out\ncommon code to be reused by them.\n\nSigned-off-by: Dmitry Baryshkov \u003cdbaryshkov@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b660398101cd0622325480a67ac88bb4d33d553a",
      "tree": "3e527c721c71a948727fcd1ad52ac240ca61f43d",
      "parents": [
        "543cf4cb3fe6f6cae3651ba918b9c56200b257d0"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "david.woodhouse@intel.com",
        "time": "Fri Jun 27 14:39:42 2008 +0100"
      },
      "committer": {
        "name": "Sam Ravnborg",
        "email": "sam@ravnborg.org",
        "time": "Fri Jun 27 23:13:54 2008 +0200"
      },
      "message": "kbuild: fix a.out.h export to userspace with O\u003d build.\n\nWe need to check for existence of the a.out.h header in the source tree,\nnot the object tree, if we want it to get the right answer with O\u003d.\n\nSigned-off-by: David Woodhouse \u003cdavid.woodhouse@intel.com\u003e\nSigned-off-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\n"
    },
    {
      "commit": "1ea0704e0da65b2b46f9142ff1391163aac24060",
      "tree": "420215f0876bc9cf3da5a21e5c5904611f821faa",
      "parents": [
        "d02859ecb321c8c0f74cb9bbe3f51a59e58822b0"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Mon Jun 16 04:30:00 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 25 15:15:53 2008 +0200"
      },
      "message": "mm: add a ptep_modify_prot transaction abstraction\n\nThis patch adds an API for doing read-modify-write updates to a pte\u0027s\nprotection bits which may race against hardware updates to the pte.\nAfter reading the pte, the hardware may asynchonously set the accessed\nor dirty bits on a pte, which would be lost when writing back the\nmodified pte value.\n\nThe existing technique to handle this race is to use\nptep_get_and_clear() atomically fetch the old pte value and clear it\nin memory.  This has the effect of marking the pte as non-present,\nwhich will prevent the hardware from updating its state.  When the new\nvalue is written back, the pte will be present again, and the hardware\ncan resume updating the access/dirty flags.\n\nWhen running in a virtualized environment, pagetable updates are\nrelatively expensive, since they generally involve some trap into the\nhypervisor.  To mitigate the cost of these updates, we tend to batch\nthem.\n\nHowever, because of the atomic nature of ptep_get_and_clear(), it is\ninherently non-batchable.  This new interface allows batching by\ngiving the underlying implementation enough information to open a\ntransaction between the read and write phases:\n\nptep_modify_prot_start() returns the current pte value, and puts the\n  pte entry into a state where either the hardware will not update the\n  pte, or if it does, the updates will be preserved on commit.\n\nptep_modify_prot_commit() writes back the updated pte, makes sure that\n  any hardware updates made since ptep_modify_prot_start() are\n  preserved.\n\nptep_modify_prot_start() and _commit() must be exactly paired, and\nused while holding the appropriate pte lock.  They do not protect\nagainst other software updates of the pte in any way.\n\nThe current implementations of ptep_modify_prot_start and _commit are\nfunctionally unchanged from before: _start() uses ptep_get_and_clear()\nfetch the pte and zero the entry, preventing any hardware updates.\n_commit() simply writes the new pte value back knowing that the\nhardware has not updated the pte in the meantime.\n\nThe only current user of this interface is mprotect\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nAcked-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6d72b7952fa7d7c61d021398970c29afde6a4443",
      "tree": "31c00be8e2837e2db2e62c694421a93a9f4c79d7",
      "parents": [
        "6360b1fbb4a939efd34fc770c2ebd927c55506e0",
        "066519068ad2fbe98c7f45552b1f592903a9c8c8"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jun 16 11:24:00 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jun 16 11:24:00 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into core/rodata\n"
    },
    {
      "commit": "e1a2a51e684bfe9d6165992d4a065439617a3107",
      "tree": "4d05a1b9ebadd0ab22e0e42ee3b053dddf11baf1",
      "parents": [
        "273c11270d3715c4c06d4df1607a1a60034d887b"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu May 15 21:51:31 2008 +0200"
      },
      "committer": {
        "name": "Jesse Barnes",
        "email": "jbarnes@virtuousgeek.org",
        "time": "Tue Jun 10 10:59:46 2008 -0700"
      },
      "message": "Suspend/Resume bug in PCI layer wrt quirks\n\nSome quirks should be called with interrupt disabled, we can\u0027t directly\ncall them in .resume_early. Also the patch introduces\npci_fixup_resume_early and pci_fixup_suspend, which matches current\ndevice core callbacks (.suspend/.resume_early).\n\nTBD: Somebody knows why we need quirk resume should double check if a\nquirk should be called in resume or resume_early. I changed some per my\nunderstanding, but can\u0027t make sure I fixed all.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nSigned-off-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\n"
    },
    {
      "commit": "63687a528c39a67c1a213cdffa09feb0e6af9dbe",
      "tree": "0a21067f84d2495d37cc6fe864675db53ca56630",
      "parents": [
        "75d3bce2fc0a80f435fe12f2c9ed2632c8ac29e4"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "time": "Mon May 12 15:44:41 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun May 25 07:09:47 2008 +0200"
      },
      "message": "x86: move tracedata to RODATA\n\n.. allowing it to be write-protected just as other read-only data\nunder CONFIG_DEBUG_RODATA.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "6360b1fbb4a939efd34fc770c2ebd927c55506e0",
      "tree": "8cf449a7177a6060f825fc03427b4e3baa3b0672",
      "parents": [
        "75d3bce2fc0a80f435fe12f2c9ed2632c8ac29e4"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "time": "Mon May 12 15:44:41 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun May 25 07:06:08 2008 +0200"
      },
      "message": "move BUG_TABLE into RODATA\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "63cc8c75156462d4b42cbdd76c293b7eee7ddbfe",
      "tree": "e014b4c61399f8f74347352e6ea76ddf1502dcfa",
      "parents": [
        "75d3bce2fc0a80f435fe12f2c9ed2632c8ac29e4"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Mon May 12 15:44:40 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun May 25 07:03:46 2008 +0200"
      },
      "message": "percpu: introduce DEFINE_PER_CPU_PAGE_ALIGNED() macro\n\nWhile examining holes in percpu section I found this :\n\nc05f5000 D per_cpu__current_task\nc05f5000 D __per_cpu_start\nc05f5004 D per_cpu__cpu_number\nc05f5008 D per_cpu__irq_regs\nc05f500c d per_cpu__cpu_devices\nc05f5040 D per_cpu__cyc2ns\n\n\u003cBig Hole of about 4000 bytes\u003e\n\nc05f6000 d per_cpu__cpuid4_info\nc05f6004 d per_cpu__cache_kobject\nc05f6008 d per_cpu__index_kobject\n\n\u003cBig Hole of about 4000 bytes\u003e\n\nc05f7000 D per_cpu__gdt_page\n\nThis is because gdt_page is a percpu variable, defined with\na page alignement, and linker is doing its job, two times because of .o\nnesting in the build process.\n\nI introduced a new macro DEFINE_PER_CPU_PAGE_ALIGNED() to avoid\nwasting this space. All page aligned variables (only one at this time)\nare put in a separate\nsubsection .data.percpu.page_aligned, at the very begining of percpu zone.\n\nBefore patch , on a x86_32 machine :\n\n.data.percpu                30232   3227471872\n.data.percpu                22168   3227471872\n\nThats 8064 bytes saved for each CPU.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "6ea0205b56546cef782b74d9f4664ec00290a6ae",
      "tree": "6d95b52af65d6de540e606d95159e539d5cc2852",
      "parents": [
        "ee29420aca6ca6fbb3e72ee8a980b2600911b864"
      ],
      "author": {
        "name": "David Brownell",
        "email": "david-b@pacbell.net",
        "time": "Fri May 23 13:04:58 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 24 09:56:13 2008 -0700"
      },
      "message": "gpio: build fixes\n\nThis fixes various gpio-related build errors (mostly potential)\nreported in part by Russell King and Uwe Kleine-König.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: Uwe Kleine-König \u003cUwe.Kleine-Koenig@digi.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Arnaud Patard \u003carnaud.patard@rtp-net.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c25bd29805f4d854c3a0b4176813f3c1bff569d3",
      "tree": "8712a2748b842176d177dedb2e6594b71fc2ff10",
      "parents": [
        "4cf63c8ac48c63b4c55669d4648506ed2bb8976f"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Thu Apr 24 13:37:33 2008 -0700"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Fri May 02 16:18:42 2008 -0700"
      },
      "message": "types: add C99-style constructors to \u003casm-generic/int-*.h\u003e\n\nAdd C99-style constructor macros for fixed types to\n\u003casm-generic/int-*.h\u003e.  Since Linux uses names like \"u64\" instead of\n\"uint64_t\", the constructor macros are called U64_C() instead of\nUINT64_C() and so forth.\n\nThese macros allow specific sizes to be specified as\nU64_C(0x123456789abcdef), without gcc issuing warnings as it will if\none writes (u64)0x123456789abcdef.\n\nWhen used from assembly, these macros pass their argument unchanged.\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "d13ff31cfeedbf2fefc7ba13cb753775648eac0c",
      "tree": "94bbe8498b3fc281265367f5dac94374a065255f",
      "parents": [
        "b66e1f11ebc429569a3784aaf64123633d9e3ed1"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Thu Apr 24 12:56:52 2008 -0700"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Fri May 02 16:18:19 2008 -0700"
      },
      "message": "types: create \u003casm-generic/int-*.h\u003e\n\nThis creates two generic files with common integer definitions; one\nwhere 64 bits is \"long\" (most 64-bit architectures) and one where 64\nbits is \"long long\" (all 32-bit architectures and x86-64.)\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Anton Blanchard \u003canton@samba.org\u003e\nCc: Ben Dooks \u003cben-linux@fluff.org\u003e\nCc: Bryan Wu \u003ccooloney@kernel.org\u003e\nCc: Chris Zankel \u003cchris@zankel.net\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Jesper Nilsson \u003cjesper.nilsson@axis.com\u003e\nCc: Koichi Yasutake \u003cyasutake.koichi@jp.panasonic.com\u003e\nCc: Kyle McMartin \u003ckyle@parisc-linux.org\u003e\nCc: Lennert Buytenhek \u003ckernel@wantstofly.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Mikael Starvik \u003cstarvik@axis.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: William L. Irwin \u003cwli@holomorphy.com\u003e\nCc: Yoshinori Sato \u003cysato@users.sourceforge.jp\u003e\n"
    },
    {
      "commit": "6f6d6a1a6a1336431a6cba60ace9e97c3a496a19",
      "tree": "f32e82fc3a50b6877afa3220bdb6f7ea0582e07f",
      "parents": [
        "71abb3af62dfa52930755f3b6497eafbe1d6ec85"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Thu May 01 04:34:28 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 01 08:03:58 2008 -0700"
      },
      "message": "rename div64_64 to div64_u64\n\nRename div64_64 to div64_u64 to make it consistent with the other divide\nfunctions, so it clearly includes the type of the divide.  Move its definition\nto math64.h as currently no architecture overrides the generic implementation.\n They can still override it of course, but the duplicated declarations are\navoided.\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: Avi Kivity \u003cavi@qumranet.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ae50884f66fc93aa713feade8f87c03471241275",
      "tree": "ea58f6ad5f8490b745239cf06c002466c96394de",
      "parents": [
        "735643ee6cc5249bfac07fcad0946a5e7aff4423"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@crashcourse.ca",
        "time": "Wed Apr 30 00:55:13 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:54 2008 -0700"
      },
      "message": "remove __KERNEL__ tests of unexported headers under asm-generic/\n\nSigned-off-by: Robert P. J. Day \u003crpjday@crashcourse.ca\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "730f412c08c13858f7681bac0a2770fbc9159fed",
      "tree": "ac37a43aef9dca3a6e63c9bdf97c489af3801357",
      "parents": [
        "07132922aac0caf807c56b9c2a388954b357a8c4"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Wed Apr 30 00:54:49 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:52 2008 -0700"
      },
      "message": "asm-*/futex.h should include linux/uaccess.h\n\nLots of asm-*/futex.h call pagefault_enable and pagefault_disable, which\nare declared in linux/uaccess.h, without including linux/uaccess.h.\n\nThey all include asm/uaccess.h, so this patch replaces asm/uaccess.h\nwith linux/uaccess.h.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6510d41954dc6a9c8b1dbca7eaca0f23195ca727",
      "tree": "868b5fac25c7c5b80cc5a88eaaab8bf3d693420d",
      "parents": [
        "064106a91be5e76cb42c1ddf5d3871e3a1bd2a23"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Tue Apr 29 01:03:30 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:27 2008 -0700"
      },
      "message": "kernel: Move arches to use common unaligned access\n\nUnaligned access is ok for the following arches:\ncris, m68k, mn10300, powerpc, s390, x86\n\nArches that use the memmove implementation for native endian, and\nthe byteshifting for the opposite endianness.\nh8300, m32r, xtensa\n\nPacked struct for native endian, byteshifting for other endian:\nalpha, blackfin, ia64, parisc, sparc, sparc64, mips, sh\n\nm86knommu is generic_be for Coldfire, otherwise unaligned access is ok.\n\nfrv, arm chooses endianness based on compiler settings, uses the byteshifting\nversions.  Remove the unaligned trap handler from frv as it is now unused.\n\nv850 is le, uses the byteshifting versions for both be and le.\n\nRemove the now unused asm-generic implementation.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "10521bd9f74be94b83cfcf639601ece1c8e4faad",
      "tree": "5e121dbaae4d5e038c0c1ea638c9635970dd5afa",
      "parents": [
        "098ef1c0ea7b1b3ff9d89364af5ebc5b672cf932"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@crashcourse.ca",
        "time": "Tue Apr 29 01:02:54 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:24 2008 -0700"
      },
      "message": "generalize asm-generic/ioctl.h to allow overriding values\n\nIn the spirit of a number of other asm-generic header files,\ngeneralize asm-generic/ioctl.h to allow arch-specific ioctl.h headers\nto simply override _IOC_SIZEBITS and/or _IOC_DIRBITS before including\nthis header file, allowing a number of ioctl.h header files to be\nshortened considerably.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@crashcourse.ca\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "169b6a7a6e91e1ea32136681b475cbaf2074bf35",
      "tree": "bf29842528e61cb07c581e43acbe3619a25746ab",
      "parents": [
        "8d0aab2f16c4fa170f32e7a74a52cd0122bbafef"
      ],
      "author": {
        "name": "Anton Vorontsov",
        "email": "avorontsov@ru.mvista.com",
        "time": "Mon Apr 28 02:14:47 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:34 2008 -0700"
      },
      "message": "gpiochip_reserve()\n\nAdd a new function gpiochip_reserve() to reserve ranges of gpios that platform\ncode has pre-allocated.  That is, this marks gpio numbers which will be\nclaimed by drivers that haven\u0027t yet been loaded, and thus are not available\nfor dynamic gpio number allocation.\n\n[akpm@linux-foundation.org: remove unneeded __must_check]\n[david-b@pacbell.net: don\u0027t export gpiochip_reserve (section fix)]\nSigned-off-by: Anton Vorontsov \u003cavorontsov@ru.mvista.com\u003e\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e6de1808f8ebfeb7e49f3c5a30cb8f2032beb287",
      "tree": "2230ea8f384449c7785d636ab016af3b2aa20123",
      "parents": [
        "d72cbed0c486e3db8b56380635f8e845073ce63a"
      ],
      "author": {
        "name": "Guennadi Liakhovetski",
        "email": "g.liakhovetski@pengutronix.de",
        "time": "Mon Apr 28 02:14:46 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:34 2008 -0700"
      },
      "message": "gpio: define gpio_is_valid()\n\nIntroduce a gpio_is_valid() predicate; use it in gpiolib.\n\nSigned-off-by: Guennadi Liakhovetski \u003cg.liakhovetski@pengutronix.de\u003e\n    [ use inline function; follow the gpio_* naming convention;\n      work without gpiolib; all programming interfaces need docs ]\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "438d8908b379b6322fc3b28d45c9ebdddf58bc20",
      "tree": "ce9439dc8c7e5d9e80f514751fb3b4ce4e414233",
      "parents": [
        "73fcdc9e15c27bb92595c611c8938a36645ea20d"
      ],
      "author": {
        "name": "Guennadi Liakhovetski",
        "email": "g.liakhovetski@pengutronix.de",
        "time": "Mon Apr 28 02:14:44 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:34 2008 -0700"
      },
      "message": "gpiolib: better rmmod infrastructure\n\nAs long as one or more GPIOs on a gpio chip are used its driver should not be\nunloaded.  The existing mechanism (gpiochip_remove failure) doesn\u0027t address\nthat, since rmmod can no longer be made to fail by having the cleanup code\nreport errors.  Module usecounts are the solution.\n\nAssuming standard \"initialize struct to zero\" policies, this change won\u0027t\naffect SOC platform drivers.  However, drivers for external chips (on I2C and\nSPI busses) should be updated if they can be built as modules.\n\nSigned-off-by: Guennadi Liakhovetski \u003cg.liakhovetski@pengutronix.de\u003e\n[ gpio_ensure_requested() needs to update module usecounts too ]\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d57594c203b1e7b54373080a797f0cbfa4aade68",
      "tree": "61610af68fc93280fb0be00a4f1b523715bef3db",
      "parents": [
        "56a6b1eb7bfb5ace0b5cb9c149f502fbd101b8ab"
      ],
      "author": {
        "name": "Alexander van Heukelum",
        "email": "heukelum@mailshack.com",
        "time": "Sat Mar 15 18:32:36 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 26 19:21:16 2008 +0200"
      },
      "message": "bitops: use __fls for fls64 on 64-bit archs\n\nUse __fls for fls64 on 64-bit archs. The implementation for\n64-bit archs is moved from x86_64 to asm-generic.\n\nSigned-off-by: Alexander van Heukelum \u003cheukelum@fastmail.fm\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7d9dff22e8ad06ad330968c9e3d3a2fb55a5f9c3",
      "tree": "1c65cd4cdf14f42d59e72514991c4b04278db8d5",
      "parents": [
        "12d9c8420b9daa1da3d9e090640fb24bcd0deba2"
      ],
      "author": {
        "name": "Alexander van Heukelum",
        "email": "heukelum@mailshack.com",
        "time": "Sat Mar 15 18:30:57 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 26 19:21:16 2008 +0200"
      },
      "message": "generic: introduce a generic __fls implementation\n\nAdd a generic __fls implementation in the same spirit as\nthe generic __ffs one. It finds the last (most significant)\nset bit in the given long value.\n\nSigned-off-by: Alexander van Heukelum \u003cheukelum@fastmail.fm\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "64970b68d2b3ed32b964b0b30b1b98518fde388e",
      "tree": "7d8eb5ea3ab1a841afa0f7ae1c65e7be4a9ca690",
      "parents": [
        "60b6783a044a55273b637983f52965c2808a6b86"
      ],
      "author": {
        "name": "Alexander van Heukelum",
        "email": "heukelum@mailshack.com",
        "time": "Tue Mar 11 16:17:19 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 26 19:21:16 2008 +0200"
      },
      "message": "x86, generic: optimize find_next_(zero_)bit for small constant-size bitmaps\n\nThis moves an optimization for searching constant-sized small\nbitmaps form x86_64-specific to generic code.\n\nOn an i386 defconfig (the x86#testing one), the size of vmlinux hardly\nchanges with this applied. I have observed only four places where this\noptimization avoids a call into find_next_bit:\n\nIn the functions return_unused_surplus_pages, alloc_fresh_huge_page,\nand adjust_pool_surplus, this patch avoids a call for a 1-bit bitmap.\nIn __next_cpu a call is avoided for a 32-bit bitmap. That\u0027s it.\n\nOn x86_64, 52 locations are optimized with a minimal increase in\ncode size:\n\nCurrent #testing defconfig:\n\t146 x bsf, 27 x find_next_*bit\n   text    data     bss     dec     hex filename\n   5392637  846592  724424 6963653  6a41c5 vmlinux\n\nAfter removing the x86_64 specific optimization for find_next_*bit:\n\t94 x bsf, 79 x find_next_*bit\n   text    data     bss     dec     hex filename\n   5392358  846592  724424 6963374  6a40ae vmlinux\n\nAfter this patch (making the optimization generic):\n\t146 x bsf, 27 x find_next_*bit\n   text    data     bss     dec     hex filename\n   5392396  846592  724424 6963412  6a40d4 vmlinux\n\n[ tglx@linutronix.de: build fixes ]\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1526a756fba5b1f2eb5001b8e8de2a0ea1bd2c66",
      "tree": "618dce79ec7c24b1f85c9d63a9b8db58ed4bc981",
      "parents": [
        "1f56cf1c58c81f7ecf16f5e99ac4a333d9dc9aea"
      ],
      "author": {
        "name": "venkatesh.pallipadi@intel.com",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Tue Mar 18 17:00:24 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 24 23:40:47 2008 +0200"
      },
      "message": "generic: add ioremap_wc() interface wrapper\n\nx86 has ioremap_wc for wc remap. Also introduce a generic ioremap_wc\naliased to ioremap_uc so that drivers can use this interface transparently.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "aa6b54461cc5c0019b9d792adf3176b444c10763",
      "tree": "069955d970b078105dcae6706a9e97c5503900df",
      "parents": [
        "d18d00f5dbcd1a95811617e9812cf0560bd465ee"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Mon Mar 31 08:41:55 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 19 19:44:58 2008 +0200"
      },
      "message": "asm-generic: add node_to_cpumask_ptr macro\n\nCreate a simple macro to always return a pointer to the node_to_cpumask(node)\nvalue.  This relies on compiler optimization to remove the extra indirection:\n\n    #define node_to_cpumask_ptr(v, node) \t\t\\\n\t    cpumask_t _##v \u003d node_to_cpumask(node), *v \u003d \u0026_##v\n\nFor those systems with a large cpumask size, then a true pointer\nto the array element can be used:\n\n    #define node_to_cpumask_ptr(v, node)\t\t\\\n\t    cpumask_t *v \u003d \u0026(node_to_cpumask_map[node])\n\nA node_to_cpumask_ptr_next() macro is provided to access another\nnode_to_cpumask value.\n\nThe other change is to always include asm-generic/topology.h moving the\nifdef CONFIG_NUMA to this same file.\n\nNote: there are no references to either of these new macros in this patch,\nonly the definition.\n\nBased on 2.6.25-rc5-mm1\n\n# alpha\nCc: Richard Henderson \u003crth@twiddle.net\u003e\n\n# fujitsu\nCc: David Howells \u003cdhowells@redhat.com\u003e\n\n# ia64\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\n\n# powerpc\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Anton Blanchard \u003canton@samba.org\u003e\n\n# sparc\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: William L. Irwin \u003cwli@holomorphy.com\u003e\n\n# x86\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "dd135ebbd2a6b5e07dadb66c4dd033bb69531051",
      "tree": "8f8bf987ed9594d5ac0df40fbb34258aa9310179",
      "parents": [
        "8eb224cd45239714c2be104f17d5ca16b6b5d7ac"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Wed Apr 02 13:04:40 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 02 15:28:18 2008 -0700"
      },
      "message": "kvm: provide kvm.h for all architecture: fixes headers_install\n\nCurrently include/linux/kvm.h is not considered by make headers_install,\nbecause Kbuild cannot handle \" unifdef-$(CONFIG_FOO) +\u003d foo.h.  This problem\nwas introduced by\n\ncommit fb56dbb31c4738a3918db81fd24da732ce3b4ae6\nAuthor: Avi Kivity \u003cavi@qumranet.com\u003e\nDate:   Sun Dec 2 10:50:06 2007 +0200\n\n    KVM: Export include/linux/kvm.h only if $ARCH actually supports KVM\n\n    Currently, make headers_check barfs due to \u003casm/kvm.h\u003e, which \u003clinux/kvm.h\u003e\n    includes, not existing.  Rather than add a zillion \u003casm/kvm.h\u003es, export kvm.\n    only if the arch actually supports it.\n\n    Signed-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n\nwhich makes this an 2.6.25 regression.\n\nOne way of solving the issue is to enhance Kbuild, but Avi and David conviced\nme, that changing headers_install is not the way to go.  This patch changes\nthe definition for linux/kvm.h to unifdef-y.\n\nIf  unifdef-y is used for linux/kvm.h \"make headers_check\" will fail on all\narchitectures without asm/kvm.h.  Therefore, this patch also provides\nasm/kvm.h on all architectures.\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nAcked-by: Avi Kivity \u003cavi@qumranet.com\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1e8352784abaedb424e63fa700e93e6c1307785f",
      "tree": "eb7ba51fa40e209ed2a1636b3404cca58141bed1",
      "parents": [
        "3a2d5b700132f35401f1d9e22fe3c2cab02c2549"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Feb 23 19:40:17 2008 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Feb 23 12:09:28 2008 -0800"
      },
      "message": "percpu: fix DEBUG_PREEMPT per_cpu checking\n\n2.6.25-rc1 percpu changes broke CONFIG_DEBUG_PREEMPT\u0027s per_cpu checking\non several architectures.  On s390, sparc64 and x86 it\u0027s been weakened to\nnot checking at all; whereas on powerpc64 it\u0027s become too strict, issuing\nwarnings from __raw_get_cpu_var in io_schedule and init_timer for example.\n\nFix this by weakening powerpc\u0027s __my_cpu_offset to use the non-checking\nlocal_paca instead of get_paca (which itself contains such a check);\nand strengthening the generic my_cpu_offset to go the old slow way via\nsmp_processor_id when CONFIG_DEBUG_PREEMPT (debug_smp_processor_id is\nwhere all the knowledge of what\u0027s correct when lives).\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nReviewed-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "37c514e3dfc8f55145d9c6895e2838ac31859aa4",
      "tree": "3e626badf00d003c988c318d6de860b5444f5cf2",
      "parents": [
        "b1d2675a6466090b68d4ef63f9237b4d70a18857"
      ],
      "author": {
        "name": "Sam Ravnborg",
        "email": "sam@ravnborg.org",
        "time": "Tue Feb 19 21:00:18 2008 +0100"
      },
      "committer": {
        "name": "Sam Ravnborg",
        "email": "sam@ravnborg.org",
        "time": "Tue Feb 19 21:00:18 2008 +0100"
      },
      "message": "Add missing init section definitions\n\nWhen adding __devinitconst etc. the __initconst variant\nwere missed.\nAdd this one and proper definitions for .head.text for use\nin .S files.\nThe naming .head.text is preferred over .text.head as the\nlatter will conflict for a function named head when introducing\n-ffunctions-sections.\n\nSigned-off-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\n"
    },
    {
      "commit": "271cad6d7e91ff8eea18976311692f99cd667ad3",
      "tree": "c56b923e6ad3c0228a0265db07e2abf7ed6b1ad8",
      "parents": [
        "81772fea4110f7ce8083d52503c9c4ddaa50f75b"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Mon Feb 11 20:03:17 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 11 20:37:29 2008 -0800"
      },
      "message": "Make topology fallback macros reference their arguments.\n\nThis avoids warnings with unreferenced variables in the !NUMA case.\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "144b2a91468bdc0d4fa64b220c152fb58b8ffe05",
      "tree": "2b10f43deeeb889e02b71db7e2a51d400345b37c",
      "parents": [
        "ec7015840ad7a8cdc87f52367ffe9c0b0401d919"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Fri Feb 08 04:19:56 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:31 2008 -0800"
      },
      "message": "asm-generic: remove fastcall\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@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": "7fa3031500ec9b0a7460c8c23751799006ffee74",
      "tree": "2a7e9202b35a39dc8217e95825263c0629e67e35",
      "parents": [
        "b0b933c08bd5fd053bbba8ba6387f543be03d49f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Feb 08 04:19:28 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:30 2008 -0800"
      },
      "message": "aout: suppress A.OUT library support if !CONFIG_ARCH_SUPPORTS_AOUT\n\nSuppress A.OUT library support if CONFIG_ARCH_SUPPORTS_AOUT is not set.\n\nNot all architectures support the A.OUT binfmt, so the ELF binfmt should not\nbe permitted to go looking for A.OUT libraries to load in such a case.  Not\nonly that, but under such conditions A.OUT core dumps are not produced either.\n\nTo make this work, this patch also does the following:\n\n (1) Makes the existence of the contents of linux/a.out.h contingent on\n     CONFIG_ARCH_SUPPORTS_AOUT.\n\n (2) Renames dump_thread() to aout_dump_thread() as it\u0027s only called by A.OUT\n     core dumping code.\n\n (3) Moves aout_dump_thread() into asm/a.out-core.h and makes it inline.  This\n     is then included only where needed.  This means that this bit of arch\n     code will be stored in the appropriate A.OUT binfmt module rather than\n     the core kernel.\n\n (4) Drops A.OUT support for Blackfin (according to Mike Frysinger it\u0027s not\n     needed) and FRV.\n\nThis patch depends on the previous patch to move STACK_TOP[_MAX] out of\nasm/a.out.h and into asm/processor.h as they\u0027re required whether or not A.OUT\nformat is available.\n\n[jdike@addtoit.com: uml: re-remove accidentally restored code]\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "aa7738a5f503abea5445cdd8cc2d501502c748ae",
      "tree": "6e4a845990b68ad3c8d707c6e6abbed4ac24a8db",
      "parents": [
        "d94afc6ccf6690b30ae112ec8101b3f10d50114e"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Fri Feb 08 04:18:39 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:24 2008 -0800"
      },
      "message": "tty: let architectures override the user/kernel macros.\n\nGive architectures that support the new termios2 the possibilty to overide the\nuser_termios_to_kernel_termios and kernel_termios_to_user_termios macros.  As\nsoon as all architectures that use the generic variant have been converted the\nifdefs can go away again.  Architectures in question are avr32, frv, powerpc\nand s390.\n\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "068fbad288a2c18b75b0425fb56d241f018a1cb5",
      "tree": "441674bb0658208fbc5f6eab96b8641ab7345caf",
      "parents": [
        "6e16d89bcd668a95eb22add24c02d80890232b66"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:07 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:30 2008 -0800"
      },
      "message": "Add cmpxchg_local to asm-generic for per cpu atomic operations\n\nEmulates the cmpxchg_local by disabling interrupts around variable modification.\nThis is not reentrant wrt NMIs and MCEs. It is only protected against normal\ninterrupts, but this is enough for architectures without such interrupt sources\nor if used in a context where the data is not shared with such handlers.\n\nIt can be used as a fallback for architectures lacking a real cmpxchg\ninstruction.\n\nFor architectures that have a real cmpxchg but does not have NMIs or MCE,\ntesting which of the generic vs architecture specific cmpxchg is the fastest\nshould be done.\n\nasm-generic/cmpxchg.h defines a cmpxchg that uses cmpxchg_local. It is meant to\nbe used as a cmpxchg fallback for architectures that do not support SMP.\n\n* Patch series comments\n\nUsing cmpxchg_local shows a performance improvements of the fast path goes from\na 66% speedup on a Pentium 4 to a 14% speedup on AMD64.\n\nIn detail:\n\nTested-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nMeasurements on a Pentium4, 3GHz, Hyperthread.\nSLUB Performance testing\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n1. Kmalloc: Repeatedly allocate then free test\n\n* slub HEAD, test 1\nkmalloc(8) \u003d 201 cycles         kfree \u003d 351 cycles\nkmalloc(16) \u003d 198 cycles        kfree \u003d 359 cycles\nkmalloc(32) \u003d 200 cycles        kfree \u003d 381 cycles\nkmalloc(64) \u003d 224 cycles        kfree \u003d 394 cycles\nkmalloc(128) \u003d 285 cycles       kfree \u003d 424 cycles\nkmalloc(256) \u003d 411 cycles       kfree \u003d 546 cycles\nkmalloc(512) \u003d 480 cycles       kfree \u003d 619 cycles\nkmalloc(1024) \u003d 623 cycles      kfree \u003d 750 cycles\nkmalloc(2048) \u003d 686 cycles      kfree \u003d 811 cycles\nkmalloc(4096) \u003d 482 cycles      kfree \u003d 538 cycles\nkmalloc(8192) \u003d 680 cycles      kfree \u003d 734 cycles\nkmalloc(16384) \u003d 713 cycles     kfree \u003d 843 cycles\n\n* Slub HEAD, test 2\nkmalloc(8) \u003d 190 cycles         kfree \u003d 351 cycles\nkmalloc(16) \u003d 195 cycles        kfree \u003d 360 cycles\nkmalloc(32) \u003d 201 cycles        kfree \u003d 370 cycles\nkmalloc(64) \u003d 245 cycles        kfree \u003d 389 cycles\nkmalloc(128) \u003d 283 cycles       kfree \u003d 413 cycles\nkmalloc(256) \u003d 409 cycles       kfree \u003d 547 cycles\nkmalloc(512) \u003d 476 cycles       kfree \u003d 616 cycles\nkmalloc(1024) \u003d 628 cycles      kfree \u003d 753 cycles\nkmalloc(2048) \u003d 684 cycles      kfree \u003d 811 cycles\nkmalloc(4096) \u003d 480 cycles      kfree \u003d 539 cycles\nkmalloc(8192) \u003d 661 cycles      kfree \u003d 746 cycles\nkmalloc(16384) \u003d 741 cycles     kfree \u003d 856 cycles\n\n* cmpxchg_local Slub test\nkmalloc(8) \u003d 83 cycles          kfree \u003d 363 cycles\nkmalloc(16) \u003d 85 cycles         kfree \u003d 372 cycles\nkmalloc(32) \u003d 92 cycles         kfree \u003d 377 cycles\nkmalloc(64) \u003d 115 cycles        kfree \u003d 397 cycles\nkmalloc(128) \u003d 179 cycles       kfree \u003d 438 cycles\nkmalloc(256) \u003d 314 cycles       kfree \u003d 564 cycles\nkmalloc(512) \u003d 398 cycles       kfree \u003d 615 cycles\nkmalloc(1024) \u003d 573 cycles      kfree \u003d 745 cycles\nkmalloc(2048) \u003d 629 cycles      kfree \u003d 816 cycles\nkmalloc(4096) \u003d 473 cycles      kfree \u003d 548 cycles\nkmalloc(8192) \u003d 659 cycles      kfree \u003d 745 cycles\nkmalloc(16384) \u003d 724 cycles     kfree \u003d 843 cycles\n\n2. Kmalloc: alloc/free test\n\n* slub HEAD, test 1\nkmalloc(8)/kfree \u003d 322 cycles\nkmalloc(16)/kfree \u003d 318 cycles\nkmalloc(32)/kfree \u003d 318 cycles\nkmalloc(64)/kfree \u003d 325 cycles\nkmalloc(128)/kfree \u003d 318 cycles\nkmalloc(256)/kfree \u003d 328 cycles\nkmalloc(512)/kfree \u003d 328 cycles\nkmalloc(1024)/kfree \u003d 328 cycles\nkmalloc(2048)/kfree \u003d 328 cycles\nkmalloc(4096)/kfree \u003d 678 cycles\nkmalloc(8192)/kfree \u003d 1013 cycles\nkmalloc(16384)/kfree \u003d 1157 cycles\n\n* Slub HEAD, test 2\nkmalloc(8)/kfree \u003d 323 cycles\nkmalloc(16)/kfree \u003d 318 cycles\nkmalloc(32)/kfree \u003d 318 cycles\nkmalloc(64)/kfree \u003d 318 cycles\nkmalloc(128)/kfree \u003d 318 cycles\nkmalloc(256)/kfree \u003d 328 cycles\nkmalloc(512)/kfree \u003d 328 cycles\nkmalloc(1024)/kfree \u003d 328 cycles\nkmalloc(2048)/kfree \u003d 328 cycles\nkmalloc(4096)/kfree \u003d 648 cycles\nkmalloc(8192)/kfree \u003d 1009 cycles\nkmalloc(16384)/kfree \u003d 1105 cycles\n\n* cmpxchg_local Slub test\nkmalloc(8)/kfree \u003d 112 cycles\nkmalloc(16)/kfree \u003d 103 cycles\nkmalloc(32)/kfree \u003d 103 cycles\nkmalloc(64)/kfree \u003d 103 cycles\nkmalloc(128)/kfree \u003d 112 cycles\nkmalloc(256)/kfree \u003d 111 cycles\nkmalloc(512)/kfree \u003d 111 cycles\nkmalloc(1024)/kfree \u003d 111 cycles\nkmalloc(2048)/kfree \u003d 121 cycles\nkmalloc(4096)/kfree \u003d 650 cycles\nkmalloc(8192)/kfree \u003d 1042 cycles\nkmalloc(16384)/kfree \u003d 1149 cycles\n\nTested-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nMeasurements on a AMD64 2.0 GHz dual-core\n\nIn this test, we seem to remove 10 cycles from the kmalloc fast path.\nOn small allocations, it gives a 14% performance increase. kfree fast\npath also seems to have a 10 cycles improvement.\n\n1. Kmalloc: Repeatedly allocate then free test\n\n* cmpxchg_local slub\nkmalloc(8) \u003d 63 cycles      kfree \u003d 126 cycles\nkmalloc(16) \u003d 66 cycles     kfree \u003d 129 cycles\nkmalloc(32) \u003d 76 cycles     kfree \u003d 138 cycles\nkmalloc(64) \u003d 100 cycles    kfree \u003d 288 cycles\nkmalloc(128) \u003d 128 cycles   kfree \u003d 309 cycles\nkmalloc(256) \u003d 170 cycles   kfree \u003d 315 cycles\nkmalloc(512) \u003d 221 cycles   kfree \u003d 357 cycles\nkmalloc(1024) \u003d 324 cycles  kfree \u003d 393 cycles\nkmalloc(2048) \u003d 354 cycles  kfree \u003d 440 cycles\nkmalloc(4096) \u003d 394 cycles  kfree \u003d 330 cycles\nkmalloc(8192) \u003d 523 cycles  kfree \u003d 481 cycles\nkmalloc(16384) \u003d 643 cycles kfree \u003d 649 cycles\n\n* Base\nkmalloc(8) \u003d 74 cycles      kfree \u003d 113 cycles\nkmalloc(16) \u003d 76 cycles     kfree \u003d 116 cycles\nkmalloc(32) \u003d 85 cycles     kfree \u003d 133 cycles\nkmalloc(64) \u003d 111 cycles    kfree \u003d 279 cycles\nkmalloc(128) \u003d 138 cycles   kfree \u003d 294 cycles\nkmalloc(256) \u003d 181 cycles   kfree \u003d 304 cycles\nkmalloc(512) \u003d 237 cycles   kfree \u003d 327 cycles\nkmalloc(1024) \u003d 340 cycles  kfree \u003d 379 cycles\nkmalloc(2048) \u003d 378 cycles  kfree \u003d 433 cycles\nkmalloc(4096) \u003d 399 cycles  kfree \u003d 329 cycles\nkmalloc(8192) \u003d 528 cycles  kfree \u003d 624 cycles\nkmalloc(16384) \u003d 651 cycles kfree \u003d 737 cycles\n\n2. Kmalloc: alloc/free test\n\n* cmpxchg_local slub\nkmalloc(8)/kfree \u003d 96 cycles\nkmalloc(16)/kfree \u003d 97 cycles\nkmalloc(32)/kfree \u003d 97 cycles\nkmalloc(64)/kfree \u003d 97 cycles\nkmalloc(128)/kfree \u003d 97 cycles\nkmalloc(256)/kfree \u003d 105 cycles\nkmalloc(512)/kfree \u003d 108 cycles\nkmalloc(1024)/kfree \u003d 105 cycles\nkmalloc(2048)/kfree \u003d 107 cycles\nkmalloc(4096)/kfree \u003d 390 cycles\nkmalloc(8192)/kfree \u003d 626 cycles\nkmalloc(16384)/kfree \u003d 662 cycles\n\n* Base\nkmalloc(8)/kfree \u003d 116 cycles\nkmalloc(16)/kfree \u003d 116 cycles\nkmalloc(32)/kfree \u003d 116 cycles\nkmalloc(64)/kfree \u003d 116 cycles\nkmalloc(128)/kfree \u003d 116 cycles\nkmalloc(256)/kfree \u003d 126 cycles\nkmalloc(512)/kfree \u003d 126 cycles\nkmalloc(1024)/kfree \u003d 126 cycles\nkmalloc(2048)/kfree \u003d 126 cycles\nkmalloc(4096)/kfree \u003d 384 cycles\nkmalloc(8192)/kfree \u003d 749 cycles\nkmalloc(16384)/kfree \u003d 786 cycles\n\nTested-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nI can confirm Mathieus\u0027 measurement now:\n\nAthlon64:\n\nregular NUMA/discontig\n\n1. Kmalloc: Repeatedly allocate then free test\n10000 times kmalloc(8) -\u003e 79 cycles kfree -\u003e 92 cycles\n10000 times kmalloc(16) -\u003e 79 cycles kfree -\u003e 93 cycles\n10000 times kmalloc(32) -\u003e 88 cycles kfree -\u003e 95 cycles\n10000 times kmalloc(64) -\u003e 124 cycles kfree -\u003e 132 cycles\n10000 times kmalloc(128) -\u003e 157 cycles kfree -\u003e 247 cycles\n10000 times kmalloc(256) -\u003e 200 cycles kfree -\u003e 257 cycles\n10000 times kmalloc(512) -\u003e 250 cycles kfree -\u003e 277 cycles\n10000 times kmalloc(1024) -\u003e 337 cycles kfree -\u003e 314 cycles\n10000 times kmalloc(2048) -\u003e 365 cycles kfree -\u003e 330 cycles\n10000 times kmalloc(4096) -\u003e 352 cycles kfree -\u003e 240 cycles\n10000 times kmalloc(8192) -\u003e 456 cycles kfree -\u003e 340 cycles\n10000 times kmalloc(16384) -\u003e 646 cycles kfree -\u003e 471 cycles\n2. Kmalloc: alloc/free test\n10000 times kmalloc(8)/kfree -\u003e 124 cycles\n10000 times kmalloc(16)/kfree -\u003e 124 cycles\n10000 times kmalloc(32)/kfree -\u003e 124 cycles\n10000 times kmalloc(64)/kfree -\u003e 124 cycles\n10000 times kmalloc(128)/kfree -\u003e 124 cycles\n10000 times kmalloc(256)/kfree -\u003e 132 cycles\n10000 times kmalloc(512)/kfree -\u003e 132 cycles\n10000 times kmalloc(1024)/kfree -\u003e 132 cycles\n10000 times kmalloc(2048)/kfree -\u003e 132 cycles\n10000 times kmalloc(4096)/kfree -\u003e 319 cycles\n10000 times kmalloc(8192)/kfree -\u003e 486 cycles\n10000 times kmalloc(16384)/kfree -\u003e 539 cycles\n\ncmpxchg_local NUMA/discontig\n\n1. Kmalloc: Repeatedly allocate then free test\n10000 times kmalloc(8) -\u003e 55 cycles kfree -\u003e 90 cycles\n10000 times kmalloc(16) -\u003e 55 cycles kfree -\u003e 92 cycles\n10000 times kmalloc(32) -\u003e 70 cycles kfree -\u003e 91 cycles\n10000 times kmalloc(64) -\u003e 100 cycles kfree -\u003e 141 cycles\n10000 times kmalloc(128) -\u003e 128 cycles kfree -\u003e 233 cycles\n10000 times kmalloc(256) -\u003e 172 cycles kfree -\u003e 251 cycles\n10000 times kmalloc(512) -\u003e 225 cycles kfree -\u003e 275 cycles\n10000 times kmalloc(1024) -\u003e 325 cycles kfree -\u003e 311 cycles\n10000 times kmalloc(2048) -\u003e 346 cycles kfree -\u003e 330 cycles\n10000 times kmalloc(4096) -\u003e 351 cycles kfree -\u003e 238 cycles\n10000 times kmalloc(8192) -\u003e 450 cycles kfree -\u003e 342 cycles\n10000 times kmalloc(16384) -\u003e 630 cycles kfree -\u003e 546 cycles\n2. Kmalloc: alloc/free test\n10000 times kmalloc(8)/kfree -\u003e 81 cycles\n10000 times kmalloc(16)/kfree -\u003e 81 cycles\n10000 times kmalloc(32)/kfree -\u003e 81 cycles\n10000 times kmalloc(64)/kfree -\u003e 81 cycles\n10000 times kmalloc(128)/kfree -\u003e 81 cycles\n10000 times kmalloc(256)/kfree -\u003e 91 cycles\n10000 times kmalloc(512)/kfree -\u003e 90 cycles\n10000 times kmalloc(1024)/kfree -\u003e 91 cycles\n10000 times kmalloc(2048)/kfree -\u003e 90 cycles\n10000 times kmalloc(4096)/kfree -\u003e 318 cycles\n10000 times kmalloc(8192)/kfree -\u003e 483 cycles\n10000 times kmalloc(16384)/kfree -\u003e 536 cycles\n\nChangelog:\n- Ran though checkpatch.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ed7b1889da256977574663689b598d88950bbd23",
      "tree": "bdbf8d12826dece7ec4ccb4edcb18cd66dc842a0",
      "parents": [
        "6cc931b9b5ec652c90b928f3ec2163f261552c91"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "k.shutemov@gmail.com",
        "time": "Thu Feb 07 00:15:56 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:30 2008 -0800"
      },
      "message": "Unexport asm/page.h\n\nDo not export asm/page.h during make headers_install.  This removes PAGE_SIZE\nfrom userspace headers.\n\nSigned-off-by: Kirill A. Shutemov \u003ck.shutemov@gmail.com\u003e\nReviewed-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\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": "6cc931b9b5ec652c90b928f3ec2163f261552c91",
      "tree": "0f01557ada755c56baffe102614149ad190ebb02",
      "parents": [
        "516c25a86f6bdad77ded01a43c52c5569c8d690c"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "k.shutemov@gmail.com",
        "time": "Thu Feb 07 00:15:55 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:30 2008 -0800"
      },
      "message": "Unexport asm/elf.h\n\nDo not export asm/elf.h during make headers_install.\n\nSigned-off-by: Kirill A. Shutemov \u003ck.shutemov@gmail.com\u003e\nReviewed-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c1445db9f72db0537c43a2eab6e1b0f6741162f5",
      "tree": "3ea99c656c8d3699631c29d003ffe2f81752eb79",
      "parents": [
        "12debc4248a4a7f1873e47cda2cdd7faca80b099"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "k.shutemov@gmail.com",
        "time": "Thu Feb 07 00:15:53 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:29 2008 -0800"
      },
      "message": "Unexport asm/user.h and linux/user.h\n\nDo not export asm/user.h and linux/user.h during make headers_install.\n\nSigned-off-by: Kirill A. Shutemov \u003ck.shutemov@gmail.com\u003e\nReviewed-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nAcked-by: 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": "a3b81113fb6658629f4ebaabf8dd3067cd341020",
      "tree": "c6823e84d410f18b110ce07726643d7dc841553d",
      "parents": [
        "0a5dcb51770be3cd0202d6b90a07996fb40130b6"
      ],
      "author": {
        "name": "Robin Getz",
        "email": "rgetz@blackfin.uclinux.org",
        "time": "Wed Feb 06 01:36:26 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:01 2008 -0800"
      },
      "message": "remove support for un-needed _extratext section\n\nWhen passing a zero address to kallsyms_lookup(), the kernel thought it was\na valid kernel address, even if it is not.  This is because is_ksym_addr()\ncalled is_kernel_extratext() and checked against labels that don\u0027t exist on\nmany archs (which default as zero).  Since PPC was the only kernel which\ndefines _extra_text, (in 2005), and no longer needs it, this patch removes\n_extra_text support.\n\nFor some history (provided by Jon):\n http://ozlabs.org/pipermail/linuxppc-dev/2005-September/019734.html\n http://ozlabs.org/pipermail/linuxppc-dev/2005-September/019736.html\n http://ozlabs.org/pipermail/linuxppc-dev/2005-September/019751.html\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Robin Getz \u003crgetz@blackfin.uclinux.org\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Jon Loeliger \u003cjdl@freescale.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "06b8e878a9bc9301201cffe186eba99c4185f20a",
      "tree": "857434ed559cdb001177e81283be6f0b5693a781",
      "parents": [
        "d9afa43532adf8a31b93c4c7601fda3f423d8972"
      ],
      "author": {
        "name": "Michael Neuling",
        "email": "mikey@neuling.org",
        "time": "Wed Feb 06 01:36:12 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:00 2008 -0800"
      },
      "message": "taskstats scaled time cleanup\n\nThis moves the ability to scale cputime into generic code.  This allows us\nto fix the issue in kernel/timer.c (noticed by Balbir) where we could only\nadd an unscaled value to the scaled utime/stime.\n\nThis adds a cputime_to_scaled function.  As before, the POWERPC version\ndoes the scaling based on the last SPURR/PURR ratio calculated.  The\ngeneric and s390 (only other arch to implement asm/cputime.h) versions are\nboth NOPs.\n\nAlso moves the SPURR and PURR snapshots closer.\n\nSigned-off-by: Michael Neuling \u003cmikey@neuling.org\u003e\nCc: Jay Lan \u003cjlan@engr.sgi.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5e5419734c8719cbc01af959ad9c0844002c0df5",
      "tree": "a075dca3f719946689efa0245464855cbf2a20ce",
      "parents": [
        "9f8f2172537de7af0b0fbd33502d18d52b1339bc"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Mon Feb 04 22:29:14 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:18 2008 -0800"
      },
      "message": "add mm argument to pte/pmd/pud/pgd_free\n\n(with Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e)\n\nThe pgd/pud/pmd/pte page table allocation functions get a mm_struct pointer as\nfirst argument.  The free functions do not get the mm_struct argument.  This\nis 1) asymmetrical and 2) to do mm related page table allocations the mm\nargument is needed on the free function as well.\n\n[kamalesh@linux.vnet.ibm.com: i386 fix]\n[akpm@linux-foundation.org: coding-syle fixes]\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Kamalesh Babulal \u003ckamalesh@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d2876d08d86f22ce1f276fc29f6baec8b53e32c6",
      "tree": "d9d059fad208001edb58d9dff3ed6ad64c8e7407",
      "parents": [
        "a9c5fff542544c8595bb12efeb278a96d99386fc"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Mon Feb 04 22:28:20 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:12 2008 -0800"
      },
      "message": "gpiolib: add gpio provider infrastructure\n\nProvide new implementation infrastructure that platforms may choose to use\nwhen implementing the GPIO programming interface.  Platforms can update their\nGPIO support to use this.  In many cases the incremental cost to access a\nnon-inlined GPIO should be less than a dozen instructions, with the memory\ncost being about a page (total) of extra data and code.  The upside is:\n\n  * Providing two features which were \"want to have (but OK to defer)\" when\n    GPIO interfaces were first discussed in November 2006:\n\n    -\tA \"struct gpio_chip\" to plug in GPIOs that aren\u0027t directly supported\n\tby SOC platforms, but come from FPGAs or other multifunction devices\n\tusing conventional device registers (like UCB-1x00 or SM501 GPIOs,\n\tand southbridges in PCs with more open specs than usual).\n\n    -\tFull support for message-based GPIO expanders, where registers are\n\taccessed through sleeping I/O calls.  Previous support for these\n\t\"cansleep\" calls was just stubs.  (One example: the widely used\n\tpcf8574 I2C chips, with 8 GPIOs each.)\n\n  * Including a non-stub implementation of the gpio_{request,free}() calls,\n    making those calls much more useful.  The diagnostic labels are also\n    recorded given DEBUG_FS, so /sys/kernel/debug/gpio can show a snapshot\n    of all GPIOs known to this infrastructure.\n\nThe driver programming interfaces introduced in 2.6.21 do not change at all;\nthis infrastructure is entirely below those covers.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Eric Miao \u003ceric.miao@marvell.com\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: Philipp Zabel \u003cphilipp.zabel@gmail.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ben Gardner \u003cbgardner@wabtec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "795d45b22c079946332bf3825afefe5a981a97b6",
      "tree": "8952c202b021cb73f3a85988a91dd54724707a0b",
      "parents": [
        "7b610eec7a06ede64f71459e7f412dfd96f4cc5e"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Mon Feb 04 16:48:10 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 04 16:48:10 2008 +0100"
      },
      "message": "x86: fix RTC lockdep warning: potential hardirq recursion\n\nAfter disabling both CONFIG_DEBUG_LOCKING_API_SELFTESTS and netconsole\n(using current mainline) I get a login prompt, and also...\n\n[    5.181668] SELinux: policy loaded with handle_unknown\u003ddeny\n[    5.183315] type\u003d1403 audit(1202100038.157:3): policy loaded auid\u003d4294967295 ses\u003d4294967295\n[    5.822073] SELinux: initialized (dev usbfs, type usbfs), uses genfs_contexts\n[    7.819146] ------------[ cut here ]------------\n[    7.819146] WARNING: at kernel/lockdep.c:2033 trace_hardirqs_on+0x9b/0x10d()\n[    7.819146] Modules linked in: generic ext3 jbd ide_disk ide_core\n[    7.819146] Pid: 399, comm: hwclock Not tainted 2.6.24 #4\n[    7.819146]  [\u003cc011d140\u003e] warn_on_slowpath+0x41/0x51\n[    7.819146]  [\u003cc01364a9\u003e] ? lock_release_holdtime+0x50/0x56\n[    7.819146]  [\u003cc013770c\u003e] ? check_usage_forwards+0x19/0x3b\n[    7.819146]  [\u003cc01390c4\u003e] ? __lock_acquire+0xac3/0xb0b\n[    7.819146]  [\u003cc0108c98\u003e] ? native_sched_clock+0x8b/0x9f\n[    7.819146]  [\u003cc01364a9\u003e] ? lock_release_holdtime+0x50/0x56\n[    7.819146]  [\u003cc030ca6c\u003e] ? _spin_unlock_irq+0x22/0x42\n[    7.819146]  [\u003cc013848b\u003e] trace_hardirqs_on+0x9b/0x10d\n[    7.819146]  [\u003cc030ca6c\u003e] _spin_unlock_irq+0x22/0x42\n[    7.819146]  [\u003cc011481e\u003e] hpet_rtc_interrupt+0xdf/0x290\n[    7.819146]  [\u003cc014ea90\u003e] handle_IRQ_event+0x1a/0x46\n[    7.819146]  [\u003cc014f8ea\u003e] handle_edge_irq+0xbe/0xff\n[    7.819146]  [\u003cc0106e08\u003e] do_IRQ+0x6d/0x84\n[    7.819146]  [\u003cc0105596\u003e] common_interrupt+0x2e/0x34\n[    7.819146]  [\u003cc013007b\u003e] ? ktime_get_ts+0x8/0x3f\n[    7.819146]  [\u003cc0139420\u003e] ? lock_release+0x167/0x16f\n[    7.819146]  [\u003cc017974a\u003e] ? core_sys_select+0x2c/0x327\n[    7.819146]  [\u003cc0179792\u003e] core_sys_select+0x74/0x327\n[    7.819146]  [\u003cc0108c98\u003e] ? native_sched_clock+0x8b/0x9f\n[    7.819146]  [\u003cc01364a9\u003e] ? lock_release_holdtime+0x50/0x56\n[    7.819146]  [\u003cc030ca6c\u003e] ? _spin_unlock_irq+0x22/0x42\n[    7.819146]  [\u003cc01384d6\u003e] ? trace_hardirqs_on+0xe6/0x10d\n[    7.819146]  [\u003cc030ca77\u003e] ? _spin_unlock_irq+0x2d/0x42\n[    7.819146]  [\u003cc023b437\u003e] ? rtc_do_ioctl+0x11b/0x677\n[    7.819146]  [\u003cc01c487e\u003e] ? inode_has_perm+0x5e/0x68\n[    7.819146]  [\u003cc01364a9\u003e] ? lock_release_holdtime+0x50/0x56\n[    7.819146]  [\u003cc0108c98\u003e] ? native_sched_clock+0x8b/0x9f\n[    7.819146]  [\u003cc01c490b\u003e] ? file_has_perm+0x83/0x8c\n[    7.819146]  [\u003cc023ba08\u003e] ? rtc_ioctl+0xf/0x11\n[    7.819146]  [\u003cc017898d\u003e] ? do_ioctl+0x55/0x67\n[    7.819146]  [\u003cc0179d15\u003e] sys_select+0x93/0x163\n[    7.819146]  [\u003cc0104b39\u003e] ? sysenter_past_esp+0x9a/0xa5\n[    7.819146]  [\u003cc0104afe\u003e] sysenter_past_esp+0x5f/0xa5\n[    7.819146]  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[    7.819146] ---[ end trace 96540ca301ffb84c ]---\n[    7.819210] rtc: lost 6 interrupts\n[    7.870668] type\u003d1400 audit(1202128840.794:4): avc:  denied  { audit_write } for  pid\u003d399 comm\u003d\"hwclock\" capability\u003d29 scontext\u003dsystem_u:system_r:hwclock_t:s0 tcontext\u003dsystem_u:system_r:hwclock_t:s0 tclass\u003dcapability\n[    9.538866] input: PC Speaker as /class/input/input5\n\nBecause hpet_rtc_interrupt()\u0027s call to get_rtc_time() ends up\nresolving to include/asm-generic/rtc.h\u0027s (hilariously inlined)\nget_rtc_time(), which does spin_unlock_irq() from hard IRQ context.\n\nThe obvious patch fixes it.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e1adbcf10608c83de6a81a02ebce859611433b52",
      "tree": "dad654b0f178d251c61d47d8558a9485b4f56df0",
      "parents": [
        "f0be6c6a697c2fe8e2efbe98cd157bdbcff969ae"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Mon Feb 04 16:48:00 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 04 16:48:00 2008 +0100"
      },
      "message": "asm-generic/tlb.h: remove \u003clinux/quicklist.h\u003e\n\nRemove unused \u003clinux/quicklist.h\u003e from \u003casm-generic/tlb.h\u003e; per\nChristoph Lameter this should have been part of a previous patch\nreversal but apparently didn\u0027t get removed.\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "62152d0ea7012382cd814c7b361b4ef2029f26e6",
      "tree": "2552f298c9c5c1f9be6d863d58ab5b4c0b24c37f",
      "parents": [
        "5aa0508508e7cd62bec6e3933b86fce03d2e8502"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jan 31 22:05:48 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jan 31 22:05:48 2008 +0100"
      },
      "message": "asm-generic/tlb.h: build fix\n\nbring back the avr32, blackfin, sh, sparc architectures into working order,\nby reverting the effects of this change that came in via the x86 tree:\n\n   commit a5a19c63f4e55e32dc0bc3d936d7f94793d8b380\n   Author: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\n   Date:   Wed Jan 30 13:33:39 2008 +0100\n\n       x86: demacro asm-x86/pgalloc_32.h\n\nSorry about that!\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "edeed30589f5defe63ce6aaae56f2b7c855e4520",
      "tree": "a49736ff74dcbd3feba3c8318b204fb2165f892d",
      "parents": [
        "adafdf6a4e45f2d1051e10aebe13025e89dbdf6d"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Wed Jan 30 13:34:08 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:34:08 2008 +0100"
      },
      "message": "x86: add testcases for RODATA and NX protections/attributes\n\nLatest update; I now have 4 NX tests, but 2 fail so they\u0027re #if 0\u0027d.\nI also cleaned up the NX test code quite a bit, and got rid of the ugly\nexception table sorting stuff.\n\nFrom: Arjan van de Ven \u003carjan@linux.intel.com\u003e\n\nThis patch adds testcases for the CONFIG_DEBUG_RODATA configuration option\nas well as the NX CPU feature/mappings. Both testcases can move to tests/\nonce that patch gets merged into mainline.\n(I\u0027m half considering moving the rodata test into mm/init.c but I\u0027ll\nwait with that until init.c is unified)\n\nAs part of this I had to fix a not-quite-right alignment in the vmlinux.lds.h\nfor the RODATA sections, which lead to 1 page less being marked read only.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "a5a19c63f4e55e32dc0bc3d936d7f94793d8b380",
      "tree": "3aaf621cd79889ed2658de2c30fa2fea42c86cf5",
      "parents": [
        "6c435456dc91ace468b4e9d72ad0e13dafa22a45"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed Jan 30 13:33:39 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:33:39 2008 +0100"
      },
      "message": "x86: demacro asm-x86/pgalloc_32.h\n\nConvert macros into inline functions, for better type-checking.\n\nThis patch required a little bit of fiddling with headers in order to\nmake __(pte|pmd)_free_tlb inline rather than macros.\nasm-generic/tlb.h includes asm/pgalloc.h, though it doesn\u0027t directly\nuse any pgalloc definitions.  I removed this include to avoid an\ninclude cycle, but it may cause secondary compile failures by things\ndepending on the indirect inclusion; arch/x86/mm/hugetlbpage.c was one\nsuch place; there may be others.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "dd5af90a7f3d79e04b7eace9a98644dbf2038f4d",
      "tree": "22327ba385c830b7be391c76821dc5ec26863f2e",
      "parents": [
        "3212bff370c2f22e4987c6679ba485654cefb178"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Wed Jan 30 13:33:32 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:33:32 2008 +0100"
      },
      "message": "x86/non-x86: percpu, node ids, apic ids x86.git fixup\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "acdac87202a408133ee8f7985076de9d2e0dc5ab",
      "tree": "55948448c7f179713fc8d1d1ae01ad53adec9c2b",
      "parents": [
        "5280e004fc22314122c84978c0b6a741cf96dc0f"
      ],
      "author": {
        "name": "travis@sgi.com",
        "email": "travis@sgi.com",
        "time": "Wed Jan 30 13:32:52 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:32:52 2008 +0100"
      },
      "message": "percpu: make the asm-generic/percpu.h more \"generic\"\n\n- add support for PER_CPU_ATTRIBUTES\n\n- fix generic smp percpu_modcopy to use per_cpu_offset() macro.\n\nAdd the ability to use generic/percpu even if the arch needs to override\nseveral aspects of its operations. This will enable the use of generic\npercpu.h for all arches.\n\nAn arch may define:\n\n__per_cpu_offset\tDo not use the generic pointer array. Arch must\n\t\t\tdefine per_cpu_offset(cpu) (used by x86_64, s390).\n\n__my_cpu_offset\t\tCan be defined to provide an optimized way to determine\n\t\t\tthe offset for variables of the currently executing\n\t\t\tprocessor. Used by ia64, x86_64, x86_32, sparc64, s/390.\n\nSHIFT_PTR(ptr, offset)\tIf an arch defines it then special handling\n\t\t\tof pointer arithmentic may be implemented. Used\n\t\t\tby s/390.\n\n(Some of these special percpu arch implementations may be later consolidated\nso that there are less cases to deal with.)\n\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ],
  "next": "5280e004fc22314122c84978c0b6a741cf96dc0f"
}
