)]}'
{
  "log": [
    {
      "commit": "10d68360871657204885371cdf2594412675d2f9",
      "tree": "85a4fa8d3b0dc0a7bc525475325f955f75d3881d",
      "parents": [
        "4a6633ed08af5ba67790b4d1adcdeb8ceb55677e"
      ],
      "author": {
        "name": "Peter Moody",
        "email": "pmoody@google.com",
        "time": "Wed Jan 04 15:24:31 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 17 16:17:03 2012 -0500"
      },
      "message": "audit: comparison on interprocess fields\n\nThis allows audit to specify rules in which we compare two fields of a\nprocess.  Such as is the running process uid !\u003d to the running process\neuid?\n\nSigned-off-by: Peter Moody \u003cpmoody@google.com\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "4a6633ed08af5ba67790b4d1adcdeb8ceb55677e",
      "tree": "8b658f732f742d3d3a40f84b39ce4aa42f70d538",
      "parents": [
        "c9fe685f7a17a0ee8bf3fbe51e40b1c8b8e65896"
      ],
      "author": {
        "name": "Peter Moody",
        "email": "pmoody@google.com",
        "time": "Tue Dec 13 16:17:51 2011 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 17 16:17:02 2012 -0500"
      },
      "message": "audit: implement all object interfield comparisons\n\nThis completes the matrix of interfield comparisons between uid/gid\ninformation for the current task and the uid/gid information for inodes.\naka I can audit based on differences between the euid of the process and\nthe uid of fs objects.\n\nSigned-off-by: Peter Moody \u003cpmoody@google.com\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "c9fe685f7a17a0ee8bf3fbe51e40b1c8b8e65896",
      "tree": "510a09bc02c5dccb7ef83c88f2a00546b17e2c17",
      "parents": [
        "b34b039324bf081554ee8678f9b8c5d937e5206c"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Jan 03 14:23:08 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 17 16:17:02 2012 -0500"
      },
      "message": "audit: allow interfield comparison between gid and ogid\n\nAllow audit rules to compare the gid of the running task to the gid of the\ninode in question.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "02d86a568c6d2d335256864451ac8ce781bc5652",
      "tree": "3ef085bd96cc79733cff28993379dbbd4b855813",
      "parents": [
        "29ef73b7a823b77a7cd0bdd7d7cded3fb6c2587b"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Jan 03 14:23:08 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 17 16:17:01 2012 -0500"
      },
      "message": "audit: allow interfield comparison in audit rules\n\nWe wish to be able to audit when a uid\u003d500 task accesses a file which is\nuid\u003d0.  Or vice versa.  This patch introduces a new audit filter type\nAUDIT_FIELD_COMPARE which takes as an \u0027enum\u0027 which indicates which fields\nshould be compared.  At this point we only define the task-\u003euid vs\ninode-\u003euid, but other comparisons can be added.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "0a300be6d5be8f66cd96609334710c268d0bfdce",
      "tree": "253d0d1e0aa28a6bdf883bb92e4b62fafe263563",
      "parents": [
        "54d3218b31aee5bc9c859ae60fbde933d922448b"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Jan 03 14:23:08 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 17 16:17:00 2012 -0500"
      },
      "message": "audit: remove task argument to audit_set_loginuid\n\nThe function always deals with current.  Don\u0027t expose an option\npretending one can use it for something.  You can\u0027t.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "54d3218b31aee5bc9c859ae60fbde933d922448b",
      "tree": "ebc383920713c283133d885191d0c19cb049afd2",
      "parents": [
        "efaffd6e4417860c67576ac760dd6e8bbd15f006"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Jan 03 14:23:07 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 17 16:16:59 2012 -0500"
      },
      "message": "audit: allow audit matching on inode gid\n\nMuch like the ability to filter audit on the uid of an inode collected, we\nshould be able to filter on the gid of the inode.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "efaffd6e4417860c67576ac760dd6e8bbd15f006",
      "tree": "a59ee886b609bbf761fb75744e5e468264c67ab5",
      "parents": [
        "6422e78de6880c66a82af512d9bd0c85eb62e661"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Jan 03 14:23:07 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 17 16:16:59 2012 -0500"
      },
      "message": "audit: allow matching on obj_uid\n\nAllow syscall exit filter matching based on the uid of the owner of an\ninode used in a syscall.  aka:\n\nauditctl -a always,exit -S open -F obj_uid\u003d0 -F perm\u003dwa\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "6422e78de6880c66a82af512d9bd0c85eb62e661",
      "tree": "9cce4d385a6508056be7645fd3511ab019b346f4",
      "parents": [
        "7ff68e53ece8c175d2951bb8a30b3cce8f9c5579"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Jan 03 14:23:07 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 17 16:16:59 2012 -0500"
      },
      "message": "audit: remove audit_finish_fork as it can\u0027t be called\n\nAudit entry,always rules are not allowed and are automatically changed in\nexit,always rules in userspace.  The kernel refuses to load such rules.\n\nThus a task in the middle of a syscall (and thus in audit_finish_fork())\ncan only be in one of two states: AUDIT_BUILD_CONTEXT or AUDIT_DISABLED.\nSince the current task cannot be in AUDIT_RECORD_CONTEXT we aren\u0027t every\ngoing to actually use the code in audit_finish_fork() since it will\nreturn without doing anything.  Thus drop the code.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "a4ff8dba7d8ce5ceb43fb27df66292251cc73bdc",
      "tree": "2c89a0a7a7dad853a2c2ec70417ef2f3f5a04fd4",
      "parents": [
        "38cdce53daa0408a61fe6d86fe48f31515c9b840"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Jan 03 14:23:07 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 17 16:16:58 2012 -0500"
      },
      "message": "audit: inline audit_free to simplify the look of generic code\n\nmake the conditional a static inline instead of doing it in generic code.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "38cdce53daa0408a61fe6d86fe48f31515c9b840",
      "tree": "a08ff80a819432fa32e384e1960249a59cdb4f33",
      "parents": [
        "07c49417877f8658a6aa0ad9b4e21e4fd4df11b6"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Jan 03 14:23:07 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 17 16:16:58 2012 -0500"
      },
      "message": "audit: drop audit_set_macxattr as it doesn\u0027t do anything\n\nunused.  deleted.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "07c49417877f8658a6aa0ad9b4e21e4fd4df11b6",
      "tree": "59a64b96c9f35b8559db4c46b5a43d2d9510c190",
      "parents": [
        "56179a6ec65a56e0279a58e35cb450d38f061b94"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Jan 03 14:23:07 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 17 16:16:57 2012 -0500"
      },
      "message": "audit: inline checks for not needing to collect aux records\n\nA number of audit hooks make function calls before they determine that\nauxilary records do not need to be collected.  Do those checks as static\ninlines since the most common case is going to be that records are not\nneeded and we can skip the function call overhead.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "b05d8447e7821695bc2fa3359431f7a664232743",
      "tree": "da90e558279c6407aa2e08d36bea5d9a21cd959c",
      "parents": [
        "f031cd25568a390dc2c9c3a4015054183753449a"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Jan 03 14:23:06 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 17 16:16:56 2012 -0500"
      },
      "message": "audit: inline audit_syscall_entry to reduce burden on archs\n\nEvery arch calls:\n\nif (unlikely(current-\u003eaudit_context))\n\taudit_syscall_entry()\n\nwhich requires knowledge about audit (the existance of audit_context) in\nthe arch code.  Just do it all in static inline in audit.h so that arch\u0027s\ncan remain blissfully ignorant.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "d7e7528bcd456f5c36ad4a202ccfb43c5aa98bc4",
      "tree": "ef49503b1dc52c52102e728dbd979c9309d5756b",
      "parents": [
        "85e7bac33b8d5edafc4e219c7dfdb3d48e0b4e31"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Jan 03 14:23:06 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 17 16:16:56 2012 -0500"
      },
      "message": "Audit: push audit success and retcode into arch ptrace.h\n\nThe audit system previously expected arches calling to audit_syscall_exit to\nsupply as arguments if the syscall was a success and what the return code was.\nAudit also provides a helper AUDITSC_RESULT which was supposed to simplify things\nby converting from negative retcodes to an audit internal magic value stating\nsuccess or failure.  This helper was wrong and could indicate that a valid\npointer returned to userspace was a failed syscall.  The fix is to fix the\nlayering foolishness.  We now pass audit_syscall_exit a struct pt_reg and it\nin turns calls back into arch code to collect the return value and to\ndetermine if the syscall was a success or failure.  We also define a generic\nis_syscall_success() macro which determines success/failure based on if the\nvalue is \u003c -MAX_ERRNO.  This works for arches like x86 which do not use a\nseparate mechanism to indicate syscall failure.\n\nWe make both the is_syscall_success() and regs_return_value() static inlines\ninstead of macros.  The reason is because the audit function must take a void*\nfor the regs.  (uml calls theirs struct uml_pt_regs instead of just struct\npt_regs so audit_syscall_exit can\u0027t take a struct pt_regs).  Since the audit\nfunction takes a void* we need to use static inlines to cast it back to the\narch correct structure to dereference it.\n\nThe other major change is that on some arches, like ia64, MIPS and ppc, we\nchange regs_return_value() to give us the negative value on syscall failure.\nTHE only other user of this macro, kretprobe_example.c, won\u0027t notice and it\nmakes the value signed consistently for the audit functions across all archs.\n\nIn arch/sh/kernel/ptrace_64.c I see that we were using regs[9] in the old\naudit code as the return value.  But the ptrace_64.h code defined the macro\nregs_return_value() as regs[3].  I have no idea which one is correct, but this\npatch now uses the regs_return_value() function, so it now uses regs[3].\n\nFor powerpc we previously used regs-\u003eresult but now use the\nregs_return_value() function which uses regs-\u003egprs[3].  regs-\u003egprs[3] is\nalways positive so the regs_return_value(), much like ia64 makes it negative\nbefore calling the audit code when appropriate.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: H. Peter Anvin \u003chpa@zytor.com\u003e [for x86 portion]\nAcked-by: Tony Luck \u003ctony.luck@intel.com\u003e [for ia64]\nAcked-by: Richard Weinberger \u003crichard@nod.at\u003e [for uml]\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e [for sparc]\nAcked-by: Ralf Baechle \u003cralf@linux-mips.org\u003e [for mips]\nAcked-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e [for ppc]\n"
    },
    {
      "commit": "85e7bac33b8d5edafc4e219c7dfdb3d48e0b4e31",
      "tree": "6a1f178de829d2219a65a8563e12f2c8029d4b13",
      "parents": [
        "16c174bd95cb07c9d0ad3fcd8c70f9cea7214c9d"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Jan 03 14:23:05 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 17 16:16:55 2012 -0500"
      },
      "message": "seccomp: audit abnormal end to a process due to seccomp\n\nThe audit system likes to collect information about processes that end\nabnormally (SIGSEGV) as this may me useful intrusion detection information.\nThis patch adds audit support to collect information when seccomp forces a\ntask to exit because of misbehavior in a similar way.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "541048a1d31399ccdda27346a37eae4a2ad55186",
      "tree": "e2a820ee478b18d4214347631b94b9a9b2d8562b",
      "parents": [
        "bcede2f64a3b5cb50c0bdec1553ab480fd75d659",
        "e58d429209105e698e9d0357481d62b37fe9a7dd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 11 19:13:04 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 11 19:13:04 2012 -0800"
      },
      "message": "Merge branch \u0027x86-debug-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027x86-debug-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86, reboot: Fix typo in nmi reboot path\n  x86, NMI: Add to_cpumask() to silence compile warning\n  x86, NMI: NMI selftest depends on the local apic\n  x86: Add stack top margin for stack overflow checking\n  x86, NMI: NMI-selftest should handle the UP case properly\n  x86: Fix the 32-bit stackoverflow-debug build\n  x86, NMI: Add knob to disable using NMI IPIs to stop cpus\n  x86, NMI: Add NMI IPI selftest\n  x86, reboot: Use NMI instead of REBOOT_VECTOR to stop cpus\n  x86: Clean up the range of stack overflow checking\n  x86: Panic on detection of stack overflow\n  x86: Check stack overflow in detail\n"
    },
    {
      "commit": "bcede2f64a3b5cb50c0bdec1553ab480fd75d659",
      "tree": "b98e55bf2eea83bb5f6805abb210c5ea8625b550",
      "parents": [
        "d0b9706c20ebb4ba181dc26e52ac9a6861abf425",
        "2d2da60fb40a80cc59383121ccf763e0e0e8a42a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 11 19:12:33 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 11 19:12:33 2012 -0800"
      },
      "message": "Merge branch \u0027x86-efi-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027x86-efi-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86, efi: Break up large initrd reads\n  x86, efi: EFI boot stub support\n  efi: Add EFI file I/O data types\n  efi.h: Add boottime-\u003elocate_handle search types\n  efi.h: Add graphics protocol guids\n  efi.h: Add allocation types for boottime-\u003eallocate_pages()\n  efi.h: Add efi_image_loaded_t\n  efi.h: Add struct definition for boot time services\n  x86: Don\u0027t use magic strings for EFI loader signature\n  x86: Add missing bzImage fields to struct setup_header\n"
    },
    {
      "commit": "d0b9706c20ebb4ba181dc26e52ac9a6861abf425",
      "tree": "436e89246fd5ebcf737cae27e135a1995155329b",
      "parents": [
        "02d929502ce7b57f4835d8bb7c828d36e6d9e8ce",
        "54eed6cb16ec315565aaaf8e34252ca253a68b7b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 11 19:12:10 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 11 19:12:10 2012 -0800"
      },
      "message": "Merge branch \u0027x86-mm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027x86-mm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86/numa: Add constraints check for nid parameters\n  mm, x86: Remove debug_pagealloc_enabled\n  x86/mm: Initialize high mem before free_all_bootmem()\n  arch/x86/kernel/e820.c: quiet sparse noise about plain integer as NULL pointer\n  arch/x86/kernel/e820.c: Eliminate bubble sort from sanitize_e820_map()\n  x86: Fix mmap random address range\n  x86, mm: Unify zone_sizes_init()\n  x86, mm: Prepare zone_sizes_init() for unification\n  x86, mm: Use max_low_pfn for ZONE_NORMAL on 64-bit\n  x86, mm: Wrap ZONE_DMA32 with CONFIG_ZONE_DMA32\n  x86, mm: Use max_pfn instead of highend_pfn\n  x86, mm: Move zone init from paging_init() on 64-bit\n  x86, mm: Use MAX_DMA_PFN for ZONE_DMA on 32-bit\n"
    },
    {
      "commit": "b24ca57e7625bc304e77bc429693ad32a691eb16",
      "tree": "770aa389c6e763cf37776a35e85ff1e41958b1e9",
      "parents": [
        "6296e5d3c067df41980a5fd09ad4cc6765f79bb9",
        "913272b3864d6da89c70d9fc2c30ccb57794b369"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 11 18:53:05 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 11 18:53:05 2012 -0800"
      },
      "message": "Merge git://git.infradead.org/battery-2.6\n\n* git://git.infradead.org/battery-2.6: (68 commits)\n  power_supply: Mark da9052 driver as broken\n  power_supply: Drop usage of nowarn variant of sysfs_create_link()\n  s3c_adc_battery: Average over more than one adc sample\n  power_supply: Add DA9052 battery driver\n  isp1704_charger: Fix missing check\n  jz4740-battery: Fix signedness bug\n  power_supply: Assume mains power by default\n  sbs-battery: Fix devicetree match table\n  ARM: rx51: Add bq27200 i2c board info\n  sbs-battery: Change power supply name\n  devicetree-bindings: Propagate bq20z75-\u003esbs rename to dt bindings\n  devicetree-bindings: Add vendor entry for Smart Battery Systems\n  sbs-battery: Rename internals to new name\n  bq20z75: Rename to sbs-battery\n  wm97xx_battery: Use DEFINE_MUTEX() for work_lock\n  max8997_charger: Remove duplicate module.h\n  lp8727_charger: Some minor fixes for the header\n  lp8727_charger: Add header file\n  power_supply: Convert drivers/power/* to use module_platform_driver()\n  power_supply: Add \"unknown\" in power supply type\n  ...\n"
    },
    {
      "commit": "7b67e751479d50b7f84d1a3cc5216eed5e534b66",
      "tree": "a1a6746857cf65f04dde739fe271bf4143d55eaf",
      "parents": [
        "9f13a1fd452f11c18004ba2422a6384b424ec8a9",
        "76ccc297018d25d55b789bbd508861ef1e2cdb0c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 11 18:50:26 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 11 18:50:26 2012 -0800"
      },
      "message": "Merge branch \u0027linux-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci\n\n* \u0027linux-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci: (80 commits)\n  x86/PCI: Expand the x86_msi_ops to have a restore MSIs.\n  PCI: Increase resource array mask bit size in pcim_iomap_regions()\n  PCI: DEVICE_COUNT_RESOURCE should be equal to PCI_NUM_RESOURCES\n  PCI: pci_ids: add device ids for STA2X11 device (aka ConneXT)\n  PNP: work around Dell 1536/1546 BIOS MMCONFIG bug that breaks USB\n  x86/PCI: amd: factor out MMCONFIG discovery\n  PCI: Enable ATS at the device state restore\n  PCI: msi: fix imbalanced refcount of msi irq sysfs objects\n  PCI: kconfig: English typo in pci/pcie/Kconfig\n  PCI/PM/Runtime: make PCI traces quieter\n  PCI: remove pci_create_bus()\n  xtensa/PCI: convert to pci_scan_root_bus() for correct root bus resources\n  x86/PCI: convert to pci_create_root_bus() and pci_scan_root_bus()\n  x86/PCI: use pci_scan_bus() instead of pci_scan_bus_parented()\n  x86/PCI: read Broadcom CNB20LE host bridge info before PCI scan\n  sparc32, leon/PCI: convert to pci_scan_root_bus() for correct root bus resources\n  sparc/PCI: convert to pci_create_root_bus()\n  sh/PCI: convert to pci_scan_root_bus() for correct root bus resources\n  powerpc/PCI: convert to pci_create_root_bus()\n  powerpc/PCI: split PHB part out of pcibios_map_io_space()\n  ...\n\nFix up conflicts in drivers/pci/msi.c and include/linux/pci_regs.h due\nto the same patches being applied in other branches.\n"
    },
    {
      "commit": "e7691a1ce341c80ed9504244a36b31c025217391",
      "tree": "e9941bb350f64a726130e299c411821da6f41a53",
      "parents": [
        "5cd9599bba428762025db6027764f1c59d0b1e1b",
        "8fcc99549522fc7a0bbaeb5755855ab0d9a59ce8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 21:51:23 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 21:51:23 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://selinuxproject.org/~jmorris/linux-security\n\n* \u0027for-linus\u0027 of git://selinuxproject.org/~jmorris/linux-security: (32 commits)\n  ima: fix invalid memory reference\n  ima: free duplicate measurement memory\n  security: update security_file_mmap() docs\n  selinux: Casting (void *) value returned by kmalloc is useless\n  apparmor: fix module parameter handling\n  Security: tomoyo: add .gitignore file\n  tomoyo: add missing rcu_dereference()\n  apparmor: add missing rcu_dereference()\n  evm: prevent racing during tfm allocation\n  evm: key must be set once during initialization\n  mpi/mpi-mpow: NULL dereference on allocation failure\n  digsig: build dependency fix\n  KEYS: Give key types their own lockdep class for key-\u003esem\n  TPM: fix transmit_cmd error logic\n  TPM: NSC and TIS drivers X86 dependency fix\n  TPM: Export wait_for_stat for other vendor specific drivers\n  TPM: Use vendor specific function for status probe\n  tpm_tis: add delay after aborting command\n  tpm_tis: Check return code from getting timeouts/durations\n  tpm: Introduce function to poll for result of self test\n  ...\n\nFix up trivial conflict in lib/Makefile due to addition of CONFIG_MPI\nand SIGSIG next to CONFIG_DQL addition.\n"
    },
    {
      "commit": "5cd9599bba428762025db6027764f1c59d0b1e1b",
      "tree": "cb59ea13f6e6de4350ca38338bf9633e89f8418a",
      "parents": [
        "e343a895a9f342f239c5e3c5ffc6c0b1707e6244",
        "d668dc56631da067540b2494d2a1f29ff7b5f15a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 21:46:36 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 21:46:36 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:\n  autofs4: deal with autofs4_write/autofs4_write races\n  autofs4: catatonic_mode vs. notify_daemon race\n  autofs4: autofs4_wait() vs. autofs4_catatonic_mode() race\n  hfsplus: creation of hidden dir on mount can fail\n  block_dev: Suppress bdev_cache_init() kmemleak warninig\n  fix shrink_dcache_parent() livelock\n  coda: switch coda_cnode_make() to sane API as well, clean coda_lookup()\n  coda: deal correctly with allocation failure from coda_cnode_makectl()\n  securityfs: fix object creation races\n"
    },
    {
      "commit": "06792c4dde2ad143928cc95c1ba218c6269c494b",
      "tree": "92bdd4631612c9e3d8e5f6f06839f75c5473300a",
      "parents": [
        "4690dfa8cd66c37fbe99bb8cd5baa86102110776",
        "166c0eaedfc3157dc1394c27e827add19f05fb27"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 17:39:40 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 17:39:40 2012 -0800"
      },
      "message": "Merge tag \u0027for-linux-3.3-merge-window\u0027 of git://linux-c6x.org/git/projects/linux-c6x-upstreaming\n\n* tag \u0027for-linux-3.3-merge-window\u0027 of git://linux-c6x.org/git/projects/linux-c6x-upstreaming: (29 commits)\n  C6X: replace tick_nohz_stop/restart_sched_tick calls\n  C6X: add register_cpu call\n  C6X: deal with memblock API changes\n  C6X: fix timer64 initialization\n  C6X: fix layout of EMIFA registers\n  C6X: MAINTAINERS\n  C6X: DSCR - Device State Configuration Registers\n  C6X: EMIF - External Memory Interface\n  C6X: general SoC support\n  C6X: library code\n  C6X: headers\n  C6X: ptrace support\n  C6X: loadable module support\n  C6X: cache control\n  C6X: clocks\n  C6X: build infrastructure\n  C6X: syscalls\n  C6X: interrupt handling\n  C6X: time management\n  C6X: signal management\n  ...\n"
    },
    {
      "commit": "001a541ea9163ace5e8243ee0e907ad80a4c0ec2",
      "tree": "a76225046369c440de93739add9823f5ea060245",
      "parents": [
        "40ba587923ae67090d9f141c1d3c951be5c1420e",
        "bc31b86a5923fad5f3fbb6192f767f410241ba27"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:59:59 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:59:59 2012 -0800"
      },
      "message": "Merge branch \u0027writeback-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux\n\n* \u0027writeback-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux:\n  writeback: move MIN_WRITEBACK_PAGES to fs-writeback.c\n  writeback: balanced_rate cannot exceed write bandwidth\n  writeback: do strict bdi dirty_exceeded\n  writeback: avoid tiny dirty poll intervals\n  writeback: max, min and target dirty pause time\n  writeback: dirty ratelimit - think time compensation\n  btrfs: fix dirtied pages accounting on sub-page writes\n  writeback: fix dirtied pages accounting on redirty\n  writeback: fix dirtied pages accounting on sub-page writes\n  writeback: charge leaked page dirties to active tasks\n  writeback: Include all dirty inodes in background writeback\n"
    },
    {
      "commit": "40ba587923ae67090d9f141c1d3c951be5c1420e",
      "tree": "342a72fc0ee13a0d2496ef970b64dfeadf1355d2",
      "parents": [
        "54c2c5761febcca46c8037d3a81612991e6c209a",
        "6b550f9495947fc279d12c38feaf98500e8d0646"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:42:48 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:42:48 2012 -0800"
      },
      "message": "Merge branch \u0027akpm\u0027 (aka \"Andrew\u0027s patch-bomb\")\n\nAndrew elucidates:\n - First installmeant of MM.  We have a HUGE number of MM patches this\n   time.  It\u0027s crazy.\n - MAINTAINERS updates\n - backlight updates\n - leds\n - checkpatch updates\n - misc ELF stuff\n - rtc updates\n - reiserfs\n - procfs\n - some misc other bits\n\n* akpm: (124 commits)\n  user namespace: make signal.c respect user namespaces\n  workqueue: make alloc_workqueue() take printf fmt and args for name\n  procfs: add hidepid\u003d and gid\u003d mount options\n  procfs: parse mount options\n  procfs: introduce the /proc/\u003cpid\u003e/map_files/ directory\n  procfs: make proc_get_link to use dentry instead of inode\n  signal: add block_sigmask() for adding sigmask to current-\u003eblocked\n  sparc: make SA_NOMASK a synonym of SA_NODEFER\n  reiserfs: don\u0027t lock root inode searching\n  reiserfs: don\u0027t lock journal_init()\n  reiserfs: delay reiserfs lock until journal initialization\n  reiserfs: delete comments referring to the BKL\n  drivers/rtc/interface.c: fix alarm rollover when day or month is out-of-range\n  drivers/rtc/rtc-twl.c: add DT support for RTC inside twl4030/twl6030\n  drivers/rtc/: remove redundant spi driver bus initialization\n  drivers/rtc/rtc-jz4740.c: make jz4740_rtc_driver static\n  drivers/rtc/rtc-mc13xxx.c: make mc13xxx_rtc_idtable static\n  rtc: convert drivers/rtc/* to use module_platform_driver()\n  drivers/rtc/rtc-wm831x.c: convert to devm_kzalloc()\n  drivers/rtc/rtc-wm831x.c: remove unused period IRQ handler\n  ...\n"
    },
    {
      "commit": "b196be89cdc14a88cc637cdad845a75c5886c82d",
      "tree": "195816e6ab82362969409b3317d223421502224a",
      "parents": [
        "0499680a42141d86417a8fbaa8c8db806bea1201"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jan 10 15:11:35 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:54 2012 -0800"
      },
      "message": "workqueue: make alloc_workqueue() take printf fmt and args for name\n\nalloc_workqueue() currently expects the passed in @name pointer to remain\naccessible.  This is inconvenient and a bit silly given that the whole wq\nis being dynamically allocated.  This patch updates alloc_workqueue() and\nfriends to take printf format string instead of opaque string and matching\nvarargs at the end.  The name is allocated together with the wq and\nformatted.\n\nalloc_ordered_workqueue() is converted to a macro to unify varargs\nhandling with alloc_workqueue(), and, while at it, add comment to\nalloc_workqueue().\n\nNone of the current in-kernel users pass in string with \u0027%\u0027 as constant\nname and this change shouldn\u0027t cause any problem.\n\n[akpm@linux-foundation.org: use __printf]\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSuggested-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0499680a42141d86417a8fbaa8c8db806bea1201",
      "tree": "eb2aeb559bf5418476319aa81fa4f6ed3659bbc0",
      "parents": [
        "97412950b10e64f347aec4a9b759395c2465adf6"
      ],
      "author": {
        "name": "Vasiliy Kulikov",
        "email": "segooon@gmail.com",
        "time": "Tue Jan 10 15:11:31 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:54 2012 -0800"
      },
      "message": "procfs: add hidepid\u003d and gid\u003d mount options\n\nAdd support for mount options to restrict access to /proc/PID/\ndirectories.  The default backward-compatible \"relaxed\" behaviour is left\nuntouched.\n\nThe first mount option is called \"hidepid\" and its value defines how much\ninfo about processes we want to be available for non-owners:\n\nhidepid\u003d0 (default) means the old behavior - anybody may read all\nworld-readable /proc/PID/* files.\n\nhidepid\u003d1 means users may not access any /proc/\u003cpid\u003e/ directories, but\ntheir own.  Sensitive files like cmdline, sched*, status are now protected\nagainst other users.  As permission checking done in proc_pid_permission()\nand files\u0027 permissions are left untouched, programs expecting specific\nfiles\u0027 modes are not confused.\n\nhidepid\u003d2 means hidepid\u003d1 plus all /proc/PID/ will be invisible to other\nusers.  It doesn\u0027t mean that it hides whether a process exists (it can be\nlearned by other means, e.g.  by kill -0 $PID), but it hides process\u0027 euid\nand egid.  It compicates intruder\u0027s task of gathering info about running\nprocesses, whether some daemon runs with elevated privileges, whether\nanother user runs some sensitive program, whether other users run any\nprogram at all, etc.\n\ngid\u003dXXX defines a group that will be able to gather all processes\u0027 info\n(as in hidepid\u003d0 mode).  This group should be used instead of putting\nnonroot user in sudoers file or something.  However, untrusted users (like\ndaemons, etc.) which are not supposed to monitor the tasks in the whole\nsystem should not be added to the group.\n\nhidepid\u003d1 or higher is designed to restrict access to procfs files, which\nmight reveal some sensitive private information like precise keystrokes\ntimings:\n\nhttp://www.openwall.com/lists/oss-security/2011/11/05/3\n\nhidepid\u003d1/2 doesn\u0027t break monitoring userspace tools.  ps, top, pgrep, and\nconky gracefully handle EPERM/ENOENT and behave as if the current user is\nthe only user running processes.  pstree shows the process subtree which\ncontains \"pstree\" process.\n\nNote: the patch doesn\u0027t deal with setuid/setgid issues of keeping\npreopened descriptors of procfs files (like\nhttps://lkml.org/lkml/2011/2/7/368).  We rely on that the leaked\ninformation like the scheduling counters of setuid apps doesn\u0027t threaten\nanybody\u0027s privacy - only the user started the setuid program may read the\ncounters.\n\nSigned-off-by: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Theodore Tso \u003ctytso@MIT.EDU\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "640708a2cff7f81e246243b0073c66e6ece7e53e",
      "tree": "8cc00ae2b374bf6750ad9ca20da3566e28cfc9ff",
      "parents": [
        "7773fbc54182a90cd248656619c7d33859e5f91d"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Tue Jan 10 15:11:23 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:54 2012 -0800"
      },
      "message": "procfs: introduce the /proc/\u003cpid\u003e/map_files/ directory\n\nThis one behaves similarly to the /proc/\u003cpid\u003e/fd/ one - it contains\nsymlinks one for each mapping with file, the name of a symlink is\n\"vma-\u003evm_start-vma-\u003evm_end\", the target is the file.  Opening a symlink\nresults in a file that point exactly to the same inode as them vma\u0027s one.\n\nFor example the ls -l of some arbitrary /proc/\u003cpid\u003e/map_files/\n\n | lr-x------ 1 root root 64 Aug 26 06:40 7f8f80403000-7f8f80404000 -\u003e /lib64/libc-2.5.so\n | lr-x------ 1 root root 64 Aug 26 06:40 7f8f8061e000-7f8f80620000 -\u003e /lib64/libselinux.so.1\n | lr-x------ 1 root root 64 Aug 26 06:40 7f8f80826000-7f8f80827000 -\u003e /lib64/libacl.so.1.1.0\n | lr-x------ 1 root root 64 Aug 26 06:40 7f8f80a2f000-7f8f80a30000 -\u003e /lib64/librt-2.5.so\n | lr-x------ 1 root root 64 Aug 26 06:40 7f8f80a30000-7f8f80a4c000 -\u003e /lib64/ld-2.5.so\n\nThis *helps* checkpointing process in three ways:\n\n1. When dumping a task mappings we do know exact file that is mapped\n   by particular region.  We do this by opening\n   /proc/$pid/map_files/$address symlink the way we do with file\n   descriptors.\n\n2. This also helps in determining which anonymous shared mappings are\n   shared with each other by comparing the inodes of them.\n\n3. When restoring a set of processes in case two of them has a mapping\n   shared, we map the memory by the 1st one and then open its\n   /proc/$pid/map_files/$address file and map it by the 2nd task.\n\nUsing /proc/$pid/maps for this is quite inconvenient since it brings\nrepeatable re-reading and reparsing for this text file which slows down\nrestore procedure significantly.  Also as being pointed in (3) it is a way\neasier to use top level shared mapping in children as\n/proc/$pid/map_files/$address when needed.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[gorcunov@openvz.org: make map_files depend on CHECKPOINT_RESTORE]\nSigned-off-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nReviewed-by: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nReviewed-by: \"Kirill A. Shutemov\" \u003ckirill@shutemov.name\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7773fbc54182a90cd248656619c7d33859e5f91d",
      "tree": "1fe1cc91e194164c19675a588dad0efb3a8c8007",
      "parents": [
        "5e6292c0f28f03dfdb8ea3d685f0b838a23bfba4"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@openvz.org",
        "time": "Tue Jan 10 15:11:20 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:54 2012 -0800"
      },
      "message": "procfs: make proc_get_link to use dentry instead of inode\n\nPrepare the ground for the next \"map_files\" patch which needs a name of a\nlink file to analyse.\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nCc: \"Kirill A. Shutemov\" \u003ckirill@shutemov.name\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5e6292c0f28f03dfdb8ea3d685f0b838a23bfba4",
      "tree": "8684833680054ab48f9da2bbc36c93e3d00a3391",
      "parents": [
        "f350b1778f1b7713ef54fbc7e079e09e2fe098b9"
      ],
      "author": {
        "name": "Matt Fleming",
        "email": "matt.fleming@intel.com",
        "time": "Tue Jan 10 15:11:17 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:54 2012 -0800"
      },
      "message": "signal: add block_sigmask() for adding sigmask to current-\u003eblocked\n\nAbstract the code sequence for adding a signal handler\u0027s sa_mask to\ncurrent-\u003eblocked because the sequence is identical for all architectures.\nFurthermore, in the past some architectures actually got this code wrong,\nso introduce a wrapper that all architectures can use.\n\nSigned-off-by: Matt Fleming \u003cmatt.fleming@intel.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: \"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": "a6d511e5155406cd214d3af3ff9cffc69548b006",
      "tree": "2151e16ad65c9646a47d9591b264e9016efedc33",
      "parents": [
        "b96a573f4c27529d379922670e8cf5530120d5ca"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jan 10 15:09:40 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:49 2012 -0800"
      },
      "message": "leds: add driver for TCA6507 LED controller\n\nTI\u0027s TCA6507 is the LED driver in the GTA04 Openmoko motherboard.  The\ndriver provides full support for brightness levels and hardware blinking.\n\nThis driver can drive each of 7 outputs as an LED or a GPIO output,\nand provides hardware-assist blinking.\n\n[akpm@linux-foundation.org: fix __mod_i2c_device_table alias]\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nCc: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nCc: Dan Carpenter \u003cdan.carpenter@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": "fcfb4dcc9698f932836aa63ba0d82e7dbd300fb3",
      "tree": "3a01fc96cc2ba9c339e2848c20a241a9ec9d2423",
      "parents": [
        "0c176d52b0b2619f231b2bbf329b90c028134f58"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jan 10 15:08:21 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:45 2012 -0800"
      },
      "message": "mm/mempolicy.c: mpol_equal(): use bool\n\nmpol_equal() logically returns a boolean.  Use a bool type to slightly\nimprove readability.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Stephen Wilson \u003cwilsons@start.ca\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "948f017b093a9baac23855fcd920d3a970b71bb6",
      "tree": "4536a9cbe1077133e600da2072998f5e60c696c6",
      "parents": [
        "df0a6daa01fa3856c08f4274d4f21a8092caa480"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Tue Jan 10 15:08:05 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:44 2012 -0800"
      },
      "message": "mremap: enforce rmap src/dst vma ordering in case of vma_merge() succeeding in copy_vma()\n\nmigrate was doing an rmap_walk with speculative lock-less access on\npagetables.  That could lead it to not serializing properly against mremap\nPT locks.  But a second problem remains in the order of vmas in the\nsame_anon_vma list used by the rmap_walk.\n\nIf vma_merge succeeds in copy_vma, the src vma could be placed after the\ndst vma in the same_anon_vma list.  That could still lead to migrate\nmissing some pte.\n\nThis patch adds an anon_vma_moveto_tail() function to force the dst vma at\nthe end of the list before mremap starts to solve the problem.\n\nIf the mremap is very large and there are a lots of parents or childs\nsharing the anon_vma root lock, this should still scale better than taking\nthe anon_vma root lock around every pte copy practically for the whole\nduration of mremap.\n\nUpdate: Hugh noticed special care is needed in the error path where\nmove_page_tables goes in the reverse direction, a second\nanon_vma_moveto_tail() call is needed in the error path.\n\nThis program exercises the anon_vma_moveto_tail:\n\n\u003d\u003d\u003d\n\nint main()\n{\n\tstatic struct timeval oldstamp, newstamp;\n\tlong diffsec;\n\tchar *p, *p2, *p3, *p4;\n\tif (posix_memalign((void **)\u0026p, 2*1024*1024, SIZE))\n\t\tperror(\"memalign\"), exit(1);\n\tif (posix_memalign((void **)\u0026p2, 2*1024*1024, SIZE))\n\t\tperror(\"memalign\"), exit(1);\n\tif (posix_memalign((void **)\u0026p3, 2*1024*1024, SIZE))\n\t\tperror(\"memalign\"), exit(1);\n\n\tmemset(p, 0xff, SIZE);\n\tprintf(\"%p\\n\", p);\n\tmemset(p2, 0xff, SIZE);\n\tmemset(p3, 0x77, 4096);\n\tif (memcmp(p, p2, SIZE))\n\t\tprintf(\"error\\n\");\n\tp4 \u003d mremap(p+SIZE/2, SIZE/2, SIZE/2, MREMAP_FIXED|MREMAP_MAYMOVE, p3);\n\tif (p4 !\u003d p3)\n\t\tperror(\"mremap\"), exit(1);\n\tp4 \u003d mremap(p4, SIZE/2, SIZE/2, MREMAP_FIXED|MREMAP_MAYMOVE, p+SIZE/2);\n\tif (p4 !\u003d p+SIZE/2)\n\t\tperror(\"mremap\"), exit(1);\n\tif (memcmp(p, p2, SIZE))\n\t\tprintf(\"error\\n\");\n\tprintf(\"ok\\n\");\n\n\treturn 0;\n}\n\u003d\u003d\u003d\n\n$ perf probe -a anon_vma_moveto_tail\nAdd new event:\n  probe:anon_vma_moveto_tail (on anon_vma_moveto_tail)\n\nYou can now use it on all perf tools, such as:\n\n        perf record -e probe:anon_vma_moveto_tail -aR sleep 1\n\n$ perf record -e probe:anon_vma_moveto_tail -aR ./anon_vma_moveto_tail\n0x7f2ca2800000\nok\n[ perf record: Woken up 1 times to write data ]\n[ perf record: Captured and wrote 0.043 MB perf.data (~1860 samples) ]\n$ perf report --stdio\n   100.00%  anon_vma_moveto  [kernel.kallsyms]  [k] anon_vma_moveto_tail\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nReported-by: Nai Xia \u003cnai.xia@gmail.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Pawel Sikora \u003cpluto@agmk.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a756cf5908530e8b40bdf569eb48b40139e8d7fd",
      "tree": "ba9df151d5468098c7eae563ce09faea6a539fc0",
      "parents": [
        "ccafa2879fb8d13b8031337a8743eac4189e5d6e"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "jweiner@redhat.com",
        "time": "Tue Jan 10 15:07:49 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:43 2012 -0800"
      },
      "message": "mm: try to distribute dirty pages fairly across zones\n\nThe maximum number of dirty pages that exist in the system at any time is\ndetermined by a number of pages considered dirtyable and a user-configured\npercentage of those, or an absolute number in bytes.\n\nThis number of dirtyable pages is the sum of memory provided by all the\nzones in the system minus their lowmem reserves and high watermarks, so\nthat the system can retain a healthy number of free pages without having\nto reclaim dirty pages.\n\nBut there is a flaw in that we have a zoned page allocator which does not\ncare about the global state but rather the state of individual memory\nzones.  And right now there is nothing that prevents one zone from filling\nup with dirty pages while other zones are spared, which frequently leads\nto situations where kswapd, in order to restore the watermark of free\npages, does indeed have to write pages from that zone\u0027s LRU list.  This\ncan interfere so badly with IO from the flusher threads that major\nfilesystems (btrfs, xfs, ext4) mostly ignore write requests from reclaim\nalready, taking away the VM\u0027s only possibility to keep such a zone\nbalanced, aside from hoping the flushers will soon clean pages from that\nzone.\n\nEnter per-zone dirty limits.  They are to a zone\u0027s dirtyable memory what\nthe global limit is to the global amount of dirtyable memory, and try to\nmake sure that no single zone receives more than its fair share of the\nglobally allowed dirty pages in the first place.  As the number of pages\nconsidered dirtyable excludes the zones\u0027 lowmem reserves and high\nwatermarks, the maximum number of dirty pages in a zone is such that the\nzone can always be balanced without requiring page cleaning.\n\nAs this is a placement decision in the page allocator and pages are\ndirtied only after the allocation, this patch allows allocators to pass\n__GFP_WRITE when they know in advance that the page will be written to and\nbecome dirty soon.  The page allocator will then attempt to allocate from\nthe first zone of the zonelist - which on NUMA is determined by the task\u0027s\nNUMA memory policy - that has not exceeded its dirty limit.\n\nAt first glance, it would appear that the diversion to lower zones can\nincrease pressure on them, but this is not the case.  With a full high\nzone, allocations will be diverted to lower zones eventually, so it is\nmore of a shift in timing of the lower zone allocations.  Workloads that\npreviously could fit their dirty pages completely in the higher zone may\nbe forced to allocate from lower zones, but the amount of pages that\n\"spill over\" are limited themselves by the lower zones\u0027 dirty constraints,\nand thus unlikely to become a problem.\n\nFor now, the problem of unfair dirty page distribution remains for NUMA\nconfigurations where the zones allowed for allocation are in sum not big\nenough to trigger the global dirty limits, wake up the flusher threads and\nremedy the situation.  Because of this, an allocation that could not\nsucceed on any of the considered zones is allowed to ignore the dirty\nlimits before going into direct reclaim or even failing the allocation,\nuntil a future patch changes the global dirty throttling and flusher\nthread activation so that they take individual zone states into account.\n\n\t\t\tTest results\n\n15M DMA + 3246M DMA32 + 504 Normal \u003d 3765M memory\n40% dirty ratio\n16G USB thumb drive\n10 runs of dd if\u003d/dev/zero of\u003ddisk/zeroes bs\u003d32k count\u003d$((10 \u003c\u003c 15))\n\n\t\tseconds\t\t\tnr_vmscan_write\n\t\t        (stddev)\t       min|     median|        max\nxfs\nvanilla:\t 549.747( 3.492)\t     0.000|      0.000|      0.000\npatched:\t 550.996( 3.802)\t     0.000|      0.000|      0.000\n\nfuse-ntfs\nvanilla:\t1183.094(53.178)\t 54349.000|  59341.000|  65163.000\npatched:\t 558.049(17.914)\t     0.000|      0.000|     43.000\n\nbtrfs\nvanilla:\t 573.679(14.015)\t156657.000| 460178.000| 606926.000\npatched:\t 563.365(11.368)\t     0.000|      0.000|   1362.000\n\next4\nvanilla:\t 561.197(15.782)\t     0.000|2725438.000|4143837.000\npatched:\t 568.806(17.496)\t     0.000|      0.000|      0.000\n\nSigned-off-by: Johannes Weiner \u003cjweiner@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nTested-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Chris Mason \u003cchris.mason@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": "ab8fabd46f811d5153d8a0cd2fac9a0d41fb593d",
      "tree": "0a6f7dcca59d22abe07973e3fafc41719ff3ad9d",
      "parents": [
        "25bd91bd27820d5971258cecd1c0e64b0e485144"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "jweiner@redhat.com",
        "time": "Tue Jan 10 15:07:42 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:43 2012 -0800"
      },
      "message": "mm: exclude reserved pages from dirtyable memory\n\nPer-zone dirty limits try to distribute page cache pages allocated for\nwriting across zones in proportion to the individual zone sizes, to reduce\nthe likelihood of reclaim having to write back individual pages from the\nLRU lists in order to make progress.\n\nThis patch:\n\nThe amount of dirtyable pages should not include the full number of free\npages: there is a number of reserved pages that the page allocator and\nkswapd always try to keep free.\n\nThe closer (reclaimable pages - dirty pages) is to the number of reserved\npages, the more likely it becomes for reclaim to run into dirty pages:\n\n       +----------+ ---\n       |   anon   |  |\n       +----------+  |\n       |          |  |\n       |          |  -- dirty limit new    -- flusher new\n       |   file   |  |                     |\n       |          |  |                     |\n       |          |  -- dirty limit old    -- flusher old\n       |          |                        |\n       +----------+                       --- reclaim\n       | reserved |\n       +----------+\n       |  kernel  |\n       +----------+\n\nThis patch introduces a per-zone dirty reserve that takes both the lowmem\nreserve as well as the high watermark of the zone into account, and a\nglobal sum of those per-zone values that is subtracted from the global\namount of dirtyable pages.  The lowmem reserve is unavailable to page\ncache allocations and kswapd tries to keep the high watermark free.  We\ndon\u0027t want to end up in a situation where reclaim has to clean pages in\norder to balance zones.\n\nNot treating reserved pages as dirtyable on a global level is only a\nconceptual fix.  In reality, dirty pages are not distributed equally\nacross zones and reclaim runs into dirty pages on a regular basis.\n\nBut it is important to get this right before tackling the problem on a\nper-zone level, where the distance between reclaim and the dirty pages is\nmostly much smaller in absolute numbers.\n\n[akpm@linux-foundation.org: fix highmem build]\nSigned-off-by: Johannes Weiner \u003cjweiner@redhat.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: Chris Mason \u003cchris.mason@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": "f6d7e0cb3ecc248e98fa11d83253f6174bd7e085",
      "tree": "0925b5b584c8ed6718a54e6e56202686fb5b9468",
      "parents": [
        "ad8a1b558e6c76fb53901956d3c8f29b82a4ccfa"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Jan 10 15:07:38 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:43 2012 -0800"
      },
      "message": "mm, debug: test for online nid when allocating on single node\n\nCalling alloc_pages_exact_node() means the allocation only passes the\nzonelist of a single node into the page allocator.  If that node isn\u0027t\nonline, it\u0027s zonelist may never have been initialized causing a strange\noops that may not immediately be clear.\n\nI recently debugged an issue where node 0 wasn\u0027t online and an allocator\nwas passing 0 to alloc_pages_exact_node() and it resulted in a NULL\npointer on zonelist-\u003e_zoneref.  If CONFIG_DEBUG_VM is enabled, though, it\nwould be nice to catch this a bit earlier.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@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": "c0a32fc5a2e470d0b02597b23ad79a317735253e",
      "tree": "2d164edae0062918ca2088772c00b0615781353b",
      "parents": [
        "1399ff86f2a2bbacbbe68fa00c5f8c752b344723"
      ],
      "author": {
        "name": "Stanislaw Gruszka",
        "email": "sgruszka@redhat.com",
        "time": "Tue Jan 10 15:07:28 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:42 2012 -0800"
      },
      "message": "mm: more intensive memory corruption debugging\n\nWith CONFIG_DEBUG_PAGEALLOC configured, the CPU will generate an exception\non access (read,write) to an unallocated page, which permits us to catch\ncode which corrupts memory.  However the kernel is trying to maximise\nmemory usage, hence there are usually few free pages in the system and\nbuggy code usually corrupts some crucial data.\n\nThis patch changes the buddy allocator to keep more free/protected pages\nand to interlace free/protected and allocated pages to increase the\nprobability of catching corruption.\n\nWhen the kernel is compiled with CONFIG_DEBUG_PAGEALLOC,\ndebug_guardpage_minorder defines the minimum order used by the page\nallocator to grant a request.  The requested size will be returned with\nthe remaining pages used as guard pages.\n\nThe default value of debug_guardpage_minorder is zero: no change from\ncurrent behaviour.\n\n[akpm@linux-foundation.org: tweak documentation, s/flg/flag/]\nSigned-off-by: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\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": "1399ff86f2a2bbacbbe68fa00c5f8c752b344723",
      "tree": "7cfb8e346ff8d750cbf33bb0655603e21e394c37",
      "parents": [
        "1e16a539ac16e7b3a8c2cee188897d4bdb88e6e8"
      ],
      "author": {
        "name": "David Daney",
        "email": "david.daney@cavium.com",
        "time": "Tue Jan 10 15:07:25 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:42 2012 -0800"
      },
      "message": "kernel.h: add BUILD_BUG() macro\n\nWe can place this in definitions that we expect the compiler to remove by\ndead code elimination.  If this assertion fails, we get a nice error\nmessage at build time.\n\nThe GCC function attribute error(\"message\") was added in version 4.3, so\nwe define a new macro __linktime_error(message) to expand to this for\nGCC-4.3 and later.  This will give us an error diagnostic from the\ncompiler on the line that fails.  For other compilers\n__linktime_error(message) expands to nothing, and we have to be content\nwith a link time error, but at least we will still get a build error.\n\nBUILD_BUG() expands to the undefined function __build_bug_failed() and\nwill fail at link time if the compiler ever emits code for it.  On GCC-4.3\nand later, attribute((error())) is used so that the failure will be noted\nat compile time instead.\n\nSigned-off-by: David Daney \u003cdavid.daney@cavium.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: DM \u003cdm.n9107@gmail.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f90ac3982a78d36f894824636beeef13361d7c59",
      "tree": "64bbe3b415bdfc151dc44f6b4c216c65351eb53c",
      "parents": [
        "938929f14cb595f43cd1a4e63e22d36cab1e4a1f"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jan 10 15:07:15 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:42 2012 -0800"
      },
      "message": "mm: avoid livelock on !__GFP_FS allocations\n\nColin Cross reported;\n\n  Under the following conditions, __alloc_pages_slowpath can loop forever:\n  gfp_mask \u0026 __GFP_WAIT is true\n  gfp_mask \u0026 __GFP_FS is false\n  reclaim and compaction make no progress\n  order \u003c\u003d PAGE_ALLOC_COSTLY_ORDER\n\n  These conditions happen very often during suspend and resume,\n  when pm_restrict_gfp_mask() effectively converts all GFP_KERNEL\n  allocations into __GFP_WAIT.\n\n  The oom killer is not run because gfp_mask \u0026 __GFP_FS is false,\n  but should_alloc_retry will always return true when order is less\n  than PAGE_ALLOC_COSTLY_ORDER.\n\nIn his fix, he avoided retrying the allocation if reclaim made no progress\nand __GFP_FS was not set.  The problem is that this would result in\nGFP_NOIO allocations failing that previously succeeded which would be very\nunfortunate.\n\nThe big difference between GFP_NOIO and suspend converting GFP_KERNEL to\nbehave like GFP_NOIO is that normally flushers will be cleaning pages and\nkswapd reclaims pages allowing GFP_NOIO to succeed after a short delay.\nThe same does not necessarily apply during suspend as the storage device\nmay be suspended.\n\nThis patch special cases the suspend case to fail the page allocation if\nreclaim cannot make progress and adds some documentation on how\ngfp_allowed_mask is currently used.  Failing allocations like this may\ncause suspend to abort but that is better than a livelock.\n\n[mgorman@suse.de: Rework fix to be suspend specific]\n[rientjes@google.com: Move suspended device check to should_alloc_retry]\nReported-by: Colin Cross \u003cccross@android.com\u003e\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "da066ad3570b88e7dee82e76a06ee9a7adffcf0d",
      "tree": "0587cac700f316f9d658e350c0ddf4b4331413a5",
      "parents": [
        "cc59850ef940e4ee6a765d28b439b9bafe07cf63"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Tue Jan 10 15:07:06 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:41 2012 -0800"
      },
      "message": "mm: remove unused pagevec_free\n\nIt not exported and now nobody uses it.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cc59850ef940e4ee6a765d28b439b9bafe07cf63",
      "tree": "03b666986e9cc7dfc113a14721c44aa9e149f871",
      "parents": [
        "c909e99364c8b6ca07864d752950b6b4ecf6bef4"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Tue Jan 10 15:07:04 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:41 2012 -0800"
      },
      "message": "mm: add free_hot_cold_page_list() helper\n\nThis patch adds helper free_hot_cold_page_list() to free list of 0-order\npages.  It frees pages directly from list without temporary page-vector.\nIt also calls trace_mm_pagevec_free() to simulate pagevec_free()\nbehaviour.\n\nbloat-o-meter:\n\nadd/remove: 1/1 grow/shrink: 1/3 up/down: 267/-295 (-28)\nfunction                                     old     new   delta\nfree_hot_cold_page_list                        -     264    +264\nget_page_from_freelist                      2129    2132      +3\n__pagevec_free                               243     239      -4\nsplit_free_page                              380     373      -7\nrelease_pages                                606     510     -96\nfree_page_list                               188       -    -188\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1edf223485c42c99655dcd001db1e46ad5e5d2d7",
      "tree": "33b93dc8f2a249806150b5792ac1787688bf6b74",
      "parents": [
        "e4e11180dfa545233e5145919b75b7fac88638df"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Tue Jan 10 15:06:57 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:41 2012 -0800"
      },
      "message": "mm/page-writeback.c: make determine_dirtyable_memory static again\n\nThe tracing ring-buffer used this function briefly, but not anymore.\nMake it local to the writeback code again.\n\nAlso, move the function so that no forward declaration needs to be\nreintroduced.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: 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": "54c2c5761febcca46c8037d3a81612991e6c209a",
      "tree": "e6a686088f16e182138bdf8ae13f6cd27b8613b0",
      "parents": [
        "609eac1c152353ee4cd6f292d49f0aa0b885951a",
        "ff9cb1c4eead5e4c292e75cd3170a82d66944101"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 15:51:48 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 15:51:48 2012 -0800"
      },
      "message": "Merge tag \u0027ext4_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\nExt4 commits for 3.3 merge window\n\n* tag \u0027ext4_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (32 commits)\n  ext4: fix undefined behavior in ext4_fill_flex_info()\n  ext4: make more symbols static\n  ext4: make local symbol ext4_initxattrs static\n  jbd2: fix hung processes in jbd2_journal_lock_updates()\n  ext4: reserve new feature flag codepoints\n  ext4: Report max_batch_time option correctly\n  ext4: add missing ext4_resize_end on error paths\n  ext4: let ext4_group_add() use common code\n  ext4: let ext4_group_extend() use common code\n  ext4: add new online resize interface\n  ext4: add a new function which adds a flex group to a fs\n  ext4: add a new function which allocates bitmaps and inode tables\n  ext4: pass verify_reserved_gdb() the number of group decriptors\n  ext4: add a function which updates the super block during online resizing\n  ext4: add a function which sets up a block group descriptors of a flex bg\n  ext4: add a function which sets up group blocks of a flex bg\n  ext4: add a structure which will be used by 64bit-resize interface\n  ext4: add a function which adds a new group descriptors to a fs\n  ext4: add a function which extends a group without checking parameters\n  ext4: use proper little-endian bitops\n  ...\n"
    },
    {
      "commit": "57eccf1c2acae2fcb748730881ba75643fc31c81",
      "tree": "be47ac42ef0b2e3e7157ce196ad2ed1224739c6c",
      "parents": [
        "5c395ae7033099fc657114ea997858aa622f08b2",
        "074b1d12fe2500d7d453902f9266e6674b30d84c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 14:57:40 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 14:57:40 2012 -0800"
      },
      "message": "Merge branch \u0027nfs-for-3.3\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\n* \u0027nfs-for-3.3\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs:\n  NFSv4: Change the default setting of the nfs4_disable_idmapping parameter\n  NFSv4: Save the owner/group name string when doing open\n  NFS: Remove pNFS bloat from the generic write path\n  pnfs-obj: Must return layout on IO error\n  pnfs-obj: pNFS errors are communicated on iodata-\u003epnfs_error\n  NFS: Cache state owners after files are closed\n  NFS: Clean up nfs4_find_state_owners_locked()\n  NFSv4: include bitmap in nfsv4 get acl data\n  nfs: fix a minor do_div portability issue\n  NFSv4.1: cleanup comment and debug printk\n  NFSv4.1: change nfs4_free_slot parameters for dynamic slots\n  NFSv4.1: cleanup init and reset of session slot tables\n  NFSv4.1: fix backchannel slotid off-by-one bug\n  nfs: fix regression in handling of context\u003d option in NFSv4\n  NFS - fix recent breakage to NFS error handling.\n  NFS: Retry mounting NFSROOT\n  SUNRPC: Clean up the RPCSEC_GSS service ticket requests\n"
    },
    {
      "commit": "49d41bae46f15da528ef9848fd7c9d38582aa8e9",
      "tree": "76907a9a5066642a32cb238ef8d8367fc612d064",
      "parents": [
        "7b3480f8b701170c046e1ed362946f5f0d005e13",
        "60f98d1839376d30e13f3e452dce2433fad3060e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 14:55:55 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 14:55:55 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm:\n  dlm: add recovery callbacks\n  dlm: add node slots and generation\n  dlm: move recovery barrier calls\n  dlm: convert rsb list to rb_tree\n"
    },
    {
      "commit": "7b3480f8b701170c046e1ed362946f5f0d005e13",
      "tree": "bd25e05b4f35699689b485480dddf24f840f80af",
      "parents": [
        "1c8106528aa6bf16b3f457de80df1cf7462a49a4",
        "b60ef99c1164a8ad346cf41f9e71acfffb6d25a6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 13:45:22 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 13:45:22 2012 -0800"
      },
      "message": "Merge tag \u0027for-linus-3.3\u0027 of git://git.infradead.org/mtd-2.6\n\nMTD pull for 3.3\n\n* tag \u0027for-linus-3.3\u0027 of git://git.infradead.org/mtd-2.6: (113 commits)\n  mtd: Fix dependency for MTD_DOC200x\n  mtd: do not use mtd-\u003eblock_markbad directly\n  logfs: do not use \u0027mtd-\u003eblock_isbad\u0027 directly\n  mtd: introduce mtd_can_have_bb helper\n  mtd: do not use mtd-\u003esuspend and mtd-\u003eresume directly\n  mtd: do not use mtd-\u003elock, unlock and is_locked directly\n  mtd: do not use mtd-\u003esync directly\n  mtd: harmonize mtd_writev usage\n  mtd: do not use mtd-\u003elock_user_prot_reg directly\n  mtd: mtd-\u003ewrite_user_prot_reg directly\n  mtd: do not use mtd-\u003eread_*_prot_reg directly\n  mtd: do not use mtd-\u003eget_*_prot_info directly\n  mtd: do not use mtd-\u003eread_oob directly\n  mtd: mtdoops: do not use mtd-\u003epanic_write directly\n  romfs: do not use mtd-\u003eget_unmapped_area directly\n  mtd: do not use mtd-\u003eget_unmapped_area directly\n  mtd: do use mtd-\u003epoint directly\n  mtd: introduce mtd_has_oob helper\n  mtd: mtdcore: export symbols cleanup\n  mtd: clean-up the default_mtd_writev function\n  ...\n\nFix up trivial edit/remove conflict in drivers/staging/spectra/lld_mtd.c\n"
    },
    {
      "commit": "1c8106528aa6bf16b3f457de80df1cf7462a49a4",
      "tree": "4aed009c4a36195fd14c9f8d70fe2723a49583da",
      "parents": [
        "1a464cbb3d483f2f195b614cffa4aa1b910a0440",
        "f93ea733878733f3e98475bc3e2ccf789bebcfb8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 11:08:21 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 11:08:21 2012 -0800"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (53 commits)\n  iommu/amd: Set IOTLB invalidation timeout\n  iommu/amd: Init stats for iommu\u003dpt\n  iommu/amd: Remove unnecessary cache flushes in amd_iommu_resume\n  iommu/amd: Add invalidate-context call-back\n  iommu/amd: Add amd_iommu_device_info() function\n  iommu/amd: Adapt IOMMU driver to PCI register name changes\n  iommu/amd: Add invalid_ppr callback\n  iommu/amd: Implement notifiers for IOMMUv2\n  iommu/amd: Implement IO page-fault handler\n  iommu/amd: Add routines to bind/unbind a pasid\n  iommu/amd: Implement device aquisition code for IOMMUv2\n  iommu/amd: Add driver stub for AMD IOMMUv2 support\n  iommu/amd: Add stat counter for IOMMUv2 events\n  iommu/amd: Add device errata handling\n  iommu/amd: Add function to get IOMMUv2 domain for pdev\n  iommu/amd: Implement function to send PPR completions\n  iommu/amd: Implement functions to manage GCR3 table\n  iommu/amd: Implement IOMMUv2 TLB flushing routines\n  iommu/amd: Add support for IOMMUv2 domain mode\n  iommu/amd: Add amd_iommu_domain_direct_map function\n  ...\n"
    },
    {
      "commit": "1a464cbb3d483f2f195b614cffa4aa1b910a0440",
      "tree": "af57dee6436532dbb546b8670e9e1f6910d489b5",
      "parents": [
        "dbe950f201a8edd353b0bd9079e8d536ee4ce37c",
        "095f979a539245a46b9e5d600ec9c720b4d928e5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 11:04:36 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 11:04:36 2012 -0800"
      },
      "message": "Merge branch \u0027drm-core-next\u0027 of git://people.freedesktop.org/~airlied/linux\n\n* \u0027drm-core-next\u0027 of git://people.freedesktop.org/~airlied/linux: (307 commits)\n  drm/nouveau/pm: fix build with HWMON off\n  gma500: silence gcc warnings in mid_get_vbt_data()\n  drm/ttm: fix condition (and vs or)\n  drm/radeon: double lock typo in radeon_vm_bo_rmv()\n  drm/radeon: use after free in radeon_vm_bo_add()\n  drm/sis|via: don\u0027t return stack garbage from free_mem ioctl\n  drm/radeon/kms: remove pointless CS flags priority struct\n  drm/radeon/kms: check if vm is supported in VA ioctl\n  drm: introduce drm_can_sleep and use in intel/radeon drivers. (v2)\n  radeon: Fix disabling PCI bus mastering on big endian hosts.\n  ttm: fix agp since ttm tt rework\n  agp: Fix multi-line warning message whitespace\n  drm/ttm/dma: Fix accounting error when calling ttm_mem_global_free_page and don\u0027t try to free freed pages.\n  drm/ttm/dma: Only call set_pages_array_wb when the page is not in WB pool.\n  drm/radeon/kms: sync across multiple rings when doing bo moves v3\n  drm/radeon/kms: Add support for multi-ring sync in CS ioctl (v2)\n  drm/radeon: GPU virtual memory support v22\n  drm: make DRM_UNLOCKED ioctls with their own mutex\n  drm: no need to hold global mutex for static data\n  drm/radeon/benchmark: common modes sweep ignores 640x480@32\n  ...\n\nFix up trivial conflicts in radeon/evergreen.c and vmwgfx/vmwgfx_kms.c\n"
    },
    {
      "commit": "dbe950f201a8edd353b0bd9079e8d536ee4ce37c",
      "tree": "dffbada6b3d33cc67383758570de22b4f45693b6",
      "parents": [
        "f62f61917d72c1fb0101ad405664f6fc868d676b",
        "da733563be5a9da26fe81d9f007262d00b846e22"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 10:55:52 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 10:55:52 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (64 commits)\n  Input: tc3589x-keypad - add missing kerneldoc\n  Input: ucb1400-ts - switch to using dev_xxx() for diagnostic messages\n  Input: ucb1400_ts - convert to threaded IRQ\n  Input: ucb1400_ts - drop inline annotations\n  Input: usb1400_ts - add __devinit/__devexit section annotations\n  Input: ucb1400_ts - set driver owner\n  Input: ucb1400_ts - convert to use dev_pm_ops\n  Input: psmouse - make sure we do not use stale methods\n  Input: evdev - do not block waiting for an event if fd is nonblock\n  Input: evdev - if no events and non-block, return EAGAIN not 0\n  Input: evdev - only allow reading events if a full packet is present\n  Input: add driver for pixcir i2c touchscreens\n  Input: samsung-keypad - implement runtime power management support\n  Input: tegra-kbc - report wakeup key for some platforms\n  Input: tegra-kbc - add device tree bindings\n  Input: add driver for AUO In-Cell touchscreens using pixcir ICs\n  Input: mpu3050 - configure the sampling method\n  Input: mpu3050 - ensure we enable interrupts\n  Input: mpu3050 - add of_match table for device-tree probing\n  Input: sentelic - document the latest hardware\n  ...\n\nFix up fairly trivial conflicts (device tree matching conflicting with\nsome independent cleanups) in drivers/input/keyboard/samsung-keypad.c\n"
    },
    {
      "commit": "f62f61917d72c1fb0101ad405664f6fc868d676b",
      "tree": "cedeb85a8d1c97dc3be0b667734b0fe4e0dd84b6",
      "parents": [
        "d04baa157d1b35cbd27c87b4a13111d9675b61f3",
        "420174afdc7023c000e5b5b1b6fe9e028470c713"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 10:48:28 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 10:48:28 2012 -0800"
      },
      "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: (68 commits)\n  hid-input/battery: add FEATURE quirk\n  hid-input/battery: remove battery_val\n  hid-input/battery: power-supply type really *is* a battery\n  hid-input/battery: make the battery setup common for INPUTs and FEATUREs\n  hid-input/battery: deal with both FEATURE and INPUT report batteries\n  hid-input/battery: add quirks for battery\n  hid-input/battery: remove apparently redundant kmalloc\n  hid-input: add support for HID devices reporting Battery Strength\n  HID: hid-multitouch: add support 9 new Xiroku devices\n  HID: multitouch: add support for 3M 32\"\n  HID: multitouch: add support of Atmel multitouch panels\n  HID: usbhid: defer LED setting to a workqueue\n  HID: usbhid: hid-core: submit queued urbs before suspend\n  HID: usbhid: remove LED_ON\n  HID: emsff: use symbolic name instead of hardcoded PID constant\n  HID: Enable HID_QUIRK_MULTI_INPUT for Trio Linker Plus II\n  HID: Kconfig: fix syntax\n  HID: introduce proper dependency of HID_BATTERY on POWER_SUPPLY\n  HID: multitouch: support PixArt optical touch screen\n  HID: make parser more verbose about parsing errors by default\n  ...\n\nFix up rename/delete conflict in drivers/hid/hid-hyperv.c (removed in\nstaging, moved in this branch) and similarly for the rules for same file\nin drivers/staging/hv/{Kconfig,Makefile}.\n"
    },
    {
      "commit": "88266917b518e2ca954d85983470592aaaf82993",
      "tree": "e8c6e77cf6c70de0dbe655ce3cd4401391a06b6e",
      "parents": [
        "269d430131b699c2cadf58495f025a4092959ef5",
        "e2bf7c4c22939bd83814d8da40a352d246030b1b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 10:29:23 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 10:29:23 2012 -0800"
      },
      "message": "Merge git://www.linux-watchdog.org/linux-watchdog\n\n* git://www.linux-watchdog.org/linux-watchdog:\n  watchdog: omap_wdt.c: fix the WDIOC_GETBOOTSTATUS ioctl if not implemented.\n  watchdog: new driver for VIA chipsets\n  watchdog: ath79_wdt: flush register writes\n  drivers/watchdog/lantiq_wdt.c: drop iounmap for devm_ allocated data\n  watchdog: documentation: describe nowayout in coversion-guide\n  watchdog: documentation: update index file\n  watchdog: Convert wm831x driver to devm_kzalloc()\n  watchdog: add nowayout helpers to Watchdog Timer Driver Kernel API\n  watchdog: convert drivers/watchdog/* to use module_platform_driver()\n  watchdog: Use DEFINE_SPINLOCK() for static spinlocks\n  watchdog: Convert Wolfson drivers to module_platform_driver\n"
    },
    {
      "commit": "269d430131b699c2cadf58495f025a4092959ef5",
      "tree": "d9972cd7e03f82b6ac59bc471fb59e49dc6fcaab",
      "parents": [
        "d52739c62e0096dccea59f012d80256c6e359a98",
        "0c437c4ae71c0a8110eb21c06b99853c7056b317"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 10:20:34 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 10:20:34 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (40 commits)\n  regulator: set constraints.apply_uV to 0 in of_get_fixed_voltage_config\n  regulator: max8925: fix enabled/disabled judgement mistake\n  regulator: add regulator_bulk_force_disable function\n  regulator: pass regulator_register of_node in fixed voltage driver\n  regulator: add regulator_force_disable() definition for !CONFIG_REGULATOR\n  regulator: Enable supply regulator if child rail is enabled.\n  regulator: mc13892: Convert to devm_kzalloc()\n  regulator: mc13783: Convert to devm_kzalloc()\n  regulator: Fix checking return value of create_regulator\n  regulator: Fix the error handling if create_regulator fails\n  regulator: Export regulator_is_supported_voltage()\n  regulator: mc13892: add device tree probe support\n  regulator: mc13892: remove the unnecessary prefix from regulator name\n  regulator: Convert wm831x regulator drivers to devm_kzalloc()\n  regulator: da9052: Staticize non-exported symbols\n  regulator: Replace kzalloc with devm_kzalloc and if-else with a switch-case for da9052-regulator\n  regulator: Update da9052-regulator for DT changes\n  regulator: DA9052/53 Regulator support\n  regulator: pass device_node to of_get_regulator_init_data()\n  regulator: If a single voltage is set with device tree then set apply_uV\n  ...\n"
    },
    {
      "commit": "d52739c62e0096dccea59f012d80256c6e359a98",
      "tree": "4df8ae0640c360eb79b6d0511f084b2337e21e12",
      "parents": [
        "abce00f962a11ed6f748c2569e11695a30716b53",
        "0d2006bbf09e817f125ba1e42b2549bc2c5d7351"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 10:19:57 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 10:19:57 2012 -0800"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (31 commits)\n  pinctrl: remove unnecessary max pin number\n  pinctrl: correct a offset while enumerating pins\n  pinctrl: some typo fixes\n  pinctrl: rename U300 and SIRF pin controllers\n  pinctrl: pass name instead of device to pin_config_*\n  pinctrl: add \"struct seq_file;\" to pinconf.h\n  pinctrl: conjure names for unnamed pins\n  pinctrl: add a group-specific hog macro\n  pinctrl: don\u0027t create a device for each pin controller\n  arm/u300: don\u0027t use PINMUX_MAP_PRIMARY*\n  pinctrl: implement PINMUX_MAP_SYS_HOG\n  pinctrl: add a pin config interface\n  pinctrl/coh901: driver to request its pins\n  pinctrl: u300-pinmux: register proper GPIO ranges\n  pinctrl: move the U300 GPIO driver to pinctrl\n  ARM: u300: localize GPIO assignments\n  pinctrl: make it possible to add multiple maps\n  pinctrl: make a copy of pinmux map\n  pinctrl: GPIO direction support for muxing\n  pinctrl: print pin range in GPIO range debugs\n  ...\n"
    },
    {
      "commit": "abce00f962a11ed6f748c2569e11695a30716b53",
      "tree": "f76a7d999dc47bb84cc72b2691aa47080ef97262",
      "parents": [
        "90160371b3a3e67ef78d68210a94dd30664a703d",
        "318893e1429a9d50569a0379d1e20b0ecc45c555"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 10:19:17 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 10:19:17 2012 -0800"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://github.com/jgarzik/libata-dev\n\n* \u0027upstream-linus\u0027 of git://github.com/jgarzik/libata-dev:\n  ahci: support the STA2X11 I/O Hub\n  pata_bf54x: fix BMIDE status register emulation\n  ata: add ata port hibernate callbacks\n  ata: update ata port\u0027s runtime status during system resume\n  [SCSI] runtime resume parent for child\u0027s system-resume\n  ahci: platform support for suspend/resume\n  libata-core: kill duplicate statement in ata_do_set_mode()\n  pata_of_platform: remove direct dependency on OF_IRQ\n  SATA/PATA: convert drivers/ata/* to use module_platform_driver()\n  pata_cs5536: forward port changes from cs5536\n  libata-sff: use ATAPI_{COD|IO}\n  ata: add ata port runtime PM callbacks\n  ata: add ata port system PM callbacks\n  [SCSI] sd: check runtime PM status in sd_shutdown\n  [SCSI] check runtime PM status in system PM\n  [SCSI] add flag to skip the runtime PM calls on the host\n  ata: make ata port as parent device of scsi host\n  ahci: start engine only during soft/hard resets\n"
    },
    {
      "commit": "eaf5f9073533cde21c7121c136f1c3f072d9cf59",
      "tree": "db9cb9424fbae04decf7a8281a5180f65e5124b9",
      "parents": [
        "f4947fbce208990266920d51837e4e7ba9779db1"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Tue Jan 10 18:22:25 2012 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 10 13:06:32 2012 -0500"
      },
      "message": "fix shrink_dcache_parent() livelock\n\nTwo (or more) concurrent calls of shrink_dcache_parent() on the same dentry may\ncause shrink_dcache_parent() to loop forever.\n\nHere\u0027s what appears to happen:\n\n1 - CPU0: select_parent(P) finds C and puts it on dispose list, returns 1\n\n2 - CPU1: select_parent(P) locks P-\u003ed_lock\n\n3 - CPU0: shrink_dentry_list() locks C-\u003ed_lock\n   dentry_kill(C) tries to lock P-\u003ed_lock but fails, unlocks C-\u003ed_lock\n\n4 - CPU1: select_parent(P) locks C-\u003ed_lock,\n         moves C from dispose list being processed on CPU0 to the new\ndispose list, returns 1\n\n5 - CPU0: shrink_dentry_list() finds dispose list empty, returns\n\n6 - Goto 2 with CPU0 and CPU1 switched\n\nBasically select_parent() steals the dentry from shrink_dentry_list() and thinks\nit found a new one, causing shrink_dentry_list() to think it\u0027s making progress\nand loop over and over.\n\nOne way to trigger this is to make udev calls stat() on the sysfs file while it\nis going away.\n\nHaving a file in /lib/udev/rules.d/ with only this one rule seems to the trick:\n\nATTR{vendor}\u003d\u003d\"0x8086\", ATTR{device}\u003d\u003d\"0x10ca\", ENV{PCI_SLOT_NAME}\u003d\"%k\", ENV{MATCHADDR}\u003d\"$attr{address}\", RUN+\u003d\"/bin/true\"\n\nThen execute the following loop:\n\nwhile true; do\n        echo -bond0 \u003e /sys/class/net/bonding_masters\n        echo +bond0 \u003e /sys/class/net/bonding_masters\n        echo -bond1 \u003e /sys/class/net/bonding_masters\n        echo +bond1 \u003e /sys/class/net/bonding_masters\ndone\n\nOne fix would be to check all callers and prevent concurrent calls to\nshrink_dcache_parent().  But I think a better solution is to stop the\nstealing behavior.\n\nThis patch adds a new dentry flag that is set when the dentry is added to the\ndispose list.  The flag is cleared in dentry_lru_del() in case the dentry gets a\nnew reference just before being pruned.\n\nIf the dentry has this flag, select_parent() will skip it and let\nshrink_dentry_list() retry pruning it.  With select_parent() skipping those\ndentries there will not be the appearance of progress (new dentries found) when\nthere is none, hence shrink_dcache_parent() will not loop forever.\n\nSet the flag is also set in prune_dcache_sb() for consistency as suggested by\nLinus.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCC: stable@vger.kernel.org\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3dcf6c1b6b29f327ec24a1986aaa8eba399b463f",
      "tree": "51e8d0659aa3e4aa50ac94cf13051fef135bda19",
      "parents": [
        "e4e11180dfa545233e5145919b75b7fac88638df",
        "da69dee073a27ee2d4e50c9b19e9faf8776857eb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 09:57:11 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 09:57:11 2012 -0800"
      },
      "message": "Merge branch \u0027kvm-updates/3.3\u0027 of git://git.kernel.org/pub/scm/virt/kvm/kvm\n\n* \u0027kvm-updates/3.3\u0027 of git://git.kernel.org/pub/scm/virt/kvm/kvm: (74 commits)\n  KVM: PPC: Whitespace fix for kvm.h\n  KVM: Fix whitespace in kvm_para.h\n  KVM: PPC: annotate kvm_rma_init as __init\n  KVM: x86 emulator: implement RDPMC (0F 33)\n  KVM: x86 emulator: fix RDPMC privilege check\n  KVM: Expose the architectural performance monitoring CPUID leaf\n  KVM: VMX: Intercept RDPMC\n  KVM: SVM: Intercept RDPMC\n  KVM: Add generic RDPMC support\n  KVM: Expose a version 2 architectural PMU to a guests\n  KVM: Expose kvm_lapic_local_deliver()\n  KVM: x86 emulator: Use opcode::execute for Group 9 instruction\n  KVM: x86 emulator: Use opcode::execute for Group 4/5 instructions\n  KVM: x86 emulator: Use opcode::execute for Group 1A instruction\n  KVM: ensure that debugfs entries have been created\n  KVM: drop bsp_vcpu pointer from kvm struct\n  KVM: x86: Consolidate PIT legacy test\n  KVM: x86: Do not rely on implicit inclusions\n  KVM: Make KVM_INTEL depend on CPU_SUP_INTEL\n  KVM: Use memdup_user instead of kmalloc/copy_from_user\n  ...\n"
    },
    {
      "commit": "913272b3864d6da89c70d9fc2c30ccb57794b369",
      "tree": "4fb0a8ab1b53623d2a8ea200b80a3ace2d271471",
      "parents": [
        "6cfc2a23540667cff6da6e41d1f1167a9a45aa9a",
        "629bcb4b72d49b3631ae3dd0fe1d345820fadfcc"
      ],
      "author": {
        "name": "Anton Vorontsov",
        "email": "cbouatmailru@gmail.com",
        "time": "Tue Jan 10 20:55:11 2012 +0400"
      },
      "committer": {
        "name": "Anton Vorontsov",
        "email": "cbouatmailru@gmail.com",
        "time": "Tue Jan 10 20:55:11 2012 +0400"
      },
      "message": "Merge git://git.infradead.org/users/cbou/battery-urgent\n"
    },
    {
      "commit": "ff9cb1c4eead5e4c292e75cd3170a82d66944101",
      "tree": "cdb132a39e550a9b7b28ea67544cb86cd6ebdb6e",
      "parents": [
        "e4e11180dfa545233e5145919b75b7fac88638df",
        "d50f2ab6f050311dbf7b8f5501b25f0bf64a439b"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jan 10 11:54:07 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jan 10 11:54:07 2012 -0500"
      },
      "message": "Merge branch \u0027for_linus\u0027 into for_linus_merged\n\nConflicts:\n\tfs/ext4/ioctl.c\n"
    },
    {
      "commit": "e4e11180dfa545233e5145919b75b7fac88638df",
      "tree": "bfdb18eee49aa55fd3d6170a422164e772736a1b",
      "parents": [
        "37cfc3f67db9f2d907f6bfcfae590cdbbef623e8",
        "adc0e91ab142abe93f5b0d7980ada8a7676231fe"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 17:37:37 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 17:37:37 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:\n  vfs: new helper - d_make_root()\n  dcache: use a dispose list in select_parent\n  ceph: d_alloc_root() may fail\n  ext4: fix failure exits\n  isofs: inode leak on mount failure\n"
    },
    {
      "commit": "adc0e91ab142abe93f5b0d7980ada8a7676231fe",
      "tree": "27ee89f960b7e2d6cd5179d914bc252324122c26",
      "parents": [
        "b48f03b319ba78f3abf9a7044d1f436d8d90f4f9"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 08 16:49:21 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 09 19:23:45 2012 -0500"
      },
      "message": "vfs: new helper - d_make_root()\n\nd_alloc_root() with iput() in case of allocation failure...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "38e5781bbf8e82c1635ea845e0d07b2228a5ac7a",
      "tree": "69ced9c509c864a67122c5e1337f14cd1d9e988d",
      "parents": [
        "979ecef5b89a8003902299566d9cdc08de34a3ee",
        "a8c1f65c79cbbb2f7da782d4c9d15639a9b94b27"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 14:46:52 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 14:46:52 2012 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:\n  igmp: Avoid zero delay when receiving odd mixture of IGMP queries\n  netdev: make net_device_ops const\n  bcm63xx: make ethtool_ops const\n  usbnet: make ethtool_ops const\n  net: Fix build with INET disabled.\n  net: introduce netif_addr_lock_nested() and call if when appropriate\n  net: correct lock name in dev_[uc/mc]_sync documentations.\n  net: sk_update_clone is only used in net/core/sock.c\n  8139cp: fix missing napi_gro_flush.\n  pktgen: set correct max and min in pktgen_setup_inject()\n  smsc911x: Unconditionally include linux/smscphy.h in smsc911x.h\n  asix: fix infinite loop in rx_fixup()\n  net: Default UDP and UNIX diag to \u0027n\u0027.\n  r6040: fix typo in use of MCR0 register bits\n  net: fix sock_clone reference mismatch with tcp memcontrol\n"
    },
    {
      "commit": "979ecef5b89a8003902299566d9cdc08de34a3ee",
      "tree": "2a695d557adab1dec5263f014789f5b59238bac8",
      "parents": [
        "e8cbce976050a9f874a8b07012ddeb9b9eb59603",
        "8c3b2296f1aa13d7504d2c09bc819cef3759562a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 14:44:15 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 14:44:15 2012 -0800"
      },
      "message": "Merge tag \u0027clk\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc\n\nclock management changes for i.MX\n\nAnother simple series related to clock management, this time only for\nimx.\n\n* tag \u0027clk\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:\n  ARM: mxs: select HAVE_CLK_PREPARE for clock\n  clk: add config option HAVE_CLK_PREPARE into Kconfig\n  ASoC: mxs-saif: convert to clk_prepare/clk_unprepare\n  video: mxsfb: convert to clk_prepare/clk_unprepare\n  serial: mxs-auart: convert to clk_prepare/clk_unprepare\n  net: flexcan: convert to clk_prepare/clk_unprepare\n  mtd: gpmi-lib: convert to clk_prepare/clk_unprepare\n  mmc: mxs-mmc: convert to clk_prepare/clk_unprepare\n  dma: mxs-dma: convert to clk_prepare/clk_unprepare\n  net: fec: add clk_prepare/clk_unprepare\n  ARM: mxs: convert platform code to clk_prepare/clk_unprepare\n  clk: add helper functions clk_prepare_enable and clk_disable_unprepare\n\nFix up trivial conflicts in drivers/net/ethernet/freescale/fec.c due to\ncommit 0ebafefcaa7a (\"net: fec: add clk_prepare/clk_unprepare\") clashing\ntrivially with commit e163cc97f9ac (\"net/fec: fix the .remove code\").\n"
    },
    {
      "commit": "2ac9d7aaccbd598b5bd19ac40761b723bb675442",
      "tree": "09132a44e33798aaa5e80f10bf025b510015cab3",
      "parents": [
        "5ede3ceb7b2c2843e153a1803edbdc8c56655950",
        "dcf7ec5ee62a78123057a1e286c88ca739717409"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 14:39:22 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 14:39:22 2012 -0800"
      },
      "message": "Merge tag \u0027drivers\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc\n\nDriver specific changes\n\nAgain, a lot of platforms have changes in here: pxa, samsung, omap,\nat91, imx, ...\n\n* tag \u0027drivers\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (54 commits)\n  ARM: sa1100: clean up of the clock support\n  ARM: pxa: add dummy clock for sa1100-rtc\n  RTC: sa1100: support sa1100, pxa and mmp soc families\n  RTC: sa1100: remove redundant code of setting alarm\n  RTC: sa1100: Clean out ost register\n  Input: zylonite-wm97xx - replace IRQ_GPIO() with gpio_to_irq()\n  pcmcia: pxa: replace IRQ_GPIO() with gpio_to_irq()\n  ARM: EXYNOS: Modified files for SPI consolidation work\n  ARM: S5P64X0: Enable SDHCI support\n  ARM: S5P64X0: Add lookup of sdhci-s3c clocks using generic names\n  ARM: S5P64X0: Add HSMMC setup for host Controller\n  ARM: EXYNOS: Add USB OHCI support to ORIGEN board\n  USB: Add Samsung Exynos OHCI diver\n  ARM: EXYNOS: Add USB OHCI support to SMDKV310 board\n  ARM: EXYNOS: Add USB OHCI device\n  net: macb: fix build break with !CONFIG_OF\n  i2c: tegra: Support DVC controller in device tree\n  i2c: tegra: Add __devinit/exit to probe/remove\n  net/at91_ether: use gpio_is_valid for phy IRQ line\n  ARM: at91/net: add macb ethernet controller in 9g45/9g20 DT\n  ...\n"
    },
    {
      "commit": "5ede3ceb7b2c2843e153a1803edbdc8c56655950",
      "tree": "4cfa82b619f7d39b671e4a2a213f4d040b09c486",
      "parents": [
        "6d889d03ab1417645e76e129834f76204bae37c0",
        "3e2762c8f1141ae8dc708034ea41d6827818c328"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 14:38:51 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 14:38:51 2012 -0800"
      },
      "message": "Merge tag \u0027devel\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc\n\nNew feature development\n\nThis adds support for new features, and contains stuff from most\nplatforms. A number of these patches could have fit into other\nbranches, too, but were small enough not to cause too much\nconfusion here.\n\n* tag \u0027devel\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (28 commits)\n  mfd/db8500-prcmu: remove support for early silicon revisions\n  ARM: ux500: fix the smp_twd clock calculation\n  ARM: ux500: remove support for early silicon revisions\n  ARM: ux500: update register files\n  ARM: ux500: register DB5500 PMU dynamically\n  ARM: ux500: update ASIC detection for U5500\n  ARM: ux500: support DB8520\n  ARM: picoxcell: implement watchdog restart\n  ARM: OMAP3+: hwmod data: Add the default clockactivity for I2C\n  ARM: OMAP3: hwmod data: disable multiblock reads on MMC1/2 on OMAP34xx/35xx \u003c\u003d ES2.1\n  ARM: OMAP: USB: EHCI and OHCI hwmod structures for OMAP4\n  ARM: OMAP: USB: EHCI and OHCI hwmod structures for OMAP3\n  ARM: OMAP: hwmod data: Add support for AM35xx UART4/ttyO3\n  ARM: Orion: Remove address map info from all platform data structures\n  ARM: Orion: Get address map from plat-orion instead of via platform_data\n  ARM: Orion: mbus_dram_info consolidation\n  ARM: Orion: Consolidate the address map setup\n  ARM: Kirkwood: Add configuration for MPP12 as GPIO\n  ARM: Kirkwood: Recognize A1 revision of 6282 chip\n  ARM: ux500: update the MOP500 GPIO assignments\n  ...\n"
    },
    {
      "commit": "dfc1ebe76663d582a01c9dc572395cf8086d01de",
      "tree": "54a5ac91214a90f82c27b6e38099a4470837729e",
      "parents": [
        "acc952c1f373bf3f66cc7a10680eee1762bed40b",
        "b001befe58691ef3627458cd814e8cee7f845c5f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 14:28:38 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 14:28:38 2012 -0800"
      },
      "message": "Merge tag \u0027dt\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc\n\nDevice tree conversions for samsung and tegra\n\nBoth platforms had some initial device tree support, but this adds\nmuch more to actually make it usable.\n\n* tag \u0027dt\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (45 commits)\n  ARM: dts: Add intial dts file for EXYNOS4210 SoC, SMDKV310 and ORIGEN\n  ARM: EXYNOS: Add Exynos4 device tree enabled board file\n  rtc: rtc-s3c: Add device tree support\n  input: samsung-keypad: Add device tree support\n  ARM: S5PV210: Modify platform data for pl330 driver\n  ARM: S5PC100: Modify platform data for pl330 driver\n  ARM: S5P64x0: Modify platform data for pl330 driver\n  ARM: EXYNOS: Add a alias for pdma clocks\n  ARM: EXYNOS: Limit usage of pl330 device instance to non-dt build\n  ARM: SAMSUNG: Add device tree support for pl330 dma engine wrappers\n  DMA: PL330: Add device tree support\n  ARM: EXYNOS: Modify platform data for pl330 driver\n  DMA: PL330: Infer transfer direction from transfer request instead of platform data\n  DMA: PL330: move filter function into driver\n  serial: samsung: Fix build for non-Exynos4210 devices\n  serial: samsung: add device tree support\n  serial: samsung: merge probe() function from all SoC specific extensions\n  serial: samsung: merge all SoC specific port reset functions\n  ARM: SAMSUNG: register uart clocks to clock lookup list\n  serial: samsung: remove all uses of get_clksrc and set_clksrc\n  ...\n\nFix up fairly trivial conflicts in arch/arm/mach-s3c2440/clock.c and\ndrivers/tty/serial/Kconfig both due to just adding code close to\nchanges.\n"
    },
    {
      "commit": "acc952c1f373bf3f66cc7a10680eee1762bed40b",
      "tree": "de1135ffe304f4d8e53d282e5bb1bde5db04e0ae",
      "parents": [
        "57e964e1ae9bd4f699ae1074430bcf81a9a11377",
        "40ba95fdf158713377d47736b1b3a9d75f4f2515"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 14:21:03 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 14:21:03 2012 -0800"
      },
      "message": "Merge tag \u0027cleanup\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc\n\nCleanups on various subarchitectures\n\nCleanup patches for various ARM platforms and some of their associated\ndrivers, the bulk of these is for mach-91.\n\nArnd ended up pulling in the restart branch from Russell in order to\nfix up some simple but annoying merge conflicts.\n\n* tag \u0027cleanup\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (44 commits)\n  arm/at91: fix build of stamp9g20\n  ARM: u300: delete memory.h\n  MAINTAINERS: add maintainer entry for Picochip picoxcell\n  ARM: picoxcell: move io mappings to common.c\n  ARM: picoxcell: don\u0027t reserve irq_descs\n  ARM: picoxcell: remove mach/memory.h\n  ARM: at91: delete the pcontrol_g20_defconfig\n  arm/tegra: Remove code that\u0027s ifndef CONFIG_ARM_GIC\n  arm/tegra: remove unused defines\n  arm/tegra: fix variable formatting in makefile\n  ARM: davinci: vpif: move code to driver core header from platform\n  ARM: at91/gpio: fix display of number of irq setuped\n  ARM: at91/gpio: drop PIN_BASE\n  ARM: at91/udc: use gpio_is_valid to check the gpio\n  ARM: at91/ohci: use gpio_is_valid to check the gpio\n  ARM: at91/nand: use gpio_is_valid to check the gpio\n  ARM: at91/mmc: use gpio_is_valid to check the gpio\n  ARM: at91/ide: use gpio_is_valid to check the gpio\n  ARM: at91/pata: use gpio_is_valid to check the gpio\n  ARM: at91/soc: use gpio_is_valid to check the gpio\n  ...\n"
    },
    {
      "commit": "4dee6b64ee7cfef94b47733c6d9fef07f8051c7c",
      "tree": "78bf53f15f2b0dbcb6b6c1e74faf32545f4ba8bb",
      "parents": [
        "6b3da11b3c36fdafce3a72e0e90d6c4e99e9aad5"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jan 09 17:15:42 2012 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 14:19:33 2012 -0800"
      },
      "message": "tracing/mm: Move include of trace/events/kmem.h out of header into slab.c\n\nIncluding trace/events/*.h TRACE_EVENT() macro headers in other headers\ncan cause strange side effects if another trace/event/*.h header\nincludes that header.  Having trace/events/kmem.h inside slab_def.h\ncaused a compile error in sparc64 when changes were done to some header\nfiles.  Moving the kmem.h trace header out of slab.h and into slab.c\nfixes the problem.\n\nNote, both slub.c and slob.c already include the trace/events/kmem.h\nfile. Only slab.c had it missing.\n\nLink: http://lkml.kernel.org/r/20120105190405.1e3191fb5a43b2a0f1655e1f@canb.auug.org.au\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3969eb3859e4fad4b32ca8f96d4ec8551c20704a",
      "tree": "06620d8c94d92ab187f6ce8e72f2d0453d734314",
      "parents": [
        "2429f7ac2ef429378536d87fcbbf6f424aa5b47f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 09 13:44:23 2012 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 09 13:44:23 2012 -0800"
      },
      "message": "net: Fix build with INET disabled.\n\n\u003e net/core/sock.c: In function \u0027sk_update_clone\u0027:\n\u003e net/core/sock.c:1278:3: error: implicit declaration of function \u0027sock_update_memcg\u0027\n\nReported-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6b3da11b3c36fdafce3a72e0e90d6c4e99e9aad5",
      "tree": "33e64fc453619978c3ecc86c7ec3649db3b4d8dc",
      "parents": [
        "db0c2bf69aa095d4a6de7b1145f29fe9a7c0f6a3",
        "933393f58fef9963eac61db8093689544e29a600"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 13:08:28 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 13:08:28 2012 -0800"
      },
      "message": "Merge branch \u0027for-3.3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\n* \u0027for-3.3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:\n  percpu: Remove irqsafe_cpu_xxx variants\n\nFix up conflict in arch/x86/include/asm/percpu.h due to clash with\ncebef5beed3d (\"x86: Fix and improve percpu_cmpxchg{8,16}b_double()\")\nwhich edited the (now removed) irqsafe_cpu_cmpxchg*_double code.\n"
    },
    {
      "commit": "db0c2bf69aa095d4a6de7b1145f29fe9a7c0f6a3",
      "tree": "8f38957c01b18edddd44d49ecc3beeac08a20b4e",
      "parents": [
        "ac69e0928054ff29a5049902fb477f9c7605c773",
        "0d19ea866562e46989412a0676412fa0983c9ce7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 12:59:24 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 12:59:24 2012 -0800"
      },
      "message": "Merge branch \u0027for-3.3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup\n\n* \u0027for-3.3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup: (21 commits)\n  cgroup: fix to allow mounting a hierarchy by name\n  cgroup: move assignement out of condition in cgroup_attach_proc()\n  cgroup: Remove task_lock() from cgroup_post_fork()\n  cgroup: add sparse annotation to cgroup_iter_start() and cgroup_iter_end()\n  cgroup: mark cgroup_rmdir_waitq and cgroup_attach_proc() as static\n  cgroup: only need to check oldcgrp\u003d\u003dnewgrp once\n  cgroup: remove redundant get/put of task struct\n  cgroup: remove redundant get/put of old css_set from migrate\n  cgroup: Remove unnecessary task_lock before fetching css_set on migration\n  cgroup: Drop task_lock(parent) on cgroup_fork()\n  cgroups: remove redundant get/put of css_set from css_set_check_fetched()\n  resource cgroups: remove bogus cast\n  cgroup: kill subsys-\u003ecan_attach_task(), pre_attach() and attach_task()\n  cgroup, cpuset: don\u0027t use ss-\u003epre_attach()\n  cgroup: don\u0027t use subsys-\u003ecan_attach_task() or -\u003eattach_task()\n  cgroup: introduce cgroup_taskset and use it in subsys-\u003ecan_attach(), cancel_attach() and attach()\n  cgroup: improve old cgroup handling in cgroup_attach_proc()\n  cgroup: always lock threadgroup during migration\n  threadgroup: extend threadgroup_lock() to cover exit and exec\n  threadgroup: rename signal-\u003ethreadgroup_fork_lock to -\u003egroup_rwsem\n  ...\n\nFix up conflict in kernel/cgroup.c due to commit e0197aae59e5: \"cgroups:\nfix a css_set not found bug in cgroup_attach_proc\" that already\nmentioned that the bug is fixed (differently) in Tejun\u0027s cgroup\npatchset. This one, in other words.\n"
    },
    {
      "commit": "ac69e0928054ff29a5049902fb477f9c7605c773",
      "tree": "05be6b9285186823452e0adeffe40e1dfee6e354",
      "parents": [
        "9e203936eac786f9268d6a13e6442d2accef1829",
        "302bf2f3259948c93361d501b04a5ed69c3bd4f8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 12:51:21 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 12:51:21 2012 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:\n  ext2/3/4: delete unneeded includes of module.h\n  ext{3,4}: Fix potential race when setversion ioctl updates inode\n  udf: Mark LVID buffer as uptodate before marking it dirty\n  ext3: Don\u0027t warn from writepage when readonly inode is spotted after error\n  jbd: Remove j_barrier mutex\n  reiserfs: Force inode evictions before umount to avoid crash\n  reiserfs: Fix quota mount option parsing\n  udf: Treat symlink component of type 2 as /\n  udf: Fix deadlock when converting file from in-ICB one to normal one\n  udf: Cleanup calling convention of inode_getblk()\n  ext2: Fix error handling on inode bitmap corruption\n  ext3: Fix error handling on inode bitmap corruption\n  ext3: replace ll_rw_block with other functions\n  ext3: NULL dereference in ext3_evict_inode()\n  jbd: clear revoked flag on buffers before a new transaction started\n  ext3: call ext3_mark_recovery_complete() when recovery is really needed\n"
    },
    {
      "commit": "2429f7ac2ef429378536d87fcbbf6f424aa5b47f",
      "tree": "15e0fd0c42f6e10ede9f1cf84553c2a01e593d81",
      "parents": [
        "ab16ebf375f0513d6b0f5193de84186a3fc0c33b"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Mon Jan 09 06:36:54 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 09 12:46:58 2012 -0800"
      },
      "message": "net: introduce netif_addr_lock_nested() and call if when appropriate\n\ndev_uc_sync() and dev_mc_sync() are acquiring netif_addr_lock for\ndestination device of synchronization. Since netif_addr_lock is\nalready held at the time for source device, this triggers lockdep\ndeadlock warning.\n\nThere\u0027s no way this deadlock can happen so use spin_lock_nested() to\nsilence the warning.\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "12e55508921865aefdd80fd17afe70c191afbd1b",
      "tree": "476b3226fd9602b36bed0934409959bdd24a7eb5",
      "parents": [
        "55b81e6f2795484ea8edf5805c95c007cacfa736",
        "4d447c9a6ebc0142d320f075c5bac6d202a79fd4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 12:18:17 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 12:18:17 2012 -0800"
      },
      "message": "Merge branch \u0027staging-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging\n\n* \u0027staging-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (466 commits)\n  net/hyperv: Add support for jumbo frame up to 64KB\n  net/hyperv: Add NETVSP protocol version negotiation\n  net/hyperv: Remove unnecessary kmap_atomic in netvsc driver\n  staging/rtl8192e: Register against lib80211\n  staging/rtl8192e: Convert to lib80211_crypt_info\n  staging/rtl8192e: Convert to lib80211_crypt_data and lib80211_crypt_ops\n  staging/rtl8192e: Add lib80211.h to rtllib.h\n  staging/mei: add watchdog device registration wrappers\n  drm/omap: GEM, deal with cache\n  staging: vt6656: int.c, int.h: Change return of function to void\n  staging: usbip: removed unused definitions from header\n  staging: usbip: removed dead code from receive function\n  staging:iio: Drop {mark,unmark}_in_use callbacks\n  staging:iio: Drop buffer mark_param_change callback\n  staging:iio: Drop the unused buffer enable() and is_enabled() callbacks\n  staging:iio: Drop buffer busy flag\n  staging:iio: Make sure a device is only opened once at a time\n  staging:iio: Disallow modifying buffer size when buffer is enabled\n  staging:iio: Disallow changing scan elements in all buffered modes\n  staging:iio: Use iio_buffer_enabled instead of open coding it\n  ...\n\nFix up conflict in drivers/staging/iio/adc/ad799x_core.c (removal of\nmodule_init due to using module_i2c_driver() helper, next to removal of\nMODULE_ALIAS due to using MODULE_DEVICE_TABLE instead).\n"
    },
    {
      "commit": "55b81e6f2795484ea8edf5805c95c007cacfa736",
      "tree": "c3724975107857fcc03b5dd649c462e4f72397be",
      "parents": [
        "5983faf942f260023e547f3c5f38c1033c35cc9b",
        "08e87d0d773dc9ca5faf4c3306e238ed0ea129b0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 12:09:47 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 12:09:47 2012 -0800"
      },
      "message": "Merge branch \u0027usb-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb\n\n* \u0027usb-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (232 commits)\n  USB: Add USB-ID for Multiplex RC serial adapter to cp210x.c\n  xhci: Clean up 32-bit build warnings.\n  USB: update documentation for usbmon\n  usb: usb-storage doesn\u0027t support dynamic id currently, the patch disables the feature to fix an oops\n  drivers/usb/class/cdc-acm.c: clear dangling pointer\n  drivers/usb/dwc3/dwc3-pci.c: introduce missing kfree\n  drivers/usb/host/isp1760-if.c: introduce missing kfree\n  usb: option: add ZD Incorporated HSPA modem\n  usb: ch9: fix up MaxStreams helper\n  USB: usb-skeleton.c: cleanup open_count\n  USB: usb-skeleton.c: fix open/disconnect race\n  xhci: Properly handle COMP_2ND_BW_ERR\n  USB: remove dead code from suspend/resume path\n  USB: add quirk for another camera\n  drivers: usb: wusbcore: Fix dependency for USB_WUSB\n  xhci: Better debugging for critical host errors.\n  xhci: Be less verbose during URB cancellation.\n  xhci: Remove debugging about ring structure allocation.\n  xhci: Remove debugging about toggling cycle bits.\n  xhci: Remove debugging for individual transfers.\n  ...\n"
    },
    {
      "commit": "5983faf942f260023e547f3c5f38c1033c35cc9b",
      "tree": "f54ce89de5d9f7a05e99948937ac5456df09df30",
      "parents": [
        "21a2cb565a74bf794d343ce22300c5f6c1568ae1",
        "995234da19b927f42722d796e8270384f33be11c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 12:09:24 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 12:09:24 2012 -0800"
      },
      "message": "Merge branch \u0027tty-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty\n\n* \u0027tty-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (65 commits)\n  tty: serial: imx: move del_timer_sync() to avoid potential deadlock\n  imx: add polled io uart methods\n  imx: Add save/restore functions for UART control regs\n  serial/imx: let probing fail for the dt case without a valid alias\n  serial/imx: propagate error from of_alias_get_id instead of using -ENODEV\n  tty: serial: imx: Allow UART to be a source for wakeup\n  serial: driver for m32 arch should not have DEC alpha errata\n  serial/documentation: fix documented name of DCD cpp symbol\n  atmel_serial: fix spinlock lockup in RS485 code\n  tty: Fix memory leak in virtual console when enable unicode translation\n  serial: use DIV_ROUND_CLOSEST instead of open coding it\n  serial: add support for 400 and 800 v3 series Titan cards\n  serial: bfin-uart: Remove ASYNC_CTS_FLOW flag for hardware automatic CTS.\n  serial: bfin-uart: Enable hardware automatic CTS only when CTS pin is available.\n  serial: make FSL errata depend on 8250_CONSOLE, not just 8250\n  serial: add irq handler for Freescale 16550 errata.\n  serial: manually inline serial8250_handle_port\n  serial: make 8250 timeout use the specified IRQ handler\n  serial: export the key functions for an 8250 IRQ handler\n  serial: clean up parameter passing for 8250 Rx IRQ handling\n  ...\n"
    },
    {
      "commit": "800ffd3496987e91f599a135060ef49731e045ac",
      "tree": "a62c4985597e6ce01d8f8ab07f67212357e2a846",
      "parents": [
        "d58b27ed58a30faf376e40d19945f34301944b8d"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Mon Jan 02 13:59:12 2012 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:26:26 2012 +0000"
      },
      "message": "mtd: do not use mtd-\u003eblock_markbad directly\n\nInstead, use the new \u0027mtd_can_have_bb()\u0027, or just rely on \u0027mtd_block_markbad()\u0027\nreturn code, which will be -EOPNOTSUPP if bad blocks are not supported.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "8f461a730242c528ca221948edceca49266a3ffb",
      "tree": "232b1d9ac6a74df87a84c9e1e6a61415afc9f583",
      "parents": [
        "079c985e7a6f4ce60f931cebfdd5ee3c38347e31"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Mon Jan 02 13:48:54 2012 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:26:24 2012 +0000"
      },
      "message": "mtd: introduce mtd_can_have_bb helper\n\nThis patch introduces new \u0027mtd_can_have_bb()\u0027 helper function which checks\nwhether the flash can have bad eraseblocks. Then it changes all the\ndirect \u0027mtd-\u003eblock_isbad\u0027 use cases with \u0027mtd_can_have_bb()\u0027.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "079c985e7a6f4ce60f931cebfdd5ee3c38347e31",
      "tree": "b4db3f6e38409eeaa8daff4c17b8f642d0939177",
      "parents": [
        "381345652fca688aeaa967c231e5075cf68d05b6"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Dec 30 17:15:59 2011 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:26:23 2012 +0000"
      },
      "message": "mtd: do not use mtd-\u003esuspend and mtd-\u003eresume directly\n\nJust call the \u0027mtd_suspend()\u0027 and \u0027mtd_resume()\u0027 - they will do nothing\nif the operation is not defined.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "381345652fca688aeaa967c231e5075cf68d05b6",
      "tree": "5f23ecdd28165d15109c6fd7ad0c4c573f094707",
      "parents": [
        "327cf2922b4edf0439b219469722d2a502e37349"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Dec 30 17:00:35 2011 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:26:22 2012 +0000"
      },
      "message": "mtd: do not use mtd-\u003elock, unlock and is_locked directly\n\nInstead, call the corresponding MTD API function which will return\n\u0027-EOPNOTSUPP\u0027 if the operation is not supported.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "327cf2922b4edf0439b219469722d2a502e37349",
      "tree": "6fe4c70d0b4693950e7e20286a3b66bab82ac821",
      "parents": [
        "1dbebd32562b3c2caeca35960e5cb00bfcc12900"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Dec 30 16:35:35 2011 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:26:21 2012 +0000"
      },
      "message": "mtd: do not use mtd-\u003esync directly\n\nThis patch teaches \u0027mtd_sync()\u0027 to do nothing when the MTD driver does\nnot have the \u0027-\u003esync()\u0027 method, which allows us to remove all direct\n\u0027mtd-\u003esync\u0027 accesses.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "1dbebd32562b3c2caeca35960e5cb00bfcc12900",
      "tree": "773776d87730828adb55f3f7fe8221eabb528d8f",
      "parents": [
        "e2936b2af5562c8c66060e2bc2ae2e209d0acd3d"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Dec 30 16:23:41 2011 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:26:19 2012 +0000"
      },
      "message": "mtd: harmonize mtd_writev usage\n\nThis patch makes the \u0027mtd_writev()\u0027 function more usable and logical. We first\nteach it to fall-back to the \u0027default_mtd_writev()\u0027 function if the MTD driver\ndoes not define its own \u0027-\u003ewritev()\u0027 method. Then we make block2mtd and JFFS2\njust \u0027mtd_writev()\u0027 instead of \u0027default_mtd_writev()\u0027 function. This means we\ncan now stop exporting \u0027default_mtd_writev()\u0027 and instead, export\n\u0027mtd_writev()\u0027. This is much cleaner and more logical, as well as allows us to\nget read of another direct \u0027mtd-\u003ewritev\u0027 access in JFFS2.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "e2936b2af5562c8c66060e2bc2ae2e209d0acd3d",
      "tree": "99af09f8049f9fd76abca6d630ff333b169ab25f",
      "parents": [
        "27c151a5e52efaa46d0938984f2ef591bdcb6d5b"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Thu Dec 29 10:45:04 2011 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:26:18 2012 +0000"
      },
      "message": "mtd: do not use mtd-\u003elock_user_prot_reg directly\n\nInstead, check the -EOPNOTSUPP return code of \u0027mtd_lock_user_prot_reg()\u0027.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "27c151a5e52efaa46d0938984f2ef591bdcb6d5b",
      "tree": "67866c01422a4f0c99192b0bc2db8f1968cd1f5b",
      "parents": [
        "b6de3d6cb63427178c4f1df88b81d1ceee637e6f"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Thu Dec 29 10:39:20 2011 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:26:17 2012 +0000"
      },
      "message": "mtd: mtd-\u003ewrite_user_prot_reg directly\n\nInstead, just call \u0027mtd_write_user_prot_reg()\u0027 and check the \u0027-EOPNOTSUPP\u0027 return\ncode.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "b6de3d6cb63427178c4f1df88b81d1ceee637e6f",
      "tree": "9e84f24ac14305246c6f38e885edbc9f48dfc089",
      "parents": [
        "87e858a97e8a7010aedc01db7cd31cc7c02b0b6a"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Thu Dec 29 10:06:32 2011 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:26:16 2012 +0000"
      },
      "message": "mtd: do not use mtd-\u003eread_*_prot_reg directly\n\nInstead, call \u0027mtd_read_*_prot_info()\u0027 and check for -EOPNOTSUPP.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "87e858a97e8a7010aedc01db7cd31cc7c02b0b6a",
      "tree": "c5ff8b86ef0ae7891224e620916c58241c3e1799",
      "parents": [
        "dac2639f9833e858139d7e07f6ee45fb2191a9f2"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed Dec 28 18:47:46 2011 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:26:15 2012 +0000"
      },
      "message": "mtd: do not use mtd-\u003eget_*_prot_info directly\n\nInstead, call \u0027mtd_get_*_prot_info()\u0027 and check for \u0027-EOPNOTSUPP\u0027. While\non it, fix the return code from \u0027-EOPNOTSUPP\u0027 to \u0027-EINVAL\u0027 for the case\nwhen the mode parameter is invalid.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "dac2639f9833e858139d7e07f6ee45fb2191a9f2",
      "tree": "8927b0959d8415e419f321a8b43974ed8834b680",
      "parents": [
        "016c1291ce70a22f15f666441a4fd2f0b450375b"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed Dec 28 17:50:34 2011 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:26:14 2012 +0000"
      },
      "message": "mtd: do not use mtd-\u003eread_oob directly\n\nInstead of checking whether \u0027mtd-\u003eread_oob\u0027 is defined, just call\n\u0027mtd_read_oob()\u0027 and handle the \u0027-EOPNOTSUPP\u0027 error which will be returned\nif the function is undefined.\n\nAdditionally, make \u0027mtd_write_oob()\u0027 return \u0027-EOPNOTSUPP\u0027 if the function\nis undefined.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "016c1291ce70a22f15f666441a4fd2f0b450375b",
      "tree": "650a0d91aa87bcf6146f98eadf0341d46ce0ef0f",
      "parents": [
        "4991e7251ed951a5f33faf25912e9db416306309"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed Dec 28 17:27:18 2011 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:26:13 2012 +0000"
      },
      "message": "mtd: mtdoops: do not use mtd-\u003epanic_write directly\n\nInstead of checking if \u0027mtd-\u003epanic_write\u0027 is defined, call \u0027mtd_panic_write()\u0027\nand check the error code - \u0027-EOPNOTSUPP\u0027 will be returned if the function is\nnot defined.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "cd621274b0ec747db8dedbf857624c067f481976",
      "tree": "1d86dd22d4133fc45311168d1b012e8103b4f875",
      "parents": [
        "10934478e44d9a5a7b16dadd89094fb608cf101e"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Dec 30 14:31:57 2011 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:26:10 2012 +0000"
      },
      "message": "mtd: do not use mtd-\u003eget_unmapped_area directly\n\nRemove direct usage of mtd-\u003eget_unmapped_area. Instead, just call\n\u0027mtd_get_unmapped_area()\u0027 which will return -EOPNOTSUPP if the function\nis not implemented and test for this error code.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "10934478e44d9a5a7b16dadd89094fb608cf101e",
      "tree": "603d4f5165fc032a28e5efaa872da685eea7bf32",
      "parents": [
        "fc002e3c320602d0e206f607aca0460540d7637a"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed Dec 28 15:55:42 2011 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:26:09 2012 +0000"
      },
      "message": "mtd: do use mtd-\u003epoint directly\n\nRemove direct usage of the \"mtd-\u003epoint\" function pointer. Instead,\ntest the mtd_point() return code for \u0027-EOPNOTSUPP\u0027.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "fc002e3c320602d0e206f607aca0460540d7637a",
      "tree": "59a0a24c3f842da192febfcc5de263a339f1dcc5",
      "parents": [
        "33c87b4a2c820316314542ce3f60b8a8c6a96928"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed Dec 28 18:35:07 2011 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:26:08 2012 +0000"
      },
      "message": "mtd: introduce mtd_has_oob helper\n\nWe are working in the direction of making sure that MTD clients to not\nuse \u0027mtd-\u003efunc\u0027 pointers directly. In some places we want to know if\nOOB operations are supported by an MTD device. Introduce \u0027mtd_has_oob()\u0027\nhelper for these purposes.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "52b020317f65114eeba2ee2cfa70a51a286f1d8a",
      "tree": "a7b071413221fef69cc8b2c2a55cb1a6ba305298",
      "parents": [
        "4ccf2f1349e681401b5fae73efc87b8d2d70ce0e"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Dec 30 15:57:25 2011 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:26:05 2012 +0000"
      },
      "message": "mtd: clean-up the default_mtd_writev function\n\n1. Teach \u0027mtd_write()\u0027 function to return \u0027-EROFS\u0027 if the write method\n   is undefined, and remove the corresponding check from\n   \u0027default_mtd_writev()\u0027.\n2. Do not test \u0027retlen\u0027 for NULL - it cannot be NULL.\n3. Few minor coding stile clean-ups.\n4. Add a kerneldoc comment\n\nAdditionally, minor fixes to the kerneldoc comments of the neighbor function.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "bac972777403f810d83062dd0d0303746e466ece",
      "tree": "19aa84a9ac586b4563d69ddbfc0308ec937c0aae",
      "parents": [
        "d81a32f2c16a3c42cf26f2216765c520630daa4e"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Dec 30 15:46:40 2011 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:26:03 2012 +0000"
      },
      "message": "mtd: remove unused default_mtd_readv prototype\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "d5de20a9a1c5ad68c07e017d11f6dbb5e289750c",
      "tree": "dd6b80205261e84e2043f169b199081208bfe47d",
      "parents": [
        "30fa98480b782999248ce8290136aa58f22536cf"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Thu Dec 29 18:00:29 2011 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:25:57 2012 +0000"
      },
      "message": "mtd: kill dev_to_mtd helper\n\n... since it is not needed because the generic \u0027dev_get_drvdata()\u0027 can be\nused instead.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "9cf075f8656524abc44ad3ff2ec3834fe76f186f",
      "tree": "f4d1bc3254b24d3f032134088ba83f9e79a6a01b",
      "parents": [
        "bea7fe031e5b81629f264f48335f1af74900f4b9"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed Dec 28 18:14:49 2011 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:25:54 2012 +0000"
      },
      "message": "mtd: always initialize retlen to zero\n\nMake sure that the retlen is set to 0 in case of error. This harmonizes\ndrivers - some set it to 0 in some error cases and do not write anything\nin other error cases. Now we can do this consistently for all drivers.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "a88d2dc672192247a6f42c82d558db9bf9258bed",
      "tree": "78d54ffec00dbe93acc650ba38c2a7b0b4ed447c",
      "parents": [
        "5942ddbc500d1c9b75e571b656be97f65b26adfe"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Thu Dec 29 11:06:10 2011 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:25:50 2012 +0000"
      },
      "message": "mtd: move mtd-\u003e{get,put}_device functions up\n\nMove the \u0027get_device()\u0027 and \u0027put_device()\u0027 functions up within\n\u0027struct mtd_info\u0027 to make them be close to other functions.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "5942ddbc500d1c9b75e571b656be97f65b26adfe",
      "tree": "7e96cfb905fb67bc40e1da30eb8454d674353a36",
      "parents": [
        "7086c19d07429d697057587caf1e5e0345442d16"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Dec 23 19:37:38 2011 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:25:48 2012 +0000"
      },
      "message": "mtd: introduce mtd_block_markbad interface\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "7086c19d07429d697057587caf1e5e0345442d16",
      "tree": "3a892182dba0847de32ef79b1fe1d46d8b1b5de8",
      "parents": [
        "ead995f8d4da1e2f1ef40b0e5f4133fee38a3d3d"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Dec 23 19:35:30 2011 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:25:47 2012 +0000"
      },
      "message": "mtd: introduce mtd_block_isbad interface\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "ead995f8d4da1e2f1ef40b0e5f4133fee38a3d3d",
      "tree": "349a7f56a4cdc1220a96af3c59285d8e28e0836c",
      "parents": [
        "3fe4bae88460869a8e553397cd9057a4ee7ca341"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Dec 23 19:31:25 2011 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:25:46 2012 +0000"
      },
      "message": "mtd: introduce mtd_resume interface\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "3fe4bae88460869a8e553397cd9057a4ee7ca341",
      "tree": "0158f2cf5abe127cc74d9b63a2c739797de64552",
      "parents": [
        "e95e9786455c11c8eac30d76e5289d4e40187f9a"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Dec 23 19:25:16 2011 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:25:45 2012 +0000"
      },
      "message": "mtd: introduce mtd_suspend interface\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "e95e9786455c11c8eac30d76e5289d4e40187f9a",
      "tree": "6e6023478b39037d935d180d6fc3903bf4235165",
      "parents": [
        "b66005cd3e6f104e0a1b6492110c337269b53ec3"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Dec 23 19:21:16 2011 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:25:42 2012 +0000"
      },
      "message": "mtd: introduce mtd_is_locked interface\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "b66005cd3e6f104e0a1b6492110c337269b53ec3",
      "tree": "248a5f72af42c122072183a5e3a411b97a36e3c4",
      "parents": [
        "7799f9ac8d8ff2db14736950275249df442baeac"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Dec 23 19:18:22 2011 +0200"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Mon Jan 09 18:25:40 2012 +0000"
      },
      "message": "mtd: introduce mtd_unlock interface\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    }
  ],
  "next": "7799f9ac8d8ff2db14736950275249df442baeac"
}
