)]}'
{
  "log": [
    {
      "commit": "0bce9c46bf3b15f485d82d7e81dabed6ebcc24b1",
      "tree": "2378c052d6a19efaad21eabd58ccf8b8df489bde",
      "parents": [
        "3bf671af14d591ede9251acb0085e8017f3705e7"
      ],
      "author": {
        "name": "Will Deacon",
        "email": "will.deacon@arm.com",
        "time": "Fri Aug 10 15:22:09 2012 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Aug 13 18:46:54 2012 +0200"
      },
      "message": "mutex: Place lock in contended state after fastpath_lock failure\n\nARM recently moved to asm-generic/mutex-xchg.h for its mutex\nimplementation after the previous implementation was found to be missing\nsome crucial memory barriers. However, this has revealed some problems\nrunning hackbench on SMP platforms due to the way in which the\nMUTEX_SPIN_ON_OWNER code operates.\n\nThe symptoms are that a bunch of hackbench tasks are left waiting on an\nunlocked mutex and therefore never get woken up to claim it. This boils\ndown to the following sequence of events:\n\n        Task A        Task B        Task C        Lock value\n0                                                     1\n1       lock()                                        0\n2                     lock()                          0\n3                     spin(A)                         0\n4       unlock()                                      1\n5                                   lock()            0\n6                     cmpxchg(1,0)                    0\n7                     contended()                    -1\n8       lock()                                        0\n9       spin(C)                                       0\n10                                  unlock()          1\n11      cmpxchg(1,0)                                  0\n12      unlock()                                      1\n\nAt this point, the lock is unlocked, but Task B is in an uninterruptible\nsleep with nobody to wake it up.\n\nThis patch fixes the problem by ensuring we put the lock into the\ncontended state if we fail to acquire it on the fastpath, ensuring that\nany blocked waiters are woken up when the mutex is released.\n\nSigned-off-by: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Chris Mason \u003cchris.mason@fusionio.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nReviewed-by: Nicolas Pitre \u003cnico@linaro.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/n/tip-6e9lrw2avczr0617fzl5vqb8@git.kernel.org\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "27c1ee3f929555b71fa39ec0d81a7e7185de1b16",
      "tree": "42e40bdfe4efac660d650658019391536ce67a42",
      "parents": [
        "37cd9600a9e20359b0283983c9e3a55d84347168",
        "086ff4b3a7fb9cdf41e6a5d0ccd99b86d84633a1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:34 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:34 2012 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge Andrew\u0027s first set of patches:\n \"Non-MM patches:\n\n   - lots of misc bits\n\n   - tree-wide have_clk() cleanups\n\n   - quite a lot of printk tweaks.  I draw your attention to \"printk:\n     convert the format for KERN_\u003cLEVEL\u003e to a 2 byte pattern\" which\n     looks a bit scary.  But afaict it\u0027s solid.\n\n   - backlight updates\n\n   - lib/ feature work (notably the addition and use of memweight())\n\n   - checkpatch updates\n\n   - rtc updates\n\n   - nilfs updates\n\n   - fatfs updates (partial, still waiting for acks)\n\n   - kdump, proc, fork, IPC, sysctl, taskstats, pps, etc\n\n   - new fault-injection feature work\"\n\n* Merge emailed patches from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (128 commits)\n  drivers/misc/lkdtm.c: fix missing allocation failure check\n  lib/scatterlist: do not re-write gfp_flags in __sg_alloc_table()\n  fault-injection: add tool to run command with failslab or fail_page_alloc\n  fault-injection: add selftests for cpu and memory hotplug\n  powerpc: pSeries reconfig notifier error injection module\n  memory: memory notifier error injection module\n  PM: PM notifier error injection module\n  cpu: rewrite cpu-notifier-error-inject module\n  fault-injection: notifier error injection\n  c/r: fcntl: add F_GETOWNER_UIDS option\n  resource: make sure requested range is included in the root range\n  include/linux/aio.h: cpp-\u003eC conversions\n  fs: cachefiles: add support for large files in filesystem caching\n  pps: return PTR_ERR on error in device_create\n  taskstats: check nla_reserve() return\n  sysctl: suppress kmemleak messages\n  ipc: use Kconfig options for __ARCH_WANT_[COMPAT_]IPC_PARSE_VERSION\n  ipc: compat: use signed size_t types for msgsnd and msgrcv\n  ipc: allow compat IPC version field parsing if !ARCH_WANT_OLD_COMPAT_IPC\n  ipc: add COMPAT_SHMLBA support\n  ...\n"
    },
    {
      "commit": "1d151c337d79fa3de88654d2514f58fbd916a8e0",
      "tree": "79f96ea4b081f310aa62246e879224467b092261",
      "parents": [
        "65fed8f6f23070b56d0ed3841173ddd410130a89"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@openvz.org",
        "time": "Mon Jul 30 14:43:00 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:21 2012 -0700"
      },
      "message": "c/r: fcntl: add F_GETOWNER_UIDS option\n\nWhen we restore file descriptors we would like them to look exactly as\nthey were at dumping time.\n\nWith help of fcntl it\u0027s almost possible, the missing snippet is file\nowners UIDs.\n\nTo be able to read their values the F_GETOWNER_UIDS is introduced.\n\nThis option is valid iif CONFIG_CHECKPOINT_RESTORE is turned on, otherwise\nreturning -EINVAL.\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: \"Serge E. Hallyn\" \u003cserge@hallyn.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6f51f51582e793ea13e7de7ed6b138f71c51784b",
      "tree": "211ecbf88cdf2f183e23da3f8f23153ac6133410",
      "parents": [
        "76159c20c0bcf5b38178fbfb61049eeb6380bb54",
        "97ef952a20853fad72087a53fa556fbec45edd8f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 10:11:31 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 10:11:31 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus-for-3.6-rc1\u0027 of git://git.linaro.org/people/mszyprowski/linux-dma-mapping\n\nPull DMA-mapping updates from Marek Szyprowski:\n \"Those patches are continuation of my earlier work.\n\n  They contains extensions to DMA-mapping framework to remove limitation\n  of the current ARM implementation (like limited total size of DMA\n  coherent/write combine buffers), improve performance of buffer sharing\n  between devices (attributes to skip cpu cache operations or creation\n  of additional kernel mapping for some specific use cases) as well as\n  some unification of the common code for dma_mmap_attrs() and\n  dma_mmap_coherent() functions.  All extensions have been implemented\n  and tested for ARM architecture.\"\n\n* \u0027for-linus-for-3.6-rc1\u0027 of git://git.linaro.org/people/mszyprowski/linux-dma-mapping:\n  ARM: dma-mapping: add support for DMA_ATTR_SKIP_CPU_SYNC attribute\n  common: DMA-mapping: add DMA_ATTR_SKIP_CPU_SYNC attribute\n  ARM: dma-mapping: add support for dma_get_sgtable()\n  common: dma-mapping: introduce dma_get_sgtable() function\n  ARM: dma-mapping: add support for DMA_ATTR_NO_KERNEL_MAPPING attribute\n  common: DMA-mapping: add DMA_ATTR_NO_KERNEL_MAPPING attribute\n  common: dma-mapping: add support for generic dma_mmap_* calls\n  ARM: dma-mapping: fix error path for memory allocation failure\n  ARM: dma-mapping: add more sanity checks in arm_dma_mmap()\n  ARM: dma-mapping: remove custom consistent dma region\n  mm: vmalloc: use const void * for caller argument\n  scatterlist: add sg_alloc_table_from_pages function\n"
    },
    {
      "commit": "d2b7428eb0caa7c66e34b6ac869a43915b294123",
      "tree": "ad30d28a2078d1d9429c8f19815378c5da2c54f5",
      "parents": [
        "955c757e090f41188764a0e488ba7036f7dbb215"
      ],
      "author": {
        "name": "Marek Szyprowski",
        "email": "m.szyprowski@samsung.com",
        "time": "Wed Jun 13 10:05:52 2012 +0200"
      },
      "committer": {
        "name": "Marek Szyprowski",
        "email": "m.szyprowski@samsung.com",
        "time": "Mon Jul 30 12:25:46 2012 +0200"
      },
      "message": "common: dma-mapping: introduce dma_get_sgtable() function\n\nThis patch adds dma_get_sgtable() function which is required to let\ndrivers to share the buffers allocated by DMA-mapping subsystem. Right\nnow the driver gets a dma address of the allocated buffer and the kernel\nvirtual mapping for it. If it wants to share it with other device (\u003d map\ninto its dma address space) it usually hacks around kernel virtual\naddresses to get pointers to pages or assumes that both devices share\nthe DMA address space. Both solutions are just hacks for the special\ncases, which should be avoided in the final version of buffer sharing.\n\nTo solve this issue in a generic way, a new call to DMA mapping has been\nintroduced - dma_get_sgtable(). It allocates a scatter-list which\ndescribes the allocated buffer and lets the driver(s) to use it with\nother device(s) by calling dma_map_sg() on it.\n\nThis patch provides a generic implementation based on virt_to_page()\ncall. Architectures which require more sophisticated translation might\nprovide their own get_sgtable() methods.\n\nSigned-off-by: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nReviewed-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nReviewed-by: Daniel Vetter \u003cdaniel.vetter@ffwll.ch\u003e\n"
    },
    {
      "commit": "64ccc9c033c6089b2d426dad3c56477ab066c999",
      "tree": "ffaec86ca326dfc83b78ce4005bf46c3ad98ceb9",
      "parents": [
        "9fa8af91f0679f2abbebe1382b937264f3a8b981"
      ],
      "author": {
        "name": "Marek Szyprowski",
        "email": "m.szyprowski@samsung.com",
        "time": "Thu Jun 14 13:03:04 2012 +0200"
      },
      "committer": {
        "name": "Marek Szyprowski",
        "email": "m.szyprowski@samsung.com",
        "time": "Mon Jul 30 12:25:46 2012 +0200"
      },
      "message": "common: dma-mapping: add support for generic dma_mmap_* calls\n\nCommit 9adc5374 (\u0027common: dma-mapping: introduce mmap method\u0027) added a\ngeneric method for implementing mmap user call to dma_map_ops structure.\n\nThis patch converts ARM and PowerPC architectures (the only providers of\ndma_mmap_coherent/dma_mmap_writecombine calls) to use this generic\ndma_map_ops based call and adds a generic cross architecture\ndefinition for dma_mmap_attrs, dma_mmap_coherent, dma_mmap_writecombine\nfunctions.\n\nThe generic mmap virt_to_page-based fallback implementation is provided for\narchitectures which don\u0027t provide their own implementation for mmap method.\n\nSigned-off-by: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nReviewed-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\n"
    },
    {
      "commit": "cea8f46c36c3f82860b038aa23a46e16757666ba",
      "tree": "e09dc37d2b6880d86dac09afbc0c686139d86df0",
      "parents": [
        "c1e7179a38919f02dd950801529176b72f5e5a8a",
        "91b006def384d8f07f9f324ab211fefe2b085c90"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 27 15:14:26 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 27 15:14:26 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.linaro.org/people/rmk/linux-arm\n\nPull ARM updates from Russell King:\n \"First ARM push of this merge window, post me coming back from holiday.\n  This is what has been in linux-next for the last few weeks.  Not much\n  to say which isn\u0027t described by the commit summaries.\"\n\n* \u0027for-linus\u0027 of git://git.linaro.org/people/rmk/linux-arm: (32 commits)\n  ARM: 7463/1: topology: Update cpu_power according to DT information\n  ARM: 7462/1: topology: factorize the update of sibling masks\n  ARM: 7461/1: topology: Add arch_scale_freq_power function\n  ARM: 7456/1: ptrace: provide separate functions for tracing syscall {entry,exit}\n  ARM: 7455/1: audit: move syscall auditing until after ptrace SIGTRAP handling\n  ARM: 7454/1: entry: don\u0027t bother with syscall tracing on ret_from_fork path\n  ARM: 7453/1: audit: only allow syscall auditing for pure EABI userspace\n  ARM: 7452/1: delay: allow timer-based delay implementation to be selected\n  ARM: 7451/1: arch timer: implement read_current_timer and get_cycles\n  ARM: 7450/1: dcache: select DCACHE_WORD_ACCESS for little-endian ARMv6+ CPUs\n  ARM: 7449/1: use generic strnlen_user and strncpy_from_user functions\n  ARM: 7448/1: perf: remove arm_perf_pmu_ids global enumeration\n  ARM: 7447/1: rwlocks: remove unused branch labels from trylock routines\n  ARM: 7446/1: spinlock: use ticket algorithm for ARMv6+ locking implementation\n  ARM: 7445/1: mm: update CONTEXTIDR register to contain PID of current process\n  ARM: 7444/1: kernel: add arch-timer C3STOP feature\n  ARM: 7460/1: remove asm/locks.h\n  ARM: 7439/1: head.S: simplify initial page table mapping\n  ARM: 7437/1: zImage: Allow DTB command line concatenation with ATAG_CMDLINE\n  ARM: 7436/1: Do not map the vectors page as write-through on UP systems\n  ...\n"
    },
    {
      "commit": "91b006def384d8f07f9f324ab211fefe2b085c90",
      "tree": "55dbdea7b3f9bd9569d12ddb710921e1dbcfcc63",
      "parents": [
        "28a33cbc24e4256c143dce96c7d93bf423229f92",
        "ad722541147e6e517a2077e3d944105e7bc4fa8e",
        "d0a533b18235d36206b9b422efadb7cee444dfdb",
        "ff081e05bfba3461119cd280201d163b6858eda2",
        "339ca09d7adac80eda8d097ab473c6c23ee86b17",
        "cb70706c822c06d727b04b2786f6788dbed4ad1e"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Fri Jul 27 23:06:32 2012 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Fri Jul 27 23:06:32 2012 +0100"
      },
      "message": "Merge branches \u0027audit\u0027, \u0027delay\u0027, \u0027fixes\u0027, \u0027misc\u0027 and \u0027sta2x11\u0027 into for-linus\n"
    },
    {
      "commit": "84eda28060f7e7d5f91f81f928532af13b9e44b2",
      "tree": "f0b7feeca9b6a21a43f279fb3b566eef1c16584d",
      "parents": [
        "b387e41e523c1aa347cff055455d0dd129357df4",
        "2164d3344693d2d4799fe91836d61f55516cbdf0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 27 11:26:48 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 27 11:26:48 2012 -0700"
      },
      "message": "Merge branch \u0027kmap_atomic\u0027 of git://github.com/congwang/linux\n\nPull final kmap_atomic cleanups from Cong Wang:\n \"This should be the final round of cleanup, as the definitions of enum\n  km_type finally get removed from the whole tree.  The patches have\n  been in linux-next for a long time.\"\n\n* \u0027kmap_atomic\u0027 of git://github.com/congwang/linux:\n  pipe: remove KM_USER0 from comments\n  vmalloc: remove KM_USER0 from comments\n  feature-removal-schedule.txt: remove kmap_atomic(page, km_type)\n  tile: remove km_type definitions\n  um: remove km_type definitions\n  asm-generic: remove km_type definitions\n  avr32: remove km_type definitions\n  frv: remove km_type definitions\n  powerpc: remove km_type definitions\n  arm: remove km_type definitions\n  highmem: remove the deprecated form of kmap_atomic\n  tile: remove usage of enum km_type\n  frv: remove the second parameter of kmap_atomic_primary()\n  jbd2: remove the second argument of kmap_atomic\n"
    },
    {
      "commit": "4cb38750d49010ae72e718d46605ac9ba5a851b4",
      "tree": "8c991a900fd176288f4acbc340512b90d604374d",
      "parents": [
        "0a2fe19ccc4bc552a8083a595a3aa737b8bea727",
        "7efa1c87963d23cc57ba40c07316d3e28cc75a3a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 26 13:17:17 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 26 13:17:17 2012 -0700"
      },
      "message": "Merge branch \u0027x86-mm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x86/mm changes from Peter Anvin:\n \"The big change here is the patchset by Alex Shi to use INVLPG to flush\n  only the affected pages when we only need to flush a small page range.\n\n  It also removes the special INVALIDATE_TLB_VECTOR interrupts (32\n  vectors!) and replace it with an ordinary IPI function call.\"\n\nFix up trivial conflicts in arch/x86/include/asm/apic.h (added code next\nto changed line)\n\n* \u0027x86-mm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86/tlb: Fix build warning and crash when building for !SMP\n  x86/tlb: do flush_tlb_kernel_range by \u0027invlpg\u0027\n  x86/tlb: replace INVALIDATE_TLB_VECTOR by CALL_FUNCTION_VECTOR\n  x86/tlb: enable tlb flush range support for x86\n  mm/mmu_gather: enable tlb flush range in generic mmu_gather\n  x86/tlb: add tlb_flushall_shift knob into debugfs\n  x86/tlb: add tlb_flushall_shift for specific CPU\n  x86/tlb: fall back to flush all when meet a THP large page\n  x86/flush_tlb: try flush_tlb_single one by one in flush_tlb_range\n  x86/tlb_info: get last level TLB entry number of CPU\n  x86: Add read_mostly declaration/definition to variables from smp.h\n  x86: Define early read-mostly per-cpu macros\n"
    },
    {
      "commit": "d801d9e5af1ee18b1d14ee02a5956f171b21a080",
      "tree": "60f3c32ab2bf5ae28ed987862ab7399e37f91090",
      "parents": [
        "96c557df347231b40e2c7f371f0d77914bd29566"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Fri Nov 25 22:58:05 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Tue Jul 24 15:27:30 2012 +0800"
      },
      "message": "asm-generic: remove km_type definitions\n\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "cc2caea5b6152b8ce66dc2bbe83dc72b60612da8",
      "tree": "c39d09978bd8f2f7f29771b80b4064e2aabd5d2d",
      "parents": [
        "6a6dccba2fdc2a69f1f36b8f1c0acc8598e7221b"
      ],
      "author": {
        "name": "Marek Szyprowski",
        "email": "m.szyprowski@samsung.com",
        "time": "Fri Jul 06 12:02:04 2012 +0200"
      },
      "committer": {
        "name": "Marek Szyprowski",
        "email": "m.szyprowski@samsung.com",
        "time": "Fri Jul 06 12:02:04 2012 +0200"
      },
      "message": "mm: cma: fix condition check when setting global cma area\n\ndev_set_cma_area incorrectly assigned cma to global area on first call\ndue to incorrect check. This patch fixes this issue.\n\nSigned-off-by: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\n"
    },
    {
      "commit": "dccd2304cc907c4b4d2920eeb24b055320fe942e",
      "tree": "f5242f8cd7c7ebb396959cdcfc108d15e0f3affe",
      "parents": [
        "f8f5701bdaf9134b1f90e5044a82c66324d2073f"
      ],
      "author": {
        "name": "Alessandro Rubini",
        "email": "rubini@gnudd.com",
        "time": "Sun Jun 24 12:46:05 2012 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Jun 28 17:14:34 2012 +0100"
      },
      "message": "ARM: 7430/1: sizes.h: move from asm-generic to \u003clinux/sizes.h\u003e\n\nsizes.h is used throughout the AMBA code and drivers, so the header\nshould be available to everyone in order to driver AMBA/PrimeCell\nperipherals behind a PCI bridge where the host can be any platform\n(I\u0027m doing it under x86).\n\nAt this step \u003casm-generic/sizes.h\u003e includes \u003clinux/sizes.h\u003e,\nto allow a grace period for both in-tree and out-of-tree drivers.\n\nSigned-off-by: Alessandro Rubini \u003crubini@gnudd.com\u003e\nAcked-by: Giancarlo Asnaghi \u003cgiancarlo.asnaghi@st.com\u003e\nAcked-by: Linus Walleij \u003clinus.walleij@linaro.org\u003e\nCc: Alan Cox \u003calan@linux.intel.com\u003e\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "597e1c3580b7cfd95bb0f3167e2b297bf8a5a3ae",
      "tree": "d67c27b8505af6f7f21fa918599c2e9d37c2e5e1",
      "parents": [
        "3df3212f9722c7e45c723b9ea231a04ba4dbc47c"
      ],
      "author": {
        "name": "Alex Shi",
        "email": "alex.shi@intel.com",
        "time": "Thu Jun 28 09:02:21 2012 +0800"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Wed Jun 27 19:29:11 2012 -0700"
      },
      "message": "mm/mmu_gather: enable tlb flush range in generic mmu_gather\n\nThis patch enabled the tlb flush range support in generic mmu layer.\n\nMost of arch has self tlb flush range support, like ARM/IA64 etc.\nX86 arch has no this support in hardware yet. But another instruction\n\u0027invlpg\u0027 can implement this function in some degree. So, enable this\nfeather in generic layer for x86 now. and maybe useful for other archs\nin further.\n\nGeneric mmu_gather struct is protected by micro\nHAVE_GENERIC_MMU_GATHER. Other archs that has flush range supported\nown self mmu_gather struct. So, now this change is safe for them.\n\nIn future we may unify this struct and related functions on multiple\narchs.\n\nThanks for Peter Zijlstra time and time reminder for multiple\narchitecture code safe!\n\nSigned-off-by: Alex Shi \u003calex.shi@intel.com\u003e\nLink: http://lkml.kernel.org/r/1340845344-27557-7-git-send-email-alex.shi@intel.com\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "c4211f42d3e66875298a5e26a75109878c80f15b",
      "tree": "5f4db23b52be8eb74f95c35621373df790eacdd2",
      "parents": [
        "d8dfe60d6dcad5989c4558b753b98d657e2813c0"
      ],
      "author": {
        "name": "Alex Shi",
        "email": "alex.shi@intel.com",
        "time": "Thu Jun 28 09:02:19 2012 +0800"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Wed Jun 27 19:29:10 2012 -0700"
      },
      "message": "x86/tlb: add tlb_flushall_shift for specific CPU\n\nTesting show different CPU type(micro architectures and NUMA mode) has\ndifferent balance points between the TLB flush all and multiple invlpg.\nAnd there also has cases the tlb flush change has no any help.\n\nThis patch give a interface to let x86 vendor developers have a chance\nto set different shift for different CPU type.\n\nlike some machine in my hands, balance points is 16 entries on\nRomely-EP; while it is at 8 entries on Bloomfield NHM-EP; and is 256 on\nIVB mobile CPU. but on model 15 core2 Xeon using invlpg has nothing\nhelp.\n\nFor untested machine, do a conservative optimization, same as NHM CPU.\n\nSigned-off-by: Alex Shi \u003calex.shi@intel.com\u003e\nLink: http://lkml.kernel.org/r/1340845344-27557-5-git-send-email-alex.shi@intel.com\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "09682c1dd3820445a27d32dcbeee6a6eafff3dc9",
      "tree": "7e4b74d59ea2fbcf2a6210c3834f58aceab194e0",
      "parents": [
        "6b16351acbd415e66ba16bf7d473ece1574cf0bc"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Mon Jun 25 17:15:31 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 25 10:32:49 2012 -0700"
      },
      "message": "bug.h: Fix up CONFIG_BUG\u003dn implicit function declarations.\n\nCommit 2603efa31a03 (\"bug.h: Fix up powerpc build regression\") corrected\nthe powerpc build case and extended the __ASSEMBLY__ guards, but it also\ngot caught in pre-processor hell accidentally matching the else case of\nCONFIG_BUG resulting in the BUG disabled case tripping up on\n-Werror\u003dimplicit-function-declaration.\n\nIt\u0027s not possible to __ASSEMBLY__ guard the entire file as architecture\ncode needs to get at the BUGFLAG_WARNING definition in the GENERIC_BUG\ncase, but the rest of the CONFIG_BUG\u003dy/n case needs to be guarded.\n\nRather than littering endless __ASSEMBLY__ checks in each of the if/else\ncases we just move the BUGFLAG definitions up under their own\nGENERIC_BUG test and then shove everything else under one big\n__ASSEMBLY__ guard.\n\nBuild tested on all of x86 CONFIG_BUG\u003dy, CONFIG_BUG\u003dn, powerpc (due to\nit\u0027s dependence on BUGFLAG definitions in assembly code), and sh (due to\nnot bringing in linux/kernel.h to satisfy the taint flag definitions used\nby the generic bug code).\n\nHopefully that\u0027s the end of the corner cases and I can abstain from ever\nhaving to touch this infernal header ever again.\n\nReported-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nTested-by: Fengguang Wu \u003cwfg@linux.intel.com\u003e\nAcked-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a2a2609c97c1e21996b9d87d10d2c9ff07277524",
      "tree": "c9db50783d6727f95d2a6b4c019c2d66952969d9",
      "parents": [
        "a4d7a122385e27bdd91101635c704327d7c0d87f",
        "48c3b583bbddad2220ca4c22319ca5d1f78b2090"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 20 14:41:57 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 20 14:41:57 2012 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\n* emailed from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (21 patches)\n  mm/memblock: fix overlapping allocation when doubling reserved array\n  c/r: prctl: Move PR_GET_TID_ADDRESS to a proper place\n  pidns: find_new_reaper() can no longer switch to init_pid_ns.child_reaper\n  pidns: guarantee that the pidns init will be the last pidns process reaped\n  fault-inject: avoid call to random32() if fault injection is disabled\n  Viresh has moved\n  get_maintainer: Fix --help warning\n  mm/memory.c: fix kernel-doc warnings\n  mm: fix kernel-doc warnings\n  mm: correctly synchronize rss-counters at exit/exec\n  mm, thp: print useful information when mmap_sem is unlocked in zap_pmd_range\n  h8300: use the declarations provided by \u003casm/sections.h\u003e\n  h8300: fix use of extinct _sbss and _ebss\n  xtensa: use the declarations provided by \u003casm/sections.h\u003e\n  xtensa: use \"test -e\" instead of bashism \"test -a\"\n  xtensa: replace xtensa-specific _f{data,text} by _s{data,text}\n  memcg: fix use_hierarchy css_is_ancestor oops regression\n  mm, oom: fix and cleanup oom score calculations\n  nilfs2: ensure proper cache clearing for gc-inodes\n  thp: avoid atomic64_read in pmd_read_atomic for 32bit PAE\n  ...\n"
    },
    {
      "commit": "e4eed03fd06578571c01d4f1478c874bb432c815",
      "tree": "9cfd16247d8208a1fe55ad81b0d4d85c17b80415",
      "parents": [
        "abca7c4965845924f65d40e0aa1092bdd895e314"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Wed Jun 20 12:52:57 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 20 14:39:35 2012 -0700"
      },
      "message": "thp: avoid atomic64_read in pmd_read_atomic for 32bit PAE\n\nIn the x86 32bit PAE CONFIG_TRANSPARENT_HUGEPAGE\u003dy case while holding the\nmmap_sem for reading, cmpxchg8b cannot be used to read pmd contents under\nXen.\n\nSo instead of dealing only with \"consistent\" pmdvals in\npmd_none_or_trans_huge_or_clear_bad() (which would be conceptually\nsimpler) we let pmd_none_or_trans_huge_or_clear_bad() deal with pmdvals\nwhere the low 32bit and high 32bit could be inconsistent (to avoid having\nto use cmpxchg8b).\n\nThe only guarantee we get from pmd_read_atomic is that if the low part of\nthe pmd was found null, the high part will be null too (so the pmd will be\nconsidered unstable).  And if the low part of the pmd is found \"stable\"\nlater, then it means the whole pmd was read atomically (because after a\npmd is stable, neither MADV_DONTNEED nor page faults can alter it anymore,\nand we read the high part after the low part).\n\nIn the 32bit PAE x86 case, it is enough to read the low part of the pmdval\natomically to declare the pmd as \"stable\" and that\u0027s true for THP and no\nTHP, furthermore in the THP case we also have a barrier() that will\nprevent any inconsistent pmdvals to be cached by a later re-read of the\n*pmd.\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Jonathan Nieder \u003cjrnieder@gmail.com\u003e\nCc: Ulrich Obergfell \u003cuobergfe@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Larry Woodman \u003clwoodman@redhat.com\u003e\nCc: Petr Matousek \u003cpmatouse@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Jan Beulich \u003cjbeulich@suse.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@gmail.com\u003e\nTested-by: Andrew Jones \u003cdrjones@redhat.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2603efa31a0377eeaa06723bded8a1d644dd4901",
      "tree": "717894107d06b5ac5a3dfa19fb602555c366b92e",
      "parents": [
        "a1f42beb8e287482d1a802731d4fb7e2bdc2c703"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Mon Jun 18 13:54:17 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 18 11:10:59 2012 -0700"
      },
      "message": "bug.h: Fix up powerpc build regression.\n\nThe asm-generic/bug.h __ASSEMBLY__ guarding is completely bogus, which\ntripped up the powerpc build when the kernel.h include was added:\n\n\tIn file included from include/asm-generic/bug.h:5:0,\n\t\t\t from arch/powerpc/include/asm/bug.h:127,\n\t\t\t from arch/powerpc/kernel/head_64.S:31:\n\tinclude/linux/kernel.h:44:0: warning: \"ALIGN\" redefined [enabled by default]\n\tinclude/linux/linkage.h:57:0: note: this is the location of the previous definition\n\tinclude/linux/sysinfo.h: Assembler messages:\n\tinclude/linux/sysinfo.h:7: Error: Unrecognized opcode: `struct\u0027\n\tinclude/linux/sysinfo.h:8: Error: Unrecognized opcode: `__kernel_long_t\u0027\n\nMoving the __ASSEMBLY__ guard up and stashing the kernel.h include under\nit fixes this up, as well as covering the case the original fix was\nattempting to handle.\n\nTested-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "380622e9ff56201f9c3c1f153d1ca0a24324a1d4",
      "tree": "8a92b7f84445309383e8551e58e42c968dc736ec",
      "parents": [
        "74ca4313bdd0423a7917bbe74be3f27da8a39fe1",
        "cba8df4be3bdf10c86a26c458c5fc2ca978eeb2c",
        "3977407e83129f53e43d3ac44be8702f59fa3f77",
        "1318002aebadf18217ad3de677b6c96b8140dcff",
        "d14a5fdc26986f7bac8376a339f336be18ba2a90"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Jun 13 12:01:33 2012 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Jun 13 12:01:33 2012 +0900"
      },
      "message": "Merge branches \u0027sh/urgent\u0027, \u0027sh/core\u0027, \u0027sh/clockevents\u0027, \u0027sh/asm-generic\u0027 and \u0027sh/trivial\u0027 into sh-fixes-for-linus\n"
    },
    {
      "commit": "3777808873b0c49c5cf27e44c948dfb02675d578",
      "tree": "62259c039e7c2233d8af72350edb971cbe2ae86f",
      "parents": [
        "3a9485da969c1c23400430470db17c819ef51d7b"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Mon Jun 11 14:29:58 2012 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Mon Jun 11 14:29:58 2012 +0900"
      },
      "message": "bug.h: need linux/kernel.h for TAINT_WARN.\n\nasm-generic/bug.h uses taint flags that are only defined in\nlinux/kernel.h, resulting in build failures on platforms that\ndon\u0027t include linux/kernel.h some other way:\n\n        arch/sh/include/asm/thread_info.h:172:2: error: \u0027TAINT_WARN\u0027 undeclared (first use in this function)\n\nCaused by commit edd63a2763bd (\"set_restore_sigmask() is never called\nwithout SIGPENDING (and never should be)\").\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "1193755ac6328ad240ba987e6ec41d5e8baf0680",
      "tree": "40bf847d7e3ebaa57b107151d14e6cd1d280cc6d",
      "parents": [
        "4edebed86690eb8db9af3ab85baf4a34e73266cc",
        "0ef97dcfce4179a2eba046b855ee2f91d6f1b414"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 01 10:34:35 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 01 10:34:35 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull vfs changes from Al Viro.\n \"A lot of misc stuff.  The obvious groups:\n   * Miklos\u0027 atomic_open series; kills the damn abuse of\n     -\u003ed_revalidate() by NFS, which was the major stumbling block for\n     all work in that area.\n   * ripping security_file_mmap() and dealing with deadlocks in the\n     area; sanitizing the neighborhood of vm_mmap()/vm_munmap() in\n     general.\n   * -\u003eencode_fh() switched to saner API; insane fake dentry in\n     mm/cleancache.c gone.\n   * assorted annotations in fs (endianness, __user)\n   * parts of Artem\u0027s -\u003es_dirty work (jff2 and reiserfs parts)\n   * -\u003eupdate_time() work from Josef.\n   * other bits and pieces all over the place.\n\n  Normally it would\u0027ve been in two or three pull requests, but\n  signal.git stuff had eaten a lot of time during this cycle ;-/\"\n\nFix up trivial conflicts in Documentation/filesystems/vfs.txt (the\n\u0027truncate_range\u0027 inode method was removed by the VM changes, the VFS\nupdate adds an \u0027update_time()\u0027 method), and in fs/btrfs/ulist.[ch] (due\nto sparse fix added twice, with other changes nearby).\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (95 commits)\n  nfs: don\u0027t open in -\u003ed_revalidate\n  vfs: retry last component if opening stale dentry\n  vfs: nameidata_to_filp(): don\u0027t throw away file on error\n  vfs: nameidata_to_filp(): inline __dentry_open()\n  vfs: do_dentry_open(): don\u0027t put filp\n  vfs: split __dentry_open()\n  vfs: do_last() common post lookup\n  vfs: do_last(): add audit_inode before open\n  vfs: do_last(): only return EISDIR for O_CREAT\n  vfs: do_last(): check LOOKUP_DIRECTORY\n  vfs: do_last(): make ENOENT exit RCU safe\n  vfs: make follow_link check RCU safe\n  vfs: do_last(): use inode variable\n  vfs: do_last(): inline walk_component()\n  vfs: do_last(): make exit RCU safe\n  vfs: split do_lookup()\n  Btrfs: move over to use -\u003eupdate_time\n  fs: introduce inode operation -\u003eupdate_time\n  reiserfs: get rid of resierfs_sync_super\n  reiserfs: mark the superblock as dirty a bit later\n  ...\n"
    },
    {
      "commit": "08615d7d85e5aa02c05bf6c4dde87d940e7f85f6",
      "tree": "18906149d313d25914160aca21cedf54b3a7e818",
      "parents": [
        "9fdadb2cbaf4b482dfd6086e8bd3d2db071a1702",
        "0a4dd35c67b144d8ef9432120105f1aab9293ee9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 18:10:18 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 18:10:18 2012 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge misc patches from Andrew Morton:\n\n - the \"misc\" tree - stuff from all over the map\n\n - checkpatch updates\n\n - fatfs\n\n - kmod changes\n\n - procfs\n\n - cpumask\n\n - UML\n\n - kexec\n\n - mqueue\n\n - rapidio\n\n - pidns\n\n - some checkpoint-restore feature work.  Reluctantly.  Most of it\n   delayed a release.  I\u0027m still rather worried that we don\u0027t have a\n   clear roadmap to completion for this work.\n\n* emailed from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (78 patches)\n  kconfig: update compression algorithm info\n  c/r: prctl: add ability to set new mm_struct::exe_file\n  c/r: prctl: extend PR_SET_MM to set up more mm_struct entries\n  c/r: procfs: add arg_start/end, env_start/end and exit_code members to /proc/$pid/stat\n  syscalls, x86: add __NR_kcmp syscall\n  fs, proc: introduce /proc/\u003cpid\u003e/task/\u003ctid\u003e/children entry\n  sysctl: make kernel.ns_last_pid control dependent on CHECKPOINT_RESTORE\n  aio/vfs: cleanup of rw_copy_check_uvector() and compat_rw_copy_check_uvector()\n  eventfd: change int to __u64 in eventfd_signal()\n  fs/nls: add Apple NLS\n  pidns: make killed children autoreap\n  pidns: use task_active_pid_ns in do_notify_parent\n  rapidio/tsi721: add DMA engine support\n  rapidio: add DMA engine support for RIO data transfers\n  ipc/mqueue: add rbtree node caching support\n  tools/selftests: add mq_perf_tests\n  ipc/mqueue: strengthen checks on mqueue creation\n  ipc/mqueue: correct mq_attr_ok test\n  ipc/mqueue: improve performance of send/recv\n  selftests: add mq_open_tests\n  ...\n"
    },
    {
      "commit": "133fd9f5cda2d86904126f4b9fa4e8f4330c9569",
      "tree": "0e60bfcec85f123243cf1ffe735264527efd6d0e",
      "parents": [
        "725fe002d315c2501c110b7245d3eb4f4535f4d6"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Thu May 31 16:26:08 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 17:49:27 2012 -0700"
      },
      "message": "vsprintf: further optimize decimal conversion\n\nPrevious code was using optimizations which were developed to work well\neven on narrow-word CPUs (by today\u0027s standards).  But Linux runs only on\n32-bit and wider CPUs.  We can use that.\n\nFirst: using 32x32-\u003e64 multiply and trivial 32-bit shift, we can correctly\ndivide by 10 much larger numbers, and thus we can print groups of 9 digits\ninstead of groups of 5 digits.\n\nNext: there are two algorithms to print larger numbers.  One is generic:\ndivide by 1000000000 and repeatedly print groups of (up to) 9 digits.\nIt\u0027s conceptually simple, but requires an (unsigned long long) /\n1000000000 division.\n\nSecond algorithm splits 64-bit unsigned long long into 16-bit chunks,\nmanipulates them cleverly and generates groups of 4 decimal digits.  It so\nhappens that it does NOT require long long division.\n\nIf long is \u003e 32 bits, division of 64-bit values is relatively easy, and we\nwill use the first algorithm.  If long long is \u003e 64 bits (strange\narchitecture with VERY large long long), second algorithm can\u0027t be used,\nand we again use the first one.\n\nElse (if long is 32 bits and long long is 64 bits) we use second one.\n\nAnd third: there is a simple optimization which takes fast path not only\nfor zero as was done before, but for all one-digit numbers.\n\nIn all tested cases new code is faster than old one, in many cases by 30%,\nin few cases by more than 50% (for example, on x86-32, conversion of\n12345678).  Code growth is ~0 in 32-bit case and ~130 bytes in 64-bit\ncase.\n\nThis patch is based upon an original from Michal Nazarewicz.\n\n[akpm@linux-foundation.org: checkpatch fixes]\nSigned-off-by: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\nCc: Douglas W Jones \u003cjones@cs.uiowa.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bd0e162d0312aa95e8b85ba883efddebf27be121",
      "tree": "5401fd64650a2c5965e43dccaa636bc814072043",
      "parents": [
        "054552272e6e152ff40f8b7f164dd390a5a62097",
        "56457f38f212344fb38b250cfa7e7311c065022f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 12:09:07 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 31 12:09:07 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/virt/kvm/kvm\n\nPull two small kvm fixes from Avi Kivity:\n \"A build fix for non-kvm archs and a transparent hugepage refcount\n  bugfix on hosts with 4M pages.\"\n\n* git://git.kernel.org/pub/scm/virt/kvm/kvm:\n  KVM: Export asm-generic/kvm_para.h\n  KVM: MMU: fix huge page adapted on non-PAE host\n"
    },
    {
      "commit": "bb8ac181a5cf50458a0d83b4460790badc9fdc16",
      "tree": "d55493f9ca94516a0aa83dd8ee1d87c2a88d637b",
      "parents": [
        "1dfb5751a4de7c6a57a5602e8e2b87267cfc8c81"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat May 19 10:25:23 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed May 30 21:04:50 2012 -0400"
      },
      "message": "bury __kernel_nlink_t, make internal nlink_t consistent\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "26c191788f18129af0eb32a358cdaea0c7479626",
      "tree": "21d30812d2e092a940ba81750f75080ce5eb5ae4",
      "parents": [
        "a7f638f999ff42310e9582273b1fe25ea6e469ba"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Tue May 29 15:06:49 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:24 2012 -0700"
      },
      "message": "mm: pmd_read_atomic: fix 32bit PAE pmd walk vs pmd_populate SMP race condition\n\nWhen holding the mmap_sem for reading, pmd_offset_map_lock should only\nrun on a pmd_t that has been read atomically from the pmdp pointer,\notherwise we may read only half of it leading to this crash.\n\nPID: 11679  TASK: f06e8000  CPU: 3   COMMAND: \"do_race_2_panic\"\n #0 [f06a9dd8] crash_kexec at c049b5ec\n #1 [f06a9e2c] oops_end at c083d1c2\n #2 [f06a9e40] no_context at c0433ded\n #3 [f06a9e64] bad_area_nosemaphore at c043401a\n #4 [f06a9e6c] __do_page_fault at c0434493\n #5 [f06a9eec] do_page_fault at c083eb45\n #6 [f06a9f04] error_code (via page_fault) at c083c5d5\n    EAX: 01fb470c EBX: fff35000 ECX: 00000003 EDX: 00000100 EBP:\n    00000000\n    DS:  007b     ESI: 9e201000 ES:  007b     EDI: 01fb4700 GS:  00e0\n    CS:  0060     EIP: c083bc14 ERR: ffffffff EFLAGS: 00010246\n #7 [f06a9f38] _spin_lock at c083bc14\n #8 [f06a9f44] sys_mincore at c0507b7d\n #9 [f06a9fb0] system_call at c083becd\n                         start           len\n    EAX: ffffffda  EBX: 9e200000  ECX: 00001000  EDX: 6228537f\n    DS:  007b      ESI: 00000000  ES:  007b      EDI: 003d0f00\n    SS:  007b      ESP: 62285354  EBP: 62285388  GS:  0033\n    CS:  0073      EIP: 00291416  ERR: 000000da  EFLAGS: 00000286\n\nThis should be a longstanding bug affecting x86 32bit PAE without THP.\nOnly archs with 64bit large pmd_t and 32bit unsigned long should be\naffected.\n\nWith THP enabled the barrier() in pmd_none_or_trans_huge_or_clear_bad()\nwould partly hide the bug when the pmd transition from none to stable,\nby forcing a re-read of the *pmd in pmd_offset_map_lock, but when THP is\nenabled a new set of problem arises by the fact could then transition\nfreely in any of the none, pmd_trans_huge or pmd_trans_stable states.\nSo making the barrier in pmd_none_or_trans_huge_or_clear_bad()\nunconditional isn\u0027t good idea and it would be a flakey solution.\n\nThis should be fully fixed by introducing a pmd_read_atomic that reads\nthe pmd in order with THP disabled, or by reading the pmd atomically\nwith cmpxchg8b with THP enabled.\n\nLuckily this new race condition only triggers in the places that must\nalready be covered by pmd_none_or_trans_huge_or_clear_bad() so the fix\nis localized there but this bug is not related to THP.\n\nNOTE: this can trigger on x86 32bit systems with PAE enabled with more\nthan 4G of ram, otherwise the high part of the pmd will never risk to be\ntruncated because it would be zero at all times, in turn so hiding the\nSMP race.\n\nThis bug was discovered and fully debugged by Ulrich, quote:\n\n----\n[..]\npmd_none_or_trans_huge_or_clear_bad() loads the content of edx and\neax.\n\n    496 static inline int pmd_none_or_trans_huge_or_clear_bad(pmd_t\n    *pmd)\n    497 {\n    498         /* depend on compiler for an atomic pmd read */\n    499         pmd_t pmdval \u003d *pmd;\n\n                                // edi \u003d pmd pointer\n0xc0507a74 \u003csys_mincore+548\u003e:   mov    0x8(%esp),%edi\n...\n                                // edx \u003d PTE page table high address\n0xc0507a84 \u003csys_mincore+564\u003e:   mov    0x4(%edi),%edx\n...\n                                // eax \u003d PTE page table low address\n0xc0507a8e \u003csys_mincore+574\u003e:   mov    (%edi),%eax\n\n[..]\n\nPlease note that the PMD is not read atomically. These are two \"mov\"\ninstructions where the high order bits of the PMD entry are fetched\nfirst. Hence, the above machine code is prone to the following race.\n\n-  The PMD entry {high|low} is 0x0000000000000000.\n   The \"mov\" at 0xc0507a84 loads 0x00000000 into edx.\n\n-  A page fault (on another CPU) sneaks in between the two \"mov\"\n   instructions and instantiates the PMD.\n\n-  The PMD entry {high|low} is now 0x00000003fda38067.\n   The \"mov\" at 0xc0507a8e loads 0xfda38067 into eax.\n----\n\nReported-by: Ulrich Obergfell \u003cuobergfe@redhat.com\u003e\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Larry Woodman \u003clwoodman@redhat.com\u003e\nCc: Petr Matousek \u003cpmatouse@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "56457f38f212344fb38b250cfa7e7311c065022f",
      "tree": "a507984aba15733966a9db135870b4e39169bafc",
      "parents": [
        "c35866678391861942b3836c219a8898a259255a"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon May 28 17:35:22 2012 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue May 29 12:31:01 2012 +0300"
      },
      "message": "KVM: Export asm-generic/kvm_para.h\n\nPrevents build failures on non-KVM archs.\n\nTested-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "1e2aec873ad6d16538512dbb96853caa1fa076af",
      "tree": "d792b19ac47be44debd24610ae27f1330fa490e4",
      "parents": [
        "ae32adc1e06d096399f195eeda12d443d53539c4",
        "2c66f623631709aa5f2e4c14c7e089682e7394a3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 26 16:57:16 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 26 16:57:16 2012 -0700"
      },
      "message": "Merge branch \u0027generic-string-functions\u0027\n\nThis makes \u003casm/word-at-a-time.h\u003e actually live up to its promise of\nallowing architectures to help tune the string functions that do their\nwork a word at a time.\n\nDavid had already taken the x86 strncpy_from_user() function, modified\nit to work on sparc, and then done the extra work to make it generically\nuseful.  This then expands on that work by making x86 use that generic\nversion, completing the circle.\n\nBut more importantly, it fixes up the word-at-a-time interfaces so that\nit\u0027s now easy to also support things like strnlen_user(), and pretty\nmuch most random string functions.\n\nDavid reports that it all works fine on sparc, and Jonas Bonn reported\nthat an earlier version of this worked on OpenRISC too.  It\u0027s pretty\neasy for architectures to add support for this and just replace their\nprivate versions with the generic code.\n\n* generic-string-functions:\n  sparc: use the new generic strnlen_user() function\n  x86: use the new generic strnlen_user() function\n  lib: add generic strnlen_user() function\n  word-at-a-time: make the interfaces truly generic\n  x86: use generic strncpy_from_user routine\n"
    },
    {
      "commit": "36126f8f2ed8168eb13aa0662b9b9585cba100a9",
      "tree": "543f6b6ab60dd3e47af931142aa84f0ba7749d43",
      "parents": [
        "4ae73f2d53255c388d50bf83c1681112a6f9cba1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 26 10:43:17 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 26 11:33:40 2012 -0700"
      },
      "message": "word-at-a-time: make the interfaces truly generic\n\nThis changes the interfaces in \u003casm/word-at-a-time.h\u003e to be a bit more\ncomplicated, but a lot more generic.\n\nIn particular, it allows us to really do the operations efficiently on\nboth little-endian and big-endian machines, pretty much regardless of\nmachine details.  For example, if you can rely on a fast population\ncount instruction on your architecture, this will allow you to make your\noptimized \u003casm/word-at-a-time.h\u003e file with that.\n\nNOTE! The \"generic\" version in include/asm-generic/word-at-a-time.h is\nnot truly generic, it actually only works on big-endian.  Why? Because\non little-endian the generic algorithms are wasteful, since you can\ninevitably do better. The x86 implementation is an example of that.\n\n(The only truly non-generic part of the asm-generic implementation is\nthe \"find_zero()\" function, and you could make a little-endian version\nof it.  And if the Kbuild infrastructure allowed us to pick a particular\nheader file, that would be lovely)\n\nThe \u003casm/word-at-a-time.h\u003e functions are as follows:\n\n - WORD_AT_A_TIME_CONSTANTS: specific constants that the algorithm\n   uses.\n\n - has_zero(): take a word, and determine if it has a zero byte in it.\n   It gets the word, the pointer to the constant pool, and a pointer to\n   an intermediate \"data\" field it can set.\n\n   This is the \"quick-and-dirty\" zero tester: it\u0027s what is run inside\n   the hot loops.\n\n - \"prep_zero_mask()\": take the word, the data that has_zero() produced,\n   and the constant pool, and generate an *exact* mask of which byte had\n   the first zero.  This is run directly *outside* the loop, and allows\n   the \"has_zero()\" function to answer the \"is there a zero byte\"\n   question without necessarily getting exactly *which* byte is the\n   first one to contain a zero.\n\n   If you do multiple byte lookups concurrently (eg \"hash_name()\", which\n   looks for both NUL and \u0027/\u0027 bytes), after you\u0027ve done the prep_zero_mask()\n   phase, the result of those can be or\u0027ed together to get the \"either\n   or\" case.\n\n - The result from \"prep_zero_mask()\" can then be fed into \"find_zero()\"\n   (to find the byte offset of the first byte that was zero) or into\n   \"zero_bytemask()\" (to find the bytemask of the bytes preceding the\n   zero byte).\n\n   The existence of zero_bytemask() is optional, and is not necessary\n   for the normal string routines.  But dentry name hashing needs it, so\n   if you enable DENTRY_WORD_AT_A_TIME you need to expose it.\n\nThis changes the generic strncpy_from_user() function and the dentry\nhashing functions to use these modified word-at-a-time interfaces.  This\ngets us back to the optimized state of the x86 strncpy that we lost in\nthe previous commit when moving over to the generic version.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fa2af6e4fe0c4d2f8875d42625b25675e8584010",
      "tree": "ef9a92949858ab763aa1bfda7cb11a5f7b84d123",
      "parents": [
        "109b9b0408e5f1dd327a44f446841a9fbe0bcd83",
        "1fcb78e9da714d96f65edd37b29dae3b1f7df508"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 25 15:59:38 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 25 15:59:38 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile\n\nPull tile updates from Chris Metcalf:\n \"These changes cover a range of new arch/tile features and\n  optimizations.  They\u0027ve been through LKML review and on linux-next for\n  a month or so.  There\u0027s also one bug-fix that just missed 3.4, which\n  I\u0027ve marked for stable.\"\n\nFixed up trivial conflict in arch/tile/Kconfig (new added tile Kconfig\nentries clashing with the generic timer/clockevents changes).\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:\n  tile: default to tilegx_defconfig for ARCH\u003dtile\n  tile: fix bug where fls(0) was not returning 0\n  arch/tile: mark TILEGX as not EXPERIMENTAL\n  tile/mm/fault.c: Port OOM changes to handle_page_fault\n  arch/tile: add descriptive text if the kernel reports a bad trap\n  arch/tile: allow querying cpu module information from the hypervisor\n  arch/tile: fix hardwall for tilegx and generalize for idn and ipi\n  arch/tile: support multiple huge page sizes dynamically\n  mm: add new arch_make_huge_pte() method for tile support\n  arch/tile: support kexec() for tilegx\n  arch/tile: support \u003casm/cachectl.h\u003e header for cacheflush() syscall\n  arch/tile: Allow tilegx to build with either 16K or 64K page size\n  arch/tile: optimize get_user/put_user and friends\n  arch/tile: support building big-endian kernel\n  arch/tile: allow building Linux with transparent huge pages enabled\n  arch/tile: use interrupt critical sections less\n"
    },
    {
      "commit": "73636b1aacb1a07e6fbe0d25e560e69b024a8e25",
      "tree": "9531c202c6b3f67fba1cd7ac2b83fa32c31fe197",
      "parents": [
        "51007004f44c9588d70ffb77e1f52479bd5b0e37"
      ],
      "author": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@tilera.com",
        "time": "Wed Mar 28 13:59:18 2012 -0400"
      },
      "committer": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@tilera.com",
        "time": "Fri May 25 12:48:21 2012 -0400"
      },
      "message": "arch/tile: allow building Linux with transparent huge pages enabled\n\nThe change adds some infrastructure for managing tile pmd\u0027s more generally,\nusing pte_pmd() and pmd_pte() methods to translate pmd values to and\nfrom ptes, since on TILEPro a pmd is really just a nested structure\nholding a pgd (aka pte).  Several existing pmd methods are moved into\nthis framework, and a whole raft of additional pmd accessors are defined\nthat are used by the transparent hugepage framework.\n\nThe tile PTE now has a \"client2\" bit.  The bit is used to indicate a\ntransparent huge page is in the process of being split into subpages.\n\nThis change also fixes a generic bug where the return value of the\ngeneric pmdp_splitting_flush() was incorrect.\n\nSigned-off-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\n"
    },
    {
      "commit": "d484864dd96e1830e7689510597707c1df8cd681",
      "tree": "51551708ba3f26d05575fa91daaf0c0d970a77c3",
      "parents": [
        "be87cfb47c5c740f7b17929bcd7c480b228513e0",
        "0f51596bd39a5c928307ffcffc9ba07f90f42a8b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 25 09:18:59 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 25 09:18:59 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.linaro.org/people/mszyprowski/linux-dma-mapping\n\nPull CMA and ARM DMA-mapping updates from Marek Szyprowski:\n \"These patches contain two major updates for DMA mapping subsystem\n  (mainly for ARM architecture).  First one is Contiguous Memory\n  Allocator (CMA) which makes it possible for device drivers to allocate\n  big contiguous chunks of memory after the system has booted.\n\n  The main difference from the similar frameworks is the fact that CMA\n  allows to transparently reuse the memory region reserved for the big\n  chunk allocation as a system memory, so no memory is wasted when no\n  big chunk is allocated.  Once the alloc request is issued, the\n  framework migrates system pages to create space for the required big\n  chunk of physically contiguous memory.\n\n  For more information one can refer to nice LWN articles:\n\n   - \u0027A reworked contiguous memory allocator\u0027:\n\t\thttp://lwn.net/Articles/447405/\n\n   - \u0027CMA and ARM\u0027:\n\t\thttp://lwn.net/Articles/450286/\n\n   - \u0027A deep dive into CMA\u0027:\n\t\thttp://lwn.net/Articles/486301/\n\n   - and the following thread with the patches and links to all previous\n     versions:\n\t\thttps://lkml.org/lkml/2012/4/3/204\n\n  The main client for this new framework is ARM DMA-mapping subsystem.\n\n  The second part provides a complete redesign in ARM DMA-mapping\n  subsystem.  The core implementation has been changed to use common\n  struct dma_map_ops based infrastructure with the recent updates for\n  new dma attributes merged in v3.4-rc2.  This allows to use more than\n  one implementation of dma-mapping calls and change/select them on the\n  struct device basis.  The first client of this new infractructure is\n  dmabounce implementation which has been completely cut out of the\n  core, common code.\n\n  The last patch of this redesign update introduces a new, experimental\n  implementation of dma-mapping calls on top of generic IOMMU framework.\n  This lets ARM sub-platform to transparently use IOMMU for DMA-mapping\n  calls if one provides required IOMMU hardware.\n\n  For more information please refer to the following thread:\n\t\thttp://www.spinics.net/lists/arm-kernel/msg175729.html\n\n  The last patch merges changes from both updates and provides a\n  resolution for the conflicts which cannot be avoided when patches have\n  been applied on the same files (mainly arch/arm/mm/dma-mapping.c).\"\n\nAcked by Andrew Morton \u003cakpm@linux-foundation.org\u003e:\n \"Yup, this one please.  It\u0027s had much work, plenty of review and I\n  think even Russell is happy with it.\"\n\n* \u0027for-linus\u0027 of git://git.linaro.org/people/mszyprowski/linux-dma-mapping: (28 commits)\n  ARM: dma-mapping: use PMD size for section unmap\n  cma: fix migration mode\n  ARM: integrate CMA with DMA-mapping subsystem\n  X86: integrate CMA with DMA-mapping subsystem\n  drivers: add Contiguous Memory Allocator\n  mm: trigger page reclaim in alloc_contig_range() to stabilise watermarks\n  mm: extract reclaim code from __alloc_pages_direct_reclaim()\n  mm: Serialize access to min_free_kbytes\n  mm: page_isolation: MIGRATE_CMA isolation functions added\n  mm: mmzone: MIGRATE_CMA migration type added\n  mm: page_alloc: change fallbacks array handling\n  mm: page_alloc: introduce alloc_contig_range()\n  mm: compaction: export some of the functions\n  mm: compaction: introduce isolate_freepages_range()\n  mm: compaction: introduce map_pages()\n  mm: compaction: introduce isolate_migratepages_range()\n  mm: page_alloc: remove trailing whitespace\n  ARM: dma-mapping: add support for IOMMU mapper\n  ARM: dma-mapping: use alloc, mmap, free from dma_ops\n  ARM: dma-mapping: remove redundant code and do the cleanup\n  ...\n\nConflicts:\n\tarch/x86/include/asm/dma-mapping.h\n"
    },
    {
      "commit": "07acfc2a9349a8ce45b236c2624dad452001966b",
      "tree": "c40f3eaac18a8320e65af220979223b5cd632b1b",
      "parents": [
        "b5f4035adfffbcc6b478de5b8c44b618b3124aff",
        "322728e55aa7834e2fab2786b76df183c4843a12"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 24 16:17:30 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 24 16:17:30 2012 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/virt/kvm/kvm\n\nPull KVM changes from Avi Kivity:\n \"Changes include additional instruction emulation, page-crossing MMIO,\n  faster dirty logging, preventing the watchdog from killing a stopped\n  guest, module autoload, a new MSI ABI, and some minor optimizations\n  and fixes.  Outside x86 we have a small s390 and a very large ppc\n  update.\n\n  Regarding the new (for kvm) rebaseless workflow, some of the patches\n  that were merged before we switch trees had to be rebased, while\n  others are true pulls.  In either case the signoffs should be correct\n  now.\"\n\nFix up trivial conflicts in Documentation/feature-removal-schedule.txt\narch/powerpc/kvm/book3s_segment.S and arch/x86/include/asm/kvm_para.h.\n\nI suspect the kvm_para.h resolution ends up doing the \"do I have cpuid\"\ncheck effectively twice (it was done differently in two different\ncommits), but better safe than sorry ;)\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/virt/kvm/kvm: (125 commits)\n  KVM: make asm-generic/kvm_para.h have an ifdef __KERNEL__ block\n  KVM: s390: onereg for timer related registers\n  KVM: s390: epoch difference and TOD programmable field\n  KVM: s390: KVM_GET/SET_ONEREG for s390\n  KVM: s390: add capability indicating COW support\n  KVM: Fix mmu_reload() clash with nested vmx event injection\n  KVM: MMU: Don\u0027t use RCU for lockless shadow walking\n  KVM: VMX: Optimize %ds, %es reload\n  KVM: VMX: Fix %ds/%es clobber\n  KVM: x86 emulator: convert bsf/bsr instructions to emulate_2op_SrcV_nobyte()\n  KVM: VMX: unlike vmcs on fail path\n  KVM: PPC: Emulator: clean up SPR reads and writes\n  KVM: PPC: Emulator: clean up instruction parsing\n  kvm/powerpc: Add new ioctl to retreive server MMU infos\n  kvm/book3s: Make kernel emulated H_PUT_TCE available for \"PR\" KVM\n  KVM: PPC: bookehv: Fix r8/r13 storing in level exception handler\n  KVM: PPC: Book3S: Enable IRQs during exit handling\n  KVM: PPC: Fix PR KVM on POWER7 bare metal\n  KVM: PPC: Fix stbux emulation\n  KVM: PPC: bookehv: Use lwz/stw instead of PPC_LL/PPC_STL for 32-bit fields\n  ...\n"
    },
    {
      "commit": "b1bf7d4d1b3911352cf1ec63c1de06214288ccd0",
      "tree": "0fd27c638977cb5c7e6e3f95085ce842b57a4ae3",
      "parents": [
        "0708500d49e8439d9fe5529795bdc1485f0f46c3",
        "3e11f7b840b4671213c66817294ad7dd0b572756"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 24 14:01:46 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 24 14:01:46 2012 -0700"
      },
      "message": "Merge tag \u0027gpio-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6\n\nPull GPIO driver changes from Grant Likely:\n \"Lots of gpio changes, both to core code and drivers.\n\n  Changes do touch architecture code to remove the need for separate\n  arm/gpio.h includes in most architectures.\n\n  Some new drivers are added, and a number of gpio drivers are converted\n  to use irq_domains for gpio inputs used as interrupts.  Device tree\n  support has been amended to allow multiple gpio_chips to use the same\n  device tree node.\n\n  Remaining changes are primarily bug fixes.\"\n\n* tag \u0027gpio-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6: (33 commits)\n  gpio/generic: initialize basic_mmio_gpio shadow variables properly\n  gpiolib: Remove \u0027const\u0027 from data argument of gpiochip_find()\n  gpio/rc5t583: add gpio driver for RICOH PMIC RC5T583\n  gpiolib: quiet gpiochip_add boot message noise\n  gpio: mpc8xxx: Prevent NULL pointer deref in demux handler\n  gpio/lpc32xx: Add device tree support\n  gpio: Adjust of_xlate API to support multiple GPIO chips\n  gpiolib: Implement devm_gpio_request_one()\n  gpio-mcp23s08: dbg_show: fix pullup configuration display\n  Add support for TCA6424A\n  gpio/omap: (re)fix wakeups on level-triggered GPIOs\n  gpio/omap: fix broken context restore for non-OFF mode transitions\n  gpio/omap: fix missing check in *_runtime_suspend()\n  gpio/omap: remove cpu_is_omapxxxx() checks from *_runtime_resume()\n  gpio/omap: remove suspend/resume callbacks\n  gpio/omap: remove retrigger variable in gpio_irq_handler\n  gpio/omap: remove saved_wakeup field from struct gpio_bank\n  gpio/omap: remove suspend_wakeup field from struct gpio_bank\n  gpio/omap: remove saved_fallingdetect, saved_risingdetect\n  gpio/omap: remove virtual_irq_start variable\n  ...\n\nConflicts:\n\tdrivers/gpio/gpio-samsung.c\n"
    },
    {
      "commit": "2ff2b289a695807e291e1ed9f639d8a3ba5f4254",
      "tree": "e4b7f44e5cc1582ba2be8aeba221f4841f4c86a6",
      "parents": [
        "88d6ae8dc33af12fe1c7941b1fae2767374046fd",
        "73787190d04a34e6da745da893b3ae8bedde418f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 22 18:18:55 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 22 18:18:55 2012 -0700"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull perf changes from Ingo Molnar:\n \"Lots of changes:\n\n   - (much) improved assembly annotation support in perf report, with\n     jump visualization, searching, navigation, visual output\n     improvements and more.\n\n    - kernel support for AMD IBS PMU hardware features.  Notably \u0027perf\n      record -e cycles:p\u0027 and \u0027perf top -e cycles:p\u0027 should work without\n      skid now, like PEBS does on the Intel side, because it takes\n      advantage of IBS transparently.\n\n    - the libtracevents library: it is the first step towards unifying\n      tracing tooling and perf, and it also gives a tracing library for\n      external tools like powertop to rely on.\n\n    - infrastructure: various improvements and refactoring of the UI\n      modules and related code\n\n    - infrastructure: cleanup and simplification of the profiling\n      targets code (--uid, --pid, --tid, --cpu, --all-cpus, etc.)\n\n    - tons of robustness fixes all around\n\n    - various ftrace updates: speedups, cleanups, robustness\n      improvements.\n\n    - typing \u0027make\u0027 in tools/ will now give you a menu of projects to\n      build and a short help text to explain what each does.\n\n    - ... and lots of other changes I forgot to list.\n\n  The perf record make bzImage + perf report regression you reported\n  should be fixed.\"\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (166 commits)\n  tracing: Remove kernel_lock annotations\n  tracing: Fix initial buffer_size_kb state\n  ring-buffer: Merge separate resize loops\n  perf evsel: Create events initially disabled -- again\n  perf tools: Split term type into value type and term type\n  perf hists: Fix callchain ip printf format\n  perf target: Add uses_mmap field\n  ftrace: Remove selecting FRAME_POINTER with FUNCTION_TRACER\n  ftrace/x86: Have x86 ftrace use the ftrace_modify_all_code()\n  ftrace: Make ftrace_modify_all_code() global for archs to use\n  ftrace: Return record ip addr for ftrace_location()\n  ftrace: Consolidate ftrace_location() and ftrace_text_reserved()\n  ftrace: Speed up search by skipping pages by address\n  ftrace: Remove extra helper functions\n  ftrace: Sort all function addresses, not just per page\n  tracing: change CPU ring buffer state from tracing_cpumask\n  tracing: Check return value of tracing_dentry_percpu()\n  ring-buffer: Reset head page before running self test\n  ring-buffer: Add integrity check at end of iter read\n  ring-buffer: Make addition of pages in ring buffer atomic\n  ...\n"
    },
    {
      "commit": "0f51596bd39a5c928307ffcffc9ba07f90f42a8b",
      "tree": "b636403815316ecad2170092b70f1079df260a95",
      "parents": [
        "61f6c7a47a2f84b7ba4b65240ffe9247df772b06",
        "4ce63fcd919c32d22528e54dcd89506962933719"
      ],
      "author": {
        "name": "Marek Szyprowski",
        "email": "m.szyprowski@samsung.com",
        "time": "Tue May 22 08:55:43 2012 +0200"
      },
      "committer": {
        "name": "Marek Szyprowski",
        "email": "m.szyprowski@samsung.com",
        "time": "Tue May 22 08:55:43 2012 +0200"
      },
      "message": "Merge branch \u0027for-next-arm-dma\u0027 into for-linus\n\nConflicts:\n\tarch/arm/Kconfig\n\tarch/arm/mm/dma-mapping.c\n\nSigned-off-by: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\n"
    },
    {
      "commit": "cb60e3e65c1b96a4d6444a7a13dc7dd48bc15a2b",
      "tree": "4322be35db678f6299348a76ad60a2023954af7d",
      "parents": [
        "99262a3dafa3290866512ddfb32609198f8973e9",
        "ff2bb047c4bce9742e94911eeb44b4d6ff4734ab"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 21 20:27:36 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 21 20:27:36 2012 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security\n\nPull security subsystem updates from James Morris:\n \"New notable features:\n   - The seccomp work from Will Drewry\n   - PR_{GET,SET}_NO_NEW_PRIVS from Andy Lutomirski\n   - Longer security labels for Smack from Casey Schaufler\n   - Additional ptrace restriction modes for Yama by Kees Cook\"\n\nFix up trivial context conflicts in arch/x86/Kconfig and include/linux/filter.h\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (65 commits)\n  apparmor: fix long path failure due to disconnected path\n  apparmor: fix profile lookup for unconfined\n  ima: fix filename hint to reflect script interpreter name\n  KEYS: Don\u0027t check for NULL key pointer in key_validate()\n  Smack: allow for significantly longer Smack labels v4\n  gfp flags for security_inode_alloc()?\n  Smack: recursive tramsmute\n  Yama: replace capable() with ns_capable()\n  TOMOYO: Accept manager programs which do not start with / .\n  KEYS: Add invalidation support\n  KEYS: Do LRU discard in full keyrings\n  KEYS: Permit in-place link replacement in keyring list\n  KEYS: Perform RCU synchronisation on keys prior to key destruction\n  KEYS: Announce key type (un)registration\n  KEYS: Reorganise keys Makefile\n  KEYS: Move the key config into security/keys/Kconfig\n  KEYS: Use the compat keyctl() syscall wrapper on Sparc64 for Sparc32 compat\n  Yama: remove an unused variable\n  samples/seccomp: fix dependencies on arch macros\n  Yama: add additional ptrace scopes\n  ...\n"
    },
    {
      "commit": "3bb07f1b73ea6313b843807063e183e168c9182a",
      "tree": "f0e2ab77b8bc993a843a0edede00668c589863cc",
      "parents": [
        "6326c71fd2fb3bef5fa33951479298b683da35fe",
        "5420e46d4d79bcd5d5952df98d022c8412385d32"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 21 16:24:54 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 21 16:24:54 2012 -0700"
      },
      "message": "Merge tag \u0027pci-for-3.5\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci\n\nPull PCI changes from Bjorn Helgaas:\n - Host bridge cleanups from Yinghai\n - Disable Bus Master bit on PCI device shutdown (kexec-related)\n - Stratus ftServer fix\n - pci_dev_reset() locking fix\n - IvyBridge graphics erratum workaround\n\n* tag \u0027pci-for-3.5\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (21 commits)\n  microblaze/PCI: fix \"io_offset undeclared\" error\n  x86/PCI: only check for spinlock being held in SMP kernels\n  resources: add resource_overlaps()\n  PCI: fix uninitialized variable \u0027cap_mask\u0027\n  MAINTAINERS: update PCI git tree and patchwork\n  PCI: disable Bus Master on PCI device shutdown\n  PCI: work around IvyBridge internal graphics FLR erratum\n  x86/PCI: fix unused variable warning in amd_bus.c\n  PCI: move mutex locking out of pci_dev_reset function\n  PCI: work around Stratus ftServer broken PCIe hierarchy\n  x86/PCI: merge pcibios_scan_root() and pci_scan_bus_on_node()\n  x86/PCI: dynamically allocate pci_root_info for native host bridge drivers\n  x86/PCI: embed pci_sysdata into pci_root_info on ACPI path\n  x86/PCI: embed name into pci_root_info struct\n  x86/PCI: add host bridge resource release for _CRS path\n  x86/PCI: refactor get_current_resources()\n  PCI: add host bridge release support\n  PCI: add generic device into pci_host_bridge struct\n  PCI: rename pci_host_bridge() to find_pci_root_bridge()\n  x86/PCI: fix memleak with get_current_resources()\n  ...\n"
    },
    {
      "commit": "322728e55aa7834e2fab2786b76df183c4843a12",
      "tree": "ccd2211d5f88d8875155d693a776f68efb03c2d5",
      "parents": [
        "46a6dd1c87c4ff17202574127daf70cc0bb38d6d"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Fri May 18 13:59:39 2012 -0400"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon May 21 17:47:52 2012 +0300"
      },
      "message": "KVM: make asm-generic/kvm_para.h have an ifdef __KERNEL__ block\n\nThere are two functions in this asm-generic file.  Looking at\nother arch which do not use the generic version, these two fcns\nare within an #ifdef __KERNEL__ block, so make the generic one\nconsistent with those.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "c64be2bb1c6eb43c838b2c6d57b074078be208dd",
      "tree": "d0720eda4a440ff91f3296b0f90cc53ac514d4b9",
      "parents": [
        "49f223a9cd96c7293d7258ff88c2bdf83065f69c"
      ],
      "author": {
        "name": "Marek Szyprowski",
        "email": "m.szyprowski@samsung.com",
        "time": "Thu Dec 29 13:09:51 2011 +0100"
      },
      "committer": {
        "name": "Marek Szyprowski",
        "email": "m.szyprowski@samsung.com",
        "time": "Mon May 21 15:09:37 2012 +0200"
      },
      "message": "drivers: add Contiguous Memory Allocator\n\nThe Contiguous Memory Allocator is a set of helper functions for DMA\nmapping framework that improves allocations of contiguous memory chunks.\n\nCMA grabs memory on system boot, marks it with MIGRATE_CMA migrate type\nand gives back to the system. Kernel is allowed to allocate only movable\npages within CMA\u0027s managed memory so that it can be used for example for\npage cache when DMA mapping do not use it. On\ndma_alloc_from_contiguous() request such pages are migrated out of CMA\narea to free required contiguous block and fulfill the request. This\nallows to allocate large contiguous chunks of memory at any time\nassuming that there is enough free memory available in the system.\n\nThis code is heavily based on earlier works by Michal Nazarewicz.\n\nSigned-off-by: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nSigned-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nSigned-off-by: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nTested-by: Rob Clark \u003crob.clark@linaro.org\u003e\nTested-by: Ohad Ben-Cohen \u003cohad@wizery.com\u003e\nTested-by: Benjamin Gaignard \u003cbenjamin.gaignard@linaro.org\u003e\nTested-by: Robert Nelson \u003crobertcnelson@gmail.com\u003e\nTested-by: Barry Song \u003cBaohua.Song@csr.com\u003e\n"
    },
    {
      "commit": "bca0fa5f12a6744a2b2e53154af65a51402b3426",
      "tree": "3da5a3098d9a9139e7a027cdab1a8ae5386f6be0",
      "parents": [
        "76e10d158efb6d4516018846f60c2ab5501900bc"
      ],
      "author": {
        "name": "Marek Szyprowski",
        "email": "m.szyprowski@samsung.com",
        "time": "Fri Mar 23 13:05:14 2012 +0100"
      },
      "committer": {
        "name": "Marek Szyprowski",
        "email": "m.szyprowski@samsung.com",
        "time": "Mon May 21 15:06:09 2012 +0200"
      },
      "message": "common: add dma_mmap_from_coherent() function\n\nAdd a common helper for dma-mapping core for mapping a coherent buffer\nto userspace.\n\nReported-by: Subash Patel \u003csubashrp@gmail.com\u003e\nSigned-off-by: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nAcked-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nTested-By: Subash Patel \u003csubash.ramaswamy@linaro.org\u003e\n"
    },
    {
      "commit": "bb27f55eb9405257a59c82550dbb0d684cc3a665",
      "tree": "bdab5866709e6ac7eeef7493d7d73bbd3d6231b6",
      "parents": [
        "b732d439cb43336cd6d7e804ecb2c81193ef63b0",
        "5e1c81d98a5621007824b49dde556fead5ff9c6c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon May 21 09:17:31 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon May 21 09:17:50 2012 +0200"
      },
      "message": "Merge branch \u0027perf/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core\n\nFixes for perf/core:\n\n - Rename some perf_target methods to avoid double negation, from Namhyung Kim.\n - Revert change to use per task events with inheritance, from Namhyung Kim.\n - Events should start disabled till children starts running, from David Ahern.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "07ce8ec7308ab3fa55fe2861671b157f857fff58",
      "tree": "4e0b2fa2f61bbae54ecfc5be7d88e4501ca497ec",
      "parents": [
        "e9fe32bcadb8a7a40411d77f168abd45941b049b"
      ],
      "author": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Fri May 18 23:01:05 2012 -0600"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Fri May 18 23:01:05 2012 -0600"
      },
      "message": "gpiolib: Remove \u0027const\u0027 from data argument of gpiochip_find()\n\nCommit 3d0f7cf0 \"gpio: Adjust of_xlate API to support multiple GPIO\nchips\" changed the api of gpiochip_find to drop const from the data\nparameter of the match hook, but didn\u0027t also drop const from data\ncausing a build warning.\n\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "3d0f7cf0f3633f92ddeb767eb59cab73963d4dee",
      "tree": "be23f5d9657d558d690adc84b16bdd6d91668f47",
      "parents": [
        "09d71ff19404b3957fab6de942fb8026ccfd8524"
      ],
      "author": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Thu May 17 13:54:40 2012 -0600"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Fri May 18 16:48:36 2012 -0600"
      },
      "message": "gpio: Adjust of_xlate API to support multiple GPIO chips\n\nThis patch changes the of_xlate API to make it possible for multiple\ngpio_chips to refer to the same device tree node.  This is useful for\nbanked GPIO controllers that use multiple gpio_chips for a single\ndevice.  With this change the core code will try calling of_xlate on\neach gpio_chip that references the device_node and will return the\ngpio number for the first one to return \u0027true\u0027.\n\nTested-by: Roland Stigge \u003cstigge@antcom.de\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "09d71ff19404b3957fab6de942fb8026ccfd8524",
      "tree": "ba3680f5b79ea1fbeae073ab7cb28c9bdcad7e60",
      "parents": [
        "eb1567f7ad0032ba7b02b878e352f191d53dc228"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed May 02 12:46:46 2012 +0100"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Fri May 18 16:48:35 2012 -0600"
      },
      "message": "gpiolib: Implement devm_gpio_request_one()\n\nAllow drivers to use the modern request and configure idiom together\nwith devres.\n\nAs with plain gpio_request() and gpio_request_one() we can\u0027t implement\nthe old school version in terms of _one() as this would force the\nexplicit selection of a direction in gpio_request() which could break\nsystems if we pick the wrong one.  Implementing devm_gpio_request_one()\nin terms of devm_gpio_request() would needlessly complicate things or\nlead to duplication from the unmanaged version depending on how it\u0027s\ndone.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nAcked-by: Linus Walleij \u003clinus.walleij@linaro.org\u003e\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "9fd49328fc2a1cbfea542bcbcf004b5c81dc495b",
      "tree": "da8f42d3483da2b1b224d422db074cbe954b5cd3",
      "parents": [
        "71babb2705e2203a64c27ede13ae3508a0d2c16c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Apr 24 22:32:06 2012 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 16 19:58:44 2012 -0400"
      },
      "message": "ftrace: Sort all function addresses, not just per page\n\nInstead of just sorting the ip\u0027s of the functions per ftrace page,\nsort the entire list before adding them to the ftrace pages.\n\nThis will allow the bsearch algorithm to be sped up as it can\nalso sort by pages, not just records within a page.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "898bfc1d46bd76f8ea2a0fbd239dd2073efe2aa3",
      "tree": "e6e666085abe674dbf6292555961fe0a0f2e2d2f",
      "parents": [
        "08162e6a23d476544adfe1164afe9ea8b34ab859",
        "69964ea4c7b68c9399f7977aa5b9aa6539a6a98a"
      ],
      "author": {
        "name": "James Morris",
        "email": "james.l.morris@oracle.com",
        "time": "Fri May 04 12:46:40 2012 +1000"
      },
      "committer": {
        "name": "James Morris",
        "email": "james.l.morris@oracle.com",
        "time": "Fri May 04 12:46:40 2012 +1000"
      },
      "message": "Merge tag \u0027v3.4-rc5\u0027 into next\n\nLinux 3.4-rc5\n\nMerge to pull in prerequisite change for Smack:\n86812bb0de1a3758dc6c7aa01a763158a7c0638a\n\nRequested by Casey.\n"
    },
    {
      "commit": "284f5f9dbac170b054c1e386ef92cbf654e91bba",
      "tree": "74cacc94070d5590378c368fa7378d37319d07be",
      "parents": [
        "66f75a5d028beaf67c931435fdc3e7823125730c"
      ],
      "author": {
        "name": "Bjorn Helgaas",
        "email": "bhelgaas@google.com",
        "time": "Mon Apr 30 15:21:02 2012 -0600"
      },
      "committer": {
        "name": "Bjorn Helgaas",
        "email": "bhelgaas@google.com",
        "time": "Mon Apr 30 15:21:02 2012 -0600"
      },
      "message": "PCI: work around Stratus ftServer broken PCIe hierarchy\n\nA PCIe downstream port is a P2P bridge.  Its secondary interface is\na link that should lead only to device 0 (unless ARI is enabled)[1], so\nwe don\u0027t probe for non-zero device numbers.\n\nSome Stratus ftServer systems have a PCIe downstream port (02:00.0) that\nleads to both an upstream port (03:00.0) and a downstream port (03:01.0),\nand 03:01.0 has important devices below it:\n\n  [0000:02]-+-00.0-[03-3c]--+-00.0-[04-09]--...\n                            \\-01.0-[0a-0d]--+-[USB]\n                                            +-[NIC]\n                                            +-...\n\nPreviously, we didn\u0027t enumerate device 03:01.0, so USB and the network\ndidn\u0027t work.  This patch adds a DMI quirk to scan all device numbers,\nnot just 0, below a downstream port.\n\nBased on a patch by Prarit Bhargava.\n\n[1] PCIe spec r3.0, sec 7.3.1\n\nCC: Myron Stowe \u003cmstowe@redhat.com\u003e\nCC: Don Dutile \u003cddutile@redhat.com\u003e\nCC: James Paradis \u003cjames.paradis@stratus.com\u003e\nCC: Matthew Wilcox \u003cmatthew.r.wilcox@intel.com\u003e\nCC: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nCC: Prarit Bhargava \u003cprarit@redhat.com\u003e\nSigned-off-by: Bjorn Helgaas \u003cbhelgaas@google.com\u003e"
    },
    {
      "commit": "f5c2347ee20a8d6964d6a6b1ad04f200f8d4dfa7",
      "tree": "88fc7d201dfa1e14b1689cccee512c3852a8c346",
      "parents": [
        "f7f286a910221ae18b21c18d9d0f4cd88965829f"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Thu Apr 26 11:45:16 2012 -0700"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Mon Apr 30 12:55:15 2012 -0700"
      },
      "message": "asm-generic: Use __BITS_PER_LONG in statfs.h\n\n\u003casm-generic/statfs.h\u003e is exported to userspace, so using\nBITS_PER_LONG is invalid.  We need to use __BITS_PER_LONG instead.\n\nThis is kernel bugzilla 43165.\n\nReported-by: H.J. Lu \u003chjl.tools@gmail.com\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\nLink: http://lkml.kernel.org/r/1335465916-16965-1-git-send-email-hpa@linux.intel.com\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: \u003cstable@vger.kernel.org\u003e\n"
    },
    {
      "commit": "d643bdca8ab9cd333da1b68267d0e47328e56f56",
      "tree": "59fa93e4f8e51fcbd862aeeef25d026d19c18459",
      "parents": [
        "98e5272fe70d62e193f70acf9951667beab27aba"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Mon Apr 23 16:29:18 2012 -0700"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Mon Apr 23 16:29:18 2012 -0700"
      },
      "message": "asm-generic: Allow overriding clock_t and add attributes to siginfo_t\n\nFor the particular issue of x32, which shares code with i386 in the\nhandling of compat_siginfo_t, the use of a 64-bit clock_t bumps the\nsigchld structure out of alignment, which triggers a messy cascade of\npadding.\n\nThis was already handled on the kernel compat side, but it needs\nhandling on the user space side, which uses the generic header.  To\nmake that possible:\n\n1. Allow __kernel_clock_t to be overridden in struct siginfo;\n2. Allow there to be attributes added to struct siginfo.\n\nReported-by: H.J. Lu \u003chjl.rools@gmail.com\u003e\nCc: Bruce J. Beare \u003cbruce.j.beare@intel.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nLink: http://lkml.kernel.org/r/CAMe9rOqF6Kh6-NK7oP0Fpzkd4SBAWU%2BG53hwBbSD4iA2UzyxuA@mail.gmail.com\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "1f15d10984c854e077da5aa1a23f901496b49773",
      "tree": "38b0c6fb2bf22413c02e83d9e3b8f28333131cf8",
      "parents": [
        "8281715b4109b5ee26032ff7b77c0d575c4150f7"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Fri Apr 20 18:21:46 2012 -0300"
      },
      "committer": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Fri Apr 20 18:24:54 2012 -0300"
      },
      "message": "KVM: add kvm_arch_para_features stub to asm-generic/kvm_para.h\n\nNeeded by kvm_para_has_feature().\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "bb6ea4301a1109afdacaee576fedbfcd7152fc86",
      "tree": "5412219057d8e0ec2a30d0a1ad4f6b7dd398c754",
      "parents": [
        "a0727e8ce513fe6890416da960181ceb10fbfae6"
      ],
      "author": {
        "name": "Will Drewry",
        "email": "wad@chromium.org",
        "time": "Thu Apr 12 16:48:01 2012 -0500"
      },
      "committer": {
        "name": "James Morris",
        "email": "james.l.morris@oracle.com",
        "time": "Sat Apr 14 11:13:21 2012 +1000"
      },
      "message": "seccomp: Add SECCOMP_RET_TRAP\n\nAdds a new return value to seccomp filters that triggers a SIGSYS to be\ndelivered with the new SYS_SECCOMP si_code.\n\nThis allows in-process system call emulation, including just specifying\nan errno or cleanly dumping core, rather than just dying.\n\nSuggested-by: Markus Gutschke \u003cmarkus@chromium.org\u003e\nSuggested-by: Julien Tinnes \u003cjln@chromium.org\u003e\nSigned-off-by: Will Drewry \u003cwad@chromium.org\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\n\nv18: - acked-by, rebase\n     - don\u0027t mention secure_computing_int() anymore\nv15: - use audit_seccomp/skip\n     - pad out error spacing; clean up switch (indan@nul.nu)\nv14: - n/a\nv13: - rebase on to 88ebdda6159ffc15699f204c33feb3e431bf9bdc\nv12: - rebase on to linux-next\nv11: - clarify the comment (indan@nul.nu)\n     - s/sigtrap/sigsys\nv10: - use SIGSYS, syscall_get_arch, updates arch/Kconfig\n       note suggested-by (though original suggestion had other behaviors)\nv9:  - changes to SIGILL\nv8:  - clean up based on changes to dependent patches\nv7:  - introduction\nSigned-off-by: James Morris \u003cjames.l.morris@oracle.com\u003e\n"
    },
    {
      "commit": "a0727e8ce513fe6890416da960181ceb10fbfae6",
      "tree": "300fc5c620c4e90915985504007d9e66bc896d14",
      "parents": [
        "acf3b2c71ed20c53dc69826683417703c2a88059"
      ],
      "author": {
        "name": "Will Drewry",
        "email": "wad@chromium.org",
        "time": "Thu Apr 12 16:48:00 2012 -0500"
      },
      "committer": {
        "name": "James Morris",
        "email": "james.l.morris@oracle.com",
        "time": "Sat Apr 14 11:13:21 2012 +1000"
      },
      "message": "signal, x86: add SIGSYS info and make it synchronous.\n\nThis change enables SIGSYS, defines _sigfields._sigsys, and adds\nx86 (compat) arch support.  _sigsys defines fields which allow\na signal handler to receive the triggering system call number,\nthe relevant AUDIT_ARCH_* value for that number, and the address\nof the callsite.\n\nSIGSYS is added to the SYNCHRONOUS_MASK because it is desirable for it\nto have setup_frame() called for it. The goal is to ensure that\nucontext_t reflects the machine state from the time-of-syscall and not\nfrom another signal handler.\n\nThe first consumer of SIGSYS would be seccomp filter.  In particular,\na filter program could specify a new return value, SECCOMP_RET_TRAP,\nwhich would result in the system call being denied and the calling\nthread signaled.  This also means that implementing arch-specific\nsupport can be dependent upon HAVE_ARCH_SECCOMP_FILTER.\n\nSuggested-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Will Drewry \u003cwad@chromium.org\u003e\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nReviewed-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\n\nv18: - added acked by, rebase\nv17: - rebase and reviewed-by addition\nv14: - rebase/nochanges\nv13: - rebase on to 88ebdda6159ffc15699f204c33feb3e431bf9bdc\nv12: - reworded changelog (oleg@redhat.com)\nv11: - fix dropped words in the change description\n     - added fallback copy_siginfo support.\n     - added __ARCH_SIGSYS define to allow stepped arch support.\nv10: - first version based on suggestion\nSigned-off-by: James Morris \u003cjames.l.morris@oracle.com\u003e\n"
    },
    {
      "commit": "07bd18d00d5dcf84eb22f8120f47f09c3d8fe27d",
      "tree": "ac0d755afdba978932ad530901acf1619431b266",
      "parents": [
        "932ecebb0405b9a41cd18946e6cff8a17d434e23"
      ],
      "author": {
        "name": "Will Drewry",
        "email": "wad@chromium.org",
        "time": "Thu Apr 12 16:47:55 2012 -0500"
      },
      "committer": {
        "name": "James Morris",
        "email": "james.l.morris@oracle.com",
        "time": "Sat Apr 14 11:13:19 2012 +1000"
      },
      "message": "asm/syscall.h: add syscall_get_arch\n\nAdds a stub for a function that will return the AUDIT_ARCH_* value\nappropriate to the supplied task based on the system call convention.\n\nFor audit\u0027s use, the value can generally be hard-coded at the\naudit-site.  However, for other functionality not inlined into syscall\nentry/exit, this makes that information available.  seccomp_filter is\nthe first planned consumer and, as such, the comment indicates a tie to\nCONFIG_HAVE_ARCH_SECCOMP_FILTER.\n\nSuggested-by: Roland McGrath \u003cmcgrathr@chromium.org\u003e\nSigned-off-by: Will Drewry \u003cwad@chromium.org\u003e\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\n\nv18: comment and change reword and rebase.\nv14: rebase/nochanges\nv13: rebase on to 88ebdda6159ffc15699f204c33feb3e431bf9bdc\nv12: rebase on to linux-next\nv11: fixed improper return type\nv10: introduced\nSigned-off-by: James Morris \u003cjames.l.morris@oracle.com\u003e\n"
    },
    {
      "commit": "3b5d56b9317fa7b5407dff1aa7b115bf6cdbd494",
      "tree": "d733bab15dcf193c3364d14fc2d973aa20a28fe3",
      "parents": [
        "eae3ee7d8a7c59cf63441dedf28674889f5fc477"
      ],
      "author": {
        "name": "Eric B Munson",
        "email": "emunson@mgebm.net",
        "time": "Sat Mar 10 14:37:26 2012 -0500"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Apr 08 12:48:59 2012 +0300"
      },
      "message": "kvmclock: Add functions to check if the host has stopped the vm\n\nWhen a host stops or suspends a VM it will set a flag to show this.  The\nwatchdog will use these functions to determine if a softlockup is real, or the\nresult of a suspended VM.\n\nSigned-off-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nasm-generic changes Acked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n\n"
    },
    {
      "commit": "80da6a4feeb9e4d6554f771f14f5b994e6c6c7e8",
      "tree": "4f2826dadc1daa16058d4505f3d24ac98b45a397",
      "parents": [
        "f68c56b7d2351036d1ec58c7a0ac4f258cbc1fa2"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Apr 01 16:38:47 2012 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 02 14:41:27 2012 -0700"
      },
      "message": "asm-generic: add linux/types.h to cmpxchg.h\n\nBuilds of the openrisc or1ksim_defconfig show the following:\n\n  In file included from arch/openrisc/include/generated/asm/cmpxchg.h:1:0,\n                   from include/asm-generic/atomic.h:18,\n                   from arch/openrisc/include/generated/asm/atomic.h:1,\n                   from include/linux/atomic.h:4,\n                   from include/linux/dcache.h:4,\n                   from fs/notify/fsnotify.c:19:\n  include/asm-generic/cmpxchg.h: In function \u0027__xchg\u0027:\n  include/asm-generic/cmpxchg.h:34:20: error: expected \u0027)\u0027 before \u0027u8\u0027\n  include/asm-generic/cmpxchg.h:34:20: warning: type defaults to \u0027int\u0027 in type name\n\nand many more lines of similar errors.  It seems specific to the or32\nbecause most other platforms have an arch specific component that would\nhave already included types.h ahead of time, but the o32 does not.\n\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Jonas Bonn \u003cjonas@southpole.se\u003e\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a591afc01d9e48affbacb365558a31e53c85af45",
      "tree": "9bb91f4eb94ec69fc4706c4944788ec5f3586063",
      "parents": [
        "820d41cf0cd0e94a5661e093821e2e5c6b36a9d8",
        "31796ac4e8f0e88f5c10f1ad6dab8f19bebe44a4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 18:12:23 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 18:12:23 2012 -0700"
      },
      "message": "Merge branch \u0027x86-x32-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x32 support for x86-64 from Ingo Molnar:\n \"This tree introduces the X32 binary format and execution mode for x86:\n  32-bit data space binaries using 64-bit instructions and 64-bit kernel\n  syscalls.\n\n  This allows applications whose working set fits into a 32 bits address\n  space to make use of 64-bit instructions while using a 32-bit address\n  space with shorter pointers, more compressed data structures, etc.\"\n\nFix up trivial context conflicts in arch/x86/{Kconfig,vdso/vma.c}\n\n* \u0027x86-x32-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (71 commits)\n  x32: Fix alignment fail in struct compat_siginfo\n  x32: Fix stupid ia32/x32 inversion in the siginfo format\n  x32: Add ptrace for x32\n  x32: Switch to a 64-bit clock_t\n  x32: Provide separate is_ia32_task() and is_x32_task() predicates\n  x86, mtrr: Use explicit sizing and padding for the 64-bit ioctls\n  x86/x32: Fix the binutils auto-detect\n  x32: Warn and disable rather than error if binutils too old\n  x32: Only clear TIF_X32 flag once\n  x32: Make sure TS_COMPAT is cleared for x32 tasks\n  fs: Remove missed -\u003efds_bits from cessation use of fd_set structs internally\n  fs: Fix close_on_exec pointer in alloc_fdtable\n  x32: Drop non-__vdso weak symbols from the x32 VDSO\n  x32: Fix coding style violations in the x32 VDSO code\n  x32: Add x32 VDSO support\n  x32: Allow x32 to be configured\n  x32: If configured, add x32 system calls to system call tables\n  x32: Handle process creation\n  x32: Signal-related system calls\n  x86: Add #ifdef CONFIG_COMPAT to \u003casm/sys_ia32.h\u003e\n  ...\n"
    },
    {
      "commit": "50483c3268918ee51a56d1baa39b9149d2d0d521",
      "tree": "2fb9c927c319628ebddfd118c10df3e626bdd1c4",
      "parents": [
        "7fda0412c5f7afdd1a5ff518f98dee5157266d8a",
        "1631fcea8399da5e80a80084b3b8c5bfd99d21e7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 14:49:45 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 14:49:45 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile\n\nPull arch/tile (really asm-generic) update from Chris Metcalf:\n \"These are a couple of asm-generic changes that apply to tile.\"\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:\n  compat: use sys_sendfile64() implementation for sendfile syscall\n  [PATCH v3] ipc: provide generic compat versions of IPC syscalls\n"
    },
    {
      "commit": "0195c00244dc2e9f522475868fa278c473ba7339",
      "tree": "f97ca98ae64ede2c33ad3de05ed7bbfa4f4495ed",
      "parents": [
        "f21ce8f8447c8be8847dadcfdbcc76b0d7365fa5",
        "141124c02059eee9dbc5c86ea797b1ca888e77f7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:58:21 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:58:21 2012 -0700"
      },
      "message": "Merge tag \u0027split-asm_system_h-for-linus-20120328\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-asm_system\n\nPull \"Disintegrate and delete asm/system.h\" from David Howells:\n \"Here are a bunch of patches to disintegrate asm/system.h into a set of\n  separate bits to relieve the problem of circular inclusion\n  dependencies.\n\n  I\u0027ve built all the working defconfigs from all the arches that I can\n  and made sure that they don\u0027t break.\n\n  The reason for these patches is that I recently encountered a circular\n  dependency problem that came about when I produced some patches to\n  optimise get_order() by rewriting it to use ilog2().\n\n  This uses bitops - and on the SH arch asm/bitops.h drags in\n  asm-generic/get_order.h by a circuituous route involving asm/system.h.\n\n  The main difficulty seems to be asm/system.h.  It holds a number of\n  low level bits with no/few dependencies that are commonly used (eg.\n  memory barriers) and a number of bits with more dependencies that\n  aren\u0027t used in many places (eg.  switch_to()).\n\n  These patches break asm/system.h up into the following core pieces:\n\n    (1) asm/barrier.h\n\n        Move memory barriers here.  This already done for MIPS and Alpha.\n\n    (2) asm/switch_to.h\n\n        Move switch_to() and related stuff here.\n\n    (3) asm/exec.h\n\n        Move arch_align_stack() here.  Other process execution related bits\n        could perhaps go here from asm/processor.h.\n\n    (4) asm/cmpxchg.h\n\n        Move xchg() and cmpxchg() here as they\u0027re full word atomic ops and\n        frequently used by atomic_xchg() and atomic_cmpxchg().\n\n    (5) asm/bug.h\n\n        Move die() and related bits.\n\n    (6) asm/auxvec.h\n\n        Move AT_VECTOR_SIZE_ARCH here.\n\n  Other arch headers are created as needed on a per-arch basis.\"\n\nFixed up some conflicts from other header file cleanups and moving code\naround that has happened in the meantime, so David\u0027s testing is somewhat\nweakened by that.  We\u0027ll find out anything that got broken and fix it..\n\n* tag \u0027split-asm_system_h-for-linus-20120328\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-asm_system: (38 commits)\n  Delete all instances of asm/system.h\n  Remove all #inclusions of asm/system.h\n  Add #includes needed to permit the removal of asm/system.h\n  Move all declarations of free_initmem() to linux/mm.h\n  Disintegrate asm/system.h for OpenRISC\n  Split arch_align_stack() out from asm-generic/system.h\n  Split the switch_to() wrapper out of asm-generic/system.h\n  Move the asm-generic/system.h xchg() implementation to asm-generic/cmpxchg.h\n  Create asm-generic/barrier.h\n  Make asm-generic/cmpxchg.h #include asm-generic/cmpxchg-local.h\n  Disintegrate asm/system.h for Xtensa\n  Disintegrate asm/system.h for Unicore32 [based on ver #3, changed by gxt]\n  Disintegrate asm/system.h for Tile\n  Disintegrate asm/system.h for Sparc\n  Disintegrate asm/system.h for SH\n  Disintegrate asm/system.h for Score\n  Disintegrate asm/system.h for S390\n  Disintegrate asm/system.h for PowerPC\n  Disintegrate asm/system.h for PA-RISC\n  Disintegrate asm/system.h for MN10300\n  ...\n"
    },
    {
      "commit": "d25413efa9536e2f425ea45c7720598035c597bc",
      "tree": "97dcd459a7ec23c9438983fe14a23aef03b09bad",
      "parents": [
        "683c5e853ebe2d1ac72128f1828421de7fc3a23c",
        "f946eeb9313ff1470758e171a60fe7438a2ded3f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 14:27:09 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 14:27:09 2012 -0700"
      },
      "message": "Merge git://github.com/rustyrussell/linux\n\nPull module and param updates from Rusty Russell:\n \"I\u0027m getting married next week, and then honeymoon until 6th May.  I\u0027ll\n  be offline from next week, except to post the compulsory pictures if\n  Alex shaves her head...\"\n\nI\u0027m sure Rusty can take time off from his honeymoon if something comes\nup. And here\u0027s the explanation about head shaving:\n\n\thttp://baldalex.org/\n\nin case you wondered and wanted to support another insane caper or\nRusty\u0027s involving shaving.\n\nWhat *is* it with Rusty and shaving, anyway?\n\n* git://github.com/rustyrussell/linux:\n  module: Remove module size limit\n  module: move __module_get and try_module_get() out of line.\n  params: \u003clevel\u003e_initcall-like kernel parameters\n  module_param: remove support for bool parameters which are really int.\n  module: add kernel param to force disable module load\n"
    },
    {
      "commit": "7bf97e1d5a94b6a71815771bb9452fc2c022c966",
      "tree": "f89082dbd33a51a79c9a9c0dddb29e2b11b8207e",
      "parents": [
        "30304e5a79d424eb2c8707b3ff0e9b8bf6ab3e8f",
        "c77c8a6fd3d57b586ff5ecb5ab5b32ca4f54fe75"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 14:08:46 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 14:08:46 2012 -0700"
      },
      "message": "Merge tag \u0027gpio-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6\n\nPull GPIO changes for v3.4 from Grant Likely:\n \"Primarily gpio device driver changes with some minor side effects\n  under arch/arm and arch/x86.  Also includes a few core changes such as\n  explicitly supporting (electrical) open source and open drain outputs\n  and some help for parsing gpio devicetree properties.\"\n\nFix up context conflict due to Laxman Dewangan adding sleep control for\nthe tps65910 driver separately for gpio\u0027s and regulators.\n\n* tag \u0027gpio-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6: (34 commits)\n  gpio/ep93xx: Remove unused inline function and useless pr_err message\n  gpio/sodaville: Mark broken due to core irqdomain migration\n  gpio/omap: fix redundant decoding of gpio offset\n  gpio/omap: fix incorrect update to context.irqenable1\n  gpio/omap: fix incorrect context restore logic in omap_gpio_runtime_*\n  gpio/omap: fix missing dataout context save in _set_gpio_dataout_reg\n  gpio/omap: fix _set_gpio_irqenable implementation\n  gpio/omap: fix trigger type to unsigned\n  gpio/omap: fix wakeup_en register update in _set_gpio_wakeup()\n  gpio: tegra: tegra_gpio_config shouldn\u0027t be __init\n  gpio/davinci: fix enabling unbanked GPIO IRQs\n  gpio/davinci: fix oops on unbanked gpio irq request\n  gpio/omap: Fix section warning for omap_mpuio_alloc_gc()\n  ARM: tegra: export tegra_gpio_{en,dis}able\n  gpio/gpio-stmpe: Fix the value returned by _get_value routine\n  Documentation/gpio.txt: Explain expected pinctrl interaction\n  GPIO: LPC32xx: Add output reading to GPO P3\n  GPIO: LPC32xx: Fix missing bit selection mask\n  gpio/omap: fix wakeups on level-triggered GPIOs\n  gpio/omap: Fix IRQ handling for SPARSE_IRQ\n  ...\n"
    },
    {
      "commit": "141124c02059eee9dbc5c86ea797b1ca888e77f7",
      "tree": "ee5feb86df07f0f0de1350dd569767ec31537869",
      "parents": [
        "9ffc93f203c18a70623f21950f1dd473c9ec48cd"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "message": "Delete all instances of asm/system.h\n\nDelete all instances of asm/system.h as they should be redundant by this\npoint.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "9ffc93f203c18a70623f21950f1dd473c9ec48cd",
      "tree": "1eb3536ae183b0bfbf7f5152a6fe4f430ae881c2",
      "parents": [
        "96f951edb1f1bdbbc99b0cd458f9808bb83d58ae"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "message": "Remove all #inclusions of asm/system.h\n\nRemove all #inclusions of asm/system.h preparatory to splitting and killing\nit.  Performed with the following command:\n\nperl -p -i -e \u0027s!^#\\s*include\\s*\u003casm/system[.]h\u003e.*\\n!!\u0027 `grep -Irl \u0027^#\\s*include\\s*\u003casm/system[.]h\u003e\u0027 *`\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "96f951edb1f1bdbbc99b0cd458f9808bb83d58ae",
      "tree": "c109d45d3fb8ccad461cfe6d9a4aa4d6005b38e1",
      "parents": [
        "49a7f04a4b9d45cd794741ce3d5d66524b37bdd0"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "message": "Add #includes needed to permit the removal of asm/system.h\n\nasm/system.h is a cause of circular dependency problems because it contains\ncommonly used primitive stuff like barrier definitions and uncommonly used\nstuff like switch_to() that might require MMU definitions.\n\nasm/system.h has been disintegrated by this point on all arches into the\nfollowing common segments:\n\n (1) asm/barrier.h\n\n     Moved memory barrier definitions here.\n\n (2) asm/cmpxchg.h\n\n     Moved xchg() and cmpxchg() here.  #included in asm/atomic.h.\n\n (3) asm/bug.h\n\n     Moved die() and similar here.\n\n (4) asm/exec.h\n\n     Moved arch_align_stack() here.\n\n (5) asm/elf.h\n\n     Moved AT_VECTOR_SIZE_ARCH here.\n\n (6) asm/switch_to.h\n\n     Moved switch_to() here.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "5d1250660a476c588361fb5cb9cbfa52768540c2",
      "tree": "7bac3068c68feb4eb8e96d069e190ae27eb65de7",
      "parents": [
        "158bc507c2f53109bed51c806acf5bfd48d95f1a"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "message": "Split arch_align_stack() out from asm-generic/system.h\n\nSplit arch_align_stack() out from asm-generic/system.h into its own header of\nasm-generic/exec.h as part of the asm/system.h disintegration.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "158bc507c2f53109bed51c806acf5bfd48d95f1a",
      "tree": "8c5f98ca9ccfd4362fe50c46038988794e96795b",
      "parents": [
        "b4816afa3986704d1404fc48e931da5135820472"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "message": "Split the switch_to() wrapper out of asm-generic/system.h\n\nSplit the switch_to() wrapper out of asm-generic/system.h into its own\nasm-generic/system.h as part of the asm/system.h disintegration.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "b4816afa3986704d1404fc48e931da5135820472",
      "tree": "e2d0d5779c55528e0439eee359d46bc9a2c017f7",
      "parents": [
        "885df91ca3571afd4b3f50f3391329bbf3c9e262"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "message": "Move the asm-generic/system.h xchg() implementation to asm-generic/cmpxchg.h\n\nMove the asm-generic/system.h xchg() implementation to asm-generic/cmpxchg.h\nto simplify disintegration of asm/system.h.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "885df91ca3571afd4b3f50f3391329bbf3c9e262",
      "tree": "e66773beb0fb84fc4a43037ba829719b3cbabe47",
      "parents": [
        "34484277b173d0af1bb00532a264940b57920429"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "message": "Create asm-generic/barrier.h\n\nCreate asm-generic/barrier.h and move the barrier definitions from\nasm-generic/system.h to it.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "34484277b173d0af1bb00532a264940b57920429",
      "tree": "d3cb2984acf58bfcd08a1f1a67c8e291272418a0",
      "parents": [
        "f9aa7e1882f3ceec919b30f64a2ce6e66a2571b1"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "message": "Make asm-generic/cmpxchg.h #include asm-generic/cmpxchg-local.h\n\nMake asm-generic/cmpxchg.h #include asm-generic/cmpxchg-local.h as all arch\nfiles that #include the former also #include the latter.  See:\n\n\tgrep -rl asm-generic/cmpxchg-local[.]h arch/ | sort \u003e b\n\tgrep -rl asm-generic/cmpxchg[.]h arch/ | sort \u003e a\n\tcomm a b\n\nThis simplifies the disintegration of asm-generic/system.h for arches that\ndon\u0027t have their own.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "1631fcea8399da5e80a80084b3b8c5bfd99d21e7",
      "tree": "97dbf61e224142068842d1ab5391e8c46a950bba",
      "parents": [
        "48b25c43e6eebb6c0edf72935e8720385beca76b"
      ],
      "author": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@tilera.com",
        "time": "Mon Mar 26 16:26:12 2012 -0400"
      },
      "committer": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@tilera.com",
        "time": "Tue Mar 27 13:36:57 2012 -0400"
      },
      "message": "compat: use sys_sendfile64() implementation for sendfile syscall\n\n\u003casm-generic/unistd.h\u003e was set up to use sys_sendfile() for the 32-bit\ncompat API instead of sys_sendfile64(), but in fact the right thing to\ndo is to use sys_sendfile64() in all cases.  The 32-bit sendfile64() API\nin glibc uses the sendfile64 syscall, so it has to be capable of doing\nfull 64-bit operations.  But the sys_sendfile() kernel implementation\nhas a MAX_NON_LFS test in it which explicitly limits the offset to 2^32.\nSo, we need to use the sys_sendfile64() implementation in the kernel\nfor this case.\n\nCc: \u003cstable@kernel.org\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\n"
    },
    {
      "commit": "026cee0086fe1df4cf74691cf273062cc769617d",
      "tree": "22735ecd2132de4570fbad81e5716f7fee3448d5",
      "parents": [
        "8b8252813dee8e8cd453bb219731c36b268c69a7"
      ],
      "author": {
        "name": "Pawel Moll",
        "email": "pawel.moll@arm.com",
        "time": "Mon Mar 26 12:50:51 2012 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 26 12:50:51 2012 +1030"
      },
      "message": "params: \u003clevel\u003e_initcall-like kernel parameters\n\nThis patch adds a set of macros that can be used to declare\nkernel parameters to be parsed _before_ initcalls at a chosen\nlevel are executed.  We rename the now-unused \"flags\" field of\nstruct kernel_param as the level.  It\u0027s signed, for when we\nuse this for early params as well, in future.\n\nLinker macro collating init calls had to be modified in order\nto add additional symbols between levels that are later used\nby the init code to split the calls into blocks.\n\nSigned-off-by: Pawel Moll \u003cpawel.moll@arm.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "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": "e2aa4177264c1a459779d6e35fae22adf17a9232",
      "tree": "beba4b40aa90f6f033eb261cf5a5453c5957c87c",
      "parents": [
        "25db711df3258d125dc1209800317e5c0ef3c870",
        "fde7d9049e55ab85a390be7f415d74c9f62dd0f9"
      ],
      "author": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Mon Mar 12 09:41:28 2012 -0600"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Mon Mar 12 09:41:28 2012 -0600"
      },
      "message": "Merge tag \u0027v3.3-rc7\u0027 into gpio/next\n\nLinux 3.3-rc7.  Merged into the gpio branch to pick up gpio bugfixes already\nin mainline before queueing up move v3.4 patches\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": "6e2cf6514066cdd5a0844b34760029a5a4870318",
      "tree": "620b38b5117a8b5a225714647e8f7a4d6d3f196d",
      "parents": [
        "b3950d50cfc343b3e7dc5c69c96a61b182fd1e37"
      ],
      "author": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Fri Mar 02 15:56:03 2012 -0700"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Fri Mar 02 15:56:03 2012 -0700"
      },
      "message": "gpio: constify the data parameter to gpiochip_find()\n\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n\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": "afead38d011ab2f333d12ebb6752ed9baa53b667",
      "tree": "2812951df334a1bf6f21c82797090651d8044ce7",
      "parents": [
        "d8e5ddef21df05bc2a14d8c0e287cbf083da60a3"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Tue Feb 14 13:11:31 2012 -0800"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Mon Feb 20 12:48:47 2012 -0800"
      },
      "message": "posix_types: Introduce __kernel_[u]long_t\n\nIntroduce __kernel_[u]long_t, which allows an ABI to override all\ndefaults of type [unsigned] long.\n\nThis enables x32 and potentially other 32-bit userspace on 64-bit\nkernel ABIs.\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "8b3d1cda4f5ff0d7c2ae910ea8fd03493996912f",
      "tree": "c03be096f3e8b3205e749277d7274ec5ea95fae7",
      "parents": [
        "2759e6512e0bd9f9a84e10f59fb71195e7ff9775"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Tue Feb 07 21:09:05 2012 -0800"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Tue Feb 14 12:47:21 2012 -0800"
      },
      "message": "posix_types: Remove fd_set macros\n\n\u003casm/posix_types.h\u003e includes a set of macros that operate on file\ndescriptors.  Way long ago those were exported to user space, but\nnowadays they are #ifdef __KERNEL__.\n\nHowever, they are nothing but standard (nonatomic) bit operations, and\nwe already have optimized versions of bit operations in the kernel.\nWe can\u0027t include \u003clinux/bitops.h\u003e in \u003casm/posix_types.h\u003e but we can\nmove the definitions to \u003clinux/time.h\u003e and define them there in terms\nof standard kernel bitops.\n\n[ v2: folds the following fixes in:\n\n  a) Stray space in __FD_SET(), reported by Andrew Morton\n  b) #include \u003clinux/string.h\u003e needed for memset(), reported by Tony Luck ]\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nLink: http://lkml.kernel.org/r/1328677745-20121-22-git-send-email-hpa@zytor.com\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "34e6f9e9f9250f2b9a6da6f9df9c9293e3701c2f",
      "tree": "eb68e490975077bf8f23c4c677a06c52df8389c9",
      "parents": [
        "b4255ba3fb9275f06daffce9f458668c8bd6773e"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Tue Feb 07 21:08:46 2012 -0800"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Tue Feb 14 12:01:27 2012 -0800"
      },
      "message": "posix_types: Make it possible to override __kernel_fsid_t\n\n__kernel_fsid_t has members of type \"long\" on at least one\narchitecture (MIPS32), so make it possible to override the definition.\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nLink: http://lkml.kernel.org/r/1328677745-20121-3-git-send-email-hpa@zytor.com\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "b4255ba3fb9275f06daffce9f458668c8bd6773e",
      "tree": "d14df77e0a91dd7c0c229de142ccc78413a0957c",
      "parents": [
        "d65b4e98d7ea3038b767b70fe8be959b2913f16d"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Tue Feb 07 21:08:45 2012 -0800"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Tue Feb 14 12:01:27 2012 -0800"
      },
      "message": "posix_types: Make __kernel_[ug]id32_t default to unsigned int\n\nAll ports use unsigned int for __kernel_[ug]id32_t, but not all ports\nuse unsigned int for __kernel_[ug]id_t.  Thus, change the default for\nthe \"32\" types so ports don\u0027t need to override them.\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nLink: http://lkml.kernel.org/r/1328677745-20121-2-git-send-email-hpa@zytor.com\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    }
  ],
  "next": "b923650b84068b74b6df838aa8f9b2a350171de6"
}
