)]}'
{
  "log": [
    {
      "commit": "d7a4b414eed51f1653bb05ebe84122bf9a7ae18b",
      "tree": "bd6603a0c27de4c138a1767871897e9cd3e1a1d2",
      "parents": [
        "1f0ab40976460bc4673fa204ce917a725185d8f2",
        "a724eada8c2a7b62463b73ccf73fd0bb6e928aeb"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Sep 23 23:08:43 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Sep 23 23:08:43 2009 +0200"
      },
      "message": "Merge commit \u0027linus/master\u0027 into tracing/kprobes\n\nConflicts:\n\tkernel/trace/Makefile\n\tkernel/trace/trace.h\n\tkernel/trace/trace_event_types.h\n\tkernel/trace/trace_export.c\n\nMerge reason:\n\tSync with latest significant tracing core changes.\n"
    },
    {
      "commit": "1b9894f342a39601bb0420b7b8c7e445670c1b51",
      "tree": "09b063187a7b09690c08dac73d3bd49a72f5dbe8",
      "parents": [
        "7043078630bbc9eb908a56e08077c5abe7f2d311"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Mon Sep 21 11:12:03 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 11:24:57 2009 -0700"
      },
      "message": "serial core: fix new kernel-doc warnings\n\nFix new kernel-doc warnings in serial_core.[hc] files.\n\n  Warning(include/linux/serial_core.h:485): No description found for parameter \u0027uport\u0027\n  Warning(include/linux/serial_core.h:485): Excess function parameter \u0027port\u0027 description in \u0027uart_handle_dcd_change\u0027\n  Warning(include/linux/serial_core.h:511): No description found for parameter \u0027uport\u0027\n  Warning(include/linux/serial_core.h:511): Excess function parameter \u0027port\u0027 description in \u0027uart_handle_cts_change\u0027\n  Warning(drivers/serial/serial_core.c:2437): No description found for parameter \u0027uport\u0027\n  Warning(drivers/serial/serial_core.c:2437): Excess function parameter \u0027port\u0027 description in \u0027uart_add_one_port\u0027\n  Warning(drivers/serial/serial_core.c:2509): No description found for parameter \u0027uport\u0027\n  Warning(drivers/serial/serial_core.c:2509): Excess function parameter \u0027port\u0027 description in \u0027uart_remove_one_port\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "433c24ed7ff378b22c4d6531a4ce1ffc62642395",
      "tree": "d71181129b05d923100d160ca000f6771fc0ac85",
      "parents": [
        "85afd82780df133f03185aec7943ee3e0ed56a7b",
        "f056878332a91ed984a116bad4e7d49aefff9e6e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 10:11:08 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 10:11:08 2009 -0700"
      },
      "message": "Merge git://git.infradead.org/battery-2.6\n\n* git://git.infradead.org/battery-2.6:\n  power_supply: Add driver for the PMU on WM831x PMICs\n  ds2760_battery: Fix integer overflow for time_to_empty_now\n  wm97xx_battery: Convert to dev_pm_ops\n  wm97xx_battery: Use irq to detect charger state\n  wm97xx_battery: Use platform_data\n  wm97xx-core: Pass platform_data to battery\n  ds2760_battery: implement set_charged() feature\n  power_supply: get_by_name and set_charged functionality\n  power_supply: EXPORT_SYMBOL cleanups\n  ds2760_battery: add current_accum module parameter\n  ds2760_battery: handle full_active_uAh \u003d\u003d 0 case correctly\n  ds2760_battery: add rated_capacity module parameter\n  ds2760_battery: export more features\n  ds2760_battery: delay power supply registration\n  wm8350_power: Implement charge type property\n  power_supply: Add a charge_type property, and use it for olpc driver\n  olpc_battery: Add an \u0027error\u0027 sysfs device that displays raw errors\n  Revert \"power: remove POWER_SUPPLY_PROP_CAPACITY_LEVEL\"\n"
    },
    {
      "commit": "a7c367b95a9d8e65e0f0e7da31f700a556794efb",
      "tree": "5b1bb202801e29e3237381aa7aad5aa288378d5b",
      "parents": [
        "15f964bed054821d6d940d3752508c5f96a9ffd3",
        "e1070211f7327a1f197d535aa886f721a241c32f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 10:07:49 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 10:07:49 2009 -0700"
      },
      "message": "Merge git://git.infradead.org/mtd-2.6\n\n* git://git.infradead.org/mtd-2.6: (58 commits)\n  mtd: jedec_probe: add PSD4256G6V id\n  mtd: OneNand support for Nomadik 8815 SoC (on NHK8815 board)\n  mtd: nand: driver for Nomadik 8815 SoC (on NHK8815 board)\n  m25p80: Add Spansion S25FL129P serial flashes\n  jffs2: Use SLAB_HWCACHE_ALIGN for jffs2_raw_{dirent,inode} slabs\n  mtd: sh_flctl: register sh_flctl using platform_driver_probe()\n  mtd: nand: txx9ndfmc: transfer 512 byte at a time if possible\n  mtd: nand: fix tmio_nand ecc correction\n  mtd: nand: add __nand_correct_data helper function\n  mtd: cfi_cmdset_0002: add 0xFF intolerance for M29W128G\n  mtd: inftl: fix fold chain block number\n  mtd: jedec: fix compilation problem with I28F640C3B definition\n  mtd: nand: fix ECC Correction bug for SMC ordering for NDFC driver\n  mtd: ofpart: Check availability of reg property instead of name property\n  driver/Makefile: Initialize \"mtd\" and \"spi\" before \"net\"\n  mtd: omap: adding DMA mode support in nand prefetch/post-write\n  mtd: omap: add support for nand prefetch-read and post-write\n  mtd: add nand support for w90p910 (v2)\n  mtd: maps: add mtd-ram support to physmap_of\n  mtd: pxa3xx_nand: add single-bit error corrections reporting\n  ...\n"
    },
    {
      "commit": "15f964bed054821d6d940d3752508c5f96a9ffd3",
      "tree": "36778917886ab5eeffab356f21827e7ba8a06710",
      "parents": [
        "b09a75fc5e77b7c58d097236f89b1ff72dcdb562",
        "7c329288d72e025db4feac65f0fed95fb3e3ef1c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 10:07:24 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 10:07:24 2009 -0700"
      },
      "message": "Merge branch \u0027vgaarb-fix\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6\n\n* \u0027vgaarb-fix\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:\n  vgaarb: make client interface config invariant.\n"
    },
    {
      "commit": "b09a75fc5e77b7c58d097236f89b1ff72dcdb562",
      "tree": "8f818f1b3e44d9bc822b13dc7c368077981dd6ea",
      "parents": [
        "cf63ff5fa4399e215cc5ef322ccd8bddfff9afa6",
        "b94996c99c8befed9cbbb8804a4625e203913318"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 10:06:10 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 10:06:10 2009 -0700"
      },
      "message": "Merge git://git.infradead.org/iommu-2.6\n\n* git://git.infradead.org/iommu-2.6: (23 commits)\n  intel-iommu: Disable PMRs after we enable translation, not before\n  intel-iommu: Kill DMAR_BROKEN_GFX_WA option.\n  intel-iommu: Fix integer wrap on 32 bit kernels\n  intel-iommu: Fix integer overflow in dma_pte_{clear_range,free_pagetable}()\n  intel-iommu: Limit DOMAIN_MAX_PFN to fit in an \u0027unsigned long\u0027\n  intel-iommu: Fix kernel hang if interrupt remapping disabled in BIOS\n  intel-iommu: Disallow interrupt remapping if not all ioapics covered\n  intel-iommu: include linux/dmi.h to use dmi_ routines\n  pci/dmar: correct off-by-one error in dmar_fault()\n  intel-iommu: Cope with yet another BIOS screwup causing crashes\n  intel-iommu: iommu init error path bug fixes\n  intel-iommu: Mark functions with __init\n  USB: Work around BIOS bugs by quiescing USB controllers earlier\n  ia64: IOMMU passthrough mode shouldn\u0027t trigger swiotlb init\n  intel-iommu: make domain_add_dev_info() call domain_context_mapping()\n  intel-iommu: Unify hardware and software passthrough support\n  intel-iommu: Cope with broken HP DC7900 BIOS\n  iommu\u003dpt is a valid early param\n  intel-iommu: double kfree()\n  intel-iommu: Kill pointless intel_unmap_single() function\n  ...\n\nFixed up trivial include lines conflict in drivers/pci/intel-iommu.c\n"
    },
    {
      "commit": "fd8b327ee46593ccc5230bfd053287fbf7c38a69",
      "tree": "f4927e5d71ce5004f0d8ccca7f8de57851280841",
      "parents": [
        "0c9af2807490cc5f4d2833799482c391a3a3fee4",
        "63209a71e8e7727f52208d17bb7180cd392edcfb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 10:04:37 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 10:04:37 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lrg/voltage-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lrg/voltage-2.6: (41 commits)\n  regulator: Add some brief design documentation\n  regulator: fix voltage range in da9034 ldo12\n  regulator/driver: be more specific in nanodoc for is_enabled\n  regulator/lp3971: drop unnecessary initialization\n  regulator: drop \u0027default n\u0027\n  regulator: fix typos\n  regulator: fix calculation of voltage range in da9034_set_ldo12_voltage()\n  regulator: update a filename in documentation\n  drivers/regulator/Kconfig: fix typo (s/Usersapce/Userspace/) in REGULATOR_USERSPACE_CONSUMER description\n  REGULATOR Handle positive returncode from enable\n  regulator: tps650xx - build fixes for x86_64\n  Fix some regulator documentation\n  Regulator: Adding TPS65023 and TPS6507x in Kconfig and Makefile\n  Regulator: Add TPS6507x regulator driver\n  Regulator: Add TPS65023 regulator driver\n  regulator: userspace: use sysfs_create_group\n  regulator: Add GPIO enable control to fixed voltage regulator driver\n  Regulator: Implement list_voltage for pcf50633 regulator driver.\n  regulator: regulator_enable() permission checking\n  regulator: Push locking for regulator_is_enabled() out\n  ...\n"
    },
    {
      "commit": "31bbb9b58d1e8ebcf2b28c95c2250a9f8e31e397",
      "tree": "6bb0c0490d66d32eca43e73abb28d8b3ab0e7b91",
      "parents": [
        "ff830b8e5f999d1ccbd0282a666520f0b557daa4",
        "3f0a525ebf4b8ef041a332bbe4a73aee94bb064b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 09:46:15 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 09:46:15 2009 -0700"
      },
      "message": "Merge branch \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  itimers: Add tracepoints for itimer\n  hrtimer: Add tracepoint for hrtimers\n  timers: Add tracepoints for timer_list timers\n  cputime: Optimize jiffies_to_cputime(1)\n  itimers: Simplify arm_timer() code a bit\n  itimers: Fix periodic tics precision\n  itimers: Merge ITIMER_VIRT and ITIMER_PROF\n\nTrivial header file include conflicts in kernel/fork.c\n"
    },
    {
      "commit": "ff830b8e5f999d1ccbd0282a666520f0b557daa4",
      "tree": "5979aba5ed48c93d658a208f3a1f714e9e1e8b67",
      "parents": [
        "746942d06acdb4dd78d16baa5f3728a48a033bdd",
        "625f0850a8e27b6a8d6fdb95056f35bc22d92b55"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 09:43:22 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 09:43:22 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:\n  ieee1394: sbp2: remove a workaround for Momobay FX-3A\n  firewire: sbp2: remove a workaround for Momobay FX-3A\n  firewire: sbp2: fix status reception\n  firewire: core: fix topology map response handler\n  firewire: core: fix race with parallel PCI device probe\n  firewire: core: header file cleanup\n  firewire: ohci: fix Self ID Count register mask (safeguard against buffer overflow)\n  ieee1394: raw1394: Do not leak memory on failed trylock.\n"
    },
    {
      "commit": "746942d06acdb4dd78d16baa5f3728a48a033bdd",
      "tree": "1470ffab015f6b7c2ff6f44314f9fab17d3a4c3f",
      "parents": [
        "c11f6c82581e8be4e1829c677db54e7f55cebece",
        "c602c65b2f81d14456771d1e3f15d1381f4b7efa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 09:34:07 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 09:34:07 2009 -0700"
      },
      "message": "Merge branch \u0027sfi-release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-sfi-2.6\n\n* \u0027sfi-release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-sfi-2.6:\n  SFI: remove unneeded includes\n  sfi: Remove unused code\n  SFI: Hook PCI MMCONFIG\n  x86: add arch-specific SFI support\n  SFI: add capability to parse ACPI tables\n  SFI: add platform-independent core support\n  SFI: create linux/sfi.h\n  SFI: Simple Firmware Interface - MAINTAINERS, Kconfig\n"
    },
    {
      "commit": "c11f6c82581e8be4e1829c677db54e7f55cebece",
      "tree": "1a116241b0831ded998aabe800bdc24104cbd826",
      "parents": [
        "40aba218969914d1b225e742617adb921cf94eae",
        "193a6dec1c0246a80b6d0101e4f351ccf877bcac"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 09:32:11 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 09:32:11 2009 -0700"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (119 commits)\n  ACPI: don\u0027t pass handle for fixed hardware notifications\n  ACPI: remove null pointer checks in deferred execution path\n  ACPI: simplify deferred execution path\n  acerhdf: additional BIOS versions\n  acerhdf: convert to dev_pm_ops\n  acerhdf: fix fan control for AOA150 model\n  thermal: add missing Kconfig dependency\n  acpi: switch /proc/acpi/{debug_layer,debug_level} to seq_file\n  hp-wmi: fix rfkill memory leak on unload\n  ACPI: remove unnecessary #ifdef CONFIG_DMI\n  ACPI: linux/acpi.h should not include linux/dmi.h\n  hwmon driver for ACPI 4.0 power meters\n  topstar-laptop: add new driver for hotkeys support on Topstar N01\n  thinkpad_acpi: fix rfkill memory leak on unload\n  thinkpad-acpi: report brightness events when required\n  thinkpad-acpi: don\u0027t poll by default any of the reserved hotkeys\n  thinkpad-acpi: Fix procfs hotkey reset command\n  thinkpad-acpi: deprecate hotkey_bios_mask\n  thinkpad-acpi: hotkey poll fixes\n  thinkpad-acpi: be more strict when detecting a ThinkPad\n  ...\n"
    },
    {
      "commit": "40aba218969914d1b225e742617adb921cf94eae",
      "tree": "663ec9cdadbedec5f8eab754cbc590298c1d40be",
      "parents": [
        "b64ada6b23d4a305fb3ca59b79dd38707fc53b69",
        "cfd550ed3d3bd509b475c7a9d425fc63bf843a7c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 09:30:48 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 09:30:48 2009 -0700"
      },
      "message": "Merge branch \u0027i2c-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging\n\n* \u0027i2c-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:\n  i2c: Clearly mark ACPI drivers as such\n  i2c: Add driver for SMBus Control Method Interface\n  i2c-pnx: Correct use of request_region/request_mem_region\n  MAINTAINERS: Add maintainer for AT24 and PCA9564/PCA9665\n  i2c-piix4: Add AMD SB900 SMBus device ID\n  i2c/chips: Remove deprecated pcf8574 driver\n  i2c/chips: Remove deprecated pca9539 driver\n  i2c/chips: Remove deprecated pcf8575 driver\n  gpio/pcf857x: Copy i2c_device_id from old pcf8574 driver\n  i2c/scx200_acb: Provide more information on bus errors\n  i2c: Provide compatibility links for i2c adapters\n  i2c: Convert i2c adapters to bus devices\n  i2c: Convert i2c clients to a device type\n  i2c/tsl2550: Use combined SMBus transactions\n  i2c-taos-evm: Switch echo off to improve performance\n  i2c: Drop unused i2c_driver.id field\n"
    },
    {
      "commit": "be90a49ca22a95f184d9f32d35b5247b44032849",
      "tree": "d3c2edc18c003c384366f57901616ac29c80bc27",
      "parents": [
        "1f0918d03ff4b5c94540c71ce889672abdbc2f4a",
        "a87371b477774b290c27bc5cb7f4ccc5379574a9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 09:25:16 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 09:25:16 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (142 commits)\n  USB: Fix sysfs paths in documentation\n  USB: skeleton: fix coding style issues.\n  USB: O_NONBLOCK in read path of skeleton\n  USB: make usb-skeleton honor O_NONBLOCK in write path\n  USB: skel_read really sucks royally\n  USB: Add hub descriptor update hook for xHCI\n  USB: xhci: Support USB hubs.\n  USB: xhci: Set multi-TT field for LS/FS devices under hubs.\n  USB: xhci: Set route string for all devices.\n  USB: xhci: Fix command wait list handling.\n  USB: xhci: Change how xHCI commands are handled.\n  USB: xhci: Refactor input device context setup.\n  USB: xhci: Endpoint representation refactoring.\n  USB: gadget: ether needs to select CRC32\n  USB: fix USBTMC get_capabilities success handling\n  USB: fix missing error check in probing\n  USB: usbfs: add USBDEVFS_URB_BULK_CONTINUATION flag\n  USB: support for autosuspend in sierra while online\n  USB: ehci-dbgp,ehci: Allow dbpg to work with suspend/resume\n  USB: ehci-dbgp,documentation: Documentation updates for ehci-dbgp\n  ...\n"
    },
    {
      "commit": "1f0918d03ff4b5c94540c71ce889672abdbc2f4a",
      "tree": "ecee710444fb3405da55933501e339e10e4ac880",
      "parents": [
        "4266c97a3ef4604561a22212eb0eab8a3c338971",
        "ca60a42c9be41c07ebcc2ec8c43dd1be53f147bf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 09:23:45 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 09:23:45 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:\n  lguest: don\u0027t force VIRTIO_F_NOTIFY_ON_EMPTY\n  lguest: cleanup for map_switcher()\n  lguest: use PGDIR_SHIFT for PAE code to allow different PAGE_OFFSET\n  lguest: use set_pte/set_pmd uniformly for real page table entries\n  lguest: move panic notifier registration to its expected place.\n  virtio_blk: add support for cache flush\n  virtio: add virtio IDs file\n  virtio: get rid of redundant VIRTIO_ID_9P definition\n  virtio: make add_buf return capacity remaining\n  virtio_pci: minor MSI-X cleanups\n"
    },
    {
      "commit": "4fd8da8d62416d0dae05603ab5990a498d9aeb12",
      "tree": "81feb3cc66d49cfd89b0b26f067bbb52e164d0d8",
      "parents": [
        "a6e995ad7409403c5bbd6fe8f666a280e086bb22"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Sep 23 17:49:55 2009 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 09:21:05 2009 -0700"
      },
      "message": "fs: change sys_truncate length parameter type\n\nFor this system call user space passes a signed long length parameter,\nwhile the kernel side takes an unsigned long parameter and converts it\nlater to signed long again.\n\nThis has led to bugs in compat wrappers see e.g.  dd90bbd5 \"powerpc: Add\ncompat_sys_truncate\".  The s390 compat wrapper for this functions is\nbroken as well since it also performs zero extension instead of sign\nextension for the length parameter.\n\nIn addition if hpa comes up with an automated way of generating\ncompat wrappers it would generate a wrong one here.\n\nSo change the length parameter from unsigned long to long.\n\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4fefce9abaeef0d6ec45e06a882db23a65135272",
      "tree": "c4e543fd3f42d7586b85b3a10944ae70aa362b1e",
      "parents": [
        "a4255e4c1c41f906488ae4d3fa328a66695cf200"
      ],
      "author": {
        "name": "H Hartley Sweeten",
        "email": "hartleys@visionengravers.com",
        "time": "Tue Sep 22 16:48:02 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:58 2009 -0700"
      },
      "message": "jbd.h: bitfields should be unsigned\n\nbitfields should be unsigned.\n\nThis fixes sparse noise:\n  error: dubious one-bit signed bitfield\n\nSigned-off-by: H Hartley Sweeten \u003chsweeten@visionengravers.com\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4cf8e53b3b55fa2f9b2a6b9c3e557b649adf7c6a",
      "tree": "3a3ca1ba8ced694568f7c0ee31c19f7fcc6e38a9",
      "parents": [
        "1e5db00687c1ebd93a902caf1d3694209013cb3e"
      ],
      "author": {
        "name": "Marek Vasut",
        "email": "marek.vasut@gmail.com",
        "time": "Tue Sep 22 16:46:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:48 2009 -0700"
      },
      "message": "mfd/gpio: add a GPIO interface to the UCB1400 MFD chip driver via gpiolib\n\nCc: Eric Miao \u003ceric.y.miao@gmail.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nCc: Samuel Ortiz \u003csameo@openedhand.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1e5db00687c1ebd93a902caf1d3694209013cb3e",
      "tree": "41043a4a38fc2f36d92fe20559cb5ada85228465",
      "parents": [
        "a4177ee7f1a83eecb1d75e85d32664b023ef65e9"
      ],
      "author": {
        "name": "Richard Röjfors",
        "email": "richard.rojfors.ext@mocean-labs.com",
        "time": "Tue Sep 22 16:46:34 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:46 2009 -0700"
      },
      "message": "gpio: add MC33880 driver\n\nA GPIO driver for the Freescale MC33880 High/Low side switch\n\nSigned-off-by: Richard Röjfors \u003crichard.rojfors.ext@mocean-labs.com\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a4177ee7f1a83eecb1d75e85d32664b023ef65e9",
      "tree": "614b12b1f28a1a9090d96bea33639265e3e79839",
      "parents": [
        "d8c1acb1664d17dd995e34507533321e986d9215"
      ],
      "author": {
        "name": "Jani Nikula",
        "email": "ext-jani.1.nikula@nokia.com",
        "time": "Tue Sep 22 16:46:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:46 2009 -0700"
      },
      "message": "gpiolib: allow exported GPIO nodes to be named using sysfs links\n\nCommit 926b663ce8215ba448960e1ff6e58b67a2c3b99b (gpiolib: allow GPIOs to\nbe named) already provides naming on the chip level. This patch provides\nmore flexibility by allowing multiple names where ever in sysfs on a per\nGPIO basis.\n\nAdapted from David Brownell\u0027s comments on a similar concept:\nhttp://lkml.org/lkml/2009/4/20/203.\n\n[randy.dunlap@oracle.com: fix build for CONFIG_GENERIC_GPIO\u003dn]\nSigned-off-by: Jani Nikula \u003cext-jani.1.nikula@nokia.com\u003e\nAcked-by: David Brownell \u003cdavid-b@pacbell.net\u003e\nCc: Daniel Silverstone \u003cdsilvers@simtec.co.uk\u003e\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@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": "568d0697f42771425ae9f1e9a3db769fef7e10b6",
      "tree": "8f4d1178b88481e3d3daba3e049c700a3cef72e4",
      "parents": [
        "7869c0b9ed44404bbc675ef76f8ccb3be5496f39"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Tue Sep 22 16:46:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:44 2009 -0700"
      },
      "message": "spi: handle TX-only/RX-only\n\nSupport two new half-duplex SPI implementation restrictions, for links\nthat talk to TX-only or RX-only devices.  (Existing half-duplex flavors\nsupport both transfer directions, just not at the same time.)\n\nMove spi_async() into the spi.c core, and stop inlining it.  Then make\nthat function perform error checks and reject messages that demand more\nthan the underlying controller can support.\n\nBased on a patch from Marek Szyprowski which did this only for the\nbitbanged GPIO driver.\n\nCc: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e0626e3844e8f430fc1a4417f523a00797df7ca6",
      "tree": "15e62abad725200b3c6ad2462f268c3df09ed711",
      "parents": [
        "8cec03eee4a771f949c70cff07775c9bb21d4642"
      ],
      "author": {
        "name": "Anton Vorontsov",
        "email": "avorontsov@ru.mvista.com",
        "time": "Tue Sep 22 16:46:08 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:43 2009 -0700"
      },
      "message": "spi: prefix modalias with \"spi:\"\n\nThis makes it consistent with other buses (platform, i2c, vio, ...).  I\u0027m\nnot sure why we use the prefixes, but there must be a reason.\n\nThis was easy enough to do it, and I did it.\n\nSigned-off-by: Anton Vorontsov \u003cavorontsov@ru.mvista.com\u003e\nCc: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nCc: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Ben Dooks \u003cben-linux@fluff.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nCc: Samuel Ortiz \u003csameo@openedhand.com\u003e\nCc: \"John W. Linville\" \u003clinville@tuxdriver.com\u003e\nAcked-by: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "75368bf6c2876d8f33abfe77aa3864869a3893eb",
      "tree": "97a543508a8aeb45646d059f8cdd561ae0a76ef2",
      "parents": [
        "b5f3294f0be5496aec01e5aa709a5fab8bb2f225"
      ],
      "author": {
        "name": "Anton Vorontsov",
        "email": "avorontsov@ru.mvista.com",
        "time": "Tue Sep 22 16:46:04 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:43 2009 -0700"
      },
      "message": "spi: add support for device table matching\n\nWith this patch spi drivers can use standard spi_driver.id_table and\nMODULE_DEVICE_TABLE() mechanisms to bind against the devices.  Just like\nwe do with I2C drivers.\n\nThis is useful when a single driver supports several variants of devices\nbut it is not possible to detect them in run-time (like non-JEDEC chips\nprobing in drivers/mtd/devices/m25p80.c), and when platform_data usage is\noverkill.\n\nThis patch also makes life a lot easier on OpenFirmware platforms, since\nwith OF we extensively use proper device IDs in modaliases.\n\nSigned-off-by: Anton Vorontsov \u003cavorontsov@ru.mvista.com\u003e\nCc: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nCc: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Ben Dooks \u003cben-linux@fluff.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b73b255956119111dc18fa063d1e3a0bb3f06328",
      "tree": "177d99cd1ae658f65a349883f60559407baa693e",
      "parents": [
        "44dab88e7cc99d1d2caa9a8936e09d9a98a6761a"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue Sep 22 16:46:00 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:43 2009 -0700"
      },
      "message": "spi.h: add missing kernel-doc for struct spi_master\n\nAdd missing kernel-doc notation in spi.h for struct spi_master:\n\nWarning(include/linux/spi/spi.h:289): No description found for parameter \u0027mode_bits\u0027\nWarning(include/linux/spi/spi.h:289): No description found for parameter \u0027flags\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nAcked-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a7e3108cca54c105f496919040f00df56767ec00",
      "tree": "42aaadd3648bada66632f50e9658d37bf7bb16c8",
      "parents": [
        "0d4c36a9b6ab6b15851f60956d901a3c53574ea8"
      ],
      "author": {
        "name": "maximilian attems",
        "email": "max@stro.at",
        "time": "Tue Sep 22 16:45:53 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:42 2009 -0700"
      },
      "message": "ramfs: move RAMFS_MAGIC to include/linux/magic.h\n\ninitramfs userspace likes to use this magic number.\n\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: maximilian attems \u003cmax@stro.at\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "81ac3ad9061dd9cd490ee92f0c5316a14d77ce18",
      "tree": "1787b8c307b5e70e2763c4e7c0767c2b7e108dc4",
      "parents": [
        "26562c59fa9111ae3ea7b78045889662aac9e5ac"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Sep 22 16:45:49 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:42 2009 -0700"
      },
      "message": "kcore: register module area in generic way\n\nSome archs define MODULED_VADDR/MODULES_END which is not in VMALLOC area.\nThis is handled only in x86-64.  This patch make it more generic.  And we\ncan use vread/vwrite to access the area.  Fix it.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: WANG Cong \u003cxiyou.wangcong@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": "26562c59fa9111ae3ea7b78045889662aac9e5ac",
      "tree": "fe231752dcc4db5967bd798dbd9749a516678e18",
      "parents": [
        "3089aa1b0c07fb7c48f9829c619f50198307789d"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Sep 22 16:45:49 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:41 2009 -0700"
      },
      "message": "kcore: register vmemmap range\n\nBenjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e pointed out that vmemmap\nrange is not included in KCORE_RAM, KCORE_VMALLOC ....\n\nThis adds KCORE_VMEMMAP if SPARSEMEM_VMEMMAP is used.  By this, vmemmap\ncan be readable via /proc/kcore\n\nBecause it\u0027s not vmalloc area, vread/vwrite cannot be used.  But the range\nis static against the memory layout, this patch handles vmemmap area by\nthe same scheme with physical memory.\n\nThis patch assumes SPARSEMEM_VMEMMAP range is not in VMALLOC range.  It\u0027s\ncorrect now.\n\n[akpm@linux-foundation.org: fix typo]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Randy Dunlap \u003crandy.dunlap@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": "908eedc6168bd92e89f90d89fa389065a36358fa",
      "tree": "612881abb2aae920ab1e62e88990ee7b6a988f51",
      "parents": [
        "9492587cf35d370db33ef4b38375dfb35a105b61"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Sep 22 16:45:46 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:41 2009 -0700"
      },
      "message": "walk system ram range\n\nOriginally, walk_memory_resource() was introduced to traverse all memory\nof \"System RAM\" for detecting memory hotplug/unplug range.  For doing so,\nflags of IORESOUCE_MEM|IORESOURCE_BUSY was used and this was enough for\nmemory hotplug.\n\nBut for using other purpose, /proc/kcore, this may includes some firmware\narea marked as IORESOURCE_BUSY | IORESOUCE_MEM.  This patch makes the\ncheck strict to find out busy \"System RAM\".\n\nNote: PPC64 keeps their own walk_memory_resouce(), which walk through\nppc64\u0027s lmb informaton.  Because old kclist_add() is called per lmb, this\npatch makes no difference in behavior, finally.\n\nAnd this patch removes CONFIG_MEMORY_HOTPLUG check from this function.\nBecause pfn_valid() just show \"there is memmap or not* and cannot be used\nfor \"there is physical memory or not\", this function is useful in generic\nto scan physical memory range.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nCc: Américo Wang \u003cxiyou.wangcong@gmail.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Roland Dreier \u003crolandd@cisco.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c30bb2a25fcfde6157e6154a32c14686fb0bedbe",
      "tree": "afa4811d46e5f9035a035b2c8c864bbb6c5af049",
      "parents": [
        "2ef43ec772551e975a6ea7cf22b59c84955aadf9"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Sep 22 16:45:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:41 2009 -0700"
      },
      "message": "kcore: add kclist types\n\nPresently, kclist_add() only eats start address and size as its arguments.\nConsidering to make kclist dynamically reconfigulable, it\u0027s necessary to\nknow which kclists are for System RAM and which are not.\n\nThis patch add kclist types as\n  KCORE_RAM\n  KCORE_VMALLOC\n  KCORE_TEXT\n  KCORE_OTHER\n\nThis \"type\" is used in a patch following this for detecting KCORE_RAM.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: WANG Cong \u003cxiyou.wangcong@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": "2ef43ec772551e975a6ea7cf22b59c84955aadf9",
      "tree": "9560c13bcc6deb3ee00a60f93730b248029e69bb",
      "parents": [
        "d899bf7b55f503ba7d3d07ed27c3a37e270fa7db"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Sep 22 16:45:41 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:41 2009 -0700"
      },
      "message": "kcore: use usual list for kclist\n\nThis patchset is for /proc/kcore.  With this,\n\n - many per-arch hooks are removed.\n\n - /proc/kcore will know really valid physical memory area.\n\n - /proc/kcore will be aware of memory hotplug.\n\n - /proc/kcore will be architecture independent i.e.\n   if an arch supports CONFIG_MMU, it can use /proc/kcore.\n   (if the arch uses usual memory layout.)\n\nThis patch:\n\n/proc/kcore uses its own list handling codes. It\u0027s better to use\ngeneric list codes.\n\nNo changes in logic. just clean up.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: WANG Cong \u003cxiyou.wangcong@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": "d899bf7b55f503ba7d3d07ed27c3a37e270fa7db",
      "tree": "32a5ee7816b2f0cb3261dcca8102b9cafe9251bd",
      "parents": [
        "cba8aafe1e07dfc8bae5ba78be8e02883bd34d31"
      ],
      "author": {
        "name": "Stefani Seibold",
        "email": "stefani@seibold.net",
        "time": "Tue Sep 22 16:45:40 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:41 2009 -0700"
      },
      "message": "procfs: provide stack information for threads\n\nA patch to give a better overview of the userland application stack usage,\nespecially for embedded linux.\n\nCurrently you are only able to dump the main process/thread stack usage\nwhich is showed in /proc/pid/status by the \"VmStk\" Value.  But you get no\ninformation about the consumed stack memory of the the threads.\n\nThere is an enhancement in the /proc/\u003cpid\u003e/{task/*,}/*maps and which marks\nthe vm mapping where the thread stack pointer reside with \"[thread stack\nxxxxxxxx]\".  xxxxxxxx is the maximum size of stack.  This is a value\ninformation, because libpthread doesn\u0027t set the start of the stack to the\ntop of the mapped area, depending of the pthread usage.\n\nA sample output of /proc/\u003cpid\u003e/task/\u003ctid\u003e/maps looks like:\n\n08048000-08049000 r-xp 00000000 03:00 8312       /opt/z\n08049000-0804a000 rw-p 00001000 03:00 8312       /opt/z\n0804a000-0806b000 rw-p 00000000 00:00 0          [heap]\na7d12000-a7d13000 ---p 00000000 00:00 0\na7d13000-a7f13000 rw-p 00000000 00:00 0          [thread stack: 001ff4b4]\na7f13000-a7f14000 ---p 00000000 00:00 0\na7f14000-a7f36000 rw-p 00000000 00:00 0\na7f36000-a8069000 r-xp 00000000 03:00 4222       /lib/libc.so.6\na8069000-a806b000 r--p 00133000 03:00 4222       /lib/libc.so.6\na806b000-a806c000 rw-p 00135000 03:00 4222       /lib/libc.so.6\na806c000-a806f000 rw-p 00000000 00:00 0\na806f000-a8083000 r-xp 00000000 03:00 14462      /lib/libpthread.so.0\na8083000-a8084000 r--p 00013000 03:00 14462      /lib/libpthread.so.0\na8084000-a8085000 rw-p 00014000 03:00 14462      /lib/libpthread.so.0\na8085000-a8088000 rw-p 00000000 00:00 0\na8088000-a80a4000 r-xp 00000000 03:00 8317       /lib/ld-linux.so.2\na80a4000-a80a5000 r--p 0001b000 03:00 8317       /lib/ld-linux.so.2\na80a5000-a80a6000 rw-p 0001c000 03:00 8317       /lib/ld-linux.so.2\nafaf5000-afb0a000 rw-p 00000000 00:00 0          [stack]\nffffe000-fffff000 r-xp 00000000 00:00 0          [vdso]\n\nAlso there is a new entry \"stack usage\" in /proc/\u003cpid\u003e/{task/*,}/status\nwhich will you give the current stack usage in kb.\n\nA sample output of /proc/self/status looks like:\n\nName:\tcat\nState:\tR (running)\nTgid:\t507\nPid:\t507\n.\n.\n.\nCapBnd:\tfffffffffffffeff\nvoluntary_ctxt_switches:\t0\nnonvoluntary_ctxt_switches:\t0\nStack usage:\t12 kB\n\nI also fixed stack base address in /proc/\u003cpid\u003e/{task/*,}/stat to the base\naddress of the associated thread stack and not the one of the main\nprocess.  This makes more sense.\n\n[akpm@linux-foundation.org: fs/proc/array.c now needs walk_page_range()]\nSigned-off-by: Stefani Seibold \u003cstefani@seibold.net\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Randy Dunlap \u003crandy.dunlap@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": "996ad5686c5f868e67557cc1bfcb2cfdde1a18b4",
      "tree": "a9075fe3acf1e8f847403c4b007aa25ccc742fe0",
      "parents": [
        "95cdfb72b9bc568803f395c266152c71b034b461"
      ],
      "author": {
        "name": "Nicolas Pitre",
        "email": "nico@fluxnic.net",
        "time": "Tue Sep 22 16:45:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:38 2009 -0700"
      },
      "message": "mmc: make SDIO device/driver struct accessors public\n\nEspecially with the PM framework, those are quite handy to have in driver\ncode too.\n\nSigned-off-by: Nicolas Pitre \u003cnico@marvell.com\u003e\nCc: \u003clinux-mmc@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7c979ec7135d96bbff34790bf4b85a8508ede7fc",
      "tree": "7844a33af78db54561e2bf7d5d11d48885d3b03b",
      "parents": [
        "ad1e597d4199ffcdee04b9fb402e45c5be6a5052"
      ],
      "author": {
        "name": "Ohad Ben-Cohen",
        "email": "ohad@wizery.com",
        "time": "Tue Sep 22 16:45:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:37 2009 -0700"
      },
      "message": "sdio: add MMC_QUIRK_LENIENT_FN0\n\nNormally writes to SDIO function 0 outside the vendor specific CCCR\nregisters are prohibited.\n\nTo support embedded devices that require writes to SDIO function 0 outside\nthis range (e.g.  TI WL127x embedded sdio wifi device),\nMMC_QUIRK_LENIENT_FN0 is introduced.\n\nA card quirks field is added to `struct mmc_card\u0027 to support non-standard\ndevices (e.g.  embedded sdio devices).\n\n[akpm@linux-foundation.org: code in C, not cpp!]\nSigned-off-by: Ohad Ben-Cohen \u003cohad@wizery.com\u003e\nCc: \u003clinux-mmc@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "006ebd5de13854d6250eecc76866bbfad1ff7daf",
      "tree": "49cf0715227e1da36745bbb50b6b94f341db3986",
      "parents": [
        "653f41b52dfc63fecf4a2333f13be28b159a918c"
      ],
      "author": {
        "name": "Ohad Ben-Cohen",
        "email": "ohad@wizery.com",
        "time": "Tue Sep 22 16:45:07 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:36 2009 -0700"
      },
      "message": "sdio: add CD disable support\n\nAdd support to disconnect the pull-up resistor on CD/DAT[3] (pin 1)\nof the card. This may be desired on certain setups of boards,\ncontrollers and embedded sdio devices which do not need the card\u0027s\npull-up. As a result, card detection is disabled and power is saved.\n\n[akpm@linux-foundation.org: simplify sdio_disable_cd() a bit]\nSigned-off-by: Ohad Ben-Cohen \u003cohad@wizery.com\u003e\nAcked-by: Matt Fleming \u003cmatt@console-pimps.org\u003e\nCc: Ian Molton \u003cian@mnementh.co.uk\u003e\nCc: \"Roberto A. Foglietta\" \u003croberto.foglietta@gmail.com\u003e\nCc: Philip Langdale \u003cphilipl@overt.org\u003e\nCc: Pierre Ossman \u003cpierre@ossman.eu\u003e\nCc: David Vrabel \u003cdavid.vrabel@csr.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ef0b27d4ccacac32afc3d1c0e8a95e4091dfbc8c",
      "tree": "ed507b7f505620915f96df8757f36c78fd24c6b6",
      "parents": [
        "53509f0fe28e049e772897aa8fa1f5183b6823a2"
      ],
      "author": {
        "name": "Adrian Hunter",
        "email": "adrian.hunter@nokia.com",
        "time": "Tue Sep 22 16:44:37 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:34 2009 -0700"
      },
      "message": "mmc: check status after MMC SWITCH command\n\nAccording to the standard, the SWITCH command should be followed by a\nSEND_STATUS command to check for errors.\n\nSigned-off-by: Adrian Hunter \u003cadrian.hunter@nokia.com\u003e\nAcked-by: Matt Fleming \u003cmatt@console-pimps.org\u003e\nCc: Ian Molton \u003cian@mnementh.co.uk\u003e\nCc: \"Roberto A. Foglietta\" \u003croberto.foglietta@gmail.com\u003e\nCc: Jarkko Lavinen \u003cjarkko.lavinen@nokia.com\u003e\nCc: Denis Karpov \u003cext-denis.2.karpov@nokia.com\u003e\nCc: Pierre Ossman \u003cpierre@ossman.eu\u003e\nCc: Philip Langdale \u003cphilipl@overt.org\u003e\nCc: \"Madhusudhan\" \u003cmadhu.cr@ti.com\u003e\nCc: \u003clinux-mmc@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b1ebe38456f7fe61a88af2844361e763ac6ea5ae",
      "tree": "b45a2e7afe4f1f6d66d6d38dd1627fa2d6c0e7c7",
      "parents": [
        "eae1aeeed852aae37621b82a9e7f6c05096a18fd"
      ],
      "author": {
        "name": "Jarkko Lavinen",
        "email": "jarkko.lavinen@nokia.com",
        "time": "Tue Sep 22 16:44:34 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:33 2009 -0700"
      },
      "message": "mmc: add mmc card sleep and awake support\n\nAdd support for the new MMC command SLEEP_AWAKE.\n\nSigned-off-by: Jarkko Lavinen \u003cjarkko.lavinen@nokia.com\u003e\nSigned-off-by: Adrian Hunter \u003cadrian.hunter@nokia.com\u003e\nAcked-by: Matt Fleming \u003cmatt@console-pimps.org\u003e\nCc: Ian Molton \u003cian@mnementh.co.uk\u003e\nCc: \"Roberto A. Foglietta\" \u003croberto.foglietta@gmail.com\u003e\nCc: Jarkko Lavinen \u003cjarkko.lavinen@nokia.com\u003e\nCc: Denis Karpov \u003cext-denis.2.karpov@nokia.com\u003e\nCc: Pierre Ossman \u003cpierre@ossman.eu\u003e\nCc: Philip Langdale \u003cphilipl@overt.org\u003e\nCc: \"Madhusudhan\" \u003cmadhu.cr@ti.com\u003e\nCc: \u003clinux-mmc@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "eae1aeeed852aae37621b82a9e7f6c05096a18fd",
      "tree": "6a1b108032a5cf08ccfa6fffa29c81cccbe8c82d",
      "parents": [
        "9feae246963c648b212abad0f0eb8938de5f5fe5"
      ],
      "author": {
        "name": "Adrian Hunter",
        "email": "adrian.hunter@nokia.com",
        "time": "Tue Sep 22 16:44:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:33 2009 -0700"
      },
      "message": "mmc: add ability to save power by powering off cards\n\nPower can be saved by powering off cards that are not in use.  This is\nsimilar to suspend / resume except it is under the control of the driver,\nand does not require any power management support.  It can only be used\nwhen the driver can monitor whether the card is removed, otherwise it is\nunsafe.  This is possible because, unlike suspend, the driver still\nreceives card detect and / or cover switch interrupts.\n\nSigned-off-by: Adrian Hunter \u003cadrian.hunter@nokia.com\u003e\nAcked-by: Matt Fleming \u003cmatt@console-pimps.org\u003e\nCc: Ian Molton \u003cian@mnementh.co.uk\u003e\nCc: \"Roberto A. Foglietta\" \u003croberto.foglietta@gmail.com\u003e\nCc: Jarkko Lavinen \u003cjarkko.lavinen@nokia.com\u003e\nCc: Denis Karpov \u003cext-denis.2.karpov@nokia.com\u003e\nCc: Pierre Ossman \u003cpierre@ossman.eu\u003e\nCc: Philip Langdale \u003cphilipl@overt.org\u003e\nCc: \"Madhusudhan\" \u003cmadhu.cr@ti.com\u003e\nCc: \u003clinux-mmc@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9feae246963c648b212abad0f0eb8938de5f5fe5",
      "tree": "fefcc438ab0b8e502c35950e588664ab07ddc439",
      "parents": [
        "319a3f1429c91147058ac26c5f5bac8ec1730bc6"
      ],
      "author": {
        "name": "Adrian Hunter",
        "email": "adrian.hunter@nokia.com",
        "time": "Tue Sep 22 16:44:32 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:33 2009 -0700"
      },
      "message": "mmc: add MMC_CAP_NONREMOVABLE host capability\n\neMMC\u0027s are not removable, so unsafe resume is OK always.\n\nTo permit this a new host capability MMC_CAP_NONREMOVABLE has been added\nand suspend / resume updated accordingly.\n\nSigned-off-by: Adrian Hunter \u003cadrian.hunter@nokia.com\u003e\nAcked-by: Matt Fleming \u003cmatt@console-pimps.org\u003e\nCc: Ian Molton \u003cian@mnementh.co.uk\u003e\nCc: \"Roberto A. Foglietta\" \u003croberto.foglietta@gmail.com\u003e\nCc: Jarkko Lavinen \u003cjarkko.lavinen@nokia.com\u003e\nCc: Denis Karpov \u003cext-denis.2.karpov@nokia.com\u003e\nCc: Pierre Ossman \u003cpierre@ossman.eu\u003e\nCc: Philip Langdale \u003cphilipl@overt.org\u003e\nCc: \"Madhusudhan\" \u003cmadhu.cr@ti.com\u003e\nCc: \u003clinux-mmc@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "319a3f1429c91147058ac26c5f5bac8ec1730bc6",
      "tree": "4a39ff034f7e9b57b903997f818eee5304657991",
      "parents": [
        "8ea926b22e2d13238e4d65d8f61c48fe424e6f4f"
      ],
      "author": {
        "name": "Adrian Hunter",
        "email": "adrian.hunter@nokia.com",
        "time": "Tue Sep 22 16:44:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:33 2009 -0700"
      },
      "message": "mmc: allow host claim / release nesting\n\nThis change allows the MMC host to be claimed in situations where the host\nmay or may not have already been claimed.  Also \u0027mmc_try_claim_host()\u0027 is\nnow exported.\n\nSigned-off-by: Adrian Hunter \u003cadrian.hunter@nokia.com\u003e\nAcked-by: Matt Fleming \u003cmatt@console-pimps.org\u003e\nCc: Ian Molton \u003cian@mnementh.co.uk\u003e\nCc: \"Roberto A. Foglietta\" \u003croberto.foglietta@gmail.com\u003e\nCc: Jarkko Lavinen \u003cjarkko.lavinen@nokia.com\u003e\nCc: Denis Karpov \u003cext-denis.2.karpov@nokia.com\u003e\nCc: Pierre Ossman \u003cpierre@ossman.eu\u003e\nCc: Philip Langdale \u003cphilipl@overt.org\u003e\nCc: \"Madhusudhan\" \u003cmadhu.cr@ti.com\u003e\nCc: \u003clinux-mmc@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8ea926b22e2d13238e4d65d8f61c48fe424e6f4f",
      "tree": "d62846c0f7aa50afce52bd8a9ed4b2affeaa1889",
      "parents": [
        "27cce39f555def6f5ebe7f03d69ccc44ab25f0b2"
      ],
      "author": {
        "name": "Adrian Hunter",
        "email": "adrian.hunter@nokia.com",
        "time": "Tue Sep 22 16:44:29 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:33 2009 -0700"
      },
      "message": "mmc: add \u0027enable\u0027 and \u0027disable\u0027 methods to mmc host\n\nMMC hosts that support power saving can use the \u0027enable\u0027 and \u0027disable\u0027\nmethods to exit and enter power saving states.  An explanation of their\nuse is provided in the comments added to include/linux/mmc/host.h.\n\nSigned-off-by: Adrian Hunter \u003cadrian.hunter@nokia.com\u003e\nAcked-by: Matt Fleming \u003cmatt@console-pimps.org\u003e\nCc: Ian Molton \u003cian@mnementh.co.uk\u003e\nCc: \"Roberto A. Foglietta\" \u003croberto.foglietta@gmail.com\u003e\nCc: Jarkko Lavinen \u003cjarkko.lavinen@nokia.com\u003e\nCc: Denis Karpov \u003cext-denis.2.karpov@nokia.com\u003e\nCc: Pierre Ossman \u003cpierre@ossman.eu\u003e\nCc: Philip Langdale \u003cphilipl@overt.org\u003e\nCc: \"Madhusudhan\" \u003cmadhu.cr@ti.com\u003e\nCc: \u003clinux-mmc@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1f10206cf8e945220f7220a809d8bfc15c21f9a5",
      "tree": "4f2c48ccf9cc52dad9610df54e301e631a351288",
      "parents": [
        "b28cfd2c0616e1b42acc6ee3c77ef6cc3873c510"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Tue Sep 22 16:44:10 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:30 2009 -0700"
      },
      "message": "getrusage: fill ru_maxrss value\n\nMake -\u003eru_maxrss value in struct rusage filled accordingly to rss hiwater\nmark.  This struct is filled as a parameter to getrusage syscall.\n-\u003eru_maxrss value is set to KBs which is the way it is done in BSD\nsystems.  /usr/bin/time (gnu time) application converts -\u003eru_maxrss to KBs\nwhich seems to be incorrect behavior.  Maintainer of this util was\nnotified by me with the patch which corrects it and cc\u0027ed.\n\nTo make this happen we extend struct signal_struct by two fields.  The\nfirst one is -\u003emaxrss which we use to store rss hiwater of the task.  The\nsecond one is -\u003ecmaxrss which we use to store highest rss hiwater of all\ntask childs.  These values are used in k_getrusage() to actually fill\n-\u003eru_maxrss.  k_getrusage() uses current rss hiwater value directly if mm\nstruct exists.\n\nNote:\nexec() clear mm-\u003ehiwater_rss, but doesn\u0027t clear sig-\u003emaxrss.\nit is intetionally behavior. *BSD getrusage have exec() inheriting.\n\ntest programs\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\ngetrusage.c\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n #include \u003cstdio.h\u003e\n #include \u003cstdlib.h\u003e\n #include \u003cstring.h\u003e\n #include \u003csys/types.h\u003e\n #include \u003csys/time.h\u003e\n #include \u003csys/resource.h\u003e\n #include \u003csys/types.h\u003e\n #include \u003csys/wait.h\u003e\n #include \u003cunistd.h\u003e\n #include \u003csignal.h\u003e\n #include \u003csys/mman.h\u003e\n\n #include \"common.h\"\n\n #define err(str) perror(str), exit(1)\n\nint main(int argc, char** argv)\n{\n\tint status;\n\n\tprintf(\"allocate 100MB\\n\");\n\tconsume(100);\n\n\tprintf(\"testcase1: fork inherit? \\n\");\n\tprintf(\"  expect: initial.self ~\u003d child.self\\n\");\n\tshow_rusage(\"initial\");\n\tif (__fork()) {\n\t\twait(\u0026status);\n\t} else {\n\t\tshow_rusage(\"fork child\");\n\t\t_exit(0);\n\t}\n\tprintf(\"\\n\");\n\n\tprintf(\"testcase2: fork inherit? (cont.) \\n\");\n\tprintf(\"  expect: initial.children ~\u003d 100MB, but child.children \u003d 0\\n\");\n\tshow_rusage(\"initial\");\n\tif (__fork()) {\n\t\twait(\u0026status);\n\t} else {\n\t\tshow_rusage(\"child\");\n\t\t_exit(0);\n\t}\n\tprintf(\"\\n\");\n\n\tprintf(\"testcase3: fork + malloc \\n\");\n\tprintf(\"  expect: child.self ~\u003d initial.self + 50MB\\n\");\n\tshow_rusage(\"initial\");\n\tif (__fork()) {\n\t\twait(\u0026status);\n\t} else {\n\t\tprintf(\"allocate +50MB\\n\");\n\t\tconsume(50);\n\t\tshow_rusage(\"fork child\");\n\t\t_exit(0);\n\t}\n\tprintf(\"\\n\");\n\n\tprintf(\"testcase4: grandchild maxrss\\n\");\n\tprintf(\"  expect: post_wait.children ~\u003d 300MB\\n\");\n\tshow_rusage(\"initial\");\n\tif (__fork()) {\n\t\twait(\u0026status);\n\t\tshow_rusage(\"post_wait\");\n\t} else {\n\t\tsystem(\"./child -n 0 -g 300\");\n\t\t_exit(0);\n\t}\n\tprintf(\"\\n\");\n\n\tprintf(\"testcase5: zombie\\n\");\n\tprintf(\"  expect: pre_wait ~\u003d initial, IOW the zombie process is not accounted.\\n\");\n\tprintf(\"          post_wait ~\u003d 400MB, IOW wait() collect child\u0027s max_rss. \\n\");\n\tshow_rusage(\"initial\");\n\tif (__fork()) {\n\t\tsleep(1); /* children become zombie */\n\t\tshow_rusage(\"pre_wait\");\n\t\twait(\u0026status);\n\t\tshow_rusage(\"post_wait\");\n\t} else {\n\t\tsystem(\"./child -n 400\");\n\t\t_exit(0);\n\t}\n\tprintf(\"\\n\");\n\n\tprintf(\"testcase6: SIG_IGN\\n\");\n\tprintf(\"  expect: initial ~\u003d after_zombie (child\u0027s 500MB alloc should be ignored).\\n\");\n\tshow_rusage(\"initial\");\n\tsignal(SIGCHLD, SIG_IGN);\n\tif (__fork()) {\n\t\tsleep(1); /* children become zombie */\n\t\tshow_rusage(\"after_zombie\");\n\t} else {\n\t\tsystem(\"./child -n 500\");\n\t\t_exit(0);\n\t}\n\tprintf(\"\\n\");\n\tsignal(SIGCHLD, SIG_DFL);\n\n\tprintf(\"testcase7: exec (without fork) \\n\");\n\tprintf(\"  expect: initial ~\u003d exec \\n\");\n\tshow_rusage(\"initial\");\n\texecl(\"./child\", \"child\", \"-v\", NULL);\n\n\treturn 0;\n}\n\nchild.c\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n #include \u003csys/types.h\u003e\n #include \u003cunistd.h\u003e\n #include \u003csys/types.h\u003e\n #include \u003csys/wait.h\u003e\n #include \u003cstdio.h\u003e\n #include \u003cstdlib.h\u003e\n #include \u003cstring.h\u003e\n #include \u003csys/types.h\u003e\n #include \u003csys/time.h\u003e\n #include \u003csys/resource.h\u003e\n\n #include \"common.h\"\n\nint main(int argc, char** argv)\n{\n\tint status;\n\tint c;\n\tlong consume_size \u003d 0;\n\tlong grandchild_consume_size \u003d 0;\n\tint show \u003d 0;\n\n\twhile ((c \u003d getopt(argc, argv, \"n:g:v\")) !\u003d -1) {\n\t\tswitch (c) {\n\t\tcase \u0027n\u0027:\n\t\t\tconsume_size \u003d atol(optarg);\n\t\t\tbreak;\n\t\tcase \u0027v\u0027:\n\t\t\tshow \u003d 1;\n\t\t\tbreak;\n\t\tcase \u0027g\u0027:\n\n\t\t\tgrandchild_consume_size \u003d atol(optarg);\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tif (show)\n\t\tshow_rusage(\"exec\");\n\n\tif (consume_size) {\n\t\tprintf(\"child alloc %ldMB\\n\", consume_size);\n\t\tconsume(consume_size);\n\t}\n\n\tif (grandchild_consume_size) {\n\t\tif (fork()) {\n\t\t\twait(\u0026status);\n\t\t} else {\n\t\t\tprintf(\"grandchild alloc %ldMB\\n\", grandchild_consume_size);\n\t\t\tconsume(grandchild_consume_size);\n\n\t\t\texit(0);\n\t\t}\n\t}\n\n\treturn 0;\n}\n\ncommon.c\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n #include \u003cstdio.h\u003e\n #include \u003cstdlib.h\u003e\n #include \u003cstring.h\u003e\n #include \u003csys/types.h\u003e\n #include \u003csys/time.h\u003e\n #include \u003csys/resource.h\u003e\n #include \u003csys/types.h\u003e\n #include \u003csys/wait.h\u003e\n #include \u003cunistd.h\u003e\n #include \u003csignal.h\u003e\n #include \u003csys/mman.h\u003e\n\n #include \"common.h\"\n #define err(str) perror(str), exit(1)\n\nvoid show_rusage(char *prefix)\n{\n    \tint err, err2;\n    \tstruct rusage rusage_self;\n    \tstruct rusage rusage_children;\n\n    \tprintf(\"%s: \", prefix);\n    \terr \u003d getrusage(RUSAGE_SELF, \u0026rusage_self);\n    \tif (!err)\n    \t\tprintf(\"self %ld \", rusage_self.ru_maxrss);\n    \terr2 \u003d getrusage(RUSAGE_CHILDREN, \u0026rusage_children);\n    \tif (!err2)\n    \t\tprintf(\"children %ld \", rusage_children.ru_maxrss);\n\n    \tprintf(\"\\n\");\n}\n\n/* Some buggy OS need this worthless CPU waste. */\nvoid make_pagefault(void)\n{\n\tvoid *addr;\n\tint size \u003d getpagesize();\n\tint i;\n\n\tfor (i\u003d0; i\u003c1000; i++) {\n\t\taddr \u003d mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0);\n\t\tif (addr \u003d\u003d MAP_FAILED)\n\t\t\terr(\"make_pagefault\");\n\t\tmemset(addr, 0, size);\n\t\tmunmap(addr, size);\n\t}\n}\n\nvoid consume(int mega)\n{\n    \tsize_t sz \u003d mega * 1024 * 1024;\n    \tvoid *ptr;\n\n    \tptr \u003d malloc(sz);\n    \tmemset(ptr, 0, sz);\n\tmake_pagefault();\n}\n\npid_t __fork(void)\n{\n\tpid_t pid;\n\n\tpid \u003d fork();\n\tmake_pagefault();\n\n\treturn pid;\n}\n\ncommon.h\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nvoid show_rusage(char *prefix);\nvoid make_pagefault(void);\nvoid consume(int mega);\npid_t __fork(void);\n\nFreeBSD result (expected result)\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nallocate 100MB\ntestcase1: fork inherit?\n  expect: initial.self ~\u003d child.self\ninitial: self 103492 children 0\nfork child: self 103540 children 0\n\ntestcase2: fork inherit? (cont.)\n  expect: initial.children ~\u003d 100MB, but child.children \u003d 0\ninitial: self 103540 children 103540\nchild: self 103564 children 0\n\ntestcase3: fork + malloc\n  expect: child.self ~\u003d initial.self + 50MB\ninitial: self 103564 children 103564\nallocate +50MB\nfork child: self 154860 children 0\n\ntestcase4: grandchild maxrss\n  expect: post_wait.children ~\u003d 300MB\ninitial: self 103564 children 154860\ngrandchild alloc 300MB\npost_wait: self 103564 children 308720\n\ntestcase5: zombie\n  expect: pre_wait ~\u003d initial, IOW the zombie process is not accounted.\n          post_wait ~\u003d 400MB, IOW wait() collect child\u0027s max_rss.\ninitial: self 103564 children 308720\nchild alloc 400MB\npre_wait: self 103564 children 308720\npost_wait: self 103564 children 411312\n\ntestcase6: SIG_IGN\n  expect: initial ~\u003d after_zombie (child\u0027s 500MB alloc should be ignored).\ninitial: self 103564 children 411312\nchild alloc 500MB\nafter_zombie: self 103624 children 411312\n\ntestcase7: exec (without fork)\n  expect: initial ~\u003d exec\ninitial: self 103624 children 411312\nexec: self 103624 children 411312\n\nLinux result (actual test result)\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nallocate 100MB\ntestcase1: fork inherit?\n  expect: initial.self ~\u003d child.self\ninitial: self 102848 children 0\nfork child: self 102572 children 0\n\ntestcase2: fork inherit? (cont.)\n  expect: initial.children ~\u003d 100MB, but child.children \u003d 0\ninitial: self 102876 children 102644\nchild: self 102572 children 0\n\ntestcase3: fork + malloc\n  expect: child.self ~\u003d initial.self + 50MB\ninitial: self 102876 children 102644\nallocate +50MB\nfork child: self 153804 children 0\n\ntestcase4: grandchild maxrss\n  expect: post_wait.children ~\u003d 300MB\ninitial: self 102876 children 153864\ngrandchild alloc 300MB\npost_wait: self 102876 children 307536\n\ntestcase5: zombie\n  expect: pre_wait ~\u003d initial, IOW the zombie process is not accounted.\n          post_wait ~\u003d 400MB, IOW wait() collect child\u0027s max_rss.\ninitial: self 102876 children 307536\nchild alloc 400MB\npre_wait: self 102876 children 307536\npost_wait: self 102876 children 410076\n\ntestcase6: SIG_IGN\n  expect: initial ~\u003d after_zombie (child\u0027s 500MB alloc should be ignored).\ninitial: self 102876 children 410076\nchild alloc 500MB\nafter_zombie: self 102880 children 410076\n\ntestcase7: exec (without fork)\n  expect: initial ~\u003d exec\ninitial: self 102880 children 410076\nexec: self 102880 children 410076\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a49c59c042c63b432307c1bbf7dac5a104c786e6",
      "tree": "443f9fab6d8907dec07a6c83fee2812c4bf43245",
      "parents": [
        "d7d7561c908afa001ab0fc8212eee94731a213a6"
      ],
      "author": {
        "name": "Rolf Eike Beer",
        "email": "eike-kernel@sf-tec.de",
        "time": "Tue Sep 22 16:44:03 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:30 2009 -0700"
      },
      "message": "Make sure the value in abs() does not get truncated if it is greater than 2^32\n\nabs() will truncate the input if is it outside the 2^32 range.  Fix that\nby assuming `long\u0027 input.\n\nThis might generate worse code in the common case.\n\nSigned-off-by: Rolf Eike Beer \u003ceike-kernel@sf-tec.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "562787a5c32ccdf182de27793a83a9f2ee86cd77",
      "tree": "3308afd59d3b7449afa3d6a6cd624d06ce035e88",
      "parents": [
        "515350b6fd041396f425180589e08812dd13615f"
      ],
      "author": {
        "name": "Davide Libenzi",
        "email": "davidel@xmailserver.org",
        "time": "Tue Sep 22 16:43:57 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:29 2009 -0700"
      },
      "message": "anonfd: split interface into file creation and install\n\nSplit the anonfd interface into a bare file pointer creation one, and a\nfile pointer creation plus install one.\n\nThere are cases, like the usage of eventfds inside other kernel\ninterfaces, where the file pointer created by anonfd needs to be used\ninside the initialization of other structures.\n\nAs it is right now, as soon as anon_inode_getfd() returns, the kenrle can\nrace with userspace closing the newly installed file descriptor.\n\nThis patch, while keeping the old anon_inode_getfd(), introduces a new\nanon_inode_getfile() (whose services are reused in anon_inode_getfd())\nthat allows to split the file creation phase and the fd install one.\n\nOnce all the kernel structures are initialized, the code can call the\nproper fd_install().\n\nGregory manifested the need for something like this inside KVM.\n\nSigned-off-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Gregory Haskins \u003cghaskins@novell.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Roland Dreier \u003crolandd@cisco.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8c87df457cb58fe75b9b893007917cf8095660a0",
      "tree": "32446b329e4b83ae6158fa1505c36634a75dbfe8",
      "parents": [
        "1fe72eaa0f46a0fa4cdcd8f3f7853b6d39469784"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@novell.com",
        "time": "Tue Sep 22 16:43:52 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:29 2009 -0700"
      },
      "message": "BUILD_BUG_ON(): fix it and a couple of bogus uses of it\n\ngcc permitting variable length arrays makes the current construct used for\nBUILD_BUG_ON() useless, as that doesn\u0027t produce any diagnostic if the\ncontrolling expression isn\u0027t really constant.  Instead, this patch makes\nit so that a bit field gets used here.  Consequently, those uses where the\ncondition isn\u0027t really constant now also need fixing.\n\nNote that in the gfp.h, kmemcheck.h, and virtio_config.h cases\nMAYBE_BUILD_BUG_ON() really just serves documentation purposes - even if\nthe expression is compile time constant (__builtin_constant_p() yields\ntrue), the array is still deemed of variable length by gcc, and hence the\nwhole expression doesn\u0027t have the intended effect.\n\n[akpm@linux-foundation.org: make arch/sparc/include/asm/vio.h compile]\n[akpm@linux-foundation.org: more nonsensical assertions in tpm.c..]\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Rajiv Andrade \u003csrajiv@linux.vnet.ibm.com\u003e\nCc: Mimi Zohar \u003czohar@us.ibm.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "70867453092297be9afb2249e712a1f960ec0a09",
      "tree": "cf753b5467e3a93fafd6bb452292e6ec60c3de86",
      "parents": [
        "02b51df1b07b4e9ca823c89284e704cadb323cd1"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "rdreier@cisco.com",
        "time": "Tue Sep 22 16:43:46 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:29 2009 -0700"
      },
      "message": "printk_once(): use bool for boolean flag\n\nUsing the type bool (instead of int) for the __print_once flag in the\nprintk_once() macro matches the intent of the code better, and allows the\ncompiler to generate smaller code; eg a typical callsite with gcc 4.3.3 on\ni386:\n\nadd/remove: 0/0 grow/shrink: 0/2 up/down: 0/-6 (-6)\nfunction                                     old     new   delta\nstatic.__print_once                            4       1      -3\nget_cpu_vendor                               146     143      -3\n\nSaving 6 bytes of object size per callsite by slightly improving the\nreadability of the source seems like a win to me.\n\nSigned-off-by: Roland Dreier \u003crolandd@cisco.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "02b51df1b07b4e9ca823c89284e704cadb323cd1",
      "tree": "c68de4809f261d742f597c686826cdc9d047fb4a",
      "parents": [
        "88e9d34c727883d7d6f02cf1475b3ec98b8480c7"
      ],
      "author": {
        "name": "Scott James Remnant",
        "email": "scott@ubuntu.com",
        "time": "Tue Sep 22 16:43:44 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:29 2009 -0700"
      },
      "message": "proc connector: add event for process becoming session leader\n\nThe act of a process becoming a session leader is a useful signal to a\nsupervising init daemon such as Upstart.\n\nWhile a daemon will normally do this as part of the process of becoming a\ndaemon, it is rare for its children to do so.  When the children do, it is\nnearly always a sign that the child should be considered detached from the\nparent and not supervised along with it.\n\nThe poster-child example is OpenSSH; the per-login children call setsid()\nso that they may control the pty connected to them.  If the primary daemon\ndies or is restarted, we do not want to consider the per-login children\nand want to respawn the primary daemon without killing the children.\n\nThis patch adds a new PROC_SID_EVENT and associated structure to the\nproc_event event_data union, it arranges for this to be emitted when the\nspecial PIDTYPE_SID pid is set.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Scott James Remnant \u003cscott@ubuntu.com\u003e\nAcked-by: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Evgeniy Polyakov \u003cjohnpol@2ka.mipt.ru\u003e\nAcked-by: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "88e9d34c727883d7d6f02cf1475b3ec98b8480c7",
      "tree": "475f544536d52739e0929e7727cab5124e855a06",
      "parents": [
        "b7ed698cc9d556306a4088c238e2ea9311ea2cb3"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Sep 22 16:43:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:29 2009 -0700"
      },
      "message": "seq_file: constify seq_operations\n\nMake all seq_operations structs const, to help mitigate against\nrevectoring user-triggerable function pointers.\n\nThis is derived from the grsecurity patch, although generated from scratch\nbecause it\u0027s simpler than extracting the changes from there.\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "54fdade1c3332391948ec43530c02c4794a38172",
      "tree": "a44cfa6888bbe702321e4d4737786e5292d72eaa",
      "parents": [
        "5c725138437837291db5c25f4a076ee852e806e3"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Tue Sep 22 16:43:39 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:28 2009 -0700"
      },
      "message": "generic-ipi: make struct call_function_data lockless\n\nThis patch can remove spinlock from struct call_function_data, the\nreasons are below:\n\n1: add a new interface for cpumask named cpumask_test_and_clear_cpu(),\n   it can atomically test and clear specific cpu, we can use it instead\n   of cpumask_test_cpu() and cpumask_clear_cpu() and no need data-\u003elock\n   to protect those in generic_smp_call_function_interrupt().\n\n2: in smp_call_function_many(), after csd_lock() return, the current\u0027s\n   cfd_data is deleted from call_function list, so it not have race\n   between other cpus, then cfs_data is only used in\n   smp_call_function_many() that must disable preemption and not from\n   a hardware interrupthandler or from a bottom half handler to call,\n   only the correspond cpu can use it, so it not have race in current\n   cpu, no need cfs_data-\u003elock to protect it.\n\n3: after 1 and 2, cfs_data-\u003elock is only use to protect cfs_data-\u003erefs in\n   generic_smp_call_function_interrupt(), so we can define cfs_data-\u003erefs\n   to atomic_t, and no need cfs_data-\u003elock any more.\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n[akpm@linux-foundation.org: use atomic_dec_return()]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1fd7317d02ec03c6fdf072317841287933d06d24",
      "tree": "b7ac4d511896dbb21c1b76a27f6c4d5b4cb6c7bb",
      "parents": [
        "af91322ef3f29ae4114e736e2a72e28b4d619cf9"
      ],
      "author": {
        "name": "Nick Black",
        "email": "dank@qemfd.net",
        "time": "Tue Sep 22 16:43:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:28 2009 -0700"
      },
      "message": "Move magic numbers into magic.h\n\nMove various magic-number definitions into magic.h.\n\nSigned-off-by: Nick Black \u003cdank@qemfd.net\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "af91322ef3f29ae4114e736e2a72e28b4d619cf9",
      "tree": "debba08531c7dd78b90b5d8f2c03f6bf7c9e7877",
      "parents": [
        "3a3b6ed2235f2f619889dd6096e24b6d93bf3339"
      ],
      "author": {
        "name": "Dave Young",
        "email": "hidave.darkstar@gmail.com",
        "time": "Tue Sep 22 16:43:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:28 2009 -0700"
      },
      "message": "printk: add printk_delay to make messages readable for some scenarios\n\nWhen syslog is not possible, at the same time there\u0027s no serial/net\nconsole available, it will be hard to read the printk messages.  For\nexample oops/panic/warning messages in shutdown phase.\n\nAdd a printk delay feature, we can make each printk message delay some\nmilliseconds.\n\nSetting the delay by proc/sysctl interface: /proc/sys/kernel/printk_delay\n\nThe value range from 0 - 10000, default value is 0\n\n[akpm@linux-foundation.org: fix a few things]\nSigned-off-by: Dave Young \u003chidave.darkstar@gmail.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fa081b00a80ef3f4575c99af6e97d29e1628cf51",
      "tree": "7124419e4f0bb4789d2c2e3b909dc1046c2bbe20",
      "parents": [
        "7fa07729e439a6184bd824746d06a49cca553f15"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Sep 22 16:43:27 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:27 2009 -0700"
      },
      "message": "include/linux/kmemcheck.h: fix a trillion warnings\n\nof the form\n\ninclude/net/inet_sock.h:208: warning: ISO C90 forbids mixed declarations and code\n\nCc: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nAcked-by: Vegard Nossum \u003cvegard.nossum@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": "01c6460f968d7b57fc6f98adb587952628c6e099",
      "tree": "7eb51548d2db9ced665af1a5def7748cad983e34",
      "parents": [
        "e6929a9020acbeb04d9a3ad9a88234c15be808fd"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Tue Sep 01 11:09:56 2009 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Sep 23 06:46:39 2009 -0700"
      },
      "message": "USB: usbfs: add USBDEVFS_URB_BULK_CONTINUATION flag\n\nThis patch (as1283) adds a new flag, USBDEVFS_URB_BULK_CONTINUATION,\nto usbfs.  It is intended for userspace libraries such as libusb and\nopenusb.  When they have to break up a single usbfs bulk transfer into\nmultiple URBs, they will set the flag on all but the first URB of the\nseries.\n\nIf an error other than an unlink occurs, the kernel will automatically\ncancel all the following URBs for the same endpoint and refuse to\naccept new submissions, until an URB is encountered that is not marked\nas a BULK_CONTINUATION.  Such an URB would indicate the start of a new\ntransfer or the presence of an older library, so the kernel returns to\nnormal operation.\n\nThis enables libraries to delimit bulk transfers correctly, even in\nthe presence of early termination as indicated by short packets.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n\n"
    },
    {
      "commit": "aab2d4086a1876fcff282aa36e2d4a92aa9935c9",
      "tree": "3b1bb3d934bec91c44eaf61aadb6c624eb8dd9b3",
      "parents": [
        "8d053c79f22462f55c02c8083580730b922cf7b4"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 20 15:39:55 2009 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Sep 23 06:46:38 2009 -0700"
      },
      "message": "USB: ehci-dbgp: errata for EHCI debug controller initialization\n\nOn some EHCI usb debug controllers, the EHCI debug device will fail to\nbe seen after a port reset, after a warm reset.  Two options exist to\nget the device to initialize correctly.\n\nOption 1 is to unplug and plug in the device.\n\nOption 2 is to use the EHCI port test to get the usb debug device to\nstart talking again.  At that point the debug controller port reset\nwill succeed.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCC: dbrownell@users.sourceforge.net\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "8d053c79f22462f55c02c8083580730b922cf7b4",
      "tree": "2b29c3219fec7cb622af6ffba69c8eb21650c662",
      "parents": [
        "917778267fbe67703ab7d5c6f0b7a05d4c3df485"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 20 15:39:54 2009 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Sep 23 06:46:38 2009 -0700"
      },
      "message": "USB: ehci-dbgp,ehci: Allow early or late use of the dbgp device\n\nIf the EHCI debug port is initialized and in use, the EHCI host\ncontroller driver must follow two rules.\n\n1) If the EHCI host driver issues a controller reset, the debug\n   controller driver re-initialization must get called after the reset\n   is completed.\n\n2) The EHCI host driver should ignore any requests to the physical\n   EHCI debug port when the EHCI debug port is in use.\n\nThe code to check for the debug port was moved from ehci_pci_reinit()\nto ehci_pci_setup because it must get called prior to ehci_reset()\nwhich will clear the debug port registers.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nCc: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCc: dbrownell@users.sourceforge.net\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "917778267fbe67703ab7d5c6f0b7a05d4c3df485",
      "tree": "e63fe24a920a378dc3cde0c6b9db366526df36f8",
      "parents": [
        "c9530948bc626c8b638015c0b32abb9615659ec6"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 20 15:39:53 2009 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Sep 23 06:46:38 2009 -0700"
      },
      "message": "USB: ehci-dbgp: stability improvements and external re-init\n\nThis patch implements several changes:\n\n1) Improve the capability to debug the dbgp driver\n\n   The dbgp_ehci_status() was added in a number of places to report\n   the critical ehci registers to diagnose the cause of a failure of\n   the ehci-dbgp driver.\n\n2) Capability to survive the host controller initialization\n\n   The dbgp_external_startup(), dbgp_not_safe, and dbgp_phys_port were\n   added so as to allow the ehci-dbgp to re-initialize after the ehci\n   host controller is reset by the standard host controller driver.\n   This same routine is common for the early startup or\n   re-initialization.\n\n   This resulted in the need to move some of the initialization code\n   out of the __init section because the ehci driver has the\n   possibility to be loaded later on as a kernel module.\n\n3) Stability improvements for device initialization\n\n   The device enumeration from 0 to 127 has the possibility to fail\n   the first time after a warm reset on some older EHCI debug\n   controllers.  The enumeration will be tried up to 3 times to\n   account for this failure case.\n\n   The dbg_wait_until_complete() was changed to wait up to 250 ms\n   before failing which only comes into play during device\n   initialization. The maximum delay will never get hit during the\n   course of normal operation of the driver, unless the device got\n   unplugged or there was a ehci controller failure, in which case the\n   dbgp device driver will shut itself down.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: dbrownell@users.sourceforge.net\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "df6c516900d48df3581b23d37d6516a22ec4f2ca",
      "tree": "d1210b893b7ba69d8694e6022c47764134a79ae7",
      "parents": [
        "fd4f3a931f6e047e88bc8c6023666acad957109a"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 20 15:39:48 2009 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Sep 23 06:46:38 2009 -0700"
      },
      "message": "USB: ehci,dbgp,early_printk: split ehci debug driver from early_printk.c\n\nMove the dbgp early printk driver in advance of refactoring and adding\nnew code, so the changes to this code are tracked separately from the\nmove of the code.\n\nThe drivers/usb/early directory will be the location of the current\nand future early usb code for driving usb devices prior initializing\nthe standard interrupt driven USB drivers.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "8e8dce065088833fc418bfa5fbf035cb0726c04c",
      "tree": "146ad73ff1ee9439263678c5493a5c2d180ad794",
      "parents": [
        "74aee796c613f54e9f089170df548c0b3f15af69"
      ],
      "author": {
        "name": "David VomLehn",
        "email": "dvomlehn@cisco.com",
        "time": "Fri Aug 28 12:54:27 2009 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Sep 23 06:46:34 2009 -0700"
      },
      "message": "USB: use kfifo to buffer usb-generic serial writes\n\nWhen do_output_char() attempts to write a carriage return/line feed sequence,\nit first checks to see how much buffer room is available. If there are at least\ntwo characters free, it will write the carriage return/line feed with two calls\nto tty_put_char(). It calls the tty_operation functions write() for devices that\ndon\u0027t support the tty_operations function put_char(). If the USB generic serial\ndevice\u0027s write URB is not in use, it will return the buffer size when asked how\nmuch room is available. The write() of the carriage return will cause it to mark\nthe write URB busy, so the subsequent write() of the line feed will be ignored.\n\nThis patch uses the kfifo infrastructure to implement a write FIFO that\naccurately returns the amount of space available in the buffer.\n\nSigned-off-by: David VomLehn \u003cdvomlehn@cisco.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "c35013087aa9b10e4674b53b7c8f7966de83c194",
      "tree": "6cf8f305ded6169b11e8bc1d4234d8bd47199f99",
      "parents": [
        "2f2cac3c1af2bfc72c55b0054b6b95309882e27b"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Wed Jul 29 14:23:25 2009 +0300"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Sep 23 06:46:31 2009 -0700"
      },
      "message": "USB: audio: guard kernel-only code with __KERNEL__\n\ninclude/linux/usb/audio.h is exported to userspace,\nso part of this file that is for internal kernel\nusage need to be guarded with ifdef __KERNEL__.\nThis way make headers_install will stript it out.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "a9d43091c5be1e7a60d5abe84be4f3050236b26a",
      "tree": "0fa131f785350d0119777611aabda4aca0c7e060",
      "parents": [
        "e9238221d3fef990e2fd01702ebe5af90dda52a2"
      ],
      "author": {
        "name": "Lothar Wassmann",
        "email": "LW@KARO-electronics.de",
        "time": "Thu Jul 16 20:51:21 2009 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Sep 23 06:46:30 2009 -0700"
      },
      "message": "USB: NXP ISP1362 USB host driver\n\nSigned-off-by: Lothar Wassmann \u003cLW@KARO-electronics.de\u003e\nSigned-off-by: Michael Hennerich \u003cmichael.hennerich@analog.com\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "9da69c604d87afea37b5411867bb76e3c624cc92",
      "tree": "b22b9a8c7e471633054b3b019411c584473b07c5",
      "parents": [
        "331ac6b288d9f3689514ced1878041fb0df7e13c"
      ],
      "author": {
        "name": "Michael Hennerich",
        "email": "michael.hennerich@analog.com",
        "time": "Wed Jul 15 23:22:54 2009 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Sep 23 06:46:29 2009 -0700"
      },
      "message": "USB: isp1760: allow platform devices to customize devflags\n\nPlatform device support was merged earlier, but support for boards to\ncustomize the devflags aspect of the controller was not.  We want this on\nBlackfin systems to control the bus width, but might as well expose all of\nthe fields while we\u0027re at it.\n\nSigned-off-by: Michael Hennerich \u003cmichael.hennerich@analog.com\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@kernel.org\u003e\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "331ac6b288d9f3689514ced1878041fb0df7e13c",
      "tree": "c2a9d0187fea9224b81a0460b3fbe7f2e4ed0c21",
      "parents": [
        "3807e26d69b9ad3864fe03224ebebc9610d5802e"
      ],
      "author": {
        "name": "Alek Du",
        "email": "alek.du@intel.com",
        "time": "Mon Jul 13 12:41:20 2009 +0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Sep 23 06:46:29 2009 -0700"
      },
      "message": "USB: EHCI: Add Intel Moorestown EHCI controller HOSTPCx extensions and support phy low power mode\n\nThe Intel Moorestown EHCI controller supports non-standard HOSTPCx register\nextension. This register controls the LPM behaviour and controls the behaviour\nof each USB port.\n\nSigned-off-by: Jacob Pan \u003cjacob.jun.pan@intel.com\u003e\nSigned-off-by: Alek Du \u003calek.du@intel.com\u003e\nAcked-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCc: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n"
    },
    {
      "commit": "ccf5b801cef4f9e2d708d3b87e91e2bc6abd5206",
      "tree": "1b7de13df336f44f6f74657934e79dc8c0bfd142",
      "parents": [
        "7cbe5dca399a50ce8aa74314b1d276e2fb904e1b"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Mon Jun 29 11:00:01 2009 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Sep 23 06:46:23 2009 -0700"
      },
      "message": "USB: make intf.pm_usage an atomic_t\n\nThis patch (as1260) changes the pm_usage_cnt field in struct\nusb_interface from an int to an atomic_t.  This is so that drivers can\ninvoke the usb_autopm_get_interface_async() and\nusb_autopm_put_interface_async() routines without locking and without\nfear of corrupting the pm_usage_cnt value.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n"
    },
    {
      "commit": "7cbe5dca399a50ce8aa74314b1d276e2fb904e1b",
      "tree": "f7a565f3d2f5e9584faffa69d8e8545d4e0c4cdb",
      "parents": [
        "831baa4915de465357b25c471bbb9b36472024df"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Mon Jun 29 10:56:54 2009 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Sep 23 06:46:22 2009 -0700"
      },
      "message": "USB: add API for userspace drivers to \"claim\" ports\n\nThis patch (as1258) implements a feature that users have been asking\nfor: It gives programs the ability to \"claim\" a port on a hub, via a\nnew usbfs ioctl.  A device plugged into a \"claimed\" port will not be\ntouched by the kernel beyond the immediate necessities of\ninitialization and enumeration.\n\nIn particular, when a device is plugged into a \"claimed\" port, the\nkernel will not select and install a configuration.  And when a config\nis installed by usbfs or sysfs, the kernel will not probe any drivers\nfor any of the interfaces.  (However the kernel will fetch various\nstring descriptors during enumeration.  One could argue that this\nisn\u0027t really necessary, but the strings are exported in sysfs.)\n\nThe patch does not guarantee exclusive access to these devices; it is\nstill possible for more than one program to open the device file\nconcurrently.  Programs are responsible for coordinating access among\nthemselves.\n\nA demonstration program showing how to use the new interface can be \nfound in an attachment to\n\n\thttp://marc.info/?l\u003dlinux-usb\u0026m\u003d124345857431452\u0026w\u003d2\n\nThe patch also makes a small simplification to the hub driver,\nreplacing a bunch of more-or-less useless variants of \"out of memory\"\nwith a single message.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "b95cd7ec3e93bae199e820bd65b21b23e4538acc",
      "tree": "c1a99b3dfd9b52bd0194d3aff6231867887d990f",
      "parents": [
        "512ad27d8667158747de2e8da8a23e8f50e91856"
      ],
      "author": {
        "name": "Laurent Pinchart",
        "email": "laurent.pinchart@skynet.be",
        "time": "Sun Jun 21 23:21:55 2009 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Sep 23 06:46:20 2009 -0700"
      },
      "message": "USB audio gadget: Un-inline generic_[gs]et_cmd\n\nThose functions are used only used to fill the set/get members of\nusb_audio_control. It doesn\u0027t make much sense to inline them.\n\nSigned-off-by: Laurent Pinchart \u003claurent.pinchart@skynet.be\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "512ad27d8667158747de2e8da8a23e8f50e91856",
      "tree": "3c56c7265a1e2d7530ddb9c31806d3c1086ac6f5",
      "parents": [
        "315ad3028c8aae14891797040f855fc3291a076b"
      ],
      "author": {
        "name": "Laurent Pinchart",
        "email": "laurent.pinchart@skynet.be",
        "time": "Sun Jun 21 23:23:05 2009 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Sep 23 06:46:20 2009 -0700"
      },
      "message": "USB audio gadget: Prefix all macro definitions with UAC_ in linux/usb/audio.h\n\nlinux/usb/audio.h is a public header file that includes definitions\nexported to userspace. To avoid namespace clashes, prefix all macro\ndefinitions with UAC_. Existing macros and structures prefixed with\nUSB_AC_ and USB_AS_ are renamed for consistency.\n\nSigned-off-by: Laurent Pinchart \u003claurent.pinchart@skynet.be\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "315ad3028c8aae14891797040f855fc3291a076b",
      "tree": "a11071a499c838dd34b39ff8431ca4d44269251e",
      "parents": [
        "85e08ca54c5c203cd2638f0fc8fa899a539f6254"
      ],
      "author": {
        "name": "Laurent Pinchart",
        "email": "laurent.pinchart@skynet.be",
        "time": "Sun Jun 21 23:20:39 2009 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Sep 23 06:46:19 2009 -0700"
      },
      "message": "USB: Move vendor subclass definition from usb/audio.h to usb/ch9.h\n\nUSB_SUBCLASS_VENDOR_SPEC is common to several USB classes and as such belongs\nto usb/ch9.h.\n\nSigned-off-by: Laurent Pinchart \u003claurent.pinchart@skynet.be\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "85e08ca54c5c203cd2638f0fc8fa899a539f6254",
      "tree": "145fef8b25d136293d3dc8eb2dfecd84ce1ea08e",
      "parents": [
        "81bf46f3034046c572714bdee1dc51beb3475082"
      ],
      "author": {
        "name": "Laurent Pinchart",
        "email": "laurent.pinchart@skynet.be",
        "time": "Sun Jun 21 23:19:23 2009 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Sep 23 06:46:19 2009 -0700"
      },
      "message": "USB: Move endpoint sync type definitions from usb/audio.h to usb/ch9.h\n\nAnd use the new definitions in the USB Audio Class gadget driver.\n\nSigned-off-by: Laurent Pinchart \u003claurent.pinchart@skynet.be\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "4e9e92003529e5c7bb11281f7c2c9b3fe8858403",
      "tree": "07169c9a996a119aebb5865a76ff1177afe90a22",
      "parents": [
        "f4e2332cfcf900e0a926c4e0fc35f751bcbcaa1b"
      ],
      "author": {
        "name": "Pete Zaitcev",
        "email": "zaitcev@redhat.com",
        "time": "Thu Jun 11 08:53:20 2009 -0600"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Sep 23 06:46:19 2009 -0700"
      },
      "message": "USB: usbmon: end ugly tricks with DMA peeking\n\nThis patch fixes crashes when usbmon attempts to access GART aperture.\nThe old code attempted to take a bus address and convert it into a\nvirtual address, which clearly was impossible on systems with actual\nIOMMUs. Let us not persist in this foolishness, and use transfer_buffer\nin all cases instead.\n\nI think downsides are negligible. The ones I see are:\n - A driver may pass an address of one buffer down as transfer_buffer,\n   and entirely different entity mapped for DMA, resulting in misleading\n   output of usbmon. Note, however, that PIO based controllers would\n   do transfer the same data that usbmon sees here.\n - Out of tree drivers may crash usbmon if they store garbage in\n   transfer_buffer. I inspected the in-tree drivers, and clarified\n   the documentation in comments.\n - Drivers that use get_user_pages will not be possible to monitor.\n   I only found one driver with this problem (drivers/staging/rspiusb).\n - Same happens with with usb_storage transferring from highmem, but\n   it works fine on 64-bit systems, so I think it\u0027s not a concern.\n   At least we don\u0027t crash anymore.\n\nWhy didn\u0027t we do this in 2.6.10? That\u0027s because back in those days\nit was popular not to fill in transfer_buffer, so almost all\ntraffic would be invisible (e.g. all of HID was like that).\nBut now, the tree is almost 100% PIO friendly, so we can do the\nright thing at last.\n\nSigned-off-by: Pete Zaitcev \u003czaitcev@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "f1b0ef062602713c2c7cfa12362d5d90ed01c5f6",
      "tree": "30a130141b7c4b69ff20d134734acd40f1ee0960",
      "parents": [
        "3ca4f5ca73057a617f9444a91022d7127041970a"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Sep 17 19:57:42 2009 +0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Sep 23 22:26:36 2009 +0930"
      },
      "message": "virtio_blk: add support for cache flush\n\nRecent qemu has added a VIRTIO_BLK_F_FLUSH flag to advertise that the\nvirtual disk has a volatile write cache that needs to be flushed.  In case\nwe see this feature implement tell the Linux block layer about the fact\nand use the new VIRTIO_BLK_T_FLUSH to flush the cache when required.  This\nallows for an correct and simple implementation of write barriers.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "3ca4f5ca73057a617f9444a91022d7127041970a",
      "tree": "382659da29ad0a2e9878df6c7c4204913ab642e7",
      "parents": [
        "3a20210dc26bbfff3bbb48bb22d2846240b71d8f"
      ],
      "author": {
        "name": "Fernando Luis Vazquez Cao",
        "email": "fernando@oss.ntt.co.jp",
        "time": "Fri Jul 31 15:25:56 2009 +0900"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Sep 23 22:26:32 2009 +0930"
      },
      "message": "virtio: add virtio IDs file\n\nVirtio IDs are spread all over the tree which makes assigning new IDs\nbothersome. Putting them together should make the process less error-prone.\n\nSigned-off-by: Fernando Luis Vazquez Cao \u003cfernando@oss.ntt.co.jp\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "3c1b27d5043086a485f8526353ae9fe37bfa1065",
      "tree": "e3b6eda3c66bcd1fc3af6e7fa6e4e3af77459474",
      "parents": [
        "f68d24082e22ccee3077d11aeb6dc5354f0ca7f1"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Sep 23 22:26:31 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Sep 23 22:26:31 2009 +0930"
      },
      "message": "virtio: make add_buf return capacity remaining\n\nThis API change means that virtio_net can tell how much capacity\nremains for buffers.  It\u0027s necessarily fuzzy, since\nVIRTIO_RING_F_INDIRECT_DESC means we can fit any number of descriptors\nin one, *if* we can kmalloc.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Dinesh Subhraveti \u003cdineshs@us.ibm.com\u003e\n"
    },
    {
      "commit": "7c329288d72e025db4feac65f0fed95fb3e3ef1c",
      "tree": "a94ac798e544f53daf5f48374e8e54b0fb0061ef",
      "parents": [
        "7fa07729e439a6184bd824746d06a49cca553f15"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 23 09:52:18 2009 +1000"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@linux.ie",
        "time": "Wed Sep 23 09:52:18 2009 +1000"
      },
      "message": "vgaarb: make client interface config invariant.\n\nFixes build when VGA_ARB is off.\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Dave Airlie \u003cairlied@redhat.com\u003e\n"
    },
    {
      "commit": "f056878332a91ed984a116bad4e7d49aefff9e6e",
      "tree": "572f4757c8e7811d45e0be0c2ae529c78fb63441",
      "parents": [
        "3961f7c3cf247eee5df7fabadc7a40f2deeb98f3",
        "7fa07729e439a6184bd824746d06a49cca553f15"
      ],
      "author": {
        "name": "Anton Vorontsov",
        "email": "avorontsov@ru.mvista.com",
        "time": "Wed Sep 23 03:49:27 2009 +0400"
      },
      "committer": {
        "name": "Anton Vorontsov",
        "email": "avorontsov@ru.mvista.com",
        "time": "Wed Sep 23 03:49:27 2009 +0400"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6\n\nConflicts:\n\tdrivers/power/wm97xx_battery.c\n"
    },
    {
      "commit": "991d79b0d1255f89267a350b0048eca59f100cbb",
      "tree": "65ddf4160f959952d9f4955fda8844374768b83e",
      "parents": [
        "a87e84b5cdfacf11af4e8a85c4bca9793658536f",
        "181f7c5dd3832763bdf2756b6d2d8a49bdf12791"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 08:07:54 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 08:07:54 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/vegard/kmemcheck\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/vegard/kmemcheck:\n  kmemcheck: add missing braces to do-while in kmemcheck_annotate_bitfield\n  kmemcheck: update documentation\n  kmemcheck: depend on HAVE_ARCH_KMEMCHECK\n  kmemcheck: remove useless check\n  kmemcheck: remove duplicated #include\n"
    },
    {
      "commit": "a87e84b5cdfacf11af4e8a85c4bca9793658536f",
      "tree": "f8e3cb2d339d8ed0e987d55f725e501730cdc81d",
      "parents": [
        "342ff1a1b558ebbdb8cbd55ab6a63eca8b2473ca",
        "3c394ddaa7ea4205f933fd9b481166b2669368a9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:54:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:54:33 2009 -0700"
      },
      "message": "Merge branch \u0027for-2.6.32\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.32\u0027 of git://linux-nfs.org/~bfields/linux: (68 commits)\n  nfsd4: nfsv4 clients should cross mountpoints\n  nfsd: revise 4.1 status documentation\n  sunrpc/cache: avoid variable over-loading in cache_defer_req\n  sunrpc/cache: use list_del_init for the list_head entries in cache_deferred_req\n  nfsd: return success for non-NFS4 nfs4_state_start\n  nfsd41: Refactor create_client()\n  nfsd41: modify nfsd4.1 backchannel to use new xprt class\n  nfsd41: Backchannel: Implement cb_recall over NFSv4.1\n  nfsd41: Backchannel: cb_sequence callback\n  nfsd41: Backchannel: Setup sequence information\n  nfsd41: Backchannel: Server backchannel RPC wait queue\n  nfsd41: Backchannel: Add sequence arguments to callback RPC arguments\n  nfsd41: Backchannel: callback infrastructure\n  nfsd4: use common rpc_cred for all callbacks\n  nfsd4: allow nfs4 state startup to fail\n  SUNRPC: Defer the auth_gss upcall when the RPC call is asynchronous\n  nfsd4: fix null dereference creating nfsv4 callback client\n  nfsd4: fix whitespace in NFSPROC4_CLNT_CB_NULL definition\n  nfsd41: sunrpc: add new xprt class for nfsv4.1 backchannel\n  sunrpc/cache: simplify cache_fresh_locked and cache_fresh_unlocked.\n  ...\n"
    },
    {
      "commit": "342ff1a1b558ebbdb8cbd55ab6a63eca8b2473ca",
      "tree": "1f967f283dade6e03897169bb29513354f49f910",
      "parents": [
        "50223e486cabdcf7e540e519da1f26bab3084e5d",
        "24ed7a97464db44592495f98cff8bcee02f92bc2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:51:45 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:51:45 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (34 commits)\n  trivial: fix typo in aic7xxx comment\n  trivial: fix comment typo in drivers/ata/pata_hpt37x.c\n  trivial: typo in kernel-parameters.txt\n  trivial: fix typo in tracing documentation\n  trivial: add __init/__exit macros in drivers/gpio/bt8xxgpio.c\n  trivial: add __init macro/ fix of __exit macro location in ipmi_poweroff.c\n  trivial: remove unnecessary semicolons\n  trivial: Fix duplicated word \"options\" in comment\n  trivial: kbuild: remove extraneous blank line after declaration of usage()\n  trivial: improve help text for mm debug config options\n  trivial: doc: hpfall: accept disk device to unload as argument\n  trivial: doc: hpfall: reduce risk that hpfall can do harm\n  trivial: SubmittingPatches: Fix reference to renumbered step\n  trivial: fix typos \"man[ae]g?ment\" -\u003e \"management\"\n  trivial: media/video/cx88: add __init/__exit macros to cx88 drivers\n  trivial: fix typo in CONFIG_DEBUG_FS in gcov doc\n  trivial: fix missing printk space in amd_k7_smp_check\n  trivial: fix typo s/ketymap/keymap/ in comment\n  trivial: fix typo \"to to\" in multiple files\n  trivial: fix typos in comments s/DGBU/DBGU/\n  ...\n"
    },
    {
      "commit": "50223e486cabdcf7e540e519da1f26bab3084e5d",
      "tree": "c5eedda167c7ea83e342f80a9344646c7a99ba35",
      "parents": [
        "e258b80e691f1f3ae83a60aa80eaf7322bd55ec4",
        "a2d693cf650f000ea22351484ee66cf4c2651eef"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:51:28 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:51:28 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:\n  HID: Remove duplicate Kconfig entry\n  HID: consolidate connect and disconnect into core code\n  HID: fix non-atomic allocation in hid_input_report\n"
    },
    {
      "commit": "abd6633c67925f90775bb74755f9c547e30f1f20",
      "tree": "9cb974febc1a30e3914720655cd406cea84c063e",
      "parents": [
        "a976f150a6953da5ccbd40fa6dba3bd7d56f9f67"
      ],
      "author": {
        "name": "David Härdeman",
        "email": "david@hardeman.nu",
        "time": "Mon Sep 21 17:04:52 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:49 2009 -0700"
      },
      "message": "pnp: add a shutdown method to pnp drivers\n\nThe shutdown method is used by the winbond cir driver to setup the\nhardware for wake-from-S5.\n\nSigned-off-by: Bjorn Helgaas \u003cbjorn.helgaas@hp.com\u003e\nSigned-off-by: David Härdeman \u003cdavid@hardeman.nu\u003e\nCc: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8873c33483e62988ed886230aab71ef4c678f710",
      "tree": "441cdc48497b84c823330241ecff147642e136a4",
      "parents": [
        "0ec48915e8bbb37dea3df85c41e4c3498b95664b"
      ],
      "author": {
        "name": "Daniel Mack",
        "email": "daniel@caiaq.de",
        "time": "Mon Sep 21 17:04:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:48 2009 -0700"
      },
      "message": "lis3: add free-fall/wakeup function via platform_data\n\nThis offers a way for platforms to define flags and thresholds for the\nfree-fall/wakeup functions of the lis302d chips.\n\nMore registers needed to be seperated as they are specific to the\n\nSigned-off-by: Daniel Mack \u003cdaniel@caiaq.de\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Eric Piel \u003ceric.piel@tremplin-utc.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0ec48915e8bbb37dea3df85c41e4c3498b95664b",
      "tree": "33818fe22473c3019f10ce1f58f83e003ea4c5af",
      "parents": [
        "0bf41d9f414a5cf558aff234a0ff486257537574"
      ],
      "author": {
        "name": "Daniel Mack",
        "email": "daniel@caiaq.de",
        "time": "Mon Sep 21 17:04:42 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:48 2009 -0700"
      },
      "message": "lis3: fix typo\n\nBit 0x80 in CTRL_REG3 is an ACTIVE_LOW rather than an ACTIVE_HIGH\nfunction, I got that wrong during my last change.\n\nSigned-off-by: Daniel Mack \u003cdaniel@caiaq.de\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Eric Piel \u003ceric.piel@tremplin-utc.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "45b588d6e5cc172704bac0c998ce54873b149b22",
      "tree": "57a9d3478af60fcf6932c1f61b083b9203ef1ee8",
      "parents": [
        "4af5a2f770cc8575840ccb1514ec76ecb592985c"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Sep 21 17:04:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:47 2009 -0700"
      },
      "message": "flex_array: introduce DEFINE_FLEX_ARRAY\n\nFLEX_ARRAY_INIT(element_size, total_nr_elements) cannot determine if\neither parameter is valid, so flex arrays which are statically allocated\nwith this interface can easily become corrupted or reference beyond its\nallocated memory.\n\nThis removes FLEX_ARRAY_INIT() as a struct flex_array initializer since no\ninitializer may perform the required checking.  Instead, the array is now\ndefined with a new interface:\n\n\tDEFINE_FLEX_ARRAY(name, element_size, total_nr_elements)\n\nThis may be prefixed with `static\u0027 for file scope.\n\nThis interface includes compile-time checking of the parameters to ensure\nthey are valid.  Since the validity of both element_size and\ntotal_nr_elements depend on FLEX_ARRAY_BASE_SIZE and FLEX_ARRAY_PART_SIZE,\nthe kernel build will fail if either of these predefined values changes\nsuch that the array parameters are no longer valid.\n\nSince BUILD_BUG_ON() requires compile time constants, several of the\nstatic inline functions that were once local to lib/flex_array.c had to be\nmoved to include/linux/flex_array.h.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4af5a2f770cc8575840ccb1514ec76ecb592985c",
      "tree": "7af18234d7d171a946925e65e987fd51648be3aa",
      "parents": [
        "19da3dd157f8db6fe727ff268dab4791d55a6371"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Sep 21 17:04:31 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:47 2009 -0700"
      },
      "message": "flex_array: add flex_array_shrink function\n\nAdd a new function to the flex_array API:\n\n\tint flex_array_shrink(struct flex_array *fa)\n\nThis function will free all unused second-level pages.  Since elements are\nnow poisoned if they are not allocated with __GFP_ZERO, it\u0027s possible to\nidentify parts that consist solely of unused elements.\n\nflex_array_shrink() returns the number of pages freed.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "19da3dd157f8db6fe727ff268dab4791d55a6371",
      "tree": "4259074638b384e765c73542d74dd8f44750068b",
      "parents": [
        "e6de3988aa52debb25a427d085061f3bf1181d54"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Sep 21 17:04:31 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:47 2009 -0700"
      },
      "message": "flex_array: poison free elements\n\nNewly initialized flex_array\u0027s and/or flex_array_part\u0027s are now poisoned\nwith a new poison value, FLEX_ARRAY_FREE.  It\u0027s value is similar to\nPOISON_FREE used in the various slab allocators, but is different to\ndistinguish between flex array\u0027s poisoned kmem and slab allocator poisoned\nkmem.\n\nThis will allow us to identify flex_array_part\u0027s that only contain free\nelements (and free them with an addition to the flex_array API).  This\ncould also be extended in the future to identify `get\u0027 uses on elements\nthat have not been `put\u0027.\n\nIf __GFP_ZERO is passed for a part\u0027s gfp mask, the poisoning is avoided.\nThese elements are considered to be in-use since they have been\ninitialized.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e6de3988aa52debb25a427d085061f3bf1181d54",
      "tree": "4a5dd6acac3e73049918c646bd977894335e5560",
      "parents": [
        "2f30b1f9e1b612cdd1a17daeecf514229e8d6a5f"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Sep 21 17:04:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:47 2009 -0700"
      },
      "message": "flex_array: add flex_array_clear function\n\nAdd a new function to the flex_array API:\n\n\tint flex_array_clear(struct flex_array *fa,\n\t\t\t\tunsigned int element_nr)\n\nThis function will zero the element at element_nr in the flex_array.\n\nAlthough this is equivalent to using flex_array_put() and passing a\npointer to zero\u0027d memory, flex_array_clear() does not require such a\npointer to memory that would most likely need to be allocated on the\ncaller\u0027s stack which could be significantly large depending on\nelement_size.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "69d25870f20c4b2563304f2b79c5300dd60a067e",
      "tree": "cda2b2d65c1be95420c6ba92ae2d40fade4232c4",
      "parents": [
        "45d80eea87c9f8292d2d33173d6866c0ec57238a"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Mon Sep 21 17:04:08 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:45 2009 -0700"
      },
      "message": "cpuidle: fix the menu governor to boost IO performance\n\nFix the menu idle governor which balances power savings, energy efficiency\nand performance impact.\n\nThe reason for a reworked governor is that there have been serious\nperformance issues reported with the existing code on Nehalem server\nsystems.\n\nTo show this I\u0027m sure Andrew wants to see benchmark results:\n(benchmark is \"fio\", \"no cstates\" is using \"idle\u003dpoll\")\n\n\t\tno cstates\tcurrent linux\tnew algorithm\n1 disk\t\t107 Mb/s\t85 Mb/s\t\t105 Mb/s\n2 disks\t\t215 Mb/s\t123 Mb/s\t209 Mb/s\n12 disks\t590 Mb/s\t320 Mb/s\t585 Mb/s\n\nIn various power benchmark measurements, no degredation was found by our\nmeasurement\u0026diagnostics team.  Obviously a small percentage more power was\nused in the \"fio\" benchmark, due to the much higher performance.\n\nWhile it would be a novel idea to describe the new algorithm in this\ncommit message, I cheaped out and described it in comments in the code\ninstead.\n\n[changes since first post: spelling fixes from akpm, review feedback,\nfolded menu-tng into menu.c]\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Yanmin Zhang \u003cyanmin_zhang@linux.intel.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3d2d827f5ca5e32816194119d5c980c7e04474a6",
      "tree": "fe0e84669f5f20e1dff8e3dc6b191b4d5dfc0145",
      "parents": [
        "425fbf047cc70bb30dff368a6da02c8c2d229318"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Mon Sep 21 17:03:51 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:42 2009 -0700"
      },
      "message": "mm: move use_mm/unuse_mm from aio.c to mm/\n\nAnyone who wants to do copy to/from user from a kernel thread, needs\nuse_mm (like what fs/aio has).  Move that into mm/, to make reusing and\nexporting easier down the line, and make aio use it.  Next intended user,\nbesides aio, will be vhost-net.\n\nAcked-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Michael S. Tsirkin \u003cmst@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": "4e52780d41a741fb4861ae1df2413dd816ec11b1",
      "tree": "b3722349661ed0ce87841b110f568616892cf719",
      "parents": [
        "90f72aa58bbf076b68e289fbd71eb829bc505923"
      ],
      "author": {
        "name": "Eric B Munson",
        "email": "ebmunson@us.ibm.com",
        "time": "Mon Sep 21 17:03:47 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:42 2009 -0700"
      },
      "message": "hugetlb: add MAP_HUGETLB for mmaping pseudo-anonymous huge page regions\n\nAdd a flag for mmap that will be used to request a huge page region that\nwill look like anonymous memory to userspace.  This is accomplished by\nusing a file on the internal vfsmount.  MAP_HUGETLB is a modifier of\nMAP_ANONYMOUS and so must be specified with it.  The region will behave\nthe same as a MAP_ANONYMOUS region using small pages.\n\n[akpm@linux-foundation.org: fix arch definitions of MAP_HUGETLB]\nSigned-off-by: Eric B Munson \u003cebmunson@us.ibm.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6bfde05bf5c9682e255c6a2c669dc80f91af6296",
      "tree": "3ff62bb87fc12c1ce808a54f789c42c35be7c049",
      "parents": [
        "f8dbf0a7a4c5d98e8b70da9f7f4f6a89f3b7a7bb"
      ],
      "author": {
        "name": "Eric B Munson",
        "email": "ebmunson@us.ibm.com",
        "time": "Mon Sep 21 17:03:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:41 2009 -0700"
      },
      "message": "hugetlbfs: allow the creation of files suitable for MAP_PRIVATE on the vfs internal mount\n\nThis patchset adds a flag to mmap that allows the user to request that an\nanonymous mapping be backed with huge pages.  This mapping will borrow\nfunctionality from the huge page shm code to create a file on the kernel\ninternal mount and use it to approximate an anonymous mapping.  The\nMAP_HUGETLB flag is a modifier to MAP_ANONYMOUS and will not work without\nboth flags being preset.\n\nA new flag is necessary because there is no other way to hook into huge\npages without creating a file on a hugetlbfs mount which wouldn\u0027t be\nMAP_ANONYMOUS.\n\nTo userspace, this mapping will behave just like an anonymous mapping\nbecause the file is not accessible outside of the kernel.\n\nThis patchset is meant to simplify the programming model.  Presently there\nis a large chunk of boiler platecode, contained in libhugetlbfs, required\nto create private, hugepage backed mappings.  This patch set would allow\nuse of hugepages without linking to libhugetlbfs or having hugetblfs\nmounted.\n\nUnification of the VM code would provide these same benefits, but it has\nbeen resisted each time that it has been suggested for several reasons: it\nwould break PAGE_SIZE assumptions across the kernel, it makes page-table\nabstractions really expensive, and it does not provide any benefit on\narchitectures that do not support huge pages, incurring fast path\npenalties without providing any benefit on these architectures.\n\nThis patch:\n\nThere are two means of creating mappings backed by huge pages:\n\n        1. mmap() a file created on hugetlbfs\n        2. Use shm which creates a file on an internal mount which essentially\n           maps it MAP_SHARED\n\nThe internal mount is only used for shared mappings but there is very\nlittle that stops it being used for private mappings. This patch extends\nhugetlbfs_file_setup() to deal with the creation of files that will be\nmapped MAP_PRIVATE on the internal hugetlbfs mount. This extended API is\nused in a subsequent patch to implement the MAP_HUGETLB mmap() flag.\n\nSigned-off-by: Eric Munson \u003cebmunson@us.ibm.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3f96b79ad96263cc0ece7bb340cddf9b2ddfb1b3",
      "tree": "0da9828c16543164f1b055fd927ea3e222ca05e5",
      "parents": [
        "cdf7b3418ad5a8783efe8f9124023d9b869fec0f"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Mon Sep 21 17:03:37 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:41 2009 -0700"
      },
      "message": "tmpfs: depend on shmem\n\nCONFIG_SHMEM off gives you (ramfs masquerading as) tmpfs, even when\nCONFIG_TMPFS is off: that\u0027s a little anomalous, and I\u0027d intended to make\nmore sense of it by removing CONFIG_TMPFS altogether, always enabling its\ncode when CONFIG_SHMEM; but so many defconfigs have CONFIG_SHMEM on\nCONFIG_TMPFS off that we\u0027d better leave that as is.\n\nBut there is no point in asking for CONFIG_TMPFS if CONFIG_SHMEM is off:\nmake TMPFS depend on SHMEM, which also prevents TMPFS_POSIX_ACL\nshmem_acl.o being pointlessly built into the kernel when SHMEM is off.\n\nAnd a selfish change, to prevent the world from being rebuilt when I\nswitch between CONFIG_SHMEM on and off: the only CONFIG_SHMEM in the\nheader files is mm.h shmem_lock() - give that a shmem.c stub instead.\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "58fa879e1e640a1856f736b418984ebeccee1c95",
      "tree": "dc37bce8379e29c46e79f105cc71d137b14965cf",
      "parents": [
        "a13ea5b759645a0779edc6dbfec9abfd83220844"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Mon Sep 21 17:03:31 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:40 2009 -0700"
      },
      "message": "mm: FOLL flags for GUP flags\n\n__get_user_pages() has been taking its own GUP flags, then processing\nthem into FOLL flags for follow_page().  Though oddly named, the FOLL\nflags are more widely used, so pass them to __get_user_pages() now.\nSorry, VM flags, VM_FAULT flags and FAULT_FLAGs are still distinct.\n\n(The patch to __get_user_pages() looks peculiar, with both gup_flags\nand foll_flags: the gup_flags remain constant; but as before there\u0027s\nan exceptional case, out of scope of the patch, in which foll_flags\nper page have FOLL_WRITE masked off.)\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\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": "2a15efc953b26ad57d7d38b9e6782d57e53b4ab2",
      "tree": "f4d04903b3303e80460d2fa3f38da2b7eea82d22",
      "parents": [
        "8e4b9a60718970bbc02dfd3abd0b956ab65af231"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Mon Sep 21 17:03:27 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:40 2009 -0700"
      },
      "message": "mm: follow_hugetlb_page flags\n\nfollow_hugetlb_page() shouldn\u0027t be guessing about the coredump case\neither: pass the foll_flags down to it, instead of just the write bit.\n\nRemove that obscure huge_zeropage_ok() test.  The decision is easy,\nthough unlike the non-huge case - here vm_ops-\u003efault is always set.\nBut we know that a fault would serve up zeroes, unless there\u0027s\nalready a hugetlbfs pagecache page to back the range.\n\n(Alternatively, since hugetlb pages aren\u0027t swapped out under pressure,\nyou could save more dump space by arguing that a page not yet faulted\ninto this process cannot be relevant to the dump; but that would be\nmore surprising.)\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\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": "8e4b9a60718970bbc02dfd3abd0b956ab65af231",
      "tree": "4c19152cea19882071a74f92c0cf6a16d5711f41",
      "parents": [
        "f3e8fccd06d27773186a0094371daf2d84c79469"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Mon Sep 21 17:03:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:40 2009 -0700"
      },
      "message": "mm: FOLL_DUMP replace FOLL_ANON\n\nThe \"FOLL_ANON optimization\" and its use_zero_page() test have caused\nconfusion and bugs: why does it test VM_SHARED? for the very good but\nunsatisfying reason that VMware crashed without.  As we look to maybe\nreinstating anonymous use of the ZERO_PAGE, we need to sort this out.\n\nEasily done: it\u0027s silly for __get_user_pages() and follow_page() to\nbe guessing whether it\u0027s safe to assume that they\u0027re being used for\na coredump (which can take a shortcut snapshot where other uses must\nhandle a fault) - just tell them with GUP_FLAGS_DUMP and FOLL_DUMP.\n\nget_dump_page() doesn\u0027t even want a ZERO_PAGE: an error suits fine.\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f3e8fccd06d27773186a0094371daf2d84c79469",
      "tree": "46e652e6ac3588a26c6d3e38ea10274eb3fc2ea8",
      "parents": [
        "1c3aff1ceec2cc86810e2690e67873ff0c505862"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Mon Sep 21 17:03:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:40 2009 -0700"
      },
      "message": "mm: add get_dump_page\n\nIn preparation for the next patch, add a simple get_dump_page(addr)\ninterface for the CONFIG_ELF_CORE dumpers to use, instead of calling\nget_user_pages() directly.  They\u0027re not interested in errors: they\njust want to use holes as much as possible, to save space and make\nsure that the data is aligned where the headers said it would be.\n\nOh, and don\u0027t use that horrid DUMP_SEEK(off) macro!\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\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": "5f8dcc21211a3d4e3a7a5ca366b469fb88117f61",
      "tree": "4bbb1b55c7787462fe313c7c003e77823c032422",
      "parents": [
        "5d863b89688e5811cd9e5bd0082cb38abe03adf3"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon Sep 21 17:03:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:39 2009 -0700"
      },
      "message": "page-allocator: split per-cpu list into one-list-per-migrate-type\n\nThe following two patches remove searching in the page allocator fast-path\nby maintaining multiple free-lists in the per-cpu structure.  At the time\nthe search was introduced, increasing the per-cpu structures would waste a\nlot of memory as per-cpu structures were statically allocated at\ncompile-time.  This is no longer the case.\n\nThe patches are as follows. They are based on mmotm-2009-08-27.\n\nPatch 1 adds multiple lists to struct per_cpu_pages, one per\n\tmigratetype that can be stored on the PCP lists.\n\nPatch 2 notes that the pcpu drain path check empty lists multiple times. The\n\tpatch reduces the number of checks by maintaining a count of free\n\tlists encountered. Lists containing pages will then free multiple\n\tpages in batch\n\nThe patches were tested with kernbench, netperf udp/tcp, hackbench and\nsysbench.  The netperf tests were not bound to any CPU in particular and\nwere run such that the results should be 99% confidence that the reported\nresults are within 1% of the estimated mean.  sysbench was run with a\npostgres background and read-only tests.  Similar to netperf, it was run\nmultiple times so that it\u0027s 99% confidence results are within 1%.  The\npatches were tested on x86, x86-64 and ppc64 as\n\nx86:\tIntel Pentium D 3GHz with 8G RAM (no-brand machine)\n\tkernbench\t- No significant difference, variance well within noise\n\tnetperf-udp\t- 1.34% to 2.28% gain\n\tnetperf-tcp\t- 0.45% to 1.22% gain\n\thackbench\t- Small variances, very close to noise\n\tsysbench\t- Very small gains\n\nx86-64:\tAMD Phenom 9950 1.3GHz with 8G RAM (no-brand machine)\n\tkernbench\t- No significant difference, variance well within noise\n\tnetperf-udp\t- 1.83% to 10.42% gains\n\tnetperf-tcp\t- No conclusive until buffer \u003e\u003d PAGE_SIZE\n\t\t\t\t4096\t+15.83%\n\t\t\t\t8192\t+ 0.34% (not significant)\n\t\t\t\t16384\t+ 1%\n\thackbench\t- Small gains, very close to noise\n\tsysbench\t- 0.79% to 1.6% gain\n\nppc64:\tPPC970MP 2.5GHz with 10GB RAM (it\u0027s a terrasoft powerstation)\n\tkernbench\t- No significant difference, variance well within noise\n\tnetperf-udp\t- 2-3% gain for almost all buffer sizes tested\n\tnetperf-tcp\t- losses on small buffers, gains on larger buffers\n\t\t\t  possibly indicates some bad caching effect.\n\thackbench\t- No significant difference\n\tsysbench\t- 2-4% gain\n\nThis patch:\n\nCurrently the per-cpu page allocator searches the PCP list for pages of\nthe correct migrate-type to reduce the possibility of pages being\ninappropriate placed from a fragmentation perspective.  This search is\npotentially expensive in a fast-path and undesirable.  Splitting the\nper-cpu list into multiple lists increases the size of a per-cpu structure\nand this was potentially a major problem at the time the search was\nintroduced.  These problem has been mitigated as now only the necessary\nnumber of structures is allocated for the running system.\n\nThis patch replaces a list search in the per-cpu allocator with one list\nper migrate type.  The potential snag with this approach is when bulk\nfreeing pages.  We round-robin free pages based on migrate type which has\nlittle bearing on the cache hotness of the page and potentially checks\nempty lists repeatedly in the event the majority of PCP pages are of one\ntype.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "28b83c5193e7ab951e402252278f2cc79dc4d298",
      "tree": "10080e8d3957c2a03f8419ab44c9ecb0ffcdaee0",
      "parents": [
        "f168e1b6390e2d79cf57e48e6ae6d9b0a9e2851a"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Sep 21 17:03:13 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:39 2009 -0700"
      },
      "message": "oom: move oom_adj value from task_struct to signal_struct\n\nCurrently, OOM logic callflow is here.\n\n    __out_of_memory()\n        select_bad_process()            for each task\n            badness()                   calculate badness of one task\n                oom_kill_process()      search child\n                    oom_kill_task()     kill target task and mm shared tasks with it\n\nexample, process-A have two thread, thread-A and thread-B and it have very\nfat memory and each thread have following oom_adj and oom_score.\n\n     thread-A: oom_adj \u003d OOM_DISABLE, oom_score \u003d 0\n     thread-B: oom_adj \u003d 0,           oom_score \u003d very-high\n\nThen, select_bad_process() select thread-B, but oom_kill_task() refuse\nkill the task because thread-A have OOM_DISABLE.  Thus __out_of_memory()\ncall select_bad_process() again.  but select_bad_process() select the same\ntask.  It mean kernel fall in livelock.\n\nThe fact is, select_bad_process() must select killable task.  otherwise\nOOM logic go into livelock.\n\nAnd root cause is, oom_adj shouldn\u0027t be per-thread value.  it should be\nper-process value because OOM-killer kill a process, not thread.  Thus\nThis patch moves oomkilladj (now more appropriately named oom_adj) from\nstruct task_struct to struct signal_struct.  it naturally prevent\nselect_bad_process() choose wrong task.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@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": "f86296317434b21585e229f6c49a33cb9ebab4d3",
      "tree": "d4fb05d4aee1a8e373ec053e7316dc9847b2c417",
      "parents": [
        "1a8670a29b5277cbe601f74ab63d2c5211fb3005"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Mon Sep 21 17:03:11 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:39 2009 -0700"
      },
      "message": "mm: do batched scans for mem_cgroup\n\nFor mem_cgroup, shrink_zone() may call shrink_list() with nr_to_scan\u003d1, in\nwhich case shrink_list() _still_ calls isolate_pages() with the much\nlarger SWAP_CLUSTER_MAX.  It effectively scales up the inactive list scan\nrate by up to 32 times.\n\nFor example, with 16k inactive pages and DEF_PRIORITY\u003d12, (16k \u003e\u003e 12)\u003d4.\nSo when shrink_zone() expects to scan 4 pages in the active/inactive list,\nthe active list will be scanned 4 pages, while the inactive list will be\n(over) scanned SWAP_CLUSTER_MAX\u003d32 pages in effect.  And that could break\nthe balance between the two lists.\n\nIt can further impact the scan of anon active list, due to the anon\nactive/inactive ratio rebalance logic in balance_pgdat()/shrink_zone():\n\ninactive anon list over scanned \u003d\u003e inactive_anon_is_low() \u003d\u003d TRUE\n                                \u003d\u003e shrink_active_list()\n                                \u003d\u003e active anon list over scanned\n\nSo the end result may be\n\n- anon inactive  \u003d\u003e over scanned\n- anon active    \u003d\u003e over scanned (maybe not as much)\n- file inactive  \u003d\u003e over scanned\n- file active    \u003d\u003e under scanned (relatively)\n\nThe accesses to nr_saved_scan are not lock protected and so not 100%\naccurate, however we can tolerate small errors and the resulted small\nimbalanced scan rates between zones.\n\nCc: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1a8670a29b5277cbe601f74ab63d2c5211fb3005",
      "tree": "1b2ca94009c1f3d7ff05bbda3b8956631e3f38d9",
      "parents": [
        "0b21767637c3c99890a248fe47ac414e51cf5eb7"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Sep 21 17:03:09 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:38 2009 -0700"
      },
      "message": "oom: move oom_killer_enable()/oom_killer_disable to where they belong\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2c85f51d222ccdd8c401d77a36b723a89156810d",
      "tree": "fb94c6ea243504043e434f0a7d26cfd4831b33a9",
      "parents": [
        "3c1596efe167322dae87f8390d36f91ce2d7f936"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@novell.com",
        "time": "Mon Sep 21 17:03:07 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:38 2009 -0700"
      },
      "message": "mm: also use alloc_large_system_hash() for the PID hash table\n\nThis is being done by allowing boot time allocations to specify that they\nmay want a sub-page sized amount of memory.\n\nOverall this seems more consistent with the other hash table allocations,\nand allows making two supposedly mm-only variables really mm-only\n(nr_{kernel,all}_pages).\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4481374ce88ba8f460c8b89f2572027bd27057d0",
      "tree": "6896601b6a1da0e3e932ffa75fcff966c834c02c",
      "parents": [
        "4738e1b9cf8f9e28d7de080a5e6ce5d0095ea18f"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@novell.com",
        "time": "Mon Sep 21 17:03:05 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:38 2009 -0700"
      },
      "message": "mm: replace various uses of num_physpages by totalram_pages\n\nSizing of memory allocations shouldn\u0027t depend on the number of physical\npages found in a system, as that generally includes (perhaps a huge amount\nof) non-RAM pages.  The amount of what actually is usable as storage\nshould instead be used as a basis here.\n\nSome of the calculations (i.e.  those not intending to use high memory)\nshould likely even use (totalram_pages - totalhigh_pages).\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Dave Airlie \u003cairlied@linux.ie\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "edcf4748cd56adcdf0856cc99ef108a4ea3ac7fe",
      "tree": "317d477d08dea82f5eef2e9c17294d0f0639ea81",
      "parents": [
        "6c0b13519d1c755d874e82c8fb8a6dcef0ee402c"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Mon Sep 21 17:02:59 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:38 2009 -0700"
      },
      "message": "mm: return boolean from page_has_private()\n\nMake page_has_private() return a true boolean value and remove the double\nnegations from the two callsites using it for arithmetic.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6c0b13519d1c755d874e82c8fb8a6dcef0ee402c",
      "tree": "0fe6e6902a488ad6c59ecee971fe64c81edbcce3",
      "parents": [
        "401a8e1c1670085b8177330ca47d4f7c4ac88761"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Mon Sep 21 17:02:59 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:37 2009 -0700"
      },
      "message": "mm: return boolean from page_is_file_cache()\n\npage_is_file_cache() has been used for both boolean checks and LRU\narithmetic, which was always a bit weird.\n\nNow that page_lru_base_type() exists for LRU arithmetic, make\npage_is_file_cache() a real predicate function and adjust the\nboolean-using callsites to drop those pesky double negations.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "401a8e1c1670085b8177330ca47d4f7c4ac88761"
}
