)]}'
{
  "log": [
    {
      "commit": "ed2d265d1266736bd294332d7f649003943ae36e",
      "tree": "860e5b7bb72933e4a9abacdc2f2d75a0e6254e32",
      "parents": [
        "f1d38e423a697b7aa06e12d3ca4753bcc1aa3531",
        "6c03438edeb5c359af35f060ea016ca65671c269"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 10:08:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 10:08:39 2012 -0700"
      },
      "message": "Merge tag \u0027bug-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux\n\nPull \u003clinux/bug.h\u003e cleanup from Paul Gortmaker:\n \"The changes shown here are to unify linux\u0027s BUG support under the one\n  \u003clinux/bug.h\u003e file.  Due to historical reasons, we have some BUG code\n  in bug.h and some in kernel.h -- i.e.  the support for BUILD_BUG in\n  linux/kernel.h predates the addition of linux/bug.h, but old code in\n  kernel.h wasn\u0027t moved to bug.h at that time.  As a band-aid, kernel.h\n  was including \u003casm/bug.h\u003e to pseudo link them.\n\n  This has caused confusion[1] and general yuck/WTF[2] reactions.  Here\n  is an example that violates the principle of least surprise:\n\n      CC      lib/string.o\n      lib/string.c: In function \u0027strlcat\u0027:\n      lib/string.c:225:2: error: implicit declaration of function \u0027BUILD_BUG_ON\u0027\n      make[2]: *** [lib/string.o] Error 1\n      $\n      $ grep linux/bug.h lib/string.c\n      #include \u003clinux/bug.h\u003e\n      $\n\n  We\u0027ve included \u003clinux/bug.h\u003e for the BUG infrastructure and yet we\n  still get a compile fail! [We\u0027ve not kernel.h for BUILD_BUG_ON.] Ugh -\n  very confusing for someone who is new to kernel development.\n\n  With the above in mind, the goals of this changeset are:\n\n  1) find and fix any include/*.h files that were relying on the\n     implicit presence of BUG code.\n  2) find and fix any C files that were consuming kernel.h and hence\n     relying on implicitly getting some/all BUG code.\n  3) Move the BUG related code living in kernel.h to \u003clinux/bug.h\u003e\n  4) remove the asm/bug.h from kernel.h to finally break the chain.\n\n  During development, the order was more like 3-4, build-test, 1-2.  But\n  to ensure that git history for bisect doesn\u0027t get needless build\n  failures introduced, the commits have been reorderd to fix the problem\n  areas in advance.\n\n\t[1]  https://lkml.org/lkml/2012/1/3/90\n\t[2]  https://lkml.org/lkml/2012/1/17/414\"\n\nFix up conflicts (new radeon file, reiserfs header cleanups) as per Paul\nand linux-next.\n\n* tag \u0027bug-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:\n  kernel.h: doesn\u0027t explicitly use bug.h, so don\u0027t include it.\n  bug: consolidate BUILD_BUG_ON with other bug code\n  BUG: headers with BUG/BUG_ON etc. need linux/bug.h\n  bug.h: add include of it to various implicit C users\n  lib: fix implicit users of kernel.h for TAINT_WARN\n  spinlock: macroize assert_spin_locked to avoid bug.h dependency\n  x86: relocate get/set debugreg fcns to include/asm/debugreg.\n"
    },
    {
      "commit": "8e3ade251bc7c0a4f0777df4dd34343a03efadba",
      "tree": "6c0b78731e3d6609057951d07660efbd90992ad0",
      "parents": [
        "e317234975cb7463b8ca21a93bb6862d9dcf113f",
        "e075f59152890ffd7e3d704afc997dd686c8a781"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:59:10 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:59:10 2012 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge second batch of patches from Andrew Morton:\n - various misc things\n - core kernel changes to prctl, exit, exec, init, etc.\n - kernel/watchdog.c updates\n - get_maintainer\n - MAINTAINERS\n - the backlight driver queue\n - core bitops code cleanups\n - the led driver queue\n - some core prio_tree work\n - checkpatch udpates\n - largeish crc32 update\n - a new poll() feature for the v4l guys\n - the rtc driver queue\n - fatfs\n - ptrace\n - signals\n - kmod/usermodehelper updates\n - coredump\n - procfs updates\n\n* emailed from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (141 commits)\n  seq_file: add seq_set_overflow(), seq_overflow()\n  proc-ns: use d_set_d_op() API to set dentry ops in proc_ns_instantiate().\n  procfs: speed up /proc/pid/stat, statm\n  procfs: add num_to_str() to speed up /proc/stat\n  proc: speed up /proc/stat handling\n  fs/proc/kcore.c: make get_sparsemem_vmemmap_info() static\n  coredump: add VM_NODUMP, MADV_NODUMP, MADV_CLEAR_NODUMP\n  coredump: remove VM_ALWAYSDUMP flag\n  kmod: make __request_module() killable\n  kmod: introduce call_modprobe() helper\n  usermodehelper: ____call_usermodehelper() doesn\u0027t need do_exit()\n  usermodehelper: kill umh_wait, renumber UMH_* constants\n  usermodehelper: implement UMH_KILLABLE\n  usermodehelper: introduce umh_complete(sub_info)\n  usermodehelper: use UMH_WAIT_PROC consistently\n  signal: zap_pid_ns_processes: s/SEND_SIG_NOINFO/SEND_SIG_FORCED/\n  signal: oom_kill_task: use SEND_SIG_FORCED instead of force_sig()\n  signal: cosmetic, s/from_ancestor_ns/force/ in prepare_signal() paths\n  signal: give SEND_SIG_FORCED more power to beat SIGNAL_UNKILLABLE\n  Hexagon: use set_current_blocked() and block_sigmask()\n  ...\n"
    },
    {
      "commit": "accb61fe7bb0f5c2a4102239e4981650f9048519",
      "tree": "5e7120b80944d9719684b94e0c419761ba2d59e1",
      "parents": [
        "909af768e88867016f427264ae39d27a57b6a8ed"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Fri Mar 23 15:02:51 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:42 2012 -0700"
      },
      "message": "coredump: add VM_NODUMP, MADV_NODUMP, MADV_CLEAR_NODUMP\n\nSince we no longer need the VM_ALWAYSDUMP flag, let\u0027s use the freed bit\nfor \u0027VM_NODUMP\u0027 flag.  The idea is is to add a new madvise() flag:\nMADV_DONTDUMP, which can be set by applications to specifically request\nmemory regions which should not dump core.\n\nThe specific application I have in mind is qemu: we can add a flag there\nthat wouldn\u0027t dump all of guest memory when qemu dumps core.  This flag\nmight also be useful for security sensitive apps that want to absolutely\nmake sure that parts of memory are not dumped.  To clear the flag use:\nMADV_DODUMP.\n\n[akpm@linux-foundation.org: s/MADV_NODUMP/MADV_DONTDUMP/, s/MADV_CLEAR_NODUMP/MADV_DODUMP/, per Roland]\n[akpm@linux-foundation.org: fix up the architectures which broke]\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@hack.frob.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Matt Turner \u003cmattst88@gmail.com\u003e\nCc: \"James E.J. Bottomley\" \u003cjejb@parisc-linux.org\u003e\nCc: Helge Deller \u003cdeller@gmx.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7ccaba5314caf3a2b1052edb3146ccc969b4d466",
      "tree": "b2d2c6a0c188794bf334b163bd89d827c84c1462",
      "parents": [
        "10db4e1e4e9a910a26b94045660e5ba7e7c71419"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@suse.com",
        "time": "Fri Mar 23 15:01:52 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:31 2012 -0700"
      },
      "message": "consolidate WARN_...ONCE() static variables\n\nDue to the alignment of following variables, these typically consume\nmore than just the single byte that \u0027bool\u0027 requires, and as there are a\nfew hundred instances, the cache pollution (not so much the waste of\nmemory) sums up.  Put these variables into their own section, outside of\nany half way frequently used memory range.\n\nDo the same also to the __warned variable of rcu_lockdep_assert().\n(Don\u0027t, however, include the ones used by printk_once() and alike, as\nthey can potentially be hot.)\n\nSigned-off-by: Jan Beulich \u003cjbeulich@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "475c77edf826333aa61625f49d6a2bec26ecb5a6",
      "tree": "8e1c6c319e347cd3c649fdb0b3ab45971c6b19e7",
      "parents": [
        "934e18b5cb4531cc6e81865bf54115cfd21d1ac6",
        "1488d5158dcd612fcdaf6b642451b026ee8bbcbb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 14:02:12 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 14:02:12 2012 -0700"
      },
      "message": "Merge branch \u0027linux-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci\n\nPull PCI changes (including maintainer change) from Jesse Barnes:\n \"This pull has some good cleanups from Bjorn and Yinghai, as well as\n  some more code from Yinghai to better handle resource re-allocation\n  when enabled.\n\n  There\u0027s also a new initcall_debug feature from Arjan which will print\n  out quirk timing information to help identify slow quirks for fixing\n  or refinement (Yinghai sent in a few patches to do just that once the\n  new debug code landed).\n\n  Beyond that, I\u0027m handing off PCI maintainership to Bjorn Helgaas.\n  He\u0027s been a core PCI and Linux contributor for some time now, and has\n  kindly volunteered to take over.  I just don\u0027t feel I have the time\n  for PCI review and work that it deserves lately (I\u0027ve taken on some\n  other projects), and haven\u0027t been as responsive lately as I\u0027d like, so\n  I approached Bjorn asking if he\u0027d like to manage things.  He\u0027s going\n  to give it a try, and I\u0027m confident he\u0027ll do at least as well as I\n  have in keeping the tree managed, patches flowing, and keeping things\n  stable.\"\n\nFix up some fairly trivial conflicts due to other cleanups (mips device\nresource fixup cleanups clashing with list handling cleanup, ppc iseries\nremoval clashing with pci_probe_only cleanup etc)\n\n* \u0027linux-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci: (112 commits)\n  PCI: Bjorn gets PCI hotplug too\n  PCI: hand PCI maintenance over to Bjorn Helgaas\n  unicore32/PCI: move \u003casm-generic/pci-bridge.h\u003e include to asm/pci.h\n  sparc/PCI: convert devtree and arch-probed bus addresses to resource\n  powerpc/PCI: allow reallocation on PA Semi\n  powerpc/PCI: convert devtree bus addresses to resource\n  powerpc/PCI: compute I/O space bus-to-resource offset consistently\n  arm/PCI: don\u0027t export pci_flags\n  PCI: fix bridge I/O window bus-to-resource conversion\n  x86/PCI: add spinlock held check to \u0027pcibios_fwaddrmap_lookup()\u0027\n  PCI / PCIe: Introduce command line option to disable ARI\n  PCI: make acpihp use __pci_remove_bus_device instead\n  PCI: export __pci_remove_bus_device\n  PCI: Rename pci_remove_behind_bridge to pci_stop_and_remove_behind_bridge\n  PCI: Rename pci_remove_bus_device to pci_stop_and_remove_bus_device\n  PCI: print out PCI device info along with duration\n  PCI: Move \"pci reassigndev resource alignment\" out of quirks.c\n  PCI: Use class for quirk for usb host controller fixup\n  PCI: Use class for quirk for ti816x class fixup\n  PCI: Use class for quirk for intel e100 interrupt fixup\n  ...\n"
    },
    {
      "commit": "e17fdf5c6778ff77d93dd769910992e4073b9348",
      "tree": "d1a7ca2b1faf4301b39300fbd82f9b91e605a77e",
      "parents": [
        "95211279c5ad00a317c98221d7e4365e02f20836",
        "a240ada241dafe290e7532d1ddeb98fdf1419068"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:13:24 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:13:24 2012 -0700"
      },
      "message": "Merge branch \u0027x86-asm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x86/asm changes from Ingo Molnar\n\n* \u0027x86-asm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86: Include probe_roms.h in probe_roms.c\n  x86/32: Print control and debug registers for kerenel context\n  x86: Tighten dependencies of CPU_SUP_*_32\n  x86/numa: Improve internode cache alignment\n  x86: Fix the NMI nesting comments\n  x86-64: Improve insn scheduling in SAVE_ARGS_IRQ\n  x86-64: Fix CFI annotations for NMI nesting code\n  bitops: Add missing parentheses to new get_order macro\n  bitops: Optimise get_order()\n  bitops: Adjust the comment on get_order() to describe the size\u003d\u003d0 case\n  x86/spinlocks: Eliminate TICKET_MASK\n  x86-64: Handle byte-wise tail copying in memcpy() without a loop\n  x86-64: Fix memcpy() to support sizes of 4Gb and above\n  x86-64: Fix memset() to support sizes of 4Gb and above\n  x86-64: Slightly shorten copy_page()\n"
    },
    {
      "commit": "1a5a9906d4e8d1976b701f889d8f35d54b928f25",
      "tree": "e51912e725f224663a738045a4d0528d08da4572",
      "parents": [
        "31f6765266417c0d99f0e922fe82848a7c9c2ae9"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Wed Mar 21 16:33:42 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:54 2012 -0700"
      },
      "message": "mm: thp: fix pmd_bad() triggering in code paths holding mmap_sem read mode\n\nIn some cases it may happen that pmd_none_or_clear_bad() is called with\nthe mmap_sem hold in read mode.  In those cases the huge page faults can\nallocate hugepmds under pmd_none_or_clear_bad() and that can trigger a\nfalse positive from pmd_bad() that will not like to see a pmd\nmaterializing as trans huge.\n\nIt\u0027s not khugepaged causing the problem, khugepaged holds the mmap_sem\nin write mode (and all those sites must hold the mmap_sem in read mode\nto prevent pagetables to go away from under them, during code review it\nseems vm86 mode on 32bit kernels requires that too unless it\u0027s\nrestricted to 1 thread per process or UP builds).  The race is only with\nthe huge pagefaults that can convert a pmd_none() into a\npmd_trans_huge().\n\nEffectively all these pmd_none_or_clear_bad() sites running with\nmmap_sem in read mode are somewhat speculative with the page faults, and\nthe result is always undefined when they run simultaneously.  This is\nprobably why it wasn\u0027t common to run into this.  For example if the\nmadvise(MADV_DONTNEED) runs zap_page_range() shortly before the page\nfault, the hugepage will not be zapped, if the page fault runs first it\nwill be zapped.\n\nAltering pmd_bad() not to error out if it finds hugepmds won\u0027t be enough\nto fix this, because zap_pmd_range would then proceed to call\nzap_pte_range (which would be incorrect if the pmd become a\npmd_trans_huge()).\n\nThe simplest way to fix this is to read the pmd in the local stack\n(regardless of what we read, no need of actual CPU barriers, only\ncompiler barrier needed), and be sure it is not changing under the code\nthat computes its value.  Even if the real pmd is changing under the\nvalue we hold on the stack, we don\u0027t care.  If we actually end up in\nzap_pte_range it means the pmd was not none already and it was not huge,\nand it can\u0027t become huge from under us (khugepaged locking explained\nabove).\n\nAll we need is to enforce that there is no way anymore that in a code\npath like below, pmd_trans_huge can be false, but pmd_none_or_clear_bad\ncan run into a hugepmd.  The overhead of a barrier() is just a compiler\ntweak and should not be measurable (I only added it for THP builds).  I\ndon\u0027t exclude different compiler versions may have prevented the race\ntoo by caching the value of *pmd on the stack (that hasn\u0027t been\nverified, but it wouldn\u0027t be impossible considering\npmd_none_or_clear_bad, pmd_bad, pmd_trans_huge, pmd_none are all inlines\nand there\u0027s no external function called in between pmd_trans_huge and\npmd_none_or_clear_bad).\n\n\t\tif (pmd_trans_huge(*pmd)) {\n\t\t\tif (next-addr !\u003d HPAGE_PMD_SIZE) {\n\t\t\t\tVM_BUG_ON(!rwsem_is_locked(\u0026tlb-\u003emm-\u003emmap_sem));\n\t\t\t\tsplit_huge_page_pmd(vma-\u003evm_mm, pmd);\n\t\t\t} else if (zap_huge_pmd(tlb, vma, pmd, addr))\n\t\t\t\tcontinue;\n\t\t\t/* fall through */\n\t\t}\n\t\tif (pmd_none_or_clear_bad(pmd))\n\nBecause this race condition could be exercised without special\nprivileges this was reported in CVE-2012-1179.\n\nThe race was identified and fully explained by Ulrich who debugged it.\nI\u0027m quoting his accurate explanation below, for reference.\n\n\u003d\u003d\u003d\u003d\u003d\u003d start quote \u003d\u003d\u003d\u003d\u003d\u003d\u003d\n      mapcount 0 page_mapcount 1\n      kernel BUG at mm/huge_memory.c:1384!\n\n    At some point prior to the panic, a \"bad pmd ...\" message similar to the\n    following is logged on the console:\n\n      mm/memory.c:145: bad pmd ffff8800376e1f98(80000000314000e7).\n\n    The \"bad pmd ...\" message is logged by pmd_clear_bad() before it clears\n    the page\u0027s PMD table entry.\n\n        143 void pmd_clear_bad(pmd_t *pmd)\n        144 {\n    -\u003e  145         pmd_ERROR(*pmd);\n        146         pmd_clear(pmd);\n        147 }\n\n    After the PMD table entry has been cleared, there is an inconsistency\n    between the actual number of PMD table entries that are mapping the page\n    and the page\u0027s map count (_mapcount field in struct page). When the page\n    is subsequently reclaimed, __split_huge_page() detects this inconsistency.\n\n       1381         if (mapcount !\u003d page_mapcount(page))\n       1382                 printk(KERN_ERR \"mapcount %d page_mapcount %d\\n\",\n       1383                        mapcount, page_mapcount(page));\n    -\u003e 1384         BUG_ON(mapcount !\u003d page_mapcount(page));\n\n    The root cause of the problem is a race of two threads in a multithreaded\n    process. Thread B incurs a page fault on a virtual address that has never\n    been accessed (PMD entry is zero) while Thread A is executing an madvise()\n    system call on a virtual address within the same 2 MB (huge page) range.\n\n               virtual address space\n              .---------------------.\n              |                     |\n              |                     |\n            .-|---------------------|\n            | |                     |\n            | |                     |\u003c-- B(fault)\n            | |                     |\n      2 MB  | |/////////////////////|-.\n      huge \u003c  |/////////////////////|  \u003e A(range)\n      page  | |/////////////////////|-\u0027\n            | |                     |\n            | |                     |\n            \u0027-|---------------------|\n              |                     |\n              |                     |\n              \u0027---------------------\u0027\n\n    - Thread A is executing an madvise(..., MADV_DONTNEED) system call\n      on the virtual address range \"A(range)\" shown in the picture.\n\n    sys_madvise\n      // Acquire the semaphore in shared mode.\n      down_read(\u0026current-\u003emm-\u003emmap_sem)\n      ...\n      madvise_vma\n        switch (behavior)\n        case MADV_DONTNEED:\n             madvise_dontneed\n               zap_page_range\n                 unmap_vmas\n                   unmap_page_range\n                     zap_pud_range\n                       zap_pmd_range\n                         //\n                         // Assume that this huge page has never been accessed.\n                         // I.e. content of the PMD entry is zero (not mapped).\n                         //\n                         if (pmd_trans_huge(*pmd)) {\n                             // We don\u0027t get here due to the above assumption.\n                         }\n                         //\n                         // Assume that Thread B incurred a page fault and\n             .---------\u003e // sneaks in here as shown below.\n             |           //\n             |           if (pmd_none_or_clear_bad(pmd))\n             |               {\n             |                 if (unlikely(pmd_bad(*pmd)))\n             |                     pmd_clear_bad\n             |                     {\n             |                       pmd_ERROR\n             |                         // Log \"bad pmd ...\" message here.\n             |                       pmd_clear\n             |                         // Clear the page\u0027s PMD entry.\n             |                         // Thread B incremented the map count\n             |                         // in page_add_new_anon_rmap(), but\n             |                         // now the page is no longer mapped\n             |                         // by a PMD entry (-\u003e inconsistency).\n             |                     }\n             |               }\n             |\n             v\n    - Thread B is handling a page fault on virtual address \"B(fault)\" shown\n      in the picture.\n\n    ...\n    do_page_fault\n      __do_page_fault\n        // Acquire the semaphore in shared mode.\n        down_read_trylock(\u0026mm-\u003emmap_sem)\n        ...\n        handle_mm_fault\n          if (pmd_none(*pmd) \u0026\u0026 transparent_hugepage_enabled(vma))\n              // We get here due to the above assumption (PMD entry is zero).\n              do_huge_pmd_anonymous_page\n                alloc_hugepage_vma\n                  // Allocate a new transparent huge page here.\n                ...\n                __do_huge_pmd_anonymous_page\n                  ...\n                  spin_lock(\u0026mm-\u003epage_table_lock)\n                  ...\n                  page_add_new_anon_rmap\n                    // Here we increment the page\u0027s map count (starts at -1).\n                    atomic_set(\u0026page-\u003e_mapcount, 0)\n                  set_pmd_at\n                    // Here we set the page\u0027s PMD entry which will be cleared\n                    // when Thread A calls pmd_clear_bad().\n                  ...\n                  spin_unlock(\u0026mm-\u003epage_table_lock)\n\n    The mmap_sem does not prevent the race because both threads are acquiring\n    it in shared mode (down_read).  Thread B holds the page_table_lock while\n    the page\u0027s map count and PMD table entry are updated.  However, Thread A\n    does not synchronize on that lock.\n\n\u003d\u003d\u003d\u003d\u003d\u003d end quote \u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\n[akpm@linux-foundation.org: checkpatch fixes]\nReported-by: Ulrich Obergfell \u003cuobergfe@redhat.com\u003e\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nAcked-by: Larry Woodman \u003clwoodman@redhat.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\t\t[2.6.38+]\nCc: Mark Salter \u003cmsalter@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": "f6a1ad4295f9291038380178d09978caf6982dd8",
      "tree": "7c35e8efe1812baca9c6b9674be1ee02a0495ec3",
      "parents": [
        "036dafa28da1e2565a8529de2ae663c37b7a0060",
        "f3969bf78f140f437f51787dfc2751943ba454d1"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 05 21:16:26 2012 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 05 21:16:26 2012 -0500"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nConflicts:\n\tdrivers/net/vmxnet3/vmxnet3_drv.c\n\nSmall vmxnet3 conflict with header size bug fix in \u0027net\u0027.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "187f1882b5b0748b3c4c22274663fdb372ac0452",
      "tree": "36283f258cf65f03599a045d48bb05d0ec27f3f9",
      "parents": [
        "50af5ead3b44ccf8bd2b4d2a50c1b610f557c480"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Wed Nov 23 20:12:59 2011 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Mar 04 17:54:34 2012 -0500"
      },
      "message": "BUG: headers with BUG/BUG_ON etc. need linux/bug.h\n\nIf a header file is making use of BUG, BUG_ON, BUILD_BUG_ON, or any\nother BUG variant in a static inline (i.e. not in a #define) then\nthat header really should be including \u003clinux/bug.h\u003e and not just\nexpecting it to be implicitly present.\n\nWe can make this change risk-free, since if the files using these\nheaders didn\u0027t have exposure to linux/bug.h already, they would have\nbeen causing compile failures/warnings.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "458ce2910aa83d8a2cafb489d727f7da839e73c6",
      "tree": "28e088137eb068e5620f17eaf0ca19d1562006ed",
      "parents": [
        "69466466ce889cd2cbc8cda9ff1c6083f48cc7f9",
        "586c6e7013c8cbb8c91aaa6568ec349b1dc2c691"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 28 10:26:07 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 28 10:27:36 2012 +0100"
      },
      "message": "Merge branch \u0027linus\u0027 into x86/asm\n\nSync up the latest NMI fixes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "97a29d59fc222b36bac3ee3a8ae994f65bf7ffdf",
      "tree": "fdfe0aa6e408bbec38e33e49703a284eeaf7931d",
      "parents": [
        "500dd2370e77c9551ba298bdeeb91b02d8402199"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Mon Jan 30 10:40:47 2012 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "JBottomley@Parallels.com",
        "time": "Mon Feb 27 09:43:30 2012 -0600"
      },
      "message": "[PARISC] fix compile break caused by iomap: make IOPORT/PCI mapping functions conditional\n\nThe problem in\n\ncommit fea80311a939a746533a6d7e7c3183729d6a3faf\nAuthor: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nDate:   Sun Jul 24 11:39:14 2011 -0700\n\n    iomap: make IOPORT/PCI mapping functions conditional\n\nis that if your architecture supplies pci_iomap/pci_iounmap, it expects\nalways to supply them.  Adding empty body defitions in the !CONFIG_PCI\ncase, which is what this patch does, breaks the parisc compile because\nthe functions become doubly defined.  It took us a while to spot this,\nbecause we don\u0027t actually build !CONFIG_PCI very often (only if someone\nis brave enough to test the snake/asp machines).\n\nSince the note in the commit log says this is to fix a\nCONFIG_GENERIC_IOMAP issue (which it does because CONFIG_GENERIC_IOMAP\nsupplies pci_iounmap only if CONFIG_PCI is set), there should actually\nhave been a condition upon this.  This should make sure no other\narchitecture\u0027s !CONFIG_PCI compile breaks in the same way as parisc.\n\nThe fix had to be updated to take account of the GENERIC_PCI_IOMAP\nseparation.\n\nReported-by: Rolf Eike Beer \u003ceike@sf-mail.de\u003e\nSigned-off-by: James Bottomley \u003cJBottomley@Parallels.com\u003e\n"
    },
    {
      "commit": "ff4783ce78c08d2990126ce1874250ae8e72bbd2",
      "tree": "5c95885a4ab768101dd72942b57c238d452a7565",
      "parents": [
        "622121719934f60378279eb440d3cec2fc3176d2",
        "203738e548cefc3fc3c2f73a9063176c9f3583d5"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Feb 26 21:55:51 2012 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Feb 26 21:55:51 2012 -0500"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nConflicts:\n\tdrivers/net/ethernet/sfc/rx.c\n\nOverlapping changes in drivers/net/ethernet/sfc/rx.c, one to change\nthe rx_buf-\u003eis_page boolean into a set of u16 flags, and another to\nadjust how -\u003eip_summed is initialized.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d80e731ecab420ddcb79ee9d0ac427acbc187b4b",
      "tree": "e96a660b75b5bee8ae2c315878ec917b9c0da446",
      "parents": [
        "855a85f704026d5fe7de94fb1b765fe03404507f"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Feb 24 20:07:11 2012 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 24 11:42:50 2012 -0800"
      },
      "message": "epoll: introduce POLLFREE to flush -\u003esignalfd_wqh before kfree()\n\nThis patch is intentionally incomplete to simplify the review.\nIt ignores ep_unregister_pollwait() which plays with the same wqh.\nSee the next change.\n\nepoll assumes that the EPOLL_CTL_ADD\u0027ed file controls everything\nf_op-\u003epoll() needs. In particular it assumes that the wait queue\ncan\u0027t go away until eventpoll_release(). This is not true in case\nof signalfd, the task which does EPOLL_CTL_ADD uses its -\u003esighand\nwhich is not connected to the file.\n\nThis patch adds the special event, POLLFREE, currently only for\nepoll. It expects that init_poll_funcptr()\u0027ed hook should do the\nnecessary cleanup. Perhaps it should be defined as EPOLLFREE in\neventpoll.\n\n__cleanup_sighand() is changed to do wake_up_poll(POLLFREE) if\n-\u003esignalfd_wqh is not empty, we add the new signalfd_cleanup()\nhelper.\n\nep_poll_callback(POLLFREE) simply does list_del_init(task_list).\nThis make this poll entry inconsistent, but we don\u0027t care. If you\nshare epoll fd which contains our sigfd with another process you\nshould blame yourself. signalfd is \"really special\". I simply do\nnot know how we can define the \"right\" semantics if it used with\nepoll.\n\nThe main problem is, epoll calls signalfd_poll() once to establish\nthe connection with the wait queue, after that signalfd_poll(NULL)\nreturns the different/inconsistent results depending on who does\nEPOLL_CTL_MOD/signalfd_read/etc. IOW: apart from sigmask, signalfd\nhas nothing to do with the file, it works with the current thread.\n\nIn short: this patch is the hack which tries to fix the symptoms.\nIt also assumes that nobody can take tasklist_lock under epoll\nlocks, this seems to be true.\n\nNote:\n\n\t- we do not have wake_up_all_poll() but wake_up_poll()\n\t  is fine, poll/epoll doesn\u0027t use WQ_FLAG_EXCLUSIVE.\n\n\t- signalfd_cleanup() uses POLLHUP along with POLLFREE,\n\t  we need a couple of simple changes in eventpoll.c to\n\t  make sure it can\u0027t be \"lost\".\n\nReported-by: Maxime Bizon \u003cmbizon@freebox.fr\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b893485db994b17402524d3d700b950294cb6c97",
      "tree": "fd0c4d145f2cac9bff903ac5ff9ac6f26d759982",
      "parents": [
        "d66acc39c7cee323733c8503b9de1821a56dff7e"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Feb 24 13:58:15 2012 +0100"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Fri Feb 24 10:39:27 2012 -0800"
      },
      "message": "bitops: Add missing parentheses to new get_order macro\n\nThe new get_order macro introcuded in commit\n\n\td66acc39c7cee323733c8503b9de1821a56dff7e\n\ndoes not use parentheses around all uses of the parameter n.\nThis causes new compile warnings, for example in the\namd_iommu_init.c function:\n\ndrivers/iommu/amd_iommu_init.c:561:6: warning: suggest parentheses around comparison in operand of ‘\u0026’ [-Wparentheses]\ndrivers/iommu/amd_iommu_init.c:561:6: warning: suggest parentheses around comparison in operand of ‘\u0026’ [-Wparentheses]\n\nFix those warnings by adding the missing parentheses.\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\nLink: http://lkml.kernel.org/r/1330088295-28732-1-git-send-email-joerg.roedel@amd.com\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "3bdc0eba0b8b47797f4a76e377dd8360f317450f",
      "tree": "da6bd907f599402bc8db0a2484997fd4d3e06f7b",
      "parents": [
        "0184039a4b6727d6efd545919c773ef141090ae7"
      ],
      "author": {
        "name": "Ben Greear",
        "email": "greearb@candelatech.com",
        "time": "Sat Feb 11 15:39:30 2012 +0000"
      },
      "committer": {
        "name": "Jeff Kirsher",
        "email": "jeffrey.t.kirsher@intel.com",
        "time": "Fri Feb 24 01:37:35 2012 -0800"
      },
      "message": "net: Add framework to allow sending packets with customized CRC.\n\nThis is useful for testing RX handling of frames with bad\nCRCs.\n\nRequires driver support to actually put the packet on the\nwire properly.\n\nSigned-off-by: Ben Greear \u003cgreearb@candelatech.com\u003e\nTested-by: Aaron Brown \u003caaron.f.brown@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\n"
    },
    {
      "commit": "fb127cb9de791d62fb393d6e65fa9869bddd2460",
      "tree": "5cb45ac2fd5139cfc9165fead210a3ad2bb3b2a5",
      "parents": [
        "4ba2aef3157f483fd67ac2616f14dbc32a3f751d"
      ],
      "author": {
        "name": "Bjorn Helgaas",
        "email": "bhelgaas@google.com",
        "time": "Thu Feb 23 20:19:04 2012 -0700"
      },
      "committer": {
        "name": "Bjorn Helgaas",
        "email": "bhelgaas@google.com",
        "time": "Thu Feb 23 20:19:04 2012 -0700"
      },
      "message": "PCI: collapse pcibios_resource_to_bus\n\nEverybody uses the generic pcibios_resource_to_bus() supplied by the core\nnow, so remove the ARCH_HAS_GENERIC_PCI_OFFSETS used during conversion.\n\nSigned-off-by: Bjorn Helgaas \u003cbhelgaas@google.com\u003e\n"
    },
    {
      "commit": "36a66cd6fd0a70ac6848d740d9cf7a4360b5776a",
      "tree": "7cc903ad9f63e9bd1065b6d722fb86f4196dceea",
      "parents": [
        "5bfa14ed9f3ca21fcecbcfbf4a848c002b740c41"
      ],
      "author": {
        "name": "Bjorn Helgaas",
        "email": "bhelgaas@google.com",
        "time": "Thu Feb 23 20:19:00 2012 -0700"
      },
      "committer": {
        "name": "Bjorn Helgaas",
        "email": "bhelgaas@google.com",
        "time": "Thu Feb 23 20:19:00 2012 -0700"
      },
      "message": "PCI: add generic pcibios_resource_to_bus()\n\nThis replaces the generic versions of pcibios_resource_to_bus() and\npcibios_bus_to_resource() in asm-generic/pci.h with versions that use\npci_resource_to_bus() and pci_bus_to_resource().\n\nThe replacements are equivalent except that they can apply host\nbridge window offsets when the arch has supplied them by using\npci_add_resource_offset().\n\nEach arch can convert to using pci_add_resource_offset() individually by\nremoving its device resource fixups from pcibios_fixup_bus() and supplying\nARCH_HAS_GENERIC_PCI_OFFSETS.  ARCH_HAS_GENERIC_PCI_OFFSETS can be removed\nafter all have converted.\n\nSigned-off-by: Bjorn Helgaas \u003cbhelgaas@google.com\u003e\n"
    },
    {
      "commit": "dcce6dc486816d5e1a14e066f611100624421e3a",
      "tree": "2fbe70a5483c0977da4a11cdea13a053fe88fc98",
      "parents": [
        "47087700ce3ccb2bf69f4dcb6ad7f59764e51308"
      ],
      "author": {
        "name": "Bjorn Helgaas",
        "email": "bhelgaas@google.com",
        "time": "Thu Feb 23 20:18:56 2012 -0700"
      },
      "committer": {
        "name": "Bjorn Helgaas",
        "email": "bhelgaas@google.com",
        "time": "Thu Feb 23 20:18:56 2012 -0700"
      },
      "message": "PCI: add pci_clear_flags()\n\nAdd a pci_clear_flags() for cases when we statically initialize\npci_flags, then decide to clear things out later.\n\nSigned-off-by: Bjorn Helgaas \u003cbhelgaas@google.com\u003e\n"
    },
    {
      "commit": "797a796a13df6b84a4791e57306737059b5b2384",
      "tree": "400d13deef98fdf3fc893e9e55f208c5716b8ba9",
      "parents": [
        "27e74da9800289e69ba907777df1e2085231eff7"
      ],
      "author": {
        "name": "Hitoshi Mitake",
        "email": "mitake@dcl.info.waseda.ac.jp",
        "time": "Tue Feb 07 11:45:33 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 21 16:47:28 2012 -0800"
      },
      "message": "asm-generic: architecture independent readq/writeq for 32bit environment\n\nThis provides unified readq()/writeq() helper functions for 32-bit\ndrivers.\n\nFor some cases, readq/writeq without atomicity is harmful, and order of\nio access has to be specified explicitly.  So in this patch, new two\nheader files which contain non-atomic readq/writeq are added.\n\n - \u003casm-generic/io-64-nonatomic-lo-hi.h\u003e provides non-atomic readq/\n   writeq with the order of lower address -\u003e higher address\n\n - \u003casm-generic/io-64-nonatomic-hi-lo.h\u003e provides non-atomic readq/\n   writeq with reversed order\n\nThis allows us to remove some readq()s that were added drivers when the\ndefault non-atomic ones were removed in commit dbee8a0affd5 (\"x86:\nremove 32-bit versions of readq()/writeq()\")\n\nThe drivers which need readq/writeq but can do with the non-atomic ones\nmust add the line:\n\n  #include \u003casm-generic/io-64-nonatomic-lo-hi.h\u003e /* or hi-lo.h */\n\nBut this will be nop in 64-bit environments, and no other #ifdefs are\nrequired.  So I believe that this patch can solve the problem of\n 1. driver-specific readq/writeq\n 2. atomicity and order of io access\n\nThis patch is tested with building allyesconfig and allmodconfig as\nARCH\u003dx86 and ARCH\u003di386 on top of tip/master.\n\nCc: Kashyap Desai \u003cKashyap.Desai@lsi.com\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: Ravi Anand \u003cravi.anand@qlogic.com\u003e\nCc: Vikas Chaudhary \u003cvikas.chaudhary@qlogic.com\u003e\nCc: Matthew Garrett \u003cmjg@redhat.com\u003e\nCc: Jason Uhlenkott \u003cjuhlenko@akamai.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@parallels.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Roland Dreier \u003croland@purestorage.com\u003e\nCc: James Bottomley \u003cjbottomley@parallels.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Hitoshi Mitake \u003ch.mitake@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ef64a54f6e558155b4f149bb10666b9e914b6c54",
      "tree": "bd7adba8d802aff2aaec0f5f2a9e2ba5431cafcc",
      "parents": [
        "da5ef6e51b327b41180b5d1000c06e8d3595a936"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Tue Feb 21 07:31:34 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 21 15:03:48 2012 -0500"
      },
      "message": "sock: Introduce the SO_PEEK_OFF sock option\n\nThis one specifies where to start MSG_PEEK-ing queue data from. When\nset to negative value means that MSG_PEEK works as ususally -- peeks\nfrom the head of the queue always.\n\nWhen some bytes are peeked from queue and the peeking offset is non\nnegative it is moved forward so that the next peek will return next\nportion of data.\n\nWhen non-peeking recvmsg occurs and the peeking offset is non negative\nis is moved backward so that the next peek will still peek the proper\ndata (i.e. the one that would have been picked if there were no non\npeeking recv in between).\n\nThe offset is set using per-proto opteration to let the protocol handle\nthe locking issues and to check whether the peeking offset feature is\nsupported by the protocol the socket belongs to.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d66acc39c7cee323733c8503b9de1821a56dff7e",
      "tree": "476c87d6dee51581cddcd18376fa9cb5f8db1413",
      "parents": [
        "e0891a9816316b5e05fd5b0453ffe9fd6a56f489"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Mon Feb 20 22:39:29 2012 +0000"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Mon Feb 20 14:47:02 2012 -0800"
      },
      "message": "bitops: Optimise get_order()\n\nOptimise get_order() to use bit scanning instructions if such exist rather than\na loop.  Also, make it possible to use get_order() in static initialisations\ntoo by building it on top of ilog2() in the constant parameter case.\n\nThis has been tested for i386 and x86_64 using the following userspace program,\nand for FRV by making appropriate substitutions for fls() and fls64().  It will\nabort if the case for get_order() deviates from the original except for the\norder of 0, for which get_order() produces an undefined result.  This program\ntests both dynamic and static parameters.\n\n\t#include \u003cstdlib.h\u003e\n\t#include \u003cstdio.h\u003e\n\n\t#ifdef __x86_64__\n\t#define BITS_PER_LONG 64\n\t#else\n\t#define BITS_PER_LONG 32\n\t#endif\n\n\t#define PAGE_SHIFT 12\n\n\ttypedef unsigned long long __u64, u64;\n\ttypedef unsigned int __u32, u32;\n\t#define noinline\t__attribute__((noinline))\n\n\tstatic inline int fls(int x)\n\t{\n\t\tint bitpos \u003d -1;\n\n\t\tasm(\"bsrl %1,%0\"\n\t\t    : \"+r\" (bitpos)\n\t\t    : \"rm\" (x));\n\t\treturn bitpos + 1;\n\t}\n\n\tstatic __always_inline int fls64(__u64 x)\n\t{\n\t#if BITS_PER_LONG \u003d\u003d 64\n\t\tlong bitpos \u003d -1;\n\n\t\tasm(\"bsrq %1,%0\"\n\t\t    : \"+r\" (bitpos)\n\t\t    : \"rm\" (x));\n\t\treturn bitpos + 1;\n\t#else\n\t\t__u32 h \u003d x \u003e\u003e 32, l \u003d x;\n\t\tint bitpos \u003d -1;\n\n\t\tasm(\"bsrl\t%1,%0\t\\n\"\n\t\t    \"subl\t%2,%0\t\\n\"\n\t\t    \"bsrl\t%3,%0\t\\n\"\n\t\t    : \"+r\" (bitpos)\n\t\t    : \"rm\" (l), \"i\"(32), \"rm\" (h));\n\n\t\treturn bitpos + 33;\n\t#endif\n\t}\n\n\tstatic inline __attribute__((const))\n\tint __ilog2_u32(u32 n)\n\t{\n\t\treturn fls(n) - 1;\n\t}\n\n\tstatic inline __attribute__((const))\n\tint __ilog2_u64(u64 n)\n\t{\n\t\treturn fls64(n) - 1;\n\t}\n\n\textern __attribute__((const, noreturn))\n\tint ____ilog2_NaN(void);\n\n\t#define ilog2(n)\t\t\t\t\\\n\t(\t\t\t\t\t\t\\\n\t\t__builtin_constant_p(n) ? (\t\t\\\n\t\t\t(n) \u003c 1 ? ____ilog2_NaN() :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 63) ? 63 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 62) ? 62 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 61) ? 61 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 60) ? 60 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 59) ? 59 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 58) ? 58 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 57) ? 57 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 56) ? 56 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 55) ? 55 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 54) ? 54 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 53) ? 53 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 52) ? 52 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 51) ? 51 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 50) ? 50 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 49) ? 49 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 48) ? 48 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 47) ? 47 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 46) ? 46 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 45) ? 45 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 44) ? 44 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 43) ? 43 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 42) ? 42 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 41) ? 41 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 40) ? 40 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 39) ? 39 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 38) ? 38 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 37) ? 37 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 36) ? 36 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 35) ? 35 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 34) ? 34 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 33) ? 33 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 32) ? 32 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 31) ? 31 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 30) ? 30 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 29) ? 29 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 28) ? 28 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 27) ? 27 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 26) ? 26 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 25) ? 25 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 24) ? 24 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 23) ? 23 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 22) ? 22 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 21) ? 21 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 20) ? 20 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 19) ? 19 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 18) ? 18 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 17) ? 17 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 16) ? 16 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 15) ? 15 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 14) ? 14 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 13) ? 13 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 12) ? 12 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 11) ? 11 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c 10) ? 10 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c  9) ?  9 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c  8) ?  8 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c  7) ?  7 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c  6) ?  6 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c  5) ?  5 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c  4) ?  4 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c  3) ?  3 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c  2) ?  2 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c  1) ?  1 :\t\\\n\t\t\t(n) \u0026 (1ULL \u003c\u003c  0) ?  0 :\t\\\n\t\t\t____ilog2_NaN()\t\t\t\\\n\t\t\t\t\t   ) :\t\t\\\n\t\t(sizeof(n) \u003c\u003d 4) ?\t\t\t\\\n\t\t__ilog2_u32(n) :\t\t\t\\\n\t\t__ilog2_u64(n)\t\t\t\t\\\n\t )\n\n\tstatic noinline __attribute__((const))\n\tint old_get_order(unsigned long size)\n\t{\n\t\tint order;\n\n\t\tsize \u003d (size - 1) \u003e\u003e (PAGE_SHIFT - 1);\n\t\torder \u003d -1;\n\t\tdo {\n\t\t\tsize \u003e\u003e\u003d 1;\n\t\t\torder++;\n\t\t} while (size);\n\t\treturn order;\n\t}\n\n\tstatic noinline __attribute__((const))\n\tint __get_order(unsigned long size)\n\t{\n\t\tint order;\n\t\tsize--;\n\t\tsize \u003e\u003e\u003d PAGE_SHIFT;\n\t#if BITS_PER_LONG \u003d\u003d 32\n\t\torder \u003d fls(size);\n\t#else\n\t\torder \u003d fls64(size);\n\t#endif\n\t\treturn order;\n\t}\n\n\t#define get_order(n)\t\t\t\t\t\t\\\n\t(\t\t\t\t\t\t\t\t\\\n\t\t__builtin_constant_p(n) ? (\t\t\t\t\\\n\t\t\t(n \u003d\u003d 0UL) ? BITS_PER_LONG - PAGE_SHIFT :\t\\\n\t\t\t((n \u003c (1UL \u003c\u003c PAGE_SHIFT)) ? 0 :\t\t\\\n\t\t\t ilog2((n) - 1) - PAGE_SHIFT + 1)\t\t\\\n\t\t) :\t\t\t\t\t\t\t\\\n\t\t__get_order(n)\t\t\t\t\t\t\\\n\t)\n\n\t#define order(N) \\\n\t\t{ (1UL \u003c\u003c N) - 1,\tget_order((1UL \u003c\u003c N) - 1)\t},\t\\\n\t\t{ (1UL \u003c\u003c N),\t\tget_order((1UL \u003c\u003c N))\t\t},\t\\\n\t\t{ (1UL \u003c\u003c N) + 1,\tget_order((1UL \u003c\u003c N) + 1)\t}\n\n\tstruct order {\n\t\tunsigned long n, order;\n\t};\n\n\tstatic const struct order order_table[] \u003d {\n\t\torder(0),\n\t\torder(1),\n\t\torder(2),\n\t\torder(3),\n\t\torder(4),\n\t\torder(5),\n\t\torder(6),\n\t\torder(7),\n\t\torder(8),\n\t\torder(9),\n\t\torder(10),\n\t\torder(11),\n\t\torder(12),\n\t\torder(13),\n\t\torder(14),\n\t\torder(15),\n\t\torder(16),\n\t\torder(17),\n\t\torder(18),\n\t\torder(19),\n\t\torder(20),\n\t\torder(21),\n\t\torder(22),\n\t\torder(23),\n\t\torder(24),\n\t\torder(25),\n\t\torder(26),\n\t\torder(27),\n\t\torder(28),\n\t\torder(29),\n\t\torder(30),\n\t\torder(31),\n\t#if BITS_PER_LONG \u003d\u003d 64\n\t\torder(32),\n\t\torder(33),\n\t\torder(34),\n\t\torder(35),\n\t#endif\n\t\t{ 0x2929 }\n\t};\n\n\tvoid check(int loop, unsigned long n)\n\t{\n\t\tunsigned long old, new;\n\n\t\tprintf(\"[%2d]: %09lx | \", loop, n);\n\n\t\told \u003d old_get_order(n);\n\t\tnew \u003d get_order(n);\n\n\t\tprintf(\"%3ld, %3ld\\n\", old, new);\n\t\tif (n !\u003d 0 \u0026\u0026 old !\u003d new)\n\t\t\tabort();\n\t}\n\n\tint main(int argc, char **argv)\n\t{\n\t\tconst struct order *p;\n\t\tunsigned long n;\n\t\tint loop;\n\n\t\tfor (loop \u003d 0; loop \u003c\u003d BITS_PER_LONG - 1; loop++) {\n\t\t\tn \u003d 1UL \u003c\u003c loop;\n\t\t\tcheck(loop, n - 1);\n\t\t\tcheck(loop, n);\n\t\t\tcheck(loop, n + 1);\n\t\t}\n\n\t\tfor (p \u003d order_table; p-\u003en !\u003d 0x2929; p++) {\n\t\t\tunsigned long old, new;\n\n\t\t\told \u003d old_get_order(p-\u003en);\n\t\t\tnew \u003d p-\u003eorder;\n\t\t\tprintf(\"%09lx\\t%3ld, %3ld\\n\", p-\u003en, old, new);\n\t\t\tif (p-\u003en !\u003d 0 \u0026\u0026 old !\u003d new)\n\t\t\t\tabort();\n\t\t}\n\n\t\treturn 0;\n\t}\n\nDisassembling the x86_64 version of the above code shows:\n\n\t0000000000400510 \u003cold_get_order\u003e:\n\t  400510:       48 83 ef 01             sub    $0x1,%rdi\n\t  400514:       b8 ff ff ff ff          mov    $0xffffffff,%eax\n\t  400519:       48 c1 ef 0b             shr    $0xb,%rdi\n\t  40051d:       0f 1f 00                nopl   (%rax)\n\t  400520:       83 c0 01                add    $0x1,%eax\n\t  400523:       48 d1 ef                shr    %rdi\n\t  400526:       75 f8                   jne    400520 \u003cold_get_order+0x10\u003e\n\t  400528:       f3 c3                   repz retq\n\t  40052a:       66 0f 1f 44 00 00       nopw   0x0(%rax,%rax,1)\n\n\t0000000000400530 \u003c__get_order\u003e:\n\t  400530:       48 83 ef 01             sub    $0x1,%rdi\n\t  400534:       48 c7 c0 ff ff ff ff    mov    $0xffffffffffffffff,%rax\n\t  40053b:       48 c1 ef 0c             shr    $0xc,%rdi\n\t  40053f:       48 0f bd c7             bsr    %rdi,%rax\n\t  400543:       83 c0 01                add    $0x1,%eax\n\t  400546:       c3                      retq\n\t  400547:       66 0f 1f 84 00 00 00    nopw   0x0(%rax,%rax,1)\n\t  40054e:       00 00\n\nAs can be seen, the new __get_order() function is simpler than the\nold_get_order() function.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nLink: http://lkml.kernel.org/r/20120220223928.16199.29548.stgit@warthog.procyon.org.uk\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "e0891a9816316b5e05fd5b0453ffe9fd6a56f489",
      "tree": "3a600ed8fe7285749059d7fccf247d8ca910e0ac",
      "parents": [
        "7931d493051ea9b09e4fddee2dc40b2eb88d62b9"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Mon Feb 20 22:39:18 2012 +0000"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Mon Feb 20 14:46:55 2012 -0800"
      },
      "message": "bitops: Adjust the comment on get_order() to describe the size\u003d\u003d0 case\n\nAdjust the comment on get_order() to note that the result of passing a size of\n0 results in an undefined value.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nLink: http://lkml.kernel.org/r/20120220223917.16199.9416.stgit@warthog.procyon.org.uk\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "b923650b84068b74b6df838aa8f9b2a350171de6",
      "tree": "d6d366da5427816210dc15c7c401e4a7910092c4",
      "parents": [
        "0a9626575400879d1d5e6bc8768188b938d7c501"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Mon Jan 30 00:20:48 2012 +0200"
      },
      "committer": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Tue Jan 31 23:19:47 2012 +0200"
      },
      "message": "lib: add NO_GENERIC_PCI_IOPORT_MAP\n\nSome architectures need to override the way\nIO port mapping is done on PCI devices.\nSupply a generic macro that calls\nioport_map, and make it possible for architectures\nto override.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "dca88ad6915b65f6e037f8c3e632fcd92a70bd88",
      "tree": "a3dcbe53310997dcc37c7d49129c48febef53992",
      "parents": [
        "fed474857efbed79cd390d0aee224231ca718f63",
        "1632b9e2a14ce9f4e08faf6c4380431d63319bd3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 14 18:03:30 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 14 18:03:30 2012 -0800"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.infradead.org/users/dhowells/linux-headers\n\n* \u0027for-next\u0027 of git://git.infradead.org/users/dhowells/linux-headers:\n  UAPI: Split trivial #if defined(__KERNEL__) \u0026\u0026 X conditionals\n  UAPI: Don\u0027t have a #elif clause in a __KERNEL__ guard in linux/soundcard.h\n  UAPI: Fix AHZ multiple inclusion when __KERNEL__ is removed\n  UAPI: Make linux/patchkey.h easier to parse\n  UAPI: Fix nested __KERNEL__ guards in video/edid.h\n  UAPI: Alter the S390 asm include guards to be recognisable by the UAPI splitter\n  UAPI: Guard linux/cuda.h\n  UAPI: Guard linux/pmu.h\n  UAPI: Guard linux/isdn_divertif.h\n  UAPI: Guard linux/sound.h\n  UAPI: Rearrange definition of HZ in asm-generic/param.h\n  UAPI: Make FRV use asm-generic/param.h\n  UAPI: Make M32R use asm-generic/param.h\n  UAPI: Make MN10300 use asm-generic/param.h\n  UAPI: elf_read_implies_exec() is a kernel-only feature - so hide from userspace\n  UAPI: Don\u0027t include linux/compat.h in sparc\u0027s asm/siginfo.h\n  UAPI: Fix arch/mips/include/asm/Kbuild to have separate header-y lines\n"
    },
    {
      "commit": "f5e4e20faa1eee3feaa0394897bbd1aca544e809",
      "tree": "047a93ff025c46ed97d3192a79f55b38fa071ca1",
      "parents": [
        "4964e0664c80680fa6b28ef91381c076a5b25c2c",
        "f408c985cefc9b1d99bc099e1208dd7df3445aa5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 14 13:25:23 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 14 13:25:23 2012 -0800"
      },
      "message": "Merge tag \u0027gpio-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6\n\n2nd round of GPIO changes for v3.3 merge window\n\n* tag \u0027gpio-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6:\n  GPIO: sa1100: implement proper gpiolib gpio_to_irq conversion\n  gpio: pl061: remove combined interrupt\n  gpio: pl061: convert to use generic irq chip\n  GPIO: add bindings for managed devices\n  ARM: realview: convert pl061 no irq to 0 instead of -1\n  gpio: pl061: convert to use 0 for no irq\n  gpio: pl061: use chained_irq_* functions in irq handler\n  GPIO/pl061: Add suspend resume capability\n  drivers/gpio/gpio-tegra.c: use devm_request_and_ioremap\n"
    },
    {
      "commit": "f21760b15dcd091e5afd38d0b97197b45f7ef2ea",
      "tree": "84dd0f9016b46630d6b67e48ff0382b78a1bc519",
      "parents": [
        "e5591307f0c1eb733d280a0b72473e01d7f88530"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Thu Jan 12 17:19:16 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:08 2012 -0800"
      },
      "message": "thp: add tlb_remove_pmd_tlb_entry\n\nWe have tlb_remove_tlb_entry to indicate a pte tlb flush entry should be\nflushed, but not a corresponding API for pmd entry.  This isn\u0027t a\nproblem so far because THP is only for x86 currently and tlb_flush()\nunder x86 will flush entire TLB.  But this is confusion and could be\nmissed if thp is ported to other arch.\n\nAlso convert tlb-\u003eneed_flush \u003d 1 to a VM_BUG_ON(!tlb-\u003eneed_flush) in\n__tlb_remove_page() as suggested by Andrea Arcangeli.  The\n__tlb_remove_page() function is supposed to be called after\ntlb_remove_xxx_tlb_entry() and we can catch any misuse.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nReviewed-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Johannes Weiner \u003cjweiner@redhat.com\u003e\nCc: Minchan Kim \u003cminchan.kim@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": "e343a895a9f342f239c5e3c5ffc6c0b1707e6244",
      "tree": "46c81c6ae375b1f14e209b13c8ac020842807ece",
      "parents": [
        "06792c4dde2ad143928cc95c1ba218c6269c494b",
        "193a667fba76b3df482cbf865228e26ee246e889"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 18:04:27 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 18:04:27 2012 -0800"
      },
      "message": "Merge tag \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost\n\nlib: use generic pci_iomap on all architectures\n\nMany architectures don\u0027t want to pull in iomap.c,\nso they ended up duplicating pci_iomap from that file.\nThat function isn\u0027t trivial, and we are going to modify it\nhttps://lkml.org/lkml/2011/11/14/183\nso the duplication hurts.\n\nThis reduces the scope of the problem significantly,\nby moving pci_iomap to a separate file and\nreferencing that from all architectures.\n\n* tag \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:\n  alpha: drop pci_iomap/pci_iounmap from pci-noop.c\n  mn10300: switch to GENERIC_PCI_IOMAP\n  mn10300: add missing __iomap markers\n  frv: switch to GENERIC_PCI_IOMAP\n  tile: switch to GENERIC_PCI_IOMAP\n  tile: don\u0027t panic on iomap\n  sparc: switch to GENERIC_PCI_IOMAP\n  sh: switch to GENERIC_PCI_IOMAP\n  powerpc: switch to GENERIC_PCI_IOMAP\n  parisc: switch to GENERIC_PCI_IOMAP\n  mips: switch to GENERIC_PCI_IOMAP\n  microblaze: switch to GENERIC_PCI_IOMAP\n  arm: switch to GENERIC_PCI_IOMAP\n  alpha: switch to GENERIC_PCI_IOMAP\n  lib: add GENERIC_PCI_IOMAP\n  lib: move GENERIC_IOMAP to lib/Kconfig\n\nFix up trivial conflicts due to changes nearby in arch/{m68k,score}/Kconfig\n"
    },
    {
      "commit": "06792c4dde2ad143928cc95c1ba218c6269c494b",
      "tree": "92bdd4631612c9e3d8e5f6f06839f75c5473300a",
      "parents": [
        "4690dfa8cd66c37fbe99bb8cd5baa86102110776",
        "166c0eaedfc3157dc1394c27e827add19f05fb27"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 17:39:40 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 17:39:40 2012 -0800"
      },
      "message": "Merge tag \u0027for-linux-3.3-merge-window\u0027 of git://linux-c6x.org/git/projects/linux-c6x-upstreaming\n\n* tag \u0027for-linux-3.3-merge-window\u0027 of git://linux-c6x.org/git/projects/linux-c6x-upstreaming: (29 commits)\n  C6X: replace tick_nohz_stop/restart_sched_tick calls\n  C6X: add register_cpu call\n  C6X: deal with memblock API changes\n  C6X: fix timer64 initialization\n  C6X: fix layout of EMIFA registers\n  C6X: MAINTAINERS\n  C6X: DSCR - Device State Configuration Registers\n  C6X: EMIF - External Memory Interface\n  C6X: general SoC support\n  C6X: library code\n  C6X: headers\n  C6X: ptrace support\n  C6X: loadable module support\n  C6X: cache control\n  C6X: clocks\n  C6X: build infrastructure\n  C6X: syscalls\n  C6X: interrupt handling\n  C6X: time management\n  C6X: signal management\n  ...\n"
    },
    {
      "commit": "972b2c719990f91eb3b2310d44ef8a2d38955a14",
      "tree": "b25a250ec5bec4b7b6355d214642d8b57c5cab32",
      "parents": [
        "02550d61f49266930e674286379d3601006b2893",
        "c3aa077648e147783a7a53b409578234647db853"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 12:19:57 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 12:19:57 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\n* \u0027for-linus2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (165 commits)\n  reiserfs: Properly display mount options in /proc/mounts\n  vfs: prevent remount read-only if pending removes\n  vfs: count unlinked inodes\n  vfs: protect remounting superblock read-only\n  vfs: keep list of mounts for each superblock\n  vfs: switch -\u003eshow_options() to struct dentry *\n  vfs: switch -\u003eshow_path() to struct dentry *\n  vfs: switch -\u003eshow_devname() to struct dentry *\n  vfs: switch -\u003eshow_stats to struct dentry *\n  switch security_path_chmod() to struct path *\n  vfs: prefer -\u003edentry-\u003ed_sb to -\u003emnt-\u003emnt_sb\n  vfs: trim includes a bit\n  switch mnt_namespace -\u003eroot to struct mount\n  vfs: take /proc/*/mounts and friends to fs/proc_namespace.c\n  vfs: opencode mntget() mnt_set_mountpoint()\n  vfs: spread struct mount - remaining argument of next_mnt()\n  vfs: move fsnotify junk to struct mount\n  vfs: move mnt_devname\n  vfs: move mnt_list to struct mount\n  vfs: switch pnode.h macros to struct mount *\n  ...\n"
    },
    {
      "commit": "fbce1c234feedb5270468aa4b1770c1cab58a960",
      "tree": "7391d7bcce50eab43c750c4055b056ab1892d6b2",
      "parents": [
        "7affca3537d74365128e477b40c529d6f2fe86c8",
        "d0ad5e89256c351ddd40167152c24a88efcb0f6d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 07 12:15:36 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 07 12:15:36 2012 -0800"
      },
      "message": "Merge tag \u0027gpio-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6\n\nChanges queued in gpio/next for the start of the 3.3 merge window\n\n* tag \u0027gpio-for-linus-20120104\u0027 of git://git.secretlab.ca/git/linux-2.6:\n  gpio: Add decode of WM8994 GPIO configuration\n  gpio: Convert GPIO drivers to module_platform_driver\n  gpio: Fix typo in comment in Samsung driver\n  gpio: Explicitly index samsung_gpio_cfgs\n  gpio: Add Linus Walleij as gpio co-maintainer\n  of: Add device tree selftests\n  of: create of_phandle_args to simplify return of phandle parsing data\n  gpio/powerpc: Eliminate duplication of of_get_named_gpio_flags()\n  gpio/microblaze: Eliminate duplication of of_get_named_gpio_flags()\n  gpiolib: output basic details and consolidate gpio device drivers\n  pch_gpio: Change company name OKI SEMICONDUCTOR to LAPIS Semiconductor\n  pch_gpio: Support new device LAPIS Semiconductor ML7831 IOH\n  spi/pl022: make the chip deselect handling thread safe\n  spi/pl022: add support for pm_runtime autosuspend\n  spi/pl022: disable the PL022 block when unused\n  spi/pl022: move device disable to workqueue thread\n  spi/pl022: skip default configuration before suspending\n  spi/pl022: fix build warnings\n  spi/pl022: only enable RX interrupts when TX is complete\n"
    },
    {
      "commit": "9753dfe19a85e7e45a34a56f4cb2048bb4f50e27",
      "tree": "c017a1b4a70b8447c71b01d8b320e071546b5c9d",
      "parents": [
        "edf7c8148ec40c0fd27c0ef3f688defcc65e3913",
        "9f42f126154786e6e76df513004800c8c633f020"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 17:22:09 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 17:22:09 2012 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1958 commits)\n  net: pack skb_shared_info more efficiently\n  net_sched: red: split red_parms into parms and vars\n  net_sched: sfq: extend limits\n  cnic: Improve error recovery on bnx2x devices\n  cnic: Re-init dev-\u003estats_addr after chip reset\n  net_sched: Bug in netem reordering\n  bna: fix sparse warnings/errors\n  bna: make ethtool_ops and strings const\n  xgmac: cleanups\n  net: make ethtool_ops const\n  vmxnet3\" make ethtool ops const\n  xen-netback: make ops structs const\n  virtio_net: Pass gfp flags when allocating rx buffers.\n  ixgbe: FCoE: Add support for ndo_get_fcoe_hbainfo() call\n  netdev: FCoE: Add new ndo_get_fcoe_hbainfo() call\n  igb: reset PHY after recovering from PHY power down\n  igb: add basic runtime PM support\n  igb: Add support for byte queue limits.\n  e1000: cleanup CE4100 MDIO registers access\n  e1000: unmap ce4100_gbe_mdio_base_virt in e1000_remove\n  ...\n"
    },
    {
      "commit": "0db49b72bce26341274b74fd968501489a361ae3",
      "tree": "cdb076827aefb38d719d4c42f8ef291c36072fa8",
      "parents": [
        "35b740e4662ef386f0c60e1b60aaf5b44db9914c",
        "1ac9bc6943edf7d181b4b1cc734981350d4f6bae"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 08:33:28 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 08:44:54 2012 -0800"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (40 commits)\n  sched/tracing: Add a new tracepoint for sleeptime\n  sched: Disable scheduler warnings during oopses\n  sched: Fix cgroup movement of waking process\n  sched: Fix cgroup movement of newly created process\n  sched: Fix cgroup movement of forking process\n  sched: Remove cfs bandwidth period check in tg_set_cfs_period()\n  sched: Fix load-balance lock-breaking\n  sched: Replace all_pinned with a generic flags field\n  sched: Only queue remote wakeups when crossing cache boundaries\n  sched: Add missing rcu_dereference() around -\u003ereal_parent usage\n  [S390] fix cputime overflow in uptime_proc_show\n  [S390] cputime: add sparse checking and cleanup\n  sched: Mark parent and real_parent as __rcu\n  sched, nohz: Fix missing RCU read lock\n  sched, nohz: Set the NOHZ_BALANCE_KICK flag for idle load balancer\n  sched, nohz: Fix the idle cpu check in nohz_idle_balance\n  sched: Use jump_labels for sched_feat\n  sched/accounting: Fix parameter passing in task_group_account_field\n  sched/accounting: Fix user/system tick double accounting\n  sched/accounting: Re-use scheduler statistics for the root cgroup\n  ...\n\nFix up conflicts in\n - arch/ia64/include/asm/cputime.h, include/asm-generic/cputime.h\n\tusecs_to_cputime64() vs the sparse cleanups\n - kernel/sched/fair.c, kernel/time/tick-sched.c\n\tscheduler changes in multiple branches\n"
    },
    {
      "commit": "1a0703ede4493bd74f9c6b53f782b749e175a88e",
      "tree": "ee86f6148f53af7ddcc329a28f45d7679642780d",
      "parents": [
        "e198a8de14d4bb122b821432fadb28eedd4b4507"
      ],
      "author": {
        "name": "John Crispin",
        "email": "blogic@openwrt.org",
        "time": "Tue Dec 20 21:40:21 2011 +0100"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Wed Jan 04 11:37:42 2012 -0700"
      },
      "message": "GPIO: add bindings for managed devices\n\nThis patch adds 2 functions that allow managed devices to request GPIOs.\nThese GPIOs will then be managed by drivers/base/devres.c.\n\nSigned-off-by: John Crispin \u003cblogic@openwrt.org\u003e\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "0583fcc96bb117763c0fa74c123573c0112dec65",
      "tree": "5d8a62e922c34e6e6bc0836b40f5b59f69266766",
      "parents": [
        "1bc94226d5c642b78cf6b2e3e843ef24eb740df0"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 17:04:15 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:55:17 2012 -0500"
      },
      "message": "consolidate umode_t declarations\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7f8e3234c5f7fbdb06be050c8a1907e9c36d7c61",
      "tree": "d6e9edb2087fa4a97b2cc3d585a0189672a14cf4",
      "parents": [
        "8ade06c616b34b4237c0ed77d1ff0ce04ad7d056",
        "89307babf966165171547f105e2253dec261cfa5"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 30 13:04:14 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 30 13:04:14 2011 -0500"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n"
    },
    {
      "commit": "34845636a184f3be91a531098192592cbe6db587",
      "tree": "1c216e37f536a71dae94e41db3f1e059f9ac70a5",
      "parents": [
        "e26a51148f3ebd859bca8bf2e0f212839b447f62"
      ],
      "author": {
        "name": "Andreas Schwab",
        "email": "schwab@linux-m68k.org",
        "time": "Wed Dec 28 15:57:15 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 29 16:31:57 2011 -0800"
      },
      "message": "procfs: do not confuse jiffies with cputime64_t\n\nCommit 2a95ea6c0d129b4 (\"procfs: do not overflow get_{idle,iowait}_time\nfor nohz\") did not take into account that one some architectures jiffies\nand cputime use different units.\n\nThis causes get_idle_time() to return numbers in the wrong units, making\nthe idle time fields in /proc/stat wrong.\n\nInstead of converting the usec value returned by\nget_cpu_{idle,iowait}_time_us to units of jiffies, use the new function\nusecs_to_cputime64 to convert it to the correct unit of cputime64_t.\n\nSigned-off-by: Andreas Schwab \u003cschwab@linux-m68k.org\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: \"Artem S. Tashkinov\" \u003ct.artem@mailcity.com\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "abb434cb0539fb355c1c921f8fd761efbbac3462",
      "tree": "24a7d99ec161f8fd4dc9ff03c9c4cc93be883ce6",
      "parents": [
        "2494654d4890316e7340fb8b3458daad0474a1b9",
        "6350323ad8def2ac00d77cdee3b79c9b9fba75c4"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 23 17:13:56 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 23 17:13:56 2011 -0500"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nConflicts:\n\tnet/bluetooth/l2cap_core.c\n\nJust two overlapping changes, one added an initialization of\na local variable, and another change added a new local variable.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "648616343cdbe904c585a6c12e323d3b3c72e46f",
      "tree": "514bce1b52663db4ab5662b637c764cf3c2ed1eb",
      "parents": [
        "55b02d2f4445ad625213817a1736bf2884d32547"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Thu Dec 15 14:56:09 2011 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Thu Dec 15 14:56:19 2011 +0100"
      },
      "message": "[S390] cputime: add sparse checking and cleanup\n\nMake cputime_t and cputime64_t nocast to enable sparse checking to\ndetect incorrect use of cputime. Drop the cputime macros for simple\nscalar operations. The conversion macros are still needed.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "3d7f1dc195167efcb269e83055672d5c0a6bd650",
      "tree": "8e2044ae68e03c75f97fcef2c955562539673c10",
      "parents": [
        "cb0d93505f6e9d2db87a50f402ec022517ec44c8"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Dec 13 09:26:45 2011 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Dec 13 09:26:45 2011 +0000"
      },
      "message": "UAPI: Rearrange definition of HZ in asm-generic/param.h\n\nRearrange the definition of HZ in asm-generic/param.h so that the user-specific\nis declared before the kernel-specific one.  We then explicitly #undef the\nuserspace HZ value and replace it with the kernel HZ value.\n\nThis allows the userspace params to be excised into a separate header as part\nof the UAPI header split.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "15c9a0acc3f7873db4b7d35d016729b2dc229b49",
      "tree": "cfd9d6dd645d8116709521001e90dd75ffc19992",
      "parents": [
        "1a2d397a6eb5cf40c382d9e3d4bc04aaeb025336"
      ],
      "author": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Mon Dec 12 09:25:57 2011 -0700"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Mon Dec 12 13:40:16 2011 -0700"
      },
      "message": "of: create of_phandle_args to simplify return of phandle parsing data\n\nof_parse_phandle_with_args() needs to return quite a bit of data.  Rather\nthan making each datum a separate **out_ argument, this patch creates\nstruct of_phandle_args to contain all the returned data and reworks the\nuser of the function.  This patch also enables of_parse_phandle_with_args()\nto return the device node pointer for the phandle node.\n\nThis patch also ends up being fairly major surgery to\nof_parse_handle_with_args().  The existing structure didn\u0027t work well\nwhen extending to use of_phandle_args, and I discovered bugs during testing.\nI also took the opportunity to rename the function to be like the\nexisting of_parse_phandle().\n\nv2: - moved declaration of of_phandle_args to fix compile on non-DT builds\n    - fixed incorrect index in example usage\n    - fixed incorrect return code handling for empty entries\n\nReviewed-by: Shawn Guo \u003cshawn.guo@freescale.com\u003e\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "1a2d397a6eb5cf40c382d9e3d4bc04aaeb025336",
      "tree": "de928bf30efd84464d173359ae29f6a48b545b31",
      "parents": [
        "fe9f68449a507e03d41bee4500456bbfa22095d3"
      ],
      "author": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Mon Dec 12 09:25:57 2011 -0700"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Mon Dec 12 13:40:16 2011 -0700"
      },
      "message": "gpio/powerpc: Eliminate duplication of of_get_named_gpio_flags()\n\nA large chunk of qe_pin_request() is unnecessarily cut-and-paste\ndirectly from of_get_named_gpio_flags().  This patch cuts out the\nduplicate code and replaces it with a call to of_get_gpio().\n\nv2: fixed compile error due to missing gpio_to_chip()\n\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Kumar Gala \u003cgalak@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "a67ba43d30bf8c1cfdc2615439455302d2408453",
      "tree": "5f8e653549c3c5ab7a92dd2aa6196cd57c9b954a",
      "parents": [
        "c2851a9b1caa420c2cdbd517617166990e3723c0"
      ],
      "author": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@tilera.com",
        "time": "Thu Dec 01 12:54:31 2011 -0500"
      },
      "committer": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@tilera.com",
        "time": "Sat Dec 03 15:31:48 2011 -0500"
      },
      "message": "asm-generic/unistd.h: support new process_vm_{readv,write} syscalls\n\nAlso prototype the \"compat\" functions so they can be referenced\nfrom C code.\n\nSigned-off-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "66eab4df288aaee75938ae99877c4f759fc6d56c",
      "tree": "0b663bfe2d464a55c2a85b27140a53b32f261542",
      "parents": [
        "4673ca8eb3690832e76371371955a8b02e1f59d4"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Thu Nov 24 20:45:20 2011 +0200"
      },
      "committer": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Mon Nov 28 21:12:42 2011 +0200"
      },
      "message": "lib: add GENERIC_PCI_IOMAP\n\nMany architectures want a generic pci_iomap but\nnot the rest of iomap.c. Split that to a separate .c\nfile and add a new config symbol. select automatically\nby GENERIC_IOMAP.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\n"
    },
    {
      "commit": "e11c259f745889b55bc5596ca78271f2f5cf08d2",
      "tree": "5025f0bf9093e84d0643beb9097249c176dbbea7",
      "parents": [
        "8d26784cf0d04c1238e906efdd5de76439cb0a1e",
        "b4487c2d0edaf1332d7a9f11b5661044955ef5e2"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Nov 17 13:11:43 2011 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Nov 17 13:11:43 2011 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem\n\nConflicts:\n\tinclude/net/bluetooth/bluetooth.h\n"
    },
    {
      "commit": "6e3e939f3b1bf8534b32ad09ff199d88800835a0",
      "tree": "78ec0638efbade2fdb0bebb7bad71410ded2e6c6",
      "parents": [
        "4fdbff0770bea059621bc4906fb7c7f5879f3ae1"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Wed Nov 09 10:15:42 2011 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 09 16:01:02 2011 -0500"
      },
      "message": "net: add wireless TX status socket option\n\nThe 802.1X EAPOL handshake hostapd does requires\nknowing whether the frame was ack\u0027ed by the peer.\nCurrently, we fudge this pretty badly by not even\ntransmitting the frame as a normal data frame but\ninjecting it with radiotap and getting the status\nout of radiotap monitor as well. This is rather\ncomplex, confuses users (mon.wlan0 presence) and\ndoesn\u0027t work with all hardware.\n\nTo get rid of that hack, introduce a real wifi TX\nstatus option for data frame transmissions.\n\nThis works similar to the existing TX timestamping\nin that it reflects the SKB back to the socket\u0027s\nerror queue with a SCM_WIFI_STATUS cmsg that has\nan int indicating ACK status (0/1).\n\nSince it is possible that at some point we will\nwant to have TX timestamping and wifi status in a\nsingle errqueue SKB (there\u0027s little point in not\ndoing that), redefine SO_EE_ORIGIN_TIMESTAMPING\nto SO_EE_ORIGIN_TXSTATUS which can collect more\nthan just the timestamp; keep the old constant\nas an alias of course. Currently the internal APIs\ndon\u0027t make that possible, but it wouldn\u0027t be hard\nto split them up in a way that makes it possible.\n\nThanks to Neil Horman for helping me figure out\nthe functions that add the control messages.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "c87d5d594736dd8b56df67e31846c7d7b8c41a8f",
      "tree": "a4496b74b932e55b544d040af2668e68abcb1e56",
      "parents": [
        "094803e0aab3fe75bbf8202a8f4b5280eaade375",
        "4e29198e1cd7728c30c96a8483a6068c71b34e4e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 01 07:48:13 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 01 07:48:13 2011 -0700"
      },
      "message": "Merge Qualcom Hexagon architecture\n\nThis is the fifth version of the patchset (with one tiny whitespace fix)\nto the Linux kernel to support the Qualcomm Hexagon architecture.\n\nBetween now and the next pull requests, Richard Kuo should have his key\nsigned, etc., and should be back on kernel.org.  In the meantime, this\ngot merged as a emailed patch-series.\n\n* Hexagon: (36 commits)\n  Add extra arch overrides to asm-generic/checksum.h\n  Hexagon: Add self to MAINTAINERS\n  Hexagon: Add basic stacktrace functionality for Hexagon architecture.\n  Hexagon: Add configuration and makefiles for the Hexagon architecture.\n  Hexagon: Comet platform support\n  Hexagon: kgdb support files\n  Hexagon: Add page-fault support.\n  Hexagon: Add page table header files \u0026 etc.\n  Hexagon: Add ioremap support\n  Hexagon: Provide DMA implementation\n  Hexagon: Implement basic TLB management routines for Hexagon.\n  Hexagon: Implement basic cache-flush support\n  Hexagon: Provide basic implementation and/or stubs for I/O routines.\n  Hexagon: Add user access functions\n  Hexagon: Add locking types and functions\n  Hexagon: Add SMP support\n  Hexagon: Provide basic debugging and system trap support.\n  Hexagon: Add ptrace support\n  Hexagon: Add time and timer functions\n  Hexagon: Add interrupts\n  ...\n"
    },
    {
      "commit": "4e29198e1cd7728c30c96a8483a6068c71b34e4e",
      "tree": "780c0bb634c2161a89616eeb84d140d6ec641d3d",
      "parents": [
        "4f4567cf4ff586e318aa1bc586a69570d64b162a"
      ],
      "author": {
        "name": "Linas Vepstas",
        "email": "linas@codeaurora.org",
        "time": "Mon Oct 31 18:56:59 2011 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 01 07:34:21 2011 -0700"
      },
      "message": "Add extra arch overrides to asm-generic/checksum.h\n\nThere are plausible reasons for architectures to provide their own\nversions of csum_partial_copy_nocheck and csum_tcpudp_magic.\nBy protecting these, the architecture can still re-use the\nasm-generic checksum.h, instead of copying it.\n\nSigned-off-by: Linas Vepstas \u003clinas@codeaurora.org\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Richard Kuo \u003crkuo@codeaurora.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dd472da380c3819740d740cfd70b7f8e700e834b",
      "tree": "8d6dd638268cd46dae5fb8bf1c18f47f13db3031",
      "parents": [
        "43afdf508386342d714f6911c1976f934b520cb0"
      ],
      "author": {
        "name": "Richard Kuo",
        "email": "rkuo@codeaurora.org",
        "time": "Mon Oct 31 18:47:33 2011 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 01 07:34:20 2011 -0700"
      },
      "message": "Hexagon: Add locking types and functions\n\nSigned-off-by: Richard Kuo \u003crkuo@codeaurora.org\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b9075fa968a0a4347aef35e235e2995c0e57dddd",
      "tree": "cf9f9716784e790d8a43339653256d9cf9178ff3",
      "parents": [
        "ae29bc92da01a2e9d278a9a58c3b307d41cc0254"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Oct 31 17:11:33 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:54 2011 -0700"
      },
      "message": "treewide: use __printf not __attribute__((format(printf,...)))\n\nStandardize the style for compiler based printf format verification.\nStandardized the location of __printf too.\n\nDone via script and a little typing.\n\n$ grep -rPl --include\u003d*.[ch] -w \"__attribute__\" * | \\\n  grep -vP \"^(tools|scripts|include/linux/compiler-gcc.h)\" | \\\n  xargs perl -n -i -e \u0027local $/; while (\u003c\u003e) { s/\\b__attribute__\\s*\\(\\s*\\(\\s*format\\s*\\(\\s*printf\\s*,\\s*(.+)\\s*,\\s*(.+)\\s*\\)\\s*\\)\\s*\\)/__printf($1, $2)/g ; print; }\u0027\n\n[akpm@linux-foundation.org: revert arch bits]\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: \"Kirill A. Shutemov\" \u003ckirill@shutemov.name\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "06d5e032adcbc7d50c606a1396f00e2474e4213e",
      "tree": "c9c0134ecc8d26f43749b2108325cd8e1bcaadfd",
      "parents": [
        "37a1c49a91ad55f917a399ef2174b5ebda4283f9"
      ],
      "author": {
        "name": "Sonic Zhang",
        "email": "sonic.zhang@analog.com",
        "time": "Mon Oct 31 17:08:31 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:48 2011 -0700"
      },
      "message": "include/asm-generic/page.h: calculate virt_to_page and page_to_virt via predefined macro\n\nOn NOMMU architectures, if physical memory doesn\u0027t start from 0,\nARCH_PFN_OFFSET is defined to generate page index in mem_map array.\nBecause virtual address is equal to physical address, PAGE_OFFSET is\nalways 0.  virt_to_page and page_to_virt should not index page by\nPAGE_OFFSET directly.\n\nSigned-off-by: Sonic Zhang \u003csonic.zhang@analog.com\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: David Howells \u003cdhowells@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": "07a723097cd31e9c2def69ac4d42834a16f79219",
      "tree": "122c4c9e567dfe453fa4a948a648f0f26e381556",
      "parents": [
        "1a4ceab195e66bce9c1638fdded6d92988100ba4"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Oct 31 17:06:28 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:44 2011 -0700"
      },
      "message": "dma-mapping: fix sync_single_range_* DMA debugging\n\nCommit 5fd75a7850b5 (dma-mapping: remove unnecessary sync_single_range_*\nin dma_map_ops) unified not only the dma_map_ops but also the\ncorresponding debug_dma_sync_* calls.  This led to spurious WARN()ings\nlike the following because the DMA debug code was no longer able to detect\nthe DMA buffer base address without the separate offset parameter:\n\nWARNING: at lib/dma-debug.c:911 check_sync+0xce/0x446()\nfirewire_ohci 0000:04:00.0: DMA-API: device driver tries to sync DMA memory it has not allocated [device address\u003d0x00000000cedaa400] [size\u003d1024 bytes]\nCall Trace: ...\n [\u003cffffffff811326a5\u003e] check_sync+0xce/0x446\n [\u003cffffffff81132ad9\u003e] debug_dma_sync_single_for_device+0x39/0x3b\n [\u003cffffffffa01d6e6a\u003e] ohci_queue_iso+0x4f3/0x77d [firewire_ohci]\n ...\n\nTo fix this, unshare the sync_single_* and sync_single_range_*\nimplementations so that we are able to call the correct debug_dma_sync_*\nfunctions.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nCc: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "41684f67af75b04152a1714e1a5375dfb00ee3da",
      "tree": "3b0f51dd8103a4fd40ebb6cefeece7579e348cde",
      "parents": [
        "ec7ae517537ae5c7b0b2cd7f562dfa3e7a05b954",
        "d92ef29a6fa971d9e314e412cd9c09757906411a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 29 07:27:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 29 07:27:45 2011 -0700"
      },
      "message": "Merge branch \u0027gpio/next\u0027 of git://git.secretlab.ca/git/linux-2.6\n\n* \u0027gpio/next\u0027 of git://git.secretlab.ca/git/linux-2.6:\n  h8300: Move gpio.h to gpio-internal.h\n  gpio: pl061: add DT binding support\n  gpio: fix build error in include/asm-generic/gpio.h\n  gpiolib: Ensure struct gpio is always defined\n  irq: Add EXPORT_SYMBOL_GPL to function of irq generic-chip\n  gpio-ml-ioh: Use NUMA_NO_NODE not GFP_KERNEL\n  gpio-pch: Use NUMA_NO_NODE not GFP_KERNEL\n  gpio: langwell: ensure alternate function is cleared\n  gpio-pch: Support interrupt function\n  gpio-pch: Save register value in suspend()\n  gpio-pch: modify gpio_nums and mask\n  gpio-pch: support ML7223 IOH n-Bus\n  gpio-pch: add spinlock in suspend/resume processing\n  gpio-pch: Delete invalid \"restore\" code in suspend()\n  gpio-ml-ioh: Fix suspend/resume issue\n  gpio-ml-ioh: Support interrupt function\n  gpio-ml-ioh: Delete unnecessary code\n  gpio/mxc: add chained_irq_enter/exit() to mx3_gpio_irq_handler()\n  gpio/nomadik: use genirq core to track enablement\n  gpio/nomadik: disable clocks when unused\n"
    },
    {
      "commit": "eb9ae7f2a38135761496d317c08c87f38c7cafe3",
      "tree": "d85b542a849aeb8381820f6dbba18dedd5e1f6eb",
      "parents": [
        "feb836992437c9b8b53988da30880e0e6e93ac8b"
      ],
      "author": {
        "name": "Hamo",
        "email": "hamo.by@gmail.com",
        "time": "Fri Oct 21 09:38:32 2011 +0800"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Wed Oct 26 23:15:28 2011 +0200"
      },
      "message": "gpio: fix build error in include/asm-generic/gpio.h\n\nShould call the platform-specific __gpio_{get,set}_value\ninstead of generic gpio_{get,set}_value\n\nSigned-off-by: Yang Bai \u003chamo.by@gmail.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "39adff5f69d6849ca22353a88058c9f8630528c0",
      "tree": "b0c2d2de77ebc5c97fd19c29b81eeb03549553f8",
      "parents": [
        "8a4a8918ed6e4a361f4df19f199bbc2d0a89a46c",
        "e35f95b36e43f67a6f806172555a152c11ea0a78"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 26 17:15:03 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 26 17:15:03 2011 +0200"
      },
      "message": "Merge branch \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (23 commits)\n  time, s390: Get rid of compile warning\n  dw_apb_timer: constify clocksource name\n  time: Cleanup old CONFIG_GENERIC_TIME references that snuck in\n  time: Change jiffies_to_clock_t() argument type to unsigned long\n  alarmtimers: Fix error handling\n  clocksource: Make watchdog reset lockless\n  posix-cpu-timers: Cure SMP accounting oddities\n  s390: Use direct ktime path for s390 clockevent device\n  clockevents: Add direct ktime programming function\n  clockevents: Make minimum delay adjustments configurable\n  nohz: Remove \"Switched to NOHz mode\" debugging messages\n  proc: Consider NO_HZ when printing idle and iowait times\n  nohz: Make idle/iowait counter update conditional\n  nohz: Fix update_ts_time_stat idle accounting\n  cputime: Clean up cputime_to_usecs and usecs_to_cputime macros\n  alarmtimers: Rework RTC device selection using class interface\n  alarmtimers: Add try_to_cancel functionality\n  alarmtimers: Add more refined alarm state tracking\n  alarmtimers: Remove period from alarm structure\n  alarmtimers: Remove interval cap limit hack\n  ...\n"
    },
    {
      "commit": "1442d1678ca7e53574fd403ba7bee6f4125d920c",
      "tree": "fd053a849158d2c5b8345ced8982108825b85736",
      "parents": [
        "7e0bb71e75020348bee523720a0c2f04cc72f540",
        "345c284290cabb5484df909303e73d6def8ec8ec"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 25 15:42:01 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 25 15:42:01 2011 +0200"
      },
      "message": "Merge branch \u0027for-3.2\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-3.2\u0027 of git://linux-nfs.org/~bfields/linux: (103 commits)\n  nfs41: implement DESTROY_CLIENTID operation\n  nfsd4: typo logical vs bitwise negate for want_mask\n  nfsd4: allow NFS4_SHARE_SIGNAL_DELEG_WHEN_RESRC_AVAIL | NFS4_SHARE_PUSH_DELEG_WHEN_UNCONTENDED\n  nfsd4: seq-\u003estatus_flags may be used unitialized\n  nfsd41: use SEQ4_STATUS_BACKCHANNEL_FAULT when cb_sequence is invalid\n  nfsd4: implement new 4.1 open reclaim types\n  nfsd4: remove unneeded CLAIM_DELEGATE_CUR workaround\n  nfsd4: warn on open failure after create\n  nfsd4: preallocate open stateid in process_open1()\n  nfsd4: do idr preallocation with stateid allocation\n  nfsd4: preallocate nfs4_file in process_open1()\n  nfsd4: clean up open owners on OPEN failure\n  nfsd4: simplify process_open1 logic\n  nfsd4: make is_open_owner boolean\n  nfsd4: centralize renew_client() calls\n  nfsd4: typo logical vs bitwise negate\n  nfs: fix bug about IPv6 address scope checking\n  nfsd4: more robust ignoring of WANT bits in OPEN\n  nfsd4: move name-length checks to xdr\n  nfsd4: move access/deny validity checks to xdr code\n  ...\n"
    },
    {
      "commit": "bc74ee976959616e3c1cc1341383bf2316dd4096",
      "tree": "4ed25ad77737115e45ef163072414d6edb2205e3",
      "parents": [
        "8b223432f76acc13898b8874f55d5292da573d8e"
      ],
      "author": {
        "name": "Kirill Tkhai",
        "email": "tkhai@yandex.ru",
        "time": "Sun Sep 04 03:18:37 2011 +0400"
      },
      "committer": {
        "name": "Geert Uytterhoeven",
        "email": "geert@linux-m68k.org",
        "time": "Mon Oct 24 21:00:34 2011 +0200"
      },
      "message": "m68k: Finally remove leftover markers sections\n\nMarkers have removed already twice:\n\n1: fc5377668c3d808e1d53c4aee152c836f55c3490\n2: eb878b3bc0349344dbf70c51bf01fc734d5cf2d3\n\nBut a little bit is still here.\n\nSigned-off-by: Tkhai Kirill \u003ctkhai@yandex.ru\u003e\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\n"
    },
    {
      "commit": "feb836992437c9b8b53988da30880e0e6e93ac8b",
      "tree": "1fa88109514310e32112acd017c1c506d13444b5",
      "parents": [
        "825de2e9007439977aed63771db570fc2235e8cd"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Oct 24 15:24:10 2011 +0200"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Mon Oct 24 16:04:06 2011 +0200"
      },
      "message": "gpiolib: Ensure struct gpio is always defined\n\nCurrently struct gpio is only defined when using gpiolib which makes the\nstub gpio_request_array() much less useful in drivers than is ideal as\nthey can\u0027t work with struct gpio.  Since there are no other definitions\nin kernel instead make the define always available no matter if gpiolib\nis selectable or selected, ensuring that drivers can always use the\ntype.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "e66d3c490c7a45daa49c1ae9cc5fe0687d14b823",
      "tree": "b366ce9fb4d651919a355c04b5b931480fec371e",
      "parents": [
        "854a68521badc48460c9cbcdf37b220865836ac3"
      ],
      "author": {
        "name": "Mark Salter",
        "email": "msalter@redhat.com",
        "time": "Tue Oct 04 09:25:56 2011 -0400"
      },
      "committer": {
        "name": "Mark Salter",
        "email": "msalter@redhat.com",
        "time": "Thu Oct 06 19:47:22 2011 -0400"
      },
      "message": "add missing __iomem to generic iounmap declaration\n\nSigned-off-by: Mark Salter \u003cmsalter@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "b7a0556e0f2d6946a57f993c6d1043cf065ccfa8",
      "tree": "3aaef3ec59cff7cfb58ef6f9905792c2a5644603",
      "parents": [
        "830f5800acae17b972d264ab65fe54a7f10c1d82"
      ],
      "author": {
        "name": "Mark Salter",
        "email": "msalter@redhat.com",
        "time": "Tue Oct 04 09:24:15 2011 -0400"
      },
      "committer": {
        "name": "Mark Salter",
        "email": "msalter@redhat.com",
        "time": "Thu Oct 06 19:47:16 2011 -0400"
      },
      "message": "fixed generic page.h for non-zero PAGE_OFFSET\n\nasm-generic/page.h had several problems when used with a non-zero PAGE_OFFSET.\nThis patch adds a default ARCH_PFN_OFFSET and fixes the __va, __pa, and\npfn_valid macros to work with non-zero PAGE_OFFSETs.\n\nSigned-off-by: Mark Salter \u003cmsalter@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "830f5800acae17b972d264ab65fe54a7f10c1d82",
      "tree": "0d7807cced390c174f540aad7c8bf51c5c48a059",
      "parents": [
        "3ee72ca99288f1de95ec9c570e43f531c8799f06"
      ],
      "author": {
        "name": "Mark Salter",
        "email": "msalter@redhat.com",
        "time": "Tue Oct 04 09:17:36 2011 -0400"
      },
      "committer": {
        "name": "Mark Salter",
        "email": "msalter@redhat.com",
        "time": "Thu Oct 06 19:47:12 2011 -0400"
      },
      "message": "fix default __strnlen_user macro\n\nThe existing __strnlen_user macro simply resolved to strnlen. However, the\ncount returned by strnlen_user should include the NULL byte. This patch\nfixes the __strnlen_user macro to include the NULL byte in the count.\n\nSigned-off-by: Mark Salter \u003cmsalter@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "ef0e0f5ed9bde6d1e3376169785a463ad2160e6d",
      "tree": "08a2eeb7a8f0da9654a7c5cc97a5ca5904176777",
      "parents": [
        "8bc0dafb5cf38a19484dfb16e2c6d29e85820046"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Wed Aug 24 09:36:46 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Sep 08 11:10:55 2011 +0200"
      },
      "message": "cputime: Clean up cputime_to_usecs and usecs_to_cputime macros\n\nGet rid of semicolon so that those expressions can be used also\nsomewhere else than just in an assignment.\n\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nLink: http://lkml.kernel.org/r/7565417ce30d7e6b1ddc169843af0777dbf66e75.1314172057.git.mhocko@suse.cz\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "f5b940997397229975ea073679b03967932a541b",
      "tree": "a477f440175d67b67928d6d11c845fe98f09eb72",
      "parents": [
        "b727d20269e8ef1de002bfea8099f5e9db9e9f23"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Aug 26 18:03:11 2011 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 26 15:09:58 2011 -0700"
      },
      "message": "All Arch: remove linkage for sys_nfsservctl system call\n\nThe nfsservctl system call is now gone, so we should remove all\nlinkage for it.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "710b7216964d6455cf1b215c43b03a1a79008c7d",
      "tree": "b0b356e3256ba52838a6373c4791721820d8fdaa",
      "parents": [
        "ab83fa4b49a54e6199b076b7d8c1808144e80f0d"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Jul 26 16:28:29 2011 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Aug 19 13:25:34 2011 -0400"
      },
      "message": "locks: move F_INPROGRESS from fl_type to fl_flags field\n\nF_INPROGRESS isn\u0027t exposed to userspace.  To me it makes more sense in\nfl_flags....\n\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "aa462abe8aaf2198d6aef97da20c874ac694a39f",
      "tree": "f7c1b4e82fe8eeaad8ce61a5e9e4d301accaf32b",
      "parents": [
        "f991879473828f320a714e9494fb37a26ccd6b66"
      ],
      "author": {
        "name": "Ian Campbell",
        "email": "ian.campbell@citrix.com",
        "time": "Wed Aug 17 17:40:33 2011 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 17 13:00:20 2011 -0700"
      },
      "message": "mm: fix __page_to_pfn for a const struct page argument\n\nThis allows the cast in lowmem_page_address (introduced as a warning\nfixup to 33dd4e0ec911 \"mm: make some struct page\u0027s const\") to be\nremoved.\n\nPropagate const\u0027ness to page_to_section() as well since it is required\nby __page_to_pfn.\n\nSigned-off-by: Ian Campbell \u003cian.campbell@citrix.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3960ef326a1838971466193ffa008ff37c1d978d",
      "tree": "282b74377bccb9fa79639ce4df2dcb48652dbdec",
      "parents": [
        "62c9072bee2272232d0ed92dc8148c48c1f10f8e",
        "c8f85523e70f8202ff49858bacd72fa65245f382"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 17:12:10 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 17:12:10 2011 -0700"
      },
      "message": "Merge branch \u0027next/cross-platform\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc\n\n* \u0027next/cross-platform\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc:\n  ARM: Consolidate the clkdev header files\n  ARM: set vga memory base at run-time\n  ARM: convert PCI defines to variables\n  ARM: pci: make pcibios_assign_all_busses use pci_has_flag\n  ARM: remove unnecessary mach/hardware.h includes\n  pci: move microblaze and powerpc pci flag functions into asm-generic\n  powerpc: rename ppc_pci_*_flags to pci_*_flags\n\nFix up conflicts in arch/microblaze/include/asm/pci-bridge.h\n"
    },
    {
      "commit": "7505cb60c2d26301630b052852d484decf07aef1",
      "tree": "9383737887787553bf90d42ee6886b59d80a52d8",
      "parents": [
        "00b3c28bd753afb46fb26b2f9e21dd27dacd80d4"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Tue Jul 26 16:09:11 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:48 2011 -0700"
      },
      "message": "asm-generic/atomic.h: allow SMP peeps to leverage this\n\nOnly a few core funcs need to be implemented for SMP systems, so allow the\narches to override them while getting the rest for free.\n\nAt least, this is enough to allow the Blackfin SMP port to use things.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Arun Sharma \u003casharma@fb.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "00b3c28bd753afb46fb26b2f9e21dd27dacd80d4",
      "tree": "461b90948bd8dbd31a1752071c9d0a5cc1412185",
      "parents": [
        "f6081bd3f8152cdd3d857f55631bbb4b72182b82"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Tue Jul 26 16:09:10 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:48 2011 -0700"
      },
      "message": "asm-generic/atomic.h: add atomic_set_mask() helper\n\nSince arches are expected to implement this guy, add a common version for\npeople the same way as atomic_clear_mask is handled.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Arun Sharma \u003casharma@fb.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f6081bd3f8152cdd3d857f55631bbb4b72182b82",
      "tree": "fa6cf9b5432ea33d8182d2a64465d28ecfc13315",
      "parents": [
        "3eea44ea753923c6af90be808426ecddc482de61"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Tue Jul 26 16:09:10 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:47 2011 -0700"
      },
      "message": "asm-generic/atomic.h: fix type used in atomic_clear_mask\n\nThe atomic helpers are supposed to take an atomic_t pointer, not a random\nunsigned long pointer.  So convert atomic_clear_mask over.\n\nWhile we\u0027re here, also add some nice documentation to the func.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Arun Sharma \u003casharma@fb.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3eea44ea753923c6af90be808426ecddc482de61",
      "tree": "6396fde749790461d6e355a0bf4d3ec88b56831b",
      "parents": [
        "acac43e2fc4b14ecf1ff229eaa8d1e011d063749"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Tue Jul 26 16:09:09 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:47 2011 -0700"
      },
      "message": "asm-generic/atomic.h: simplify inc/dec test helpers\n\nWe already declared inc/dec helpers, so we don\u0027t need to call the\natomic_{add,sub}_return funcs directly.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Arun Sharma \u003casharma@fb.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "acac43e2fc4b14ecf1ff229eaa8d1e011d063749",
      "tree": "a0fb12d4ef71a408755a383d8c597ada8a92cbf4",
      "parents": [
        "7847777a45f9f8bfc8617dbf107bde1ecb59caee"
      ],
      "author": {
        "name": "Arun Sharma",
        "email": "asharma@fb.com",
        "time": "Tue Jul 26 16:09:08 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:47 2011 -0700"
      },
      "message": "atomic: Update comments in atomic.h\n\nThis clarifies the differences between \u003clinux/atomic.h\u003e and\n\u003casm-generic/atomic.h\u003e\n\nSigned-off-by: Arun Sharma \u003casharma@fb.com\u003e\nSuggested-by: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7847777a45f9f8bfc8617dbf107bde1ecb59caee",
      "tree": "f9e31828db79e607a763f1eaea2119b2f270dcdb",
      "parents": [
        "f24219b4e90cf70ec4a211b17fbabc725a0ddf3c"
      ],
      "author": {
        "name": "Arun Sharma",
        "email": "asharma@fb.com",
        "time": "Tue Jul 26 16:09:08 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:47 2011 -0700"
      },
      "message": "atomic: cleanup asm-generic atomic*.h inclusion\n\nAfter changing all consumers of atomics to include \u003clinux/atomic.h\u003e, we\nran into some compile time errors due to this dependency chain:\n\nlinux/atomic.h\n  -\u003e asm/atomic.h\n    -\u003e asm-generic/atomic-long.h\n\nwhere atomic-long.h could use funcs defined later in linux/atomic.h\nwithout a prototype.  This patches moves the code that includes\nasm-generic/atomic*.h to linux/atomic.h.\n\nArchs that need \u003casm-generic/atomic64.h\u003e need to select\nCONFIG_GENERIC_ATOMIC64 from now on (some of them used to include it\nunconditionally).\n\nCompile tested on i386 and x86_64 with allnoconfig.\n\nSigned-off-by: Arun Sharma \u003casharma@fb.com\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f24219b4e90cf70ec4a211b17fbabc725a0ddf3c",
      "tree": "c1c753bd425d61a5094995d9835b23b46383d9b2",
      "parents": [
        "60063497a95e716c9a689af3be2687d261f115b4"
      ],
      "author": {
        "name": "Arun Sharma",
        "email": "asharma@fb.com",
        "time": "Tue Jul 26 16:09:07 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:47 2011 -0700"
      },
      "message": "atomic: move atomic_add_unless to generic code\n\nThis is in preparation for more generic atomic primitives based on\n__atomic_add_unless.\n\nSigned-off-by: Arun Sharma \u003casharma@fb.com\u003e\nSigned-off-by: Hans-Christian Egtvedt \u003chans-christian.egtvedt@atmel.com\u003e\nReviewed-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "60063497a95e716c9a689af3be2687d261f115b4",
      "tree": "6ce0d68db76982c53df46aee5f29f944ebf2c320",
      "parents": [
        "148817ba092f9f6edd35bad3c6c6b8e8f90fe2ed"
      ],
      "author": {
        "name": "Arun Sharma",
        "email": "asharma@fb.com",
        "time": "Tue Jul 26 16:09:06 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:47 2011 -0700"
      },
      "message": "atomic: use \u003clinux/atomic.h\u003e\n\nThis allows us to move duplicated code in \u003casm/atomic.h\u003e\n(atomic_inc_not_zero() for now) to \u003clinux/atomic.h\u003e\n\nSigned-off-by: Arun Sharma \u003casharma@fb.com\u003e\nReviewed-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "148817ba092f9f6edd35bad3c6c6b8e8f90fe2ed",
      "tree": "75cc7df62c9713bc1a44738026878a79653faa38",
      "parents": [
        "b2c9cd3793e5878e301ec2219785a7b8ca402ef1"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Tue Jul 26 16:09:04 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:46 2011 -0700"
      },
      "message": "asm-generic: add another generic ext2 atomic bitops\n\nThe majority of architectures implement ext2 atomic bitops as\ntest_and_{set,clear}_bit() without spinlock.\n\nThis adds this type of generic implementation in ext2-atomic-setbit.h and\nuse it wherever possible.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSuggested-by: Andreas Dilger \u003cadilger@dilger.ca\u003e\nSuggested-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "45b583b10a8b438b970e95a7d1d4db22c9e35004",
      "tree": "14fa481598289df0459580c582b48a9d95db51f6",
      "parents": [
        "154dd78d30b56ffb8b447f629bfcceb14150e5c4",
        "f19da2ce8ef5e49b8b8ea199c3601dd45d71b262"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 25 21:00:19 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 25 21:00:19 2011 -0700"
      },
      "message": "Merge \u0027akpm\u0027 patch series\n\n* Merge akpm patch series: (122 commits)\n  drivers/connector/cn_proc.c: remove unused local\n  Documentation/SubmitChecklist: add RCU debug config options\n  reiserfs: use hweight_long()\n  reiserfs: use proper little-endian bitops\n  pnpacpi: register disabled resources\n  drivers/rtc/rtc-tegra.c: properly initialize spinlock\n  drivers/rtc/rtc-twl.c: check return value of twl_rtc_write_u8() in twl_rtc_set_time()\n  drivers/rtc: add support for Qualcomm PMIC8xxx RTC\n  drivers/rtc/rtc-s3c.c: support clock gating\n  drivers/rtc/rtc-mpc5121.c: add support for RTC on MPC5200\n  init: skip calibration delay if previously done\n  misc/eeprom: add eeprom access driver for digsy_mtc board\n  misc/eeprom: add driver for microwire 93xx46 EEPROMs\n  checkpatch.pl: update $logFunctions\n  checkpatch: make utf-8 test --strict\n  checkpatch.pl: add ability to ignore various messages\n  checkpatch: add a \"prefer __aligned\" check\n  checkpatch: validate signature styles and To: and Cc: lines\n  checkpatch: add __rcu as a sparse modifier\n  checkpatch: suggest using min_t or max_t\n  ...\n\nDid this as a merge because of (trivial) conflicts in\n - Documentation/feature-removal-schedule.txt\n - arch/xtensa/include/asm/uaccess.h\nthat were just easier to fix up in the merge than in the patch series.\n"
    },
    {
      "commit": "5190f0c030f46b3169205f34f6d9ef480fa39ef2",
      "tree": "5ae8f4edb4fdfb84a51e41390d0b43c4e4d2c891",
      "parents": [
        "f35119d6681300ba6d76da53cb1ebc2eed62e77a"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Mon Jul 25 17:12:58 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 25 20:57:14 2011 -0700"
      },
      "message": "asm-generic/system.h: drop useless __KERNEL__\n\nThis header isn\u0027t exported to user-space, and even if it was, the\n__KERNEL__ check covers the entire file, so we\u0027d get a useless stub in the\nfirst place.  So punt it.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fea80311a939a746533a6d7e7c3183729d6a3faf",
      "tree": "019499626be5febeb88a121b2a04dc0f38e274f0",
      "parents": [
        "8405b044e5238afebd7248d927c1d261d2239767"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Sun Jul 24 11:39:14 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 25 10:32:42 2011 -0700"
      },
      "message": "iomap: make IOPORT/PCI mapping functions conditional\n\nWhen CONFIG_PCI is not enabled, CONFIG_EISA\u003dy, and CONFIG_GENERIC_IOMAP\u003dy,\ndrivers/net/3c59x.c build fails due to a recent small change to\n\u003casm-generic/iomap.h\u003e that surrounds pci_iomap() and pci_iounmap() with\n#ifdef CONFIG_PCI/#endif.\n\nSince that patch to iomap.h looks correct, add stubs for pci_iomap() and\npci_iounmap() with CONFIG_PCI is not enabled to fix the build errors.\n\n  drivers/net/3c59x.c:1026: error: implicit declaration of function \u0027pci_iomap\u0027\n  drivers/net/3c59x.c:1038: error: implicit declaration of function \u0027pci_iounmap\u0027\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nCc: Jonas Bonn \u003cjonas@southpole.se\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "82ed223c264def2b15ee4bec2e8c3048092ceb5f",
      "tree": "5db30cfb6bb60ce5914128ebe342f08257688aac",
      "parents": [
        "f1ecc69838a2d7c8a3e1909f637d4083c071777d"
      ],
      "author": {
        "name": "Jonas Bonn",
        "email": "jonas@southpole.se",
        "time": "Sat Jul 02 17:23:29 2011 +0200"
      },
      "committer": {
        "name": "Jonas Bonn",
        "email": "jonas@southpole.se",
        "time": "Fri Jul 22 18:46:26 2011 +0200"
      },
      "message": "iomap: make IOPORT/PCI mapping functions conditional\n\nUse the CONFIG_HAS_IOPORT and CONFIG_PCI options to decide whether or\nnot functions for mapping these areas are provided.\n\nSigned-off-by: Jonas Bonn \u003cjonas@southpole.se\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "f1ecc69838a2d7c8a3e1909f637d4083c071777d",
      "tree": "7f052a7faa1fd92b25659beaa748bb665af45c56",
      "parents": [
        "a4e05276a10198a1540dd1a0001f759c10ce1cf1"
      ],
      "author": {
        "name": "Jonas Bonn",
        "email": "jonas@southpole.se",
        "time": "Sat Jul 02 17:17:35 2011 +0200"
      },
      "committer": {
        "name": "Jonas Bonn",
        "email": "jonas@southpole.se",
        "time": "Fri Jul 22 18:46:25 2011 +0200"
      },
      "message": "asm-generic: add MMU variants of io.h functions\n\nSome of the implementations, in particular the ioremap variants, in\nasm-generic/io.h are for systems without an MMU.  In order to be able to\nuse the generic header file for systems with an MMU, this patch wraps\nthese implementations in checks for CONFIG_MMU.\n\nTested on OpenRISC.\n\nSigned-off-by: Jonas Bonn \u003cjonas@southpole.se\u003e\nCc: liqin.chen@sunplusct.com\nCc: gxt@mprc.pku.edu.cn\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "a87e553fabe8ceadc6f90889066559234cf194c7",
      "tree": "680a59e97378218fd13e0d1400706d84681c921c",
      "parents": [
        "30ab2b034fa87472d700f584e277e3aeb7a84d2c"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Mon Jul 18 15:28:20 2011 +0200"
      },
      "committer": {
        "name": "Jonas Bonn",
        "email": "jonas@southpole.se",
        "time": "Fri Jul 22 18:45:33 2011 +0200"
      },
      "message": "asm-generic: delay.h fix udelay and ndelay for 8 bit args\n\nWith a non-constant 8-bit argument, a call to udelay() generates a warning:\n\ndrivers/gpu/drm/radeon/atom.c: In function \u0027atom_op_delay\u0027:\ndrivers/gpu/drm/radeon/atom.c:654: warning: comparison is always false due to limited range of data type\n\nThe code looks like it works OK with an 8-bit arg, and the calling code is\ndoing nothing wrong, so udelay() needs fixing.\n\nFixing it was rather tricky.  Simply typecasting `n\u0027 in the comparison with\n20000 didn\u0027t change anything.  Hence the divide-by-20000 trick.\n\nUsing a do{}while loop didn\u0027t work because udelay() is used in ?: statements,\nhence the ({...}) construct.\n\nWhile I was there I replaced the brain-bending ?:?:?: mess with nice if/else\ncode.\n\nProbably other architectures are generating the same warning and can use a\nsimilar change.\n\n[Taken from the x86 tree and moved to asm-generic by Jonas Bonn]\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jonas Bonn \u003cjonas@southpole.se\u003e\n"
    },
    {
      "commit": "f4ffd5e5dfdae561e3ea449eb2160a8d155cdec4",
      "tree": "4a8d567fd5cc76493da0daa3c79022b49fe1eff1",
      "parents": [
        "0e47ff1ce65bbd0b12a9421a2756b26987ea5083"
      ],
      "author": {
        "name": "Rob Herring",
        "email": "rob.herring@calxeda.com",
        "time": "Wed Jun 29 11:46:54 2011 -0500"
      },
      "committer": {
        "name": "Rob Herring",
        "email": "rob.herring@calxeda.com",
        "time": "Tue Jul 12 11:13:07 2011 -0500"
      },
      "message": "pci: move microblaze and powerpc pci flag functions into asm-generic\n\nMove separate microblaze and powerpc pci flag functions pci_set_flags,\npci_add_flags, and pci_has_flag into asm-generic/pci-bridge.h so other\narchs can use them.\n\nSigned-off-by: Rob Herring \u003crob.herring@calxeda.com\u003e\nAcked-by: Nicolas Pitre \u003cnicolas.pitre@linaro.org\u003e\nAcked-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nSigned-off-by: Michal Simek \u003cmonstr@monstr.eu\u003e\n"
    },
    {
      "commit": "30ab2b034fa87472d700f584e277e3aeb7a84d2c",
      "tree": "d503ed633bd4c739471d5c016d2e1c3eb4e063a4",
      "parents": [
        "b0af8dfdd67699e25083478c63eedef2e72ebd85"
      ],
      "author": {
        "name": "Jonas Bonn",
        "email": "jonas@southpole.se",
        "time": "Sat Jul 02 10:29:24 2011 +0200"
      },
      "committer": {
        "name": "Jonas Bonn",
        "email": "jonas@southpole.se",
        "time": "Thu Jul 07 20:11:39 2011 +0200"
      },
      "message": "asm-generic: adapt delay.h to common implementation\n\nSeveral architectures are using a common delay.h implementation that\nappears to have originated with the x86 architecture.  This common\nimplementation is a bit fuller than the current asm-generic version\nand has some compile-time checks that should be interesting for all\narchitectures.\n\nThis patch takes the common delay.h version and replaces the rather\ntrivial asm-generic version with it.  As no architecture was actually\nusing asm-generic/delay.h, this change is rather innocuous; it will,\nhowever, allow us to switch at least four architectures over to using\nthe asm-generic version.\n\nSigned-off-by: Jonas Bonn \u003cjonas@southpole.se\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "0835619348b097404f4f85bc5195c6e23a2f8de4",
      "tree": "a81ae35390d440ad1fc655ae2e8715f6fae0b652",
      "parents": [
        "add794467a20463d7ea50dc9f158a6371d396175",
        "c001fb72a7b705f902bdfdd05b5d2408efe6f848",
        "e479c60456ef22b0869432887216186aabaed086"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 17 10:36:32 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 17 10:36:32 2011 -0700"
      },
      "message": "Merge branches \u0027gpio/merge\u0027 and \u0027spi/merge\u0027 of git://git.secretlab.ca/git/linux-2.6\n\n* \u0027gpio/merge\u0027 of git://git.secretlab.ca/git/linux-2.6:\n  gpio: add GPIOF_ values regardless on kconfig settings\n  gpio: include linux/gpio.h where needed\n  gpio/omap4: Fix missing interrupts during device wakeup due to IOPAD.\n\n* \u0027spi/merge\u0027 of git://git.secretlab.ca/git/linux-2.6:\n  spi/bfin_spi: fix handling of default bits per word setting\n"
    },
    {
      "commit": "c001fb72a7b705f902bdfdd05b5d2408efe6f848",
      "tree": "a8c15469c4a09c3690479e1508ab7ca7acbfcbe7",
      "parents": [
        "158f1e95180d01ebfd7cd5c8de23050528303f26"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue Jun 14 17:05:11 2011 -0700"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Thu Jun 16 08:40:52 2011 -0600"
      },
      "message": "gpio: add GPIOF_ values regardless on kconfig settings\n\nMake GPIOF_ defined values available even when GPIOLIB nor GENERIC_GPIO\nis enabled by moving them to \u003clinux/gpio.h\u003e.\n\nFixes these build errors in linux-next:\nsound/soc/codecs/ak4641.c:524: error: \u0027GPIOF_OUT_INIT_LOW\u0027 undeclared (first use in this function)\nsound/soc/codecs/wm8915.c:2921: error: \u0027GPIOF_OUT_INIT_LOW\u0027 undeclared (first use in this function)\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "49b24d6b41c576ba43153fc94695f871cce139a5",
      "tree": "21ccb6f8bc29d6c8c2a96b83bbbb3850b9ccc489",
      "parents": [
        "9e6f343852cb16ea961ba5be2ca8dde609aa6f23"
      ],
      "author": {
        "name": "Nicolas Kaiser",
        "email": "nikai@nikai.net",
        "time": "Wed Jun 15 15:08:34 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 15 20:04:00 2011 -0700"
      },
      "message": "include/asm-generic/pgtable.h: fix unbalanced parenthesis\n\nSigned-off-by: Nicolas Kaiser \u003cnikai@nikai.net\u003e\nReviewed-by: Andrea Arcangeli \u003caarcange@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": "b36a968927b789b2dd8de0aaf7a72ef7c1f0d012",
      "tree": "3e2df4e6a5d60255ff9fc36dda0b763f11682571",
      "parents": [
        "3cc39b3f061e90f69cb1f65d72c005c56cddd6a6"
      ],
      "author": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@tilera.com",
        "time": "Thu Jun 02 14:21:45 2011 -0400"
      },
      "committer": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@tilera.com",
        "time": "Thu Jun 02 14:31:38 2011 -0400"
      },
      "message": "asm-generic/unistd.h: support sendmmsg syscall\n\nSigned-off-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "04830fccdcafa7e0ea913990ae56437253553fef",
      "tree": "16d423628a516f544a0e5bb8fd4f00d88a55395f",
      "parents": [
        "571503e10045c89af951962ea0bb783482663aad",
        "1486a7409b42ec434be310e091ef68660a2f6cd0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 28 10:56:34 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 28 10:56:34 2011 -0700"
      },
      "message": "Merge branch \u0027gpio/next\u0027 of git://git.secretlab.ca/git/linux-2.6\n\n* \u0027gpio/next\u0027 of git://git.secretlab.ca/git/linux-2.6:\n  gpio/pch_gpio: Support new device ML7223\n  gpio: make gpio_{request,free}_array gpio array parameter const\n  GPIO: OMAP: move to drivers/gpio\n  GPIO: OMAP: move register offset defines into \u003cplat/gpio.h\u003e\n  gpio: Convert gpio_is_valid to return bool\n  gpio: Move the s5pc100 GPIO to drivers/gpio\n  gpio: Move the s5pv210 GPIO to drivers/gpio\n  gpio: Move the exynos4 GPIO to drivers/gpio\n  gpio: Move to Samsung common GPIO library to drivers/gpio\n  gpio/nomadik: add function to read GPIO pull down status\n  gpio/nomadik: show all pins in debug\n  gpio: move Nomadik GPIO driver to drivers/gpio\n  gpio: move U300 GPIO driver to drivers/gpio\n  langwell_gpio: add runtime pm support\n  gpio/pca953x: Add support for pca9574 and pca9575 devices\n  gpio/cs5535: Show explicit dependency between gpio_cs5535 and mfd_cs5535\n"
    },
    {
      "commit": "571503e10045c89af951962ea0bb783482663aad",
      "tree": "b24af1e4b5c67e2da940991b8219f8f8c4e7ac0a",
      "parents": [
        "29a6ccca3869bbe33879dae0cd7df2a1559eff54",
        "7b21fddd087678a70ad64afc0f632e0f1071b092"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 28 10:51:01 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 28 10:51:01 2011 -0700"
      },
      "message": "Merge branch \u0027setns\u0027\n\n* setns:\n  ns: Wire up the setns system call\n\nDone as a merge to make it easier to fix up conflicts in arm due to\naddition of sendmmsg system call\n"
    },
    {
      "commit": "7b21fddd087678a70ad64afc0f632e0f1071b092",
      "tree": "c3ee152ab9b57b6cbc1ee3c6fd495c704ec47f66",
      "parents": [
        "14d74e0cab7a7779a7ff0c3863c04c8a8e507106"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri May 27 19:28:27 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 28 10:48:39 2011 -0700"
      },
      "message": "ns: Wire up the setns system call\n\n32bit and 64bit on x86 are tested and working.  The rest I have looked\nat closely and I can\u0027t find any problems.\n\nsetns is an easy system call to wire up.  It just takes two ints so I\ndon\u0027t expect any weird architecture porting problems.\n\nWhile doing this I have noticed that we have some architectures that are\nvery slow to get new system calls.  cris seems to be the slowest where\nthe last system calls wired up were preadv and pwritev.  avr32 is weird\nin that recvmmsg was wired up but never declared in unistd.h.  frv is\nbehind with perf_event_open being the last syscall wired up.  On h8300\nthe last system call wired up was epoll_wait.  On m32r the last system\ncall wired up was fallocate.  mn10300 has recvmmsg as the last system\ncall wired up.  The rest seem to at least have syncfs wired up which was\nnew in the 2.6.39.\n\nv2: Most of the architecture support added by Daniel Lezcano \u003cdlezcano@fr.ibm.com\u003e\nv3: ported to v2.6.36-rc4 by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nv4: Moved wiring up of the system call to another patch\nv5: ported to v2.6.39-rc6\nv6: rebased onto parisc-next and net-next to avoid syscall  conflicts.\nv7: ported to Linus\u0027s latest post 2.6.39 tree.\n\n\u003e  arch/blackfin/include/asm/unistd.h     |    3 ++-\n\u003e  arch/blackfin/mach-common/entry.S      |    1 +\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\n\nOh - ia64 wiring looks good.\nAcked-by: Tony Luck \u003ctony.luck@intel.com\u003e\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7c295975a85b049385dfe0d5ee0d4d543619fbdc",
      "tree": "447683c4ddaf6e4380ad8f5f5dd20d4576f7428e",
      "parents": [
        "3474cb3cc0140f9cf6ca56983f8180b4b4c5c36a"
      ],
      "author": {
        "name": "Lars-Peter Clausen",
        "email": "lars@metafoo.de",
        "time": "Wed May 25 16:20:31 2011 -0700"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Fri May 27 17:56:45 2011 -0600"
      },
      "message": "gpio: make gpio_{request,free}_array gpio array parameter const\n\ngpio_{request,free}_array should not (and do not) modify the passed gpio\narray, so make the parameter const.\n\nSigned-off-by: Lars-Peter Clausen \u003clars@metafoo.de\u003e\nAcked-by: Eric Miao \u003ceric.y.miao@gmail.com\u003e\nAcked-by: Wolfram Sang \u003cw.sang@pengutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "10799db60cbc4f990dd69eb49883477095c66af7",
      "tree": "b87ac6acaa48f4f59f5d6a0b11490105876952e1",
      "parents": [
        "aaab184276a6e20834f63735d433f94ef52a0497",
        "c5c177b4aca83338781e72be2e6dd1601c560cb3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 27 11:16:27 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 27 11:16:27 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:\n  net: Kill ratelimit.h dependency in linux/net.h\n  net: Add linux/sysctl.h includes where needed.\n  net: Kill ether_table[] declaration.\n  inetpeer: fix race in unused_list manipulations\n  atm: expose ATM device index in sysfs\n  IPVS: bug in ip_vs_ftp, same list heaad used in all netns.\n  bug.h: Move ratelimit warn interfaces to ratelimit.h\n  bonding: cleanup module option descriptions\n  net:8021q:vlan.c Fix pr_info to just give the vlan fullname and version.\n  net: davinci_emac: fix dev_err use at probe\n  can: convert to %pK for kptr_restrict support\n  net: fix ETHTOOL_SFEATURES compatibility with old ethtool_ops.set_flags\n  netfilter: Fix several warnings in compat_mtw_from_user().\n  netfilter: ipset: fix ip_set_flush return code\n  netfilter: ipset: remove unused variable from type_pf_tdel()\n  netfilter: ipset: Use proper timeout value to jiffies conversion\n"
    },
    {
      "commit": "3474cb3cc0140f9cf6ca56983f8180b4b4c5c36a",
      "tree": "73abf5a283fb330ef15c7cb8e9d0cc264f03ab5f",
      "parents": [
        "82ab0f75ee2f5defe300eadc91635aa455e01afd"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue May 10 16:23:07 2011 -0700"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Thu May 26 21:02:43 2011 -0600"
      },
      "message": "gpio: Convert gpio_is_valid to return bool\n\nMake the code a bit more readable.\n\nInstead of casting an int to an unsigned then comparing to\nMAX_NR_GPIOS, add a \u003e\u003d 0 test and let the compiler optimizer\ndo the conversion to unsigned.\n\nThe generated code should be the same.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nAcked-by: Linus Walleij \u003clinus.walleij@linaro.org\u003e\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "19de85ef574c3a2182e3ccad9581805052f14946",
      "tree": "98212bc122ac55807e562fd1ae6d0c5f0f2564d0",
      "parents": [
        "a2812e178321132811a53f7be40fe7e9bbffd9e0"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Thu May 26 16:26:09 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 17:12:38 2011 -0700"
      },
      "message": "bitops: add #ifndef for each of find bitops\n\nThe style that we normally use in asm-generic is to test the macro itself\nfor existence, so in asm-generic, do:\n\n\t#ifndef find_next_zero_bit_le\n\textern unsigned long find_next_zero_bit_le(const void *addr,\n\t\tunsigned long size, unsigned long offset);\n\t#endif\n\nand in the architectures, write\n\n\tstatic inline unsigned long find_next_zero_bit_le(const void *addr,\n\t\tunsigned long size, unsigned long offset)\n\t#define find_next_zero_bit_le find_next_zero_bit_le\n\nThis adds the #ifndef for each of the find bitops in the generic header\nand source files.\n\nSuggested-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nAcked-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Greg Ungerer \u003cgerg@uclinux.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "edeafa74e69f275649624484cdd8b551c8839163",
      "tree": "01a656c36d0f8d037acac7898737ce5b3043b607",
      "parents": [
        "456f998ec817ebfa254464be4f089542fa390645"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Thu May 26 16:25:39 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 17:12:36 2011 -0700"
      },
      "message": "asm-generic/ptrace.h: start a common low level ptrace helper\n\nThis is a series of low level ptrace unification steps to make it easier\nfor common code (like KGDB) to poke at register state.  This also avoids\nhaving to duplicate higher level operations for most ports which don\u0027t\nhave special needs for accessing things.\n\nThis patch:\n\nThis implements a bunch of helper funcs for poking the registers of a\nptrace structure.  Now common code should be able to portably update\nspecific registers (like kgdb updating the PC).\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Sergei Shtylyov \u003csshtylyov@mvista.com\u003e\nCc: Dongdong Deng \u003cdongdong.deng@windriver.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "86e4ca66e81bba0f8640f1fa19b8b8f72cbd0561",
      "tree": "c0192a77bea66f9e58b62a17f9ddd8ce0fb64233",
      "parents": [
        "90e62474fd08e16ba5309886c801243b0eb782f3"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 26 15:00:31 2011 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 26 15:00:31 2011 -0400"
      },
      "message": "bug.h: Move ratelimit warn interfaces to ratelimit.h\n\nAs reported by Ingo Molnar, we still have configuration combinations\nwhere use of the WARN_RATELIMIT interfaces break the build because\ndependencies don\u0027t get met.\n\nInstead of going down the long road of trying to make it so that\nratelimit.h can get included by kernel.h or asm-generic/bug.h,\njust move the interface into ratelimit.h and make users have\nto include that.\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\n"
    },
    {
      "commit": "3f5785ec31adcb7cafa9135087297a38d9698cf8",
      "tree": "b7d06f14e1aea0292a88c4bc0305ea602f6ebd33",
      "parents": [
        "8c1c77ff9be27137fa7cbbf51efedef1a2ae915b",
        "94265cf5f731c7df29fdfde262ca3e6d51e6828c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 17:00:17 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 17:00:17 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (89 commits)\n  bonding: documentation and code cleanup for resend_igmp\n  bonding: prevent deadlock on slave store with alb mode (v3)\n  net: hold rtnl again in dump callbacks\n  Add Fujitsu 1000base-SX PCI ID to tg3\n  bnx2x: protect sequence increment with mutex\n  sch_sfq: fix peek() implementation\n  isdn: netjet - blacklist Digium TDM400P\n  via-velocity: don\u0027t annotate MAC registers as packed\n  xen: netfront: hold RTNL when updating features.\n  sctp: fix memory leak of the ASCONF queue when free asoc\n  net: make dev_disable_lro use physical device if passed a vlan dev (v2)\n  net: move is_vlan_dev into public header file (v2)\n  bug.h: Fix build with CONFIG_PRINTK disabled.\n  wireless: fix fatal kernel-doc error + warning in mac80211.h\n  wireless: fix cfg80211.h new kernel-doc warnings\n  iwlagn: dbg_fixed_rate only used when CONFIG_MAC80211_DEBUGFS enabled\n  dst: catch uninitialized metrics\n  be2net: hash key for rss-config cmd not set\n  bridge: initialize fake_rtable metrics\n  net: fix __dst_destroy_metrics_generic()\n  ...\n\nFix up trivial conflicts in drivers/staging/brcm80211/brcmfmac/wl_cfg80211.c\n"
    },
    {
      "commit": "0798b1dbfbd9ff2a370c5968c5f0621ef0075fe0",
      "tree": "c7f61ab9683786a070da0933b9981fc74a4d865f",
      "parents": [
        "ad363e0916423b2e6cdfcdc30ae707ec709f0a65",
        "6738d3210aabe3016a1b03cd98a7fc479c229197"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 15:35:32 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 15:35:32 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile: (26 commits)\n  arch/tile: prefer \"tilepro\" as the name of the 32-bit architecture\n  compat: include aio_abi.h for aio_context_t\n  arch/tile: cleanups for tilegx compat mode\n  arch/tile: allocate PCI IRQs later in boot\n  arch/tile: support signal \"exception-trace\" hook\n  arch/tile: use better definitions of xchg() and cmpxchg()\n  include/linux/compat.h: coding-style fixes\n  tile: add an RTC driver for the Tilera hypervisor\n  arch/tile: finish enabling support for TILE-Gx 64-bit chip\n  compat: fixes to allow working with tile arch\n  arch/tile: update defconfig file to something more useful\n  tile: do_hardwall_trap: do not play with task-\u003esighand\n  tile: replace mm-\u003ecpu_vm_mask with mm_cpumask()\n  tile,mn10300: add device parameter to dma_cache_sync()\n  audit: support the \"standard\" \u003casm-generic/unistd.h\u003e\n  arch/tile: clarify flush_buffer()/finv_buffer() function names\n  arch/tile: kernel-related cleanups from removing static page size\n  arch/tile: various header improvements for building drivers\n  arch/tile: disable GX prefetcher during cache flush\n  arch/tile: tolerate disabling CONFIG_BLK_DEV_INITRD\n  ...\n"
    },
    {
      "commit": "0ac1ee0bfec2a4ad118f907ce586d0dfd8db7641",
      "tree": "630d3fead5040b26bfdb1328a18fc0ad3b09f88b",
      "parents": [
        "db271cf03f5fe39feab8e1b1818c0880c7290c5c"
      ],
      "author": {
        "name": "Tim Gardner",
        "email": "tim.gardner@canonical.com",
        "time": "Tue May 24 17:13:05 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:43 2011 -0700"
      },
      "message": "ulimit: raise default hard ulimit on number of files to 4096\n\nApps are increasingly using more than 1024 file descriptors.  See\ndiscussion in several distro bug trackers, e.g.  BugLink:\nhttp://bugs.launchpad.net/bugs/663090\nhttps://issues.rpath.com/browse/RPL-2054\n\nYou don\u0027t want to raise the default soft limit, since that might break\napps that use select(), but it\u0027s safe to raise the default hard limit;\nthat way, apps that know they need lots of file descriptors can raise\ntheir soft limit without needing root, and without user intervention.\n\nUbuntu is doing this with a kernel change because they have a policy of\nnot changing kernel defaults in userland.\n\nWhile 4096 might not be enough for *all* apps, it seems to be plenty for\nthe apps I\u0027ve seen lately that are unhappy with 1024.\n\nSigned-off-by: Tim Gardner \u003ctim.gardner@canonical.com\u003e\nCc: Dan Kegel \u003cdank@kegel.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f68aa5b445fd00b67588ade611a4efb1a34dadb4",
      "tree": "fcc4c8f74e96922d439d37ba045867f8e4952d8a",
      "parents": [
        "cfa54a0fcfc1017c6f122b6f21aaba36daa07f71"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Tue May 24 17:12:53 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:37 2011 -0700"
      },
      "message": "asm-generic/cacheflush.h: flush icache when copying to user pages\n\nThe copy_to_user_page() function is supposed to flush the icache on the\nmemory that was written, but the current asm-generic version lacks that\nlogic.  While normally it isn\u0027t a big deal as the asm-generic version of\nicache flushing is a stub, it is a deal for ports that want to use the\nasm-generic version as a baseline and then overlay its own specific parts\n(like icache flushing).\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9547d01bfb9c351dc19067f8a4cea9d3955f4125",
      "tree": "3c32521dbbf380471e1eef3e11ae656b24164255",
      "parents": [
        "88c22088bf235f50b09a10bd9f022b0472bcb6b5"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 24 17:12:14 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:20 2011 -0700"
      },
      "message": "mm: uninline large generic tlb.h functions\n\nSome of these functions have grown beyond inline sanity, move them\nout-of-line.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nRequested-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nRequested-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "e303297e6c3a7b847c4731eb14006ca6b435ecca"
}
