)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "b923650b84068b74b6df838aa8f9b2a350171de6",
      "tree": "d6d366da5427816210dc15c7c401e4a7910092c4",
      "parents": [
        "0a9626575400879d1d5e6bc8768188b938d7c501"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Mon Jan 30 00:20:48 2012 +0200"
      },
      "committer": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Tue Jan 31 23:19:47 2012 +0200"
      },
      "message": "lib: add NO_GENERIC_PCI_IOPORT_MAP\n\nSome architectures need to override the way\nIO port mapping is done on PCI devices.\nSupply a generic macro that calls\nioport_map, and make it possible for architectures\nto override.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "dca88ad6915b65f6e037f8c3e632fcd92a70bd88",
      "tree": "a3dcbe53310997dcc37c7d49129c48febef53992",
      "parents": [
        "fed474857efbed79cd390d0aee224231ca718f63",
        "1632b9e2a14ce9f4e08faf6c4380431d63319bd3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 14 18:03:30 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 14 18:03:30 2012 -0800"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.infradead.org/users/dhowells/linux-headers\n\n* \u0027for-next\u0027 of git://git.infradead.org/users/dhowells/linux-headers:\n  UAPI: Split trivial #if defined(__KERNEL__) \u0026\u0026 X conditionals\n  UAPI: Don\u0027t have a #elif clause in a __KERNEL__ guard in linux/soundcard.h\n  UAPI: Fix AHZ multiple inclusion when __KERNEL__ is removed\n  UAPI: Make linux/patchkey.h easier to parse\n  UAPI: Fix nested __KERNEL__ guards in video/edid.h\n  UAPI: Alter the S390 asm include guards to be recognisable by the UAPI splitter\n  UAPI: Guard linux/cuda.h\n  UAPI: Guard linux/pmu.h\n  UAPI: Guard linux/isdn_divertif.h\n  UAPI: Guard linux/sound.h\n  UAPI: Rearrange definition of HZ in asm-generic/param.h\n  UAPI: Make FRV use asm-generic/param.h\n  UAPI: Make M32R use asm-generic/param.h\n  UAPI: Make MN10300 use asm-generic/param.h\n  UAPI: elf_read_implies_exec() is a kernel-only feature - so hide from userspace\n  UAPI: Don\u0027t include linux/compat.h in sparc\u0027s asm/siginfo.h\n  UAPI: Fix arch/mips/include/asm/Kbuild to have separate header-y lines\n"
    },
    {
      "commit": "f5e4e20faa1eee3feaa0394897bbd1aca544e809",
      "tree": "047a93ff025c46ed97d3192a79f55b38fa071ca1",
      "parents": [
        "4964e0664c80680fa6b28ef91381c076a5b25c2c",
        "f408c985cefc9b1d99bc099e1208dd7df3445aa5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 14 13:25:23 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 14 13:25:23 2012 -0800"
      },
      "message": "Merge tag \u0027gpio-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6\n\n2nd round of GPIO changes for v3.3 merge window\n\n* tag \u0027gpio-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6:\n  GPIO: sa1100: implement proper gpiolib gpio_to_irq conversion\n  gpio: pl061: remove combined interrupt\n  gpio: pl061: convert to use generic irq chip\n  GPIO: add bindings for managed devices\n  ARM: realview: convert pl061 no irq to 0 instead of -1\n  gpio: pl061: convert to use 0 for no irq\n  gpio: pl061: use chained_irq_* functions in irq handler\n  GPIO/pl061: Add suspend resume capability\n  drivers/gpio/gpio-tegra.c: use devm_request_and_ioremap\n"
    },
    {
      "commit": "f21760b15dcd091e5afd38d0b97197b45f7ef2ea",
      "tree": "84dd0f9016b46630d6b67e48ff0382b78a1bc519",
      "parents": [
        "e5591307f0c1eb733d280a0b72473e01d7f88530"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Thu Jan 12 17:19:16 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:08 2012 -0800"
      },
      "message": "thp: add tlb_remove_pmd_tlb_entry\n\nWe have tlb_remove_tlb_entry to indicate a pte tlb flush entry should be\nflushed, but not a corresponding API for pmd entry.  This isn\u0027t a\nproblem so far because THP is only for x86 currently and tlb_flush()\nunder x86 will flush entire TLB.  But this is confusion and could be\nmissed if thp is ported to other arch.\n\nAlso convert tlb-\u003eneed_flush \u003d 1 to a VM_BUG_ON(!tlb-\u003eneed_flush) in\n__tlb_remove_page() as suggested by Andrea Arcangeli.  The\n__tlb_remove_page() function is supposed to be called after\ntlb_remove_xxx_tlb_entry() and we can catch any misuse.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nReviewed-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Johannes Weiner \u003cjweiner@redhat.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e343a895a9f342f239c5e3c5ffc6c0b1707e6244",
      "tree": "46c81c6ae375b1f14e209b13c8ac020842807ece",
      "parents": [
        "06792c4dde2ad143928cc95c1ba218c6269c494b",
        "193a667fba76b3df482cbf865228e26ee246e889"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 18:04:27 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 18:04:27 2012 -0800"
      },
      "message": "Merge tag \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost\n\nlib: use generic pci_iomap on all architectures\n\nMany architectures don\u0027t want to pull in iomap.c,\nso they ended up duplicating pci_iomap from that file.\nThat function isn\u0027t trivial, and we are going to modify it\nhttps://lkml.org/lkml/2011/11/14/183\nso the duplication hurts.\n\nThis reduces the scope of the problem significantly,\nby moving pci_iomap to a separate file and\nreferencing that from all architectures.\n\n* tag \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:\n  alpha: drop pci_iomap/pci_iounmap from pci-noop.c\n  mn10300: switch to GENERIC_PCI_IOMAP\n  mn10300: add missing __iomap markers\n  frv: switch to GENERIC_PCI_IOMAP\n  tile: switch to GENERIC_PCI_IOMAP\n  tile: don\u0027t panic on iomap\n  sparc: switch to GENERIC_PCI_IOMAP\n  sh: switch to GENERIC_PCI_IOMAP\n  powerpc: switch to GENERIC_PCI_IOMAP\n  parisc: switch to GENERIC_PCI_IOMAP\n  mips: switch to GENERIC_PCI_IOMAP\n  microblaze: switch to GENERIC_PCI_IOMAP\n  arm: switch to GENERIC_PCI_IOMAP\n  alpha: switch to GENERIC_PCI_IOMAP\n  lib: add GENERIC_PCI_IOMAP\n  lib: move GENERIC_IOMAP to lib/Kconfig\n\nFix up trivial conflicts due to changes nearby in arch/{m68k,score}/Kconfig\n"
    },
    {
      "commit": "06792c4dde2ad143928cc95c1ba218c6269c494b",
      "tree": "92bdd4631612c9e3d8e5f6f06839f75c5473300a",
      "parents": [
        "4690dfa8cd66c37fbe99bb8cd5baa86102110776",
        "166c0eaedfc3157dc1394c27e827add19f05fb27"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 17:39:40 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 17:39:40 2012 -0800"
      },
      "message": "Merge tag \u0027for-linux-3.3-merge-window\u0027 of git://linux-c6x.org/git/projects/linux-c6x-upstreaming\n\n* tag \u0027for-linux-3.3-merge-window\u0027 of git://linux-c6x.org/git/projects/linux-c6x-upstreaming: (29 commits)\n  C6X: replace tick_nohz_stop/restart_sched_tick calls\n  C6X: add register_cpu call\n  C6X: deal with memblock API changes\n  C6X: fix timer64 initialization\n  C6X: fix layout of EMIFA registers\n  C6X: MAINTAINERS\n  C6X: DSCR - Device State Configuration Registers\n  C6X: EMIF - External Memory Interface\n  C6X: general SoC support\n  C6X: library code\n  C6X: headers\n  C6X: ptrace support\n  C6X: loadable module support\n  C6X: cache control\n  C6X: clocks\n  C6X: build infrastructure\n  C6X: syscalls\n  C6X: interrupt handling\n  C6X: time management\n  C6X: signal management\n  ...\n"
    },
    {
      "commit": "972b2c719990f91eb3b2310d44ef8a2d38955a14",
      "tree": "b25a250ec5bec4b7b6355d214642d8b57c5cab32",
      "parents": [
        "02550d61f49266930e674286379d3601006b2893",
        "c3aa077648e147783a7a53b409578234647db853"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 12:19:57 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 12:19:57 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\n* \u0027for-linus2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (165 commits)\n  reiserfs: Properly display mount options in /proc/mounts\n  vfs: prevent remount read-only if pending removes\n  vfs: count unlinked inodes\n  vfs: protect remounting superblock read-only\n  vfs: keep list of mounts for each superblock\n  vfs: switch -\u003eshow_options() to struct dentry *\n  vfs: switch -\u003eshow_path() to struct dentry *\n  vfs: switch -\u003eshow_devname() to struct dentry *\n  vfs: switch -\u003eshow_stats to struct dentry *\n  switch security_path_chmod() to struct path *\n  vfs: prefer -\u003edentry-\u003ed_sb to -\u003emnt-\u003emnt_sb\n  vfs: trim includes a bit\n  switch mnt_namespace -\u003eroot to struct mount\n  vfs: take /proc/*/mounts and friends to fs/proc_namespace.c\n  vfs: opencode mntget() mnt_set_mountpoint()\n  vfs: spread struct mount - remaining argument of next_mnt()\n  vfs: move fsnotify junk to struct mount\n  vfs: move mnt_devname\n  vfs: move mnt_list to struct mount\n  vfs: switch pnode.h macros to struct mount *\n  ...\n"
    },
    {
      "commit": "fbce1c234feedb5270468aa4b1770c1cab58a960",
      "tree": "7391d7bcce50eab43c750c4055b056ab1892d6b2",
      "parents": [
        "7affca3537d74365128e477b40c529d6f2fe86c8",
        "d0ad5e89256c351ddd40167152c24a88efcb0f6d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 07 12:15:36 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 07 12:15:36 2012 -0800"
      },
      "message": "Merge tag \u0027gpio-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6\n\nChanges queued in gpio/next for the start of the 3.3 merge window\n\n* tag \u0027gpio-for-linus-20120104\u0027 of git://git.secretlab.ca/git/linux-2.6:\n  gpio: Add decode of WM8994 GPIO configuration\n  gpio: Convert GPIO drivers to module_platform_driver\n  gpio: Fix typo in comment in Samsung driver\n  gpio: Explicitly index samsung_gpio_cfgs\n  gpio: Add Linus Walleij as gpio co-maintainer\n  of: Add device tree selftests\n  of: create of_phandle_args to simplify return of phandle parsing data\n  gpio/powerpc: Eliminate duplication of of_get_named_gpio_flags()\n  gpio/microblaze: Eliminate duplication of of_get_named_gpio_flags()\n  gpiolib: output basic details and consolidate gpio device drivers\n  pch_gpio: Change company name OKI SEMICONDUCTOR to LAPIS Semiconductor\n  pch_gpio: Support new device LAPIS Semiconductor ML7831 IOH\n  spi/pl022: make the chip deselect handling thread safe\n  spi/pl022: add support for pm_runtime autosuspend\n  spi/pl022: disable the PL022 block when unused\n  spi/pl022: move device disable to workqueue thread\n  spi/pl022: skip default configuration before suspending\n  spi/pl022: fix build warnings\n  spi/pl022: only enable RX interrupts when TX is complete\n"
    },
    {
      "commit": "9753dfe19a85e7e45a34a56f4cb2048bb4f50e27",
      "tree": "c017a1b4a70b8447c71b01d8b320e071546b5c9d",
      "parents": [
        "edf7c8148ec40c0fd27c0ef3f688defcc65e3913",
        "9f42f126154786e6e76df513004800c8c633f020"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 17:22:09 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 17:22:09 2012 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1958 commits)\n  net: pack skb_shared_info more efficiently\n  net_sched: red: split red_parms into parms and vars\n  net_sched: sfq: extend limits\n  cnic: Improve error recovery on bnx2x devices\n  cnic: Re-init dev-\u003estats_addr after chip reset\n  net_sched: Bug in netem reordering\n  bna: fix sparse warnings/errors\n  bna: make ethtool_ops and strings const\n  xgmac: cleanups\n  net: make ethtool_ops const\n  vmxnet3\" make ethtool ops const\n  xen-netback: make ops structs const\n  virtio_net: Pass gfp flags when allocating rx buffers.\n  ixgbe: FCoE: Add support for ndo_get_fcoe_hbainfo() call\n  netdev: FCoE: Add new ndo_get_fcoe_hbainfo() call\n  igb: reset PHY after recovering from PHY power down\n  igb: add basic runtime PM support\n  igb: Add support for byte queue limits.\n  e1000: cleanup CE4100 MDIO registers access\n  e1000: unmap ce4100_gbe_mdio_base_virt in e1000_remove\n  ...\n"
    },
    {
      "commit": "0db49b72bce26341274b74fd968501489a361ae3",
      "tree": "cdb076827aefb38d719d4c42f8ef291c36072fa8",
      "parents": [
        "35b740e4662ef386f0c60e1b60aaf5b44db9914c",
        "1ac9bc6943edf7d181b4b1cc734981350d4f6bae"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 08:33:28 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 08:44:54 2012 -0800"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (40 commits)\n  sched/tracing: Add a new tracepoint for sleeptime\n  sched: Disable scheduler warnings during oopses\n  sched: Fix cgroup movement of waking process\n  sched: Fix cgroup movement of newly created process\n  sched: Fix cgroup movement of forking process\n  sched: Remove cfs bandwidth period check in tg_set_cfs_period()\n  sched: Fix load-balance lock-breaking\n  sched: Replace all_pinned with a generic flags field\n  sched: Only queue remote wakeups when crossing cache boundaries\n  sched: Add missing rcu_dereference() around -\u003ereal_parent usage\n  [S390] fix cputime overflow in uptime_proc_show\n  [S390] cputime: add sparse checking and cleanup\n  sched: Mark parent and real_parent as __rcu\n  sched, nohz: Fix missing RCU read lock\n  sched, nohz: Set the NOHZ_BALANCE_KICK flag for idle load balancer\n  sched, nohz: Fix the idle cpu check in nohz_idle_balance\n  sched: Use jump_labels for sched_feat\n  sched/accounting: Fix parameter passing in task_group_account_field\n  sched/accounting: Fix user/system tick double accounting\n  sched/accounting: Re-use scheduler statistics for the root cgroup\n  ...\n\nFix up conflicts in\n - arch/ia64/include/asm/cputime.h, include/asm-generic/cputime.h\n\tusecs_to_cputime64() vs the sparse cleanups\n - kernel/sched/fair.c, kernel/time/tick-sched.c\n\tscheduler changes in multiple branches\n"
    },
    {
      "commit": "1a0703ede4493bd74f9c6b53f782b749e175a88e",
      "tree": "ee86f6148f53af7ddcc329a28f45d7679642780d",
      "parents": [
        "e198a8de14d4bb122b821432fadb28eedd4b4507"
      ],
      "author": {
        "name": "John Crispin",
        "email": "blogic@openwrt.org",
        "time": "Tue Dec 20 21:40:21 2011 +0100"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Wed Jan 04 11:37:42 2012 -0700"
      },
      "message": "GPIO: add bindings for managed devices\n\nThis patch adds 2 functions that allow managed devices to request GPIOs.\nThese GPIOs will then be managed by drivers/base/devres.c.\n\nSigned-off-by: John Crispin \u003cblogic@openwrt.org\u003e\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "0583fcc96bb117763c0fa74c123573c0112dec65",
      "tree": "5d8a62e922c34e6e6bc0836b40f5b59f69266766",
      "parents": [
        "1bc94226d5c642b78cf6b2e3e843ef24eb740df0"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 17:04:15 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:55:17 2012 -0500"
      },
      "message": "consolidate umode_t declarations\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7f8e3234c5f7fbdb06be050c8a1907e9c36d7c61",
      "tree": "d6e9edb2087fa4a97b2cc3d585a0189672a14cf4",
      "parents": [
        "8ade06c616b34b4237c0ed77d1ff0ce04ad7d056",
        "89307babf966165171547f105e2253dec261cfa5"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 30 13:04:14 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 30 13:04:14 2011 -0500"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n"
    },
    {
      "commit": "34845636a184f3be91a531098192592cbe6db587",
      "tree": "1c216e37f536a71dae94e41db3f1e059f9ac70a5",
      "parents": [
        "e26a51148f3ebd859bca8bf2e0f212839b447f62"
      ],
      "author": {
        "name": "Andreas Schwab",
        "email": "schwab@linux-m68k.org",
        "time": "Wed Dec 28 15:57:15 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 29 16:31:57 2011 -0800"
      },
      "message": "procfs: do not confuse jiffies with cputime64_t\n\nCommit 2a95ea6c0d129b4 (\"procfs: do not overflow get_{idle,iowait}_time\nfor nohz\") did not take into account that one some architectures jiffies\nand cputime use different units.\n\nThis causes get_idle_time() to return numbers in the wrong units, making\nthe idle time fields in /proc/stat wrong.\n\nInstead of converting the usec value returned by\nget_cpu_{idle,iowait}_time_us to units of jiffies, use the new function\nusecs_to_cputime64 to convert it to the correct unit of cputime64_t.\n\nSigned-off-by: Andreas Schwab \u003cschwab@linux-m68k.org\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: \"Artem S. Tashkinov\" \u003ct.artem@mailcity.com\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "abb434cb0539fb355c1c921f8fd761efbbac3462",
      "tree": "24a7d99ec161f8fd4dc9ff03c9c4cc93be883ce6",
      "parents": [
        "2494654d4890316e7340fb8b3458daad0474a1b9",
        "6350323ad8def2ac00d77cdee3b79c9b9fba75c4"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 23 17:13:56 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 23 17:13:56 2011 -0500"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nConflicts:\n\tnet/bluetooth/l2cap_core.c\n\nJust two overlapping changes, one added an initialization of\na local variable, and another change added a new local variable.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "648616343cdbe904c585a6c12e323d3b3c72e46f",
      "tree": "514bce1b52663db4ab5662b637c764cf3c2ed1eb",
      "parents": [
        "55b02d2f4445ad625213817a1736bf2884d32547"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Thu Dec 15 14:56:09 2011 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Thu Dec 15 14:56:19 2011 +0100"
      },
      "message": "[S390] cputime: add sparse checking and cleanup\n\nMake cputime_t and cputime64_t nocast to enable sparse checking to\ndetect incorrect use of cputime. Drop the cputime macros for simple\nscalar operations. The conversion macros are still needed.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "3d7f1dc195167efcb269e83055672d5c0a6bd650",
      "tree": "8e2044ae68e03c75f97fcef2c955562539673c10",
      "parents": [
        "cb0d93505f6e9d2db87a50f402ec022517ec44c8"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Dec 13 09:26:45 2011 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Dec 13 09:26:45 2011 +0000"
      },
      "message": "UAPI: Rearrange definition of HZ in asm-generic/param.h\n\nRearrange the definition of HZ in asm-generic/param.h so that the user-specific\nis declared before the kernel-specific one.  We then explicitly #undef the\nuserspace HZ value and replace it with the kernel HZ value.\n\nThis allows the userspace params to be excised into a separate header as part\nof the UAPI header split.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "15c9a0acc3f7873db4b7d35d016729b2dc229b49",
      "tree": "cfd9d6dd645d8116709521001e90dd75ffc19992",
      "parents": [
        "1a2d397a6eb5cf40c382d9e3d4bc04aaeb025336"
      ],
      "author": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Mon Dec 12 09:25:57 2011 -0700"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Mon Dec 12 13:40:16 2011 -0700"
      },
      "message": "of: create of_phandle_args to simplify return of phandle parsing data\n\nof_parse_phandle_with_args() needs to return quite a bit of data.  Rather\nthan making each datum a separate **out_ argument, this patch creates\nstruct of_phandle_args to contain all the returned data and reworks the\nuser of the function.  This patch also enables of_parse_phandle_with_args()\nto return the device node pointer for the phandle node.\n\nThis patch also ends up being fairly major surgery to\nof_parse_handle_with_args().  The existing structure didn\u0027t work well\nwhen extending to use of_phandle_args, and I discovered bugs during testing.\nI also took the opportunity to rename the function to be like the\nexisting of_parse_phandle().\n\nv2: - moved declaration of of_phandle_args to fix compile on non-DT builds\n    - fixed incorrect index in example usage\n    - fixed incorrect return code handling for empty entries\n\nReviewed-by: Shawn Guo \u003cshawn.guo@freescale.com\u003e\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "1a2d397a6eb5cf40c382d9e3d4bc04aaeb025336",
      "tree": "de928bf30efd84464d173359ae29f6a48b545b31",
      "parents": [
        "fe9f68449a507e03d41bee4500456bbfa22095d3"
      ],
      "author": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Mon Dec 12 09:25:57 2011 -0700"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Mon Dec 12 13:40:16 2011 -0700"
      },
      "message": "gpio/powerpc: Eliminate duplication of of_get_named_gpio_flags()\n\nA large chunk of qe_pin_request() is unnecessarily cut-and-paste\ndirectly from of_get_named_gpio_flags().  This patch cuts out the\nduplicate code and replaces it with a call to of_get_gpio().\n\nv2: fixed compile error due to missing gpio_to_chip()\n\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Kumar Gala \u003cgalak@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "a67ba43d30bf8c1cfdc2615439455302d2408453",
      "tree": "5f8e653549c3c5ab7a92dd2aa6196cd57c9b954a",
      "parents": [
        "c2851a9b1caa420c2cdbd517617166990e3723c0"
      ],
      "author": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@tilera.com",
        "time": "Thu Dec 01 12:54:31 2011 -0500"
      },
      "committer": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@tilera.com",
        "time": "Sat Dec 03 15:31:48 2011 -0500"
      },
      "message": "asm-generic/unistd.h: support new process_vm_{readv,write} syscalls\n\nAlso prototype the \"compat\" functions so they can be referenced\nfrom C code.\n\nSigned-off-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "66eab4df288aaee75938ae99877c4f759fc6d56c",
      "tree": "0b663bfe2d464a55c2a85b27140a53b32f261542",
      "parents": [
        "4673ca8eb3690832e76371371955a8b02e1f59d4"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Thu Nov 24 20:45:20 2011 +0200"
      },
      "committer": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Mon Nov 28 21:12:42 2011 +0200"
      },
      "message": "lib: add GENERIC_PCI_IOMAP\n\nMany architectures want a generic pci_iomap but\nnot the rest of iomap.c. Split that to a separate .c\nfile and add a new config symbol. select automatically\nby GENERIC_IOMAP.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\n"
    },
    {
      "commit": "e11c259f745889b55bc5596ca78271f2f5cf08d2",
      "tree": "5025f0bf9093e84d0643beb9097249c176dbbea7",
      "parents": [
        "8d26784cf0d04c1238e906efdd5de76439cb0a1e",
        "b4487c2d0edaf1332d7a9f11b5661044955ef5e2"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Nov 17 13:11:43 2011 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Nov 17 13:11:43 2011 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem\n\nConflicts:\n\tinclude/net/bluetooth/bluetooth.h\n"
    },
    {
      "commit": "6e3e939f3b1bf8534b32ad09ff199d88800835a0",
      "tree": "78ec0638efbade2fdb0bebb7bad71410ded2e6c6",
      "parents": [
        "4fdbff0770bea059621bc4906fb7c7f5879f3ae1"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Wed Nov 09 10:15:42 2011 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 09 16:01:02 2011 -0500"
      },
      "message": "net: add wireless TX status socket option\n\nThe 802.1X EAPOL handshake hostapd does requires\nknowing whether the frame was ack\u0027ed by the peer.\nCurrently, we fudge this pretty badly by not even\ntransmitting the frame as a normal data frame but\ninjecting it with radiotap and getting the status\nout of radiotap monitor as well. This is rather\ncomplex, confuses users (mon.wlan0 presence) and\ndoesn\u0027t work with all hardware.\n\nTo get rid of that hack, introduce a real wifi TX\nstatus option for data frame transmissions.\n\nThis works similar to the existing TX timestamping\nin that it reflects the SKB back to the socket\u0027s\nerror queue with a SCM_WIFI_STATUS cmsg that has\nan int indicating ACK status (0/1).\n\nSince it is possible that at some point we will\nwant to have TX timestamping and wifi status in a\nsingle errqueue SKB (there\u0027s little point in not\ndoing that), redefine SO_EE_ORIGIN_TIMESTAMPING\nto SO_EE_ORIGIN_TXSTATUS which can collect more\nthan just the timestamp; keep the old constant\nas an alias of course. Currently the internal APIs\ndon\u0027t make that possible, but it wouldn\u0027t be hard\nto split them up in a way that makes it possible.\n\nThanks to Neil Horman for helping me figure out\nthe functions that add the control messages.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "c87d5d594736dd8b56df67e31846c7d7b8c41a8f",
      "tree": "a4496b74b932e55b544d040af2668e68abcb1e56",
      "parents": [
        "094803e0aab3fe75bbf8202a8f4b5280eaade375",
        "4e29198e1cd7728c30c96a8483a6068c71b34e4e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 01 07:48:13 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 01 07:48:13 2011 -0700"
      },
      "message": "Merge Qualcom Hexagon architecture\n\nThis is the fifth version of the patchset (with one tiny whitespace fix)\nto the Linux kernel to support the Qualcomm Hexagon architecture.\n\nBetween now and the next pull requests, Richard Kuo should have his key\nsigned, etc., and should be back on kernel.org.  In the meantime, this\ngot merged as a emailed patch-series.\n\n* Hexagon: (36 commits)\n  Add extra arch overrides to asm-generic/checksum.h\n  Hexagon: Add self to MAINTAINERS\n  Hexagon: Add basic stacktrace functionality for Hexagon architecture.\n  Hexagon: Add configuration and makefiles for the Hexagon architecture.\n  Hexagon: Comet platform support\n  Hexagon: kgdb support files\n  Hexagon: Add page-fault support.\n  Hexagon: Add page table header files \u0026 etc.\n  Hexagon: Add ioremap support\n  Hexagon: Provide DMA implementation\n  Hexagon: Implement basic TLB management routines for Hexagon.\n  Hexagon: Implement basic cache-flush support\n  Hexagon: Provide basic implementation and/or stubs for I/O routines.\n  Hexagon: Add user access functions\n  Hexagon: Add locking types and functions\n  Hexagon: Add SMP support\n  Hexagon: Provide basic debugging and system trap support.\n  Hexagon: Add ptrace support\n  Hexagon: Add time and timer functions\n  Hexagon: Add interrupts\n  ...\n"
    },
    {
      "commit": "4e29198e1cd7728c30c96a8483a6068c71b34e4e",
      "tree": "780c0bb634c2161a89616eeb84d140d6ec641d3d",
      "parents": [
        "4f4567cf4ff586e318aa1bc586a69570d64b162a"
      ],
      "author": {
        "name": "Linas Vepstas",
        "email": "linas@codeaurora.org",
        "time": "Mon Oct 31 18:56:59 2011 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 01 07:34:21 2011 -0700"
      },
      "message": "Add extra arch overrides to asm-generic/checksum.h\n\nThere are plausible reasons for architectures to provide their own\nversions of csum_partial_copy_nocheck and csum_tcpudp_magic.\nBy protecting these, the architecture can still re-use the\nasm-generic checksum.h, instead of copying it.\n\nSigned-off-by: Linas Vepstas \u003clinas@codeaurora.org\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Richard Kuo \u003crkuo@codeaurora.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dd472da380c3819740d740cfd70b7f8e700e834b",
      "tree": "8d6dd638268cd46dae5fb8bf1c18f47f13db3031",
      "parents": [
        "43afdf508386342d714f6911c1976f934b520cb0"
      ],
      "author": {
        "name": "Richard Kuo",
        "email": "rkuo@codeaurora.org",
        "time": "Mon Oct 31 18:47:33 2011 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 01 07:34:20 2011 -0700"
      },
      "message": "Hexagon: Add locking types and functions\n\nSigned-off-by: Richard Kuo \u003crkuo@codeaurora.org\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b9075fa968a0a4347aef35e235e2995c0e57dddd",
      "tree": "cf9f9716784e790d8a43339653256d9cf9178ff3",
      "parents": [
        "ae29bc92da01a2e9d278a9a58c3b307d41cc0254"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Oct 31 17:11:33 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:54 2011 -0700"
      },
      "message": "treewide: use __printf not __attribute__((format(printf,...)))\n\nStandardize the style for compiler based printf format verification.\nStandardized the location of __printf too.\n\nDone via script and a little typing.\n\n$ grep -rPl --include\u003d*.[ch] -w \"__attribute__\" * | \\\n  grep -vP \"^(tools|scripts|include/linux/compiler-gcc.h)\" | \\\n  xargs perl -n -i -e \u0027local $/; while (\u003c\u003e) { s/\\b__attribute__\\s*\\(\\s*\\(\\s*format\\s*\\(\\s*printf\\s*,\\s*(.+)\\s*,\\s*(.+)\\s*\\)\\s*\\)\\s*\\)/__printf($1, $2)/g ; print; }\u0027\n\n[akpm@linux-foundation.org: revert arch bits]\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: \"Kirill A. Shutemov\" \u003ckirill@shutemov.name\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "06d5e032adcbc7d50c606a1396f00e2474e4213e",
      "tree": "c9c0134ecc8d26f43749b2108325cd8e1bcaadfd",
      "parents": [
        "37a1c49a91ad55f917a399ef2174b5ebda4283f9"
      ],
      "author": {
        "name": "Sonic Zhang",
        "email": "sonic.zhang@analog.com",
        "time": "Mon Oct 31 17:08:31 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:48 2011 -0700"
      },
      "message": "include/asm-generic/page.h: calculate virt_to_page and page_to_virt via predefined macro\n\nOn NOMMU architectures, if physical memory doesn\u0027t start from 0,\nARCH_PFN_OFFSET is defined to generate page index in mem_map array.\nBecause virtual address is equal to physical address, PAGE_OFFSET is\nalways 0.  virt_to_page and page_to_virt should not index page by\nPAGE_OFFSET directly.\n\nSigned-off-by: Sonic Zhang \u003csonic.zhang@analog.com\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "07a723097cd31e9c2def69ac4d42834a16f79219",
      "tree": "122c4c9e567dfe453fa4a948a648f0f26e381556",
      "parents": [
        "1a4ceab195e66bce9c1638fdded6d92988100ba4"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Oct 31 17:06:28 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:44 2011 -0700"
      },
      "message": "dma-mapping: fix sync_single_range_* DMA debugging\n\nCommit 5fd75a7850b5 (dma-mapping: remove unnecessary sync_single_range_*\nin dma_map_ops) unified not only the dma_map_ops but also the\ncorresponding debug_dma_sync_* calls.  This led to spurious WARN()ings\nlike the following because the DMA debug code was no longer able to detect\nthe DMA buffer base address without the separate offset parameter:\n\nWARNING: at lib/dma-debug.c:911 check_sync+0xce/0x446()\nfirewire_ohci 0000:04:00.0: DMA-API: device driver tries to sync DMA memory it has not allocated [device address\u003d0x00000000cedaa400] [size\u003d1024 bytes]\nCall Trace: ...\n [\u003cffffffff811326a5\u003e] check_sync+0xce/0x446\n [\u003cffffffff81132ad9\u003e] debug_dma_sync_single_for_device+0x39/0x3b\n [\u003cffffffffa01d6e6a\u003e] ohci_queue_iso+0x4f3/0x77d [firewire_ohci]\n ...\n\nTo fix this, unshare the sync_single_* and sync_single_range_*\nimplementations so that we are able to call the correct debug_dma_sync_*\nfunctions.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nCc: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "41684f67af75b04152a1714e1a5375dfb00ee3da",
      "tree": "3b0f51dd8103a4fd40ebb6cefeece7579e348cde",
      "parents": [
        "ec7ae517537ae5c7b0b2cd7f562dfa3e7a05b954",
        "d92ef29a6fa971d9e314e412cd9c09757906411a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 29 07:27:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 29 07:27:45 2011 -0700"
      },
      "message": "Merge branch \u0027gpio/next\u0027 of git://git.secretlab.ca/git/linux-2.6\n\n* \u0027gpio/next\u0027 of git://git.secretlab.ca/git/linux-2.6:\n  h8300: Move gpio.h to gpio-internal.h\n  gpio: pl061: add DT binding support\n  gpio: fix build error in include/asm-generic/gpio.h\n  gpiolib: Ensure struct gpio is always defined\n  irq: Add EXPORT_SYMBOL_GPL to function of irq generic-chip\n  gpio-ml-ioh: Use NUMA_NO_NODE not GFP_KERNEL\n  gpio-pch: Use NUMA_NO_NODE not GFP_KERNEL\n  gpio: langwell: ensure alternate function is cleared\n  gpio-pch: Support interrupt function\n  gpio-pch: Save register value in suspend()\n  gpio-pch: modify gpio_nums and mask\n  gpio-pch: support ML7223 IOH n-Bus\n  gpio-pch: add spinlock in suspend/resume processing\n  gpio-pch: Delete invalid \"restore\" code in suspend()\n  gpio-ml-ioh: Fix suspend/resume issue\n  gpio-ml-ioh: Support interrupt function\n  gpio-ml-ioh: Delete unnecessary code\n  gpio/mxc: add chained_irq_enter/exit() to mx3_gpio_irq_handler()\n  gpio/nomadik: use genirq core to track enablement\n  gpio/nomadik: disable clocks when unused\n"
    },
    {
      "commit": "eb9ae7f2a38135761496d317c08c87f38c7cafe3",
      "tree": "d85b542a849aeb8381820f6dbba18dedd5e1f6eb",
      "parents": [
        "feb836992437c9b8b53988da30880e0e6e93ac8b"
      ],
      "author": {
        "name": "Hamo",
        "email": "hamo.by@gmail.com",
        "time": "Fri Oct 21 09:38:32 2011 +0800"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Wed Oct 26 23:15:28 2011 +0200"
      },
      "message": "gpio: fix build error in include/asm-generic/gpio.h\n\nShould call the platform-specific __gpio_{get,set}_value\ninstead of generic gpio_{get,set}_value\n\nSigned-off-by: Yang Bai \u003chamo.by@gmail.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "39adff5f69d6849ca22353a88058c9f8630528c0",
      "tree": "b0c2d2de77ebc5c97fd19c29b81eeb03549553f8",
      "parents": [
        "8a4a8918ed6e4a361f4df19f199bbc2d0a89a46c",
        "e35f95b36e43f67a6f806172555a152c11ea0a78"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 26 17:15:03 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 26 17:15:03 2011 +0200"
      },
      "message": "Merge branch \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (23 commits)\n  time, s390: Get rid of compile warning\n  dw_apb_timer: constify clocksource name\n  time: Cleanup old CONFIG_GENERIC_TIME references that snuck in\n  time: Change jiffies_to_clock_t() argument type to unsigned long\n  alarmtimers: Fix error handling\n  clocksource: Make watchdog reset lockless\n  posix-cpu-timers: Cure SMP accounting oddities\n  s390: Use direct ktime path for s390 clockevent device\n  clockevents: Add direct ktime programming function\n  clockevents: Make minimum delay adjustments configurable\n  nohz: Remove \"Switched to NOHz mode\" debugging messages\n  proc: Consider NO_HZ when printing idle and iowait times\n  nohz: Make idle/iowait counter update conditional\n  nohz: Fix update_ts_time_stat idle accounting\n  cputime: Clean up cputime_to_usecs and usecs_to_cputime macros\n  alarmtimers: Rework RTC device selection using class interface\n  alarmtimers: Add try_to_cancel functionality\n  alarmtimers: Add more refined alarm state tracking\n  alarmtimers: Remove period from alarm structure\n  alarmtimers: Remove interval cap limit hack\n  ...\n"
    }
  ],
  "next": "1442d1678ca7e53574fd403ba7bee6f4125d920c"
}
