)]}'
{
  "log": [
    {
      "commit": "698e1641a37f833dd26ee2fde5eed426cd97880b",
      "tree": "c0b6bc8bb6e39e813cf3711c7a4fd95d899c4a9f",
      "parents": [
        "58f6425eb92f54943878b0b3f9c1e51f99c2cb72"
      ],
      "author": {
        "name": "Herton Ronaldo Krzesinski",
        "email": "herton@mandriva.com.br",
        "time": "Tue Nov 30 16:30:43 2010 -0200"
      },
      "committer": {
        "name": "Matthew Garrett",
        "email": "mjg@redhat.com",
        "time": "Fri Jan 07 17:03:41 2011 -0500"
      },
      "message": "classmate-laptop: little optimization for cmpc_rfkill_block\n\nWe don\u0027t need to call bios/acpi (cmpc_set_rfkill_wlan) if the blocked\nstate is already set to the same value (little optimization). This can\nhappen for example if we initialize the module with same initial\nhardware state (rfkill core always call cmpc_rfkill_block on\ninitialization here).\n\nAlso GWRI method only accepts 0 or 1 for setting rfkill block, as can be\nseen on AML code from acpidump-\u003eDSDT from a classmate sample I have, so\nshould be fine setting state only to 0 or 1 directly.\n\nSigned-off-by: Herton Ronaldo Krzesinski \u003cherton@mandriva.com.br\u003e\nSigned-off-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nAcked-by: Thadeu Lima de Souza Cascardo \u003ccascardo@holoscopio.com\u003e\n"
    },
    {
      "commit": "58f6425eb92f54943878b0b3f9c1e51f99c2cb72",
      "tree": "aa4a5083adbf03561b9aee2d36129e0e7a5e2aa9",
      "parents": [
        "3098064d3b4a9bf9d2855b2a89599ad77695e324"
      ],
      "author": {
        "name": "Colin King",
        "email": "colin.king@canonical.com",
        "time": "Fri Nov 19 15:40:02 2010 +0000"
      },
      "committer": {
        "name": "Matthew Garrett",
        "email": "mjg@redhat.com",
        "time": "Fri Jan 07 17:03:41 2011 -0500"
      },
      "message": "WMI: Cater for multiple events with same GUID\n\nWMI data blocks can contain WMI events with the same GUID but with\ndifferent notifiy_ids, for example volume up/down hotkeys.\nThis patch enables a single event handler to be registered and\nunregistered against all events with same GUID but different\nnotify_ids.  Since an event handler is passed the notify_id of\nan event it can can differentiate between the different events.\n\nThe patch also ensures we only register and unregister a device per\nunique GUID.\n\nSigned-off-by: Colin Ian King \u003ccolin.king@canonical.com\u003e\nSigned-off-by: Matthew Garrett \u003cmjg@redhat.com\u003e\n"
    },
    {
      "commit": "3098064d3b4a9bf9d2855b2a89599ad77695e324",
      "tree": "1f46810b03ca255f0859c60c8349f3968b21ba5a",
      "parents": [
        "5369c02d951afc72d68f5f85089160a63d31ca37"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Sun Nov 14 19:04:38 2010 -0800"
      },
      "committer": {
        "name": "Matthew Garrett",
        "email": "mjg@redhat.com",
        "time": "Fri Jan 07 17:03:40 2011 -0500"
      },
      "message": "drivers/platform/x86: Remove unnecessary semicolons\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Matthew Garrett \u003cmjg@redhat.com\u003e\n"
    },
    {
      "commit": "5369c02d951afc72d68f5f85089160a63d31ca37",
      "tree": "0a07cc414001e9dbb27e704484f75a4a6bb61f89",
      "parents": [
        "3e5b08cbbf78bedd316904ab0cf3b27119433ee5"
      ],
      "author": {
        "name": "Sreedhara DS",
        "email": "sreedhara.ds@intel.com",
        "time": "Fri Oct 22 15:43:55 2010 +0100"
      },
      "committer": {
        "name": "Matthew Garrett",
        "email": "mjg@redhat.com",
        "time": "Fri Jan 07 17:03:40 2011 -0500"
      },
      "message": "intel_scu_ipc: Utility driver for intel scu ipc\n\nThis driver implements ioctl and interfaces with intel scu ipc driver. It\nis used to access pmic/msic registers from user space and firmware update\nutility.\n\nSigned-off-by: Sreedhara DS \u003csreedhara.ds@intel.com\u003e\n[Extensive clean up and debug]\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nSigned-off-by: Matthew Garrett \u003cmjg@redhat.com\u003e\n"
    },
    {
      "commit": "3e5b08cbbf78bedd316904ab0cf3b27119433ee5",
      "tree": "0365745c1b7441c1868551c024410c829c3accc6",
      "parents": [
        "da40d036fd716f0efb2917076220814b1e927ae1",
        "2af10844eb6ed104f9505bf3a7ba3ceb02264f31"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 13:16:28 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 13:16:28 2011 -0800"
      },
      "message": "Merge branch \u0027usb-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6\n\n* \u0027usb-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (144 commits)\n  USB: add support for Dream Cheeky DL100B Webmail Notifier (1d34:0004)\n  USB: serial: ftdi_sio: add support for TIOCSERGETLSR\n  USB: ehci-mxc: Setup portsc register prior to accessing OTG viewport\n  USB: atmel_usba_udc: fix freeing irq in usba_udc_remove()\n  usb: ehci-omap: fix tll channel enable mask\n  usb: ohci-omap3: fix trivial typo\n  USB: gadget: ci13xxx: don\u0027t assume that PAGE_SIZE is 4096\n  USB: gadget: ci13xxx: fix complete() callback for no_interrupt rq\u0027s\n  USB: gadget: update ci13xxx to work with g_ether\n  USB: gadgets: ci13xxx: fix probing of compiled-in gadget drivers\n  Revert \"USB: musb: pm: don\u0027t rely fully on clock support\"\n  Revert \"USB: musb: blackfin: pm: make it work\"\n  USB: uas: Use GFP_NOIO instead of GFP_KERNEL in I/O submission path\n  USB: uas: Ensure we only bind to a UAS interface\n  USB: uas: Rename sense pipe and sense urb to status pipe and status urb\n  USB: uas: Use kzalloc instead of kmalloc\n  USB: uas: Fix up the Sense IU\n  usb: musb: core: kill unneeded #include\u0027s\n  DA8xx: assign name to MUSB IRQ resource\n  usb: gadget: g_ncm added\n  ...\n\nManually fix up trivial conflicts in USB Kconfig changes in:\n\tarch/arm/mach-omap2/Kconfig\n\tarch/sh/Kconfig\n\tdrivers/usb/Kconfig\n\tdrivers/usb/host/ehci-hcd.c\nand annoying chip clock data conflicts in:\n\tarch/arm/mach-omap2/clock3xxx_data.c\n\tarch/arm/mach-omap2/clock44xx_data.c\n"
    },
    {
      "commit": "da40d036fd716f0efb2917076220814b1e927ae1",
      "tree": "567893573a48e2954d82421e77606034d3b32f84",
      "parents": [
        "aa58abc20fa85328a9f048e2626c0893691ff284",
        "c32e061fa19893ce4acf95d97d5613a161f0f1b7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 12:47:02 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 12:47:02 2011 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (147 commits)\n  [SCSI] arcmsr: fix write to device check\n  [SCSI] lpfc: lower stack use in lpfc_fc_frame_check\n  [SCSI] eliminate an unnecessary local variable from scsi_remove_target()\n  [SCSI] libiscsi: use bh locking instead of irq with session lock\n  [SCSI] libiscsi: do not take host lock in queuecommand\n  [SCSI] be2iscsi: fix null ptr when accessing task hdr\n  [SCSI] be2iscsi: fix gfp use in alloc_pdu\n  [SCSI] libiscsi: add more informative failure message during iscsi scsi eh\n  [SCSI] gdth: Add missing call to gdth_ioctl_free\n  [SCSI] bfa: remove unused defintions and misc cleanups\n  [SCSI] bfa: remove inactive functions\n  [SCSI] bfa: replace bfa_assert with WARN_ON\n  [SCSI] qla2xxx: Use sg_next to fetch next sg element while walking sg list.\n  [SCSI] qla2xxx: Fix to avoid recursive lock failure during BSG timeout.\n  [SCSI] qla2xxx: Remove code to not reset ISP82xx on failure.\n  [SCSI] qla2xxx: Display mailbox register 4 during 8012 AEN for ISP82XX parts.\n  [SCSI] qla2xxx: Don\u0027t perform a BIG_HAMMER if Get-ID (0x20) mailbox command fails on CNAs.\n  [SCSI] qla2xxx: Remove redundant module parameter permission bits\n  [SCSI] qla2xxx: Add sysfs node for displaying board temperature.\n  [SCSI] qla2xxx: Code cleanup to remove unwanted comments and code.\n  ...\n"
    },
    {
      "commit": "aa58abc20fa85328a9f048e2626c0893691ff284",
      "tree": "88d0f5dcfc9a7a8d1fff5e33ee07bfdea88fc087",
      "parents": [
        "b4a45f5fe8078bfc10837dbd5b98735058bc4698"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Fri Jan 07 20:47:37 2011 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 12:44:45 2011 -0800"
      },
      "message": "input/tc3589x: fix compile error\n\nThere was a semi-colon missing and it broke the compile.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nCc: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\nSigned-off-by: Linus Walleij \u003clinus.walleij@stericsson.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b4a45f5fe8078bfc10837dbd5b98735058bc4698",
      "tree": "df6f13a27610a3ec7eb4a661448cd779a8f84c79",
      "parents": [
        "01539ba2a706ab7d35fc0667dff919ade7f87d63",
        "b3e19d924b6eaf2ca7d22cba99a517c5171007b6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 08:56:33 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 08:56:33 2011 -0800"
      },
      "message": "Merge branch \u0027vfs-scale-working\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/npiggin/linux-npiggin\n\n* \u0027vfs-scale-working\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/npiggin/linux-npiggin: (57 commits)\n  fs: scale mntget/mntput\n  fs: rename vfsmount counter helpers\n  fs: implement faster dentry memcmp\n  fs: prefetch inode data in dcache lookup\n  fs: improve scalability of pseudo filesystems\n  fs: dcache per-inode inode alias locking\n  fs: dcache per-bucket dcache hash locking\n  bit_spinlock: add required includes\n  kernel: add bl_list\n  xfs: provide simple rcu-walk ACL implementation\n  btrfs: provide simple rcu-walk ACL implementation\n  ext2,3,4: provide simple rcu-walk ACL implementation\n  fs: provide simple rcu-walk generic_check_acl implementation\n  fs: provide rcu-walk aware permission i_ops\n  fs: rcu-walk aware d_revalidate method\n  fs: cache optimise dentry and inode for rcu-walk\n  fs: dcache reduce branches in lookup path\n  fs: dcache remove d_mounted\n  fs: fs_struct use seqlock\n  fs: rcu-walk for path lookup\n  ...\n"
    },
    {
      "commit": "b3e19d924b6eaf2ca7d22cba99a517c5171007b6",
      "tree": "8c1fa4074114a883a4e2de2f7d12eb29ed91bdf1",
      "parents": [
        "c6653a838b1b2738561aff0b8c0f62a9b714bdd9"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:11 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:33 2011 +1100"
      },
      "message": "fs: scale mntget/mntput\n\nThe problem that this patch aims to fix is vfsmount refcounting scalability.\nWe need to take a reference on the vfsmount for every successful path lookup,\nwhich often go to the same mount point.\n\nThe fundamental difficulty is that a \"simple\" reference count can never be made\nscalable, because any time a reference is dropped, we must check whether that\nwas the last reference. To do that requires communication with all other CPUs\nthat may have taken a reference count.\n\nWe can make refcounts more scalable in a couple of ways, involving keeping\ndistributed counters, and checking for the global-zero condition less\nfrequently.\n\n- check the global sum once every interval (this will delay zero detection\n  for some interval, so it\u0027s probably a showstopper for vfsmounts).\n\n- keep a local count and only taking the global sum when local reaches 0 (this\n  is difficult for vfsmounts, because we can\u0027t hold preempt off for the life of\n  a reference, so a counter would need to be per-thread or tied strongly to a\n  particular CPU which requires more locking).\n\n- keep a local difference of increments and decrements, which allows us to sum\n  the total difference and hence find the refcount when summing all CPUs. Then,\n  keep a single integer \"long\" refcount for slow and long lasting references,\n  and only take the global sum of local counters when the long refcount is 0.\n\nThis last scheme is what I implemented here. Attached mounts and process root\nand working directory references are \"long\" references, and everything else is\na short reference.\n\nThis allows scalable vfsmount references during path walking over mounted\nsubtrees and unattached (lazy umounted) mounts with processes still running\nin them.\n\nThis results in one fewer atomic op in the fastpath: mntget is now just a\nper-CPU inc, rather than an atomic inc; and mntput just requires a spinlock\nand non-atomic decrement in the common case. However code is otherwise bigger\nand heavier, so single threaded performance is basically a wash.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "c6653a838b1b2738561aff0b8c0f62a9b714bdd9",
      "tree": "42ab45defd51c23dde7b91bafe62a28509befaf8",
      "parents": [
        "9d55c369bb5e695e629bc35cba2ef607755b3bee"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:10 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:33 2011 +1100"
      },
      "message": "fs: rename vfsmount counter helpers\n\nSuggested by Andreas, mnt_ prefix is clearer namespace, follows kernel\nconventions better, and is easier for tab complete. I introduced these\nnames so I\u0027ll admit they were not good choices.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "9d55c369bb5e695e629bc35cba2ef607755b3bee",
      "tree": "d97cd498a67f1f7987d4403ef90e399516a3b8c9",
      "parents": [
        "e1bb57826381199cc79fbf44e9dfeee58fc7b339"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:09 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:32 2011 +1100"
      },
      "message": "fs: implement faster dentry memcmp\n\nThe standard memcmp function on a Westmere system shows up hot in\nprofiles in the `git diff` workload (both parallel and single threaded),\nand it is likely due to the costs associated with trapping into\nmicrocode, and little opportunity to improve memory access (dentry\nname is not likely to take up more than a cacheline).\n\nSo replace it with an open-coded byte comparison. This increases code\nsize by 8 bytes in the critical __d_lookup_rcu function, but the\nspeedup is huge, averaging 10 runs of each:\n\ngit diff st   user   sys   elapsed  CPU\nbefore        1.15   2.57  3.82      97.1\nafter         1.14   2.35  3.61      96.8\n\ngit diff mt   user   sys   elapsed  CPU\nbefore        1.27   3.85  1.46     349\nafter         1.26   3.54  1.43     333\n\nElapsed time for single threaded git diff at 95.0% confidence:\n        -0.21  +/- 0.01\n        -5.45% +/- 0.24%\n\nIt\u0027s -0.66% +/- 0.06% elapsed time on my Opteron, so rep cmp costs on the\nfam10h seem to be relatively smaller, but there is still a win.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "e1bb57826381199cc79fbf44e9dfeee58fc7b339",
      "tree": "b2f5edeebc568c3fff4afd799801e9e605b99efc",
      "parents": [
        "4b936885ab04dc6e0bb0ef35e0e23c1a7364d9e5"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:08 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:32 2011 +1100"
      },
      "message": "fs: prefetch inode data in dcache lookup\n\nThis makes single threaded git diff -1.25% +/- 0.05% elapsed time on my\n2s12c24t Westmere system, and -0.86% +/- 0.05% on my 2s8c Barcelona, by\nprefetching the important first cacheline of the inode in while we do the\nactual name compare and other operations on the dentry.\n\nThere was no measurable slowdown in the single file stat case, or the creat\ncase (where negative dentries would be common).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "4b936885ab04dc6e0bb0ef35e0e23c1a7364d9e5",
      "tree": "a0173d27c1ce39f173be404d269c2f15144072ab",
      "parents": [
        "873feea09ebc980cbd3631b767356ce1eee65ec1"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:07 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:32 2011 +1100"
      },
      "message": "fs: improve scalability of pseudo filesystems\n\nRegardless of how much we possibly try to scale dcache, there is likely\nalways going to be some fundamental contention when adding or removing children\nunder the same parent. Pseudo filesystems do not seem need to have connected\ndentries because by definition they are disconnected.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "873feea09ebc980cbd3631b767356ce1eee65ec1",
      "tree": "59a8fce9b138086abee7cf845f62ff70a390cf81",
      "parents": [
        "ceb5bdc2d246f6d81cf61ed70f325308a11821d2"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:06 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:31 2011 +1100"
      },
      "message": "fs: dcache per-inode inode alias locking\n\ndcache_inode_lock can be replaced with per-inode locking. Use existing\ninode-\u003ei_lock for this. This is slightly non-trivial because we sometimes\nneed to find the inode from the dentry, which requires d_inode to be\nstabilised (either with refcount or d_lock).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "ceb5bdc2d246f6d81cf61ed70f325308a11821d2",
      "tree": "65fc9e0227994d4ffc80530dd15bb5a9672a295e",
      "parents": [
        "626d607435617cc0f033522083e2bb195b81813c"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:05 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:31 2011 +1100"
      },
      "message": "fs: dcache per-bucket dcache hash locking\n\nWe can turn the dcache hash locking from a global dcache_hash_lock into\nper-bucket locking.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "626d607435617cc0f033522083e2bb195b81813c",
      "tree": "c1decac81fa5218e7391b6e2b75e2642ec4d8f27",
      "parents": [
        "4e35e6070b1ceed89c3bba2af4216c286fb1dafd"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:04 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:31 2011 +1100"
      },
      "message": "bit_spinlock: add required includes\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "4e35e6070b1ceed89c3bba2af4216c286fb1dafd",
      "tree": "94bd18604a978380c1fde46a3f188f1639067960",
      "parents": [
        "880566e17c4fce0d998d92610d32fcb9506aa6dd"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:03 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:31 2011 +1100"
      },
      "message": "kernel: add bl_list\n\nIntroduce a type of hlist that can support the use of the lowest bit in the\nhlist_head. This will be subsequently used to implement per-bucket bit spinlock\nfor inode and dentry hashes, and may be useful in other cases such as network\nhashes.\n\nReviewed-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "880566e17c4fce0d998d92610d32fcb9506aa6dd",
      "tree": "74b8adcfea568bd6c99dd73412aedcff3a0e496d",
      "parents": [
        "258a5aa8dfc6294f5f7df892023ee4d3e57c9841"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:02 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:30 2011 +1100"
      },
      "message": "xfs: provide simple rcu-walk ACL implementation\n\nThis simple implementation just checks for no ACLs on the inode, and\nif so, then the rcu-walk may proceed, otherwise fail it.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "258a5aa8dfc6294f5f7df892023ee4d3e57c9841",
      "tree": "101a4b9ee97f7d838b35a906244085873c599d19",
      "parents": [
        "73598611ade7c85f0c3d52ba5130103f6709c6d3"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:01 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:30 2011 +1100"
      },
      "message": "btrfs: provide simple rcu-walk ACL implementation\n\nThis simple implementation just checks for no ACLs on the inode, and\nif so, then the rcu-walk may proceed, otherwise fail it.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "73598611ade7c85f0c3d52ba5130103f6709c6d3",
      "tree": "51b54051c2b41cb712db0c47b9e595dafc09c8f3",
      "parents": [
        "1e1743ebe35ec7e3c1fa732408358fbc614cbbe5"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:00 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:30 2011 +1100"
      },
      "message": "ext2,3,4: provide simple rcu-walk ACL implementation\n\nThis simple implementation just checks for no ACLs on the inode, and\nif so, then the rcu-walk may proceed, otherwise fail it.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "1e1743ebe35ec7e3c1fa732408358fbc614cbbe5",
      "tree": "9654cd50bb29a4c5ccc498b9b08cc385288bc854",
      "parents": [
        "b74c79e99389cd79b31fcc08f82c24e492e63c7e"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:59 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:29 2011 +1100"
      },
      "message": "fs: provide simple rcu-walk generic_check_acl implementation\n\nThis simple implementation just checks for no ACLs on the inode, and\nif so, then the rcu-walk may proceed, otherwise fail it.\n\nThis could easily be extended to put acls under RCU and check them\nunder seqlock, if need be. But this implementation is enough to show\nthe rcu-walk aware permissions code for path lookups is working, and\nwill handle cases where there are no ACLs or ACLs in just the final\nelement.\n\nThis patch implicity converts tmpfs to rcu-aware permission check.\nSubsequent patches onvert ext*, xfs, and, btrfs. Each of these uses\nacl/permission code in a different way, so convert them all to provide\ntemplates and proof of concept.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "b74c79e99389cd79b31fcc08f82c24e492e63c7e",
      "tree": "763c6b412517306670bc625e90035f2d16bb739f",
      "parents": [
        "34286d6662308d82aed891852d04c7c3a2649b16"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:58 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:29 2011 +1100"
      },
      "message": "fs: provide rcu-walk aware permission i_ops\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "34286d6662308d82aed891852d04c7c3a2649b16",
      "tree": "c4b7311404d302e7cb94df7a4690298e1059910a",
      "parents": [
        "44a7d7a878c9cbb74f236ea755b25b6b2e26a9a9"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:57 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:29 2011 +1100"
      },
      "message": "fs: rcu-walk aware d_revalidate method\n\nRequire filesystems be aware of .d_revalidate being called in rcu-walk\nmode (nd-\u003eflags \u0026 LOOKUP_RCU). For now do a simple push down, returning\n-ECHILD from all implementations.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "44a7d7a878c9cbb74f236ea755b25b6b2e26a9a9",
      "tree": "d4630a38c0d683a7e1b8823d7971753719b8a54d",
      "parents": [
        "fb045adb99d9b7c562dc7fef834857f78249daa1"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:56 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:28 2011 +1100"
      },
      "message": "fs: cache optimise dentry and inode for rcu-walk\n\nPut dentry and inode fields into top of data structure.  This allows RCU path\ntraversal to perform an RCU dentry lookup in a path walk by touching only the\nfirst 56 bytes of the dentry.\n\nWe also fit in 8 bytes of inline name in the first 64 bytes, so for short\nnames, only 64 bytes needs to be touched to perform the lookup. We should\nget rid of the hash-\u003eprev pointer from the first 64 bytes, and fit 16 bytes\nof name in there, which will take care of 81% rather than 32% of the kernel\ntree.\n\ninode is also rearranged so that RCU lookup will only touch a single cacheline\nin the inode, plus one in the i_ops structure.\n\nThis is important for directory component lookups in RCU path walking. In the\nkernel source, directory names average is around 6 chars, so this works.\n\nWhen we reach the last element of the lookup, we need to lock it and take its\nrefcount which requires another cacheline access.\n\nAlign dentry and inode operations structs, so members will be at predictable\noffsets and we can group common operations into head of structure.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "fb045adb99d9b7c562dc7fef834857f78249daa1",
      "tree": "1fd6a4024fffeec568abe100d730589bfdb81c38",
      "parents": [
        "5f57cbcc02cf18f6b22ef4066bb10afeb8f930ff"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:55 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:28 2011 +1100"
      },
      "message": "fs: dcache reduce branches in lookup path\n\nReduce some branches and memory accesses in dcache lookup by adding dentry\nflags to indicate common d_ops are set, rather than having to check them.\nThis saves a pointer memory access (dentry-\u003ed_op) in common path lookup\nsituations, and saves another pointer load and branch in cases where we\nhave d_op but not the particular operation.\n\nPatched with:\n\ngit grep -E \u0027[.\u003e]([[:space:]])*d_op([[:space:]])*\u003d\u0027 | xargs sed -e \u0027s/\\([^\\t ]*\\)-\u003ed_op \u003d \\(.*\\);/d_set_d_op(\\1, \\2);/\u0027 -e \u0027s/\\([^\\t ]*\\)\\.d_op \u003d \\(.*\\);/d_set_d_op(\\\u0026\\1, \\2);/\u0027 -i\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "5f57cbcc02cf18f6b22ef4066bb10afeb8f930ff",
      "tree": "f02e7ee57e6060f0af1bcda281baf2972d2da72f",
      "parents": [
        "c28cc36469554dc55540f059fbdc7fa22a2c31fc"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:54 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:28 2011 +1100"
      },
      "message": "fs: dcache remove d_mounted\n\nRather than keep a d_mounted count in the dentry, set a dentry flag instead.\nThe flag can be cleared by checking the hash table to see if there are any\nmounts left, which is not time critical because it is performed at detach time.\n\nThe mounted state of a dentry is only used to speculatively take a look in the\nmount hash table if it is set -- before following the mount, vfsmount lock is\ntaken and mount re-checked without races.\n\nThis saves 4 bytes on 32-bit, nothing on 64-bit but it does provide a hole I\nmight use later (and some configs have larger than 32-bit spinlocks which might\nmake use of the hole).\n\nAutofs4 conversion and changelog by Ian Kent \u003craven@themaw.net\u003e:\nIn autofs4, when expring direct (or offset) mounts we need to ensure that we\nblock user path walks into the autofs mount, which is covered by another mount.\nTo do this we clear the mounted status so that follows stop before walking into\nthe mount and are essentially blocked until the expire is completed. The\nautomount daemon still finds the correct dentry for the umount due to the\nfollow mount logic in fs/autofs4/root.c:autofs4_follow_link(), which is set as\nan inode operation for direct and offset mounts only and is called following\nthe lookup that stopped at the covered mount.\n\nAt the end of the expire the covering mount probably has gone away so the\nmounted status need not be restored. But we need to check this and only restore\nthe mounted status if the expire failed.\n\nXXX: autofs may not work right if we have other mounts go over the top of it?\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "c28cc36469554dc55540f059fbdc7fa22a2c31fc",
      "tree": "6b867456be48b8633a2d56a99e00bb3faf9dccc7",
      "parents": [
        "31e6b01f4183ff419a6d1f86177cbf4662347cec"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:53 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:27 2011 +1100"
      },
      "message": "fs: fs_struct use seqlock\n\nUse a seqlock in the fs_struct to enable us to take an atomic copy of the\ncomplete cwd and root paths. Use this in the RCU lookup path to avoid a\nthread-shared spinlock in RCU lookup operations.\n\nMulti-threaded apps may now perform path lookups with scalability matching\nmulti-process apps. Operations such as stat(2) become very scalable for\nmulti-threaded workload.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "31e6b01f4183ff419a6d1f86177cbf4662347cec",
      "tree": "e215ec9af88352c55e024f784f3d9f8eb13fab85",
      "parents": [
        "3c22cd5709e8143444a6d08682a87f4c57902df3"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:52 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:27 2011 +1100"
      },
      "message": "fs: rcu-walk for path lookup\n\nPerform common cases of path lookups without any stores or locking in the\nancestor dentry elements. This is called rcu-walk, as opposed to the current\nalgorithm which is a refcount based walk, or ref-walk.\n\nThis results in far fewer atomic operations on every path element,\nsignificantly improving path lookup performance. It also avoids cacheline\nbouncing on common dentries, significantly improving scalability.\n\nThe overall design is like this:\n* LOOKUP_RCU is set in nd-\u003eflags, which distinguishes rcu-walk from ref-walk.\n* Take the RCU lock for the entire path walk, starting with the acquiring\n  of the starting path (eg. root/cwd/fd-path). So now dentry refcounts are\n  not required for dentry persistence.\n* synchronize_rcu is called when unregistering a filesystem, so we can\n  access d_ops and i_ops during rcu-walk.\n* Similarly take the vfsmount lock for the entire path walk. So now mnt\n  refcounts are not required for persistence. Also we are free to perform mount\n  lookups, and to assume dentry mount points and mount roots are stable up and\n  down the path.\n* Have a per-dentry seqlock to protect the dentry name, parent, and inode,\n  so we can load this tuple atomically, and also check whether any of its\n  members have changed.\n* Dentry lookups (based on parent, candidate string tuple) recheck the parent\n  sequence after the child is found in case anything changed in the parent\n  during the path walk.\n* inode is also RCU protected so we can load d_inode and use the inode for\n  limited things.\n* i_mode, i_uid, i_gid can be tested for exec permissions during path walk.\n* i_op can be loaded.\n\nWhen we reach the destination dentry, we lock it, recheck lookup sequence,\nand increment its refcount and mountpoint refcount. RCU and vfsmount locks\nare dropped. This is termed \"dropping rcu-walk\". If the dentry refcount does\nnot match, we can not drop rcu-walk gracefully at the current point in the\nlokup, so instead return -ECHILD (for want of a better errno). This signals the\npath walking code to re-do the entire lookup with a ref-walk.\n\nAside from the final dentry, there are other situations that may be encounted\nwhere we cannot continue rcu-walk. In that case, we drop rcu-walk (ie. take\na reference on the last good dentry) and continue with a ref-walk. Again, if\nwe can drop rcu-walk gracefully, we return -ECHILD and do the whole lookup\nusing ref-walk. But it is very important that we can continue with ref-walk\nfor most cases, particularly to avoid the overhead of double lookups, and to\ngain the scalability advantages on common path elements (like cwd and root).\n\nThe cases where rcu-walk cannot continue are:\n* NULL dentry (ie. any uncached path element)\n* parent with d_inode-\u003ei_op-\u003epermission or ACLs\n* dentries with d_revalidate\n* Following links\n\nIn future patches, permission checks and d_revalidate become rcu-walk aware. It\nmay be possible eventually to make following links rcu-walk aware.\n\nUncached path elements will always require dropping to ref-walk mode, at the\nvery least because i_mutex needs to be grabbed, and objects allocated.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "3c22cd5709e8143444a6d08682a87f4c57902df3",
      "tree": "6d245491d9103a1d77a3128ed5d1d996d3794300",
      "parents": [
        "ff0c7d15f9787b7e8c601533c015295cc68329f8"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:51 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:27 2011 +1100"
      },
      "message": "kernel: optimise seqlock\n\nAdd branch annotations for seqlock read fastpath, and introduce\n__read_seqcount_begin and __read_seqcount_end functions, that can avoid the\nsmp_rmb() if used carefully. These will be used by store-free path walking\nalgorithm performance is critical and seqlocks are in use.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "ff0c7d15f9787b7e8c601533c015295cc68329f8",
      "tree": "e3db53950b8ed78e542ab35a3cd3a6eaee26eccd",
      "parents": [
        "fa0d7e3de6d6fc5004ad9dea0dd6b286af8f03e9"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:50 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:26 2011 +1100"
      },
      "message": "fs: avoid inode RCU freeing for pseudo fs\n\nPseudo filesystems that don\u0027t put inode on RCU list or reachable by\nrcu-walk dentries do not need to RCU free their inodes.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "fa0d7e3de6d6fc5004ad9dea0dd6b286af8f03e9",
      "tree": "203e0f73883e4c26b5597e36042386a1237dab35",
      "parents": [
        "77812a1ef139d84270d27faacc0630c887411013"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:49 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:26 2011 +1100"
      },
      "message": "fs: icache RCU free inodes\n\nRCU free the struct inode. This will allow:\n\n- Subsequent store-free path walking patch. The inode must be consulted for\n  permissions when walking, so an RCU inode reference is a must.\n- sb_inode_list_lock to be moved inside i_lock because sb list walkers who want\n  to take i_lock no longer need to take sb_inode_list_lock to walk the list in\n  the first place. This will simplify and optimize locking.\n- Could remove some nested trylock loops in dcache code\n- Could potentially simplify things a bit in VM land. Do not need to take the\n  page lock to follow page-\u003emapping.\n\nThe downsides of this is the performance cost of using RCU. In a simple\ncreat/unlink microbenchmark, performance drops by about 10% due to inability to\nreuse cache-hot slab objects. As iterations increase and RCU freeing starts\nkicking over, this increases to about 20%.\n\nIn cases where inode lifetimes are longer (ie. many inodes may be allocated\nduring the average life span of a single inode), a lot of this cache reuse is\nnot applicable, so the regression caused by this patch is smaller.\n\nThe cache-hot regression could largely be avoided by using SLAB_DESTROY_BY_RCU,\nhowever this adds some complexity to list walking and store-free path walking,\nso I prefer to implement this at a later date, if it is shown to be a win in\nreal situations. I haven\u0027t found a regression in any non-micro benchmark so I\ndoubt it will be a problem.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "77812a1ef139d84270d27faacc0630c887411013",
      "tree": "a051134c0d1c74425a5f60adc0ca252c5db15b35",
      "parents": [
        "ec33679d78f9d653a44ddba10b5fb824c06330a1"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:48 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:25 2011 +1100"
      },
      "message": "fs: consolidate dentry kill sequence\n\nThe tricky locking for disposing of a dentry is duplicated 3 times in the\ndcache (dput, pruning a dentry from the LRU, and pruning its ancestors).\nConsolidate them all into a single function dentry_kill.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "ec33679d78f9d653a44ddba10b5fb824c06330a1",
      "tree": "5d1530286d1348064020c466427576294def7191",
      "parents": [
        "be182bff72fae6a3eb25624b39170c40b72f0909"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:47 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:25 2011 +1100"
      },
      "message": "fs: use RCU in shrink_dentry_list to reduce lock nesting\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "be182bff72fae6a3eb25624b39170c40b72f0909",
      "tree": "b77ee014d7850c6e57dae7231a38c0c26cd96b38",
      "parents": [
        "89e6054836a7b1e7500cd70a14b5579e752c9250"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:46 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:25 2011 +1100"
      },
      "message": "fs: reduce dcache_inode_lock width in lru scanning\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "89e6054836a7b1e7500cd70a14b5579e752c9250",
      "tree": "b74d2ecd1ac2a571d289e5525a0dc067ec1f35eb",
      "parents": [
        "a734eb458ab2bd11479a27dd54f48e1b26a55845"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:45 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:25 2011 +1100"
      },
      "message": "fs: dcache reduce prune_one_dentry locking\n\nprune_one_dentry can avoid quite a bit of locking in the common case where\nancestors have an elevated refcount. Alternatively, we could have gone the\nother way and made fewer trylocks in the case where d_count goes to zero, but\nis probably less common.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "a734eb458ab2bd11479a27dd54f48e1b26a55845",
      "tree": "425f6173d63a58ec719147764300bb324e1d53e3",
      "parents": [
        "dc0474be3e27463d4d4a2793f82366eed906f223"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:44 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:24 2011 +1100"
      },
      "message": "fs: dcache reduce d_parent locking\n\nUse RCU to simplify locking in dget_parent.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "dc0474be3e27463d4d4a2793f82366eed906f223",
      "tree": "41f75e638442cb343bacdcfbabb17ffc3bd5b4ce",
      "parents": [
        "357f8e658bba8a085c4a5d4331e30894be8096b8"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:43 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:24 2011 +1100"
      },
      "message": "fs: dcache rationalise dget variants\n\ndget_locked was a shortcut to avoid the lazy lru manipulation when we already\nheld dcache_lock (lru manipulation was relatively cheap at that point).\nHowever, how that the lru lock is an innermost one, we never hold it at any\ncaller, so the lock cost can now be avoided. We already have well working lazy\ndcache LRU, so it should be fine to defer LRU manipulations to scan time.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "357f8e658bba8a085c4a5d4331e30894be8096b8",
      "tree": "2182f5cd42a1c142bd2780bdaa7cc7953d9ec924",
      "parents": [
        "89ad485f01fd83c47f17a128db3bd7b89c0f244f"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:42 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:24 2011 +1100"
      },
      "message": "fs: dcache reduce dcache_inode_lock\n\ndcache_inode_lock can be avoided in d_delete() and d_materialise_unique()\nin cases where it is not required.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "89ad485f01fd83c47f17a128db3bd7b89c0f244f",
      "tree": "1f9772e3f0dc8ac9392341e677217caf2d9ba36c",
      "parents": [
        "61f3dee4af09528997a970280da240577bf60721"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:41 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:24 2011 +1100"
      },
      "message": "fs: dcache reduce locking in d_alloc\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "61f3dee4af09528997a970280da240577bf60721",
      "tree": "8c916d7c1965303a37f1051aa5d42d8e2b7b115a",
      "parents": [
        "58db63d086790eec2ed433f9d8c4962239809cf8"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:40 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:23 2011 +1100"
      },
      "message": "fs: dcache reduce dput locking\n\nIt is possible to run dput without taking data structure locks up-front. In\nmany cases where we don\u0027t kill the dentry anyway, these locks are not required.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "58db63d086790eec2ed433f9d8c4962239809cf8",
      "tree": "e8fa4238167f92bb0dbded4d2df1498d8c4e9404",
      "parents": [
        "b5c84bf6f6fa3a7dfdcb556023a62953574b60ee"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:39 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:23 2011 +1100"
      },
      "message": "fs: dcache avoid starvation in dcache multi-step operations\n\nLong lived dcache \"multi-step\" operations which retry on rename seq can\nbe starved with a lot of rename activity. If they fail after the 1st pass,\ntake the rename_lock for writing to avoid further starvation.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "b5c84bf6f6fa3a7dfdcb556023a62953574b60ee",
      "tree": "7a2c299a180713e21d5cb653cb933121adf53c31",
      "parents": [
        "949854d02455080d20cd3e1db28a3a18daf7599d"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:38 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:23 2011 +1100"
      },
      "message": "fs: dcache remove dcache_lock\n\ndcache_lock no longer protects anything. remove it.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "949854d02455080d20cd3e1db28a3a18daf7599d",
      "tree": "9b13a6f86c1d0b91e462a471e53b0e717036b18e",
      "parents": [
        "9abca36087288fe28de4749c71ca003d4b9e3ed0"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:37 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:22 2011 +1100"
      },
      "message": "fs: Use rename lock and RCU for multi-step operations\n\nThe remaining usages for dcache_lock is to allow atomic, multi-step read-side\noperations over the directory tree by excluding modifications to the tree.\nAlso, to walk in the leaf-\u003eroot direction in the tree where we don\u0027t have\na natural d_lock ordering.\n\nThis could be accomplished by taking every d_lock, but this would mean a\nhuge number of locks and actually gets very tricky.\n\nSolve this instead by using the rename seqlock for multi-step read-side\noperations, retry in case of a rename so we don\u0027t walk up the wrong parent.\nConcurrent dentry insertions are not serialised against.  Concurrent deletes\nare tricky when walking up the directory: our parent might have been deleted\nwhen dropping locks so also need to check and retry for that.\n\nWe can also use the rename lock in cases where livelock is a worry (and it\nis introduced in subsequent patch).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "9abca36087288fe28de4749c71ca003d4b9e3ed0",
      "tree": "1d1b08bdcffb8f8a7be217ee1c017f5154f64f6a",
      "parents": [
        "b23fb0a60379a95e10c671f646b259ea2558421e"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:36 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:22 2011 +1100"
      },
      "message": "fs: increase d_name lock coverage\n\nCover d_name with d_lock in more cases, where there may be concurrent\nmodification to it.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "b23fb0a60379a95e10c671f646b259ea2558421e",
      "tree": "7c3644b91241d32fda502a7be0b78e4c225f8091",
      "parents": [
        "2fd6b7f50797f2e993eea59e0a0b8c6399c811dc"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:35 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:22 2011 +1100"
      },
      "message": "fs: scale inode alias list\n\nAdd a new lock, dcache_inode_lock, to protect the inode\u0027s i_dentry list\nfrom concurrent modification. d_alias is also protected by d_lock.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "2fd6b7f50797f2e993eea59e0a0b8c6399c811dc",
      "tree": "ce33b94b34844c09103836cf4cfa4364b742f217",
      "parents": [
        "da5029563a0a026c64821b09e8e7b4fd81d3fe1b"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:34 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:21 2011 +1100"
      },
      "message": "fs: dcache scale subdirs\n\nProtect d_subdirs and d_child with d_lock, except in filesystems that aren\u0027t\nusing dcache_lock for these anyway (eg. using i_mutex).\n\nNote: if we change the locking rule in future so that -\u003ed_child protection is\nprovided only with -\u003ed_parent-\u003ed_lock, it may allow us to reduce some locking.\nBut it would be an exception to an otherwise regular locking scheme, so we\u0027d\nhave to see some good results. Probably not worthwhile.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "da5029563a0a026c64821b09e8e7b4fd81d3fe1b",
      "tree": "5d5618e0cb382390073377b1be7d0aa76879ac54",
      "parents": [
        "b7ab39f631f505edc2bbdb86620d5493f995c9da"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:33 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:21 2011 +1100"
      },
      "message": "fs: dcache scale d_unhashed\n\nProtect d_unhashed(dentry) condition with d_lock. This means keeping\nDCACHE_UNHASHED bit in synch with hash manipulations.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "b7ab39f631f505edc2bbdb86620d5493f995c9da",
      "tree": "62be97ebc7fc69ceb601f23312d335ebb8038ee7",
      "parents": [
        "2304450783dfde7b0b94ae234edd0dbffa865073"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:32 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:21 2011 +1100"
      },
      "message": "fs: dcache scale dentry refcount\n\nMake d_count non-atomic and protect it with d_lock. This allows us to ensure a\n0 refcount dentry remains 0 without dcache_lock. It is also fairly natural when\nwe start protecting many other dentry members with d_lock.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "2304450783dfde7b0b94ae234edd0dbffa865073",
      "tree": "b3435e65c24d69ccad9ef9492624f5b6081d86b8",
      "parents": [
        "789680d1ee9311cdf095241dc02bd9784d799cd1"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:31 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:20 2011 +1100"
      },
      "message": "fs: dcache scale lru\n\nAdd a new lock, dcache_lru_lock, to protect the dcache LRU list from concurrent\nmodification. d_lru is also protected by d_lock, which allows LRU lists to be\naccessed without the lru lock, using RCU in future patches.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "789680d1ee9311cdf095241dc02bd9784d799cd1",
      "tree": "e6a984b0aa4791918f1b665f45210c2ab762969c",
      "parents": [
        "ec2447c278ee973d35f38e53ca16ba7f965ae33d"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:30 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:20 2011 +1100"
      },
      "message": "fs: dcache scale hash\n\nAdd a new lock, dcache_hash_lock, to protect the dcache hash table from\nconcurrent modification. d_hash is also protected by d_lock.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "ec2447c278ee973d35f38e53ca16ba7f965ae33d",
      "tree": "5d17a0523c301b8c71c0f198ffe7782c5e9c0ea9",
      "parents": [
        "b1e6a015a580ad145689ad1d6b4aa0e03e6c868b"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:29 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:20 2011 +1100"
      },
      "message": "hostfs: simplify locking\n\nRemove dcache_lock locking from hostfs filesystem, and move it into dcache\nhelpers. All that is required is a coherent path name. Protection from\nconcurrent modification of the namespace after path name generation is not\nprovided in current code, because dcache_lock is dropped before the path is\nused.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "b1e6a015a580ad145689ad1d6b4aa0e03e6c868b",
      "tree": "57a10ef164e4d2f798d9b832dbeaf973aca2ab83",
      "parents": [
        "621e155a3591962420eacdd39f6f0aa29ceb221e"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:28 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:20 2011 +1100"
      },
      "message": "fs: change d_hash for rcu-walk\n\nChange d_hash so it may be called from lock-free RCU lookups. See similar\npatch for d_compare for details.\n\nFor in-tree filesystems, this is just a mechanical change.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "621e155a3591962420eacdd39f6f0aa29ceb221e",
      "tree": "387a9fb396f1bf24514b712c294182e36ba51076",
      "parents": [
        "fb2d5b86aff355a27ebfc132d3c99f4a940cc3fe"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:27 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:19 2011 +1100"
      },
      "message": "fs: change d_compare for rcu-walk\n\nChange d_compare so it may be called from lock-free RCU lookups. This\ndoes put significant restrictions on what may be done from the callback,\nhowever there don\u0027t seem to have been any problems with in-tree fses.\nIf some strange use case pops up that _really_ cannot cope with the\nrcu-walk rules, we can just add new rcu-unaware callbacks, which would\ncause name lookup to drop out of rcu-walk mode.\n\nFor in-tree filesystems, this is just a mechanical change.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "fb2d5b86aff355a27ebfc132d3c99f4a940cc3fe",
      "tree": "7fed12adf54473131e8b86c0c302c443b1d6a846",
      "parents": [
        "2bc334dcc7c77be3700dd443d92a78603f76976b"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:26 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:19 2011 +1100"
      },
      "message": "fs: name case update method\n\nsmpfs and ncpfs want to update a live dentry name in-place. Rather than\nhave them open code the locking, provide a documented dcache API.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "2bc334dcc7c77be3700dd443d92a78603f76976b",
      "tree": "51c666a438263f09efdea8a55a6220411ff7f8ab",
      "parents": [
        "79eb4dde742fe2e9c9e301432b894a7410261ce7"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:25 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:18 2011 +1100"
      },
      "message": "jfs: dont overwrite dentry name in d_revalidate\n\nUse vfat\u0027s method for dealing with negative dentries to preserve case,\nrather than overwrite dentry name in d_revalidate, which is a bit ugly\nand also gets in the way of doing lock-free path walking.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "79eb4dde742fe2e9c9e301432b894a7410261ce7",
      "tree": "89150e92450fd10f7bd55348459d9f36be544ec0",
      "parents": [
        "fe15ce446beb3a33583af81ffe6c9d01a75314ed"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:24 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:18 2011 +1100"
      },
      "message": "cifs: dont overwrite dentry name in d_revalidate\n\nUse vfat\u0027s method for dealing with negative dentries to preserve case,\nrather than overwrite dentry name in d_revalidate, which is a bit ugly\nand also gets in the way of doing lock-free path walking.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "fe15ce446beb3a33583af81ffe6c9d01a75314ed",
      "tree": "bc8af66b6dd2d0f21a2a3f48a19975ae2cdbae4e",
      "parents": [
        "5eef7fa905c814826f518aca2d414ca77508ce30"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:23 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:18 2011 +1100"
      },
      "message": "fs: change d_delete semantics\n\nChange d_delete from a dentry deletion notification to a dentry caching\nadvise, more like -\u003edrop_inode. Require it to be constant and idempotent,\nand not take d_lock. This is how all existing filesystems use the callback\nanyway.\n\nThis makes fine grained dentry locking of dput and dentry lru scanning\nmuch simpler.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "5eef7fa905c814826f518aca2d414ca77508ce30",
      "tree": "53c40fdbe92c30910befbad14ebace3ab9a342c0",
      "parents": [
        "fbc8d4c04626e015b18cc61199f505920abb48f0"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:22 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:18 2011 +1100"
      },
      "message": "fs: dcache documentation cleanup\n\nRemove redundant (and incorrect, since dcache RCU lookup) dentry locking\ndocumentation and point to the canonical document.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "fbc8d4c04626e015b18cc61199f505920abb48f0",
      "tree": "31cd59dd54966d225ae159f41308798b2d58b8a2",
      "parents": [
        "5adcee1d8d32d7f305f6f5aaefdbf8f35adca177"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:21 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:17 2011 +1100"
      },
      "message": "config fs: avoid switching -\u003ed_op on live dentry\n\nSwitching d_op on a live dentry is racy in general, so avoid it. In this case\nit is a negative dentry, which is safer, but there are still concurrent ops\nwhich may be called on d_op in that case (eg. d_revalidate). So in general\na filesystem may not do this. Fix configfs so as not to do this.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "5adcee1d8d32d7f305f6f5aaefdbf8f35adca177",
      "tree": "9292ebc9bb6a21b364a97a44d1b6857a565159c5",
      "parents": [
        "3e880fb5e4bb6a012035e3edd0586ee2817c2e24"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:20 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:17 2011 +1100"
      },
      "message": "cgroup fs: avoid switching -\u003ed_op on live dentry\n\nSwitching d_op on a live dentry is racy in general, so avoid it. In this case\nit is a negative dentry, which is safer, but there are still concurrent ops\nwhich may be called on d_op in that case (eg. d_revalidate). So in general\na filesystem may not do this. Fix cgroupfs so as not to do this.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "3e880fb5e4bb6a012035e3edd0586ee2817c2e24",
      "tree": "665101c2c559c26e2dff2c7eca2c747fb736b524",
      "parents": [
        "86c8749ede0c59e590de9267066932a26f1ce796"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:19 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:17 2011 +1100"
      },
      "message": "fs: use fast counters for vfs caches\n\npercpu_counter library generates quite nasty code, so unless you need\nto dynamically allocate counters or take fast approximate value, a\nsimple per cpu set of counters is much better.\n\nThe percpu_counter can never be made to work as well, because it has an\nindirection from pointer to percpu memory, and it can\u0027t use direct\nthis_cpu_inc interfaces because it doesn\u0027t use static PER_CPU data, so\ncode will always be worse.\n\nIn the fastpath, it is the difference between this:\n\n        incl %gs:nr_dentry      # nr_dentry\n\nand this:\n\n        movl    percpu_counter_batch(%rip), %edx        # percpu_counter_batch,\n        movl    $1, %esi        #,\n        movq    $nr_dentry, %rdi        #,\n        call    __percpu_counter_add    # (plus I clobber registers)\n\n__percpu_counter_add:\n        pushq   %rbp    #\n        movq    %rsp, %rbp      #,\n        subq    $32, %rsp       #,\n        movq    %rbx, -24(%rbp) #,\n        movq    %r12, -16(%rbp) #,\n        movq    %r13, -8(%rbp)  #,\n        movq    %rdi, %rbx      # fbc, fbc\n#APP\n# 216 \"/home/npiggin/usr/src/linux-2.6/arch/x86/include/asm/thread_info.h\" 1\n        movq %gs:kernel_stack,%rax      #, pfo_ret__\n# 0 \"\" 2\n#NO_APP\n        incl    -8124(%rax)     # \u003cvariable\u003e.preempt_count\n        movq    32(%rdi), %r12  # \u003cvariable\u003e.counters, tcp_ptr__\n#APP\n# 78 \"lib/percpu_counter.c\" 1\n        add %gs:this_cpu_off, %r12      # this_cpu_off, tcp_ptr__\n# 0 \"\" 2\n#NO_APP\n        movslq  (%r12),%r13     #* tcp_ptr__, tmp73\n        movslq  %edx,%rax       # batch, batch\n        addq    %rsi, %r13      # amount, count\n        cmpq    %rax, %r13      # batch, count\n        jge     .L27    #,\n        negl    %edx    # tmp76\n        movslq  %edx,%rdx       # tmp76, tmp77\n        cmpq    %rdx, %r13      # tmp77, count\n        jg      .L28    #,\n.L27:\n        movq    %rbx, %rdi      # fbc,\n        call    _raw_spin_lock  #\n        addq    %r13, 8(%rbx)   # count, \u003cvariable\u003e.count\n        movq    %rbx, %rdi      # fbc,\n        movl    $0, (%r12)      #,* tcp_ptr__\n        call    _raw_spin_unlock        #\n.L29:\n#APP\n# 216 \"/home/npiggin/usr/src/linux-2.6/arch/x86/include/asm/thread_info.h\" 1\n        movq %gs:kernel_stack,%rax      #, pfo_ret__\n# 0 \"\" 2\n#NO_APP\n        decl    -8124(%rax)     # \u003cvariable\u003e.preempt_count\n        movq    -8136(%rax), %rax       #, D.14625\n        testb   $8, %al #, D.14625\n        jne     .L32    #,\n.L31:\n        movq    -24(%rbp), %rbx #,\n        movq    -16(%rbp), %r12 #,\n        movq    -8(%rbp), %r13  #,\n        leave\n        ret\n        .p2align 4,,10\n        .p2align 3\n.L28:\n        movl    %r13d, (%r12)   # count,*\n        jmp     .L29    #\n.L32:\n        call    preempt_schedule        #\n        .p2align 4,,6\n        jmp     .L31    #\n        .size   __percpu_counter_add, .-__percpu_counter_add\n        .p2align 4,,15\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "86c8749ede0c59e590de9267066932a26f1ce796",
      "tree": "316517d7c03d9caf0577acc517532ed2bc1801cc",
      "parents": [
        "ccd35fb9f4da856b105ea0f1e0cab3702e8ae6ba"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:18 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:17 2011 +1100"
      },
      "message": "vfs: revert per-cpu nr_unused counters for dentry and inodes\n\nThe nr_unused counters count the number of objects on an LRU, and as such they\nare synchronized with LRU object insertion and removal and scanning, and\nprotected under the LRU lock.\n\nMaking it per-cpu does not actually get any concurrency improvements because of\nthis lock, and summing the counter is much slower, and\nincrementing/decrementing it costs more code size and is slower too.\n\nThese counters should stay per-LRU, which currently means global.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "ccd35fb9f4da856b105ea0f1e0cab3702e8ae6ba",
      "tree": "acb71aa4ae7d1f1ed17bdd79033a6bad5e27186d",
      "parents": [
        "786a5e15b613a9cee4fc9139fc3113a5ab0fde79"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:17 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:16 2011 +1100"
      },
      "message": "kernel: kmem_ptr_validate considered harmful\n\nThis is a nasty and error prone API. It is no longer used, remove it.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "786a5e15b613a9cee4fc9139fc3113a5ab0fde79",
      "tree": "0c0100945f74ad1d68b9b546e1929cfcb67e9095",
      "parents": [
        "d3a23e1678a5827c38ed8a465ad91d65e59fa911"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:16 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:16 2011 +1100"
      },
      "message": "fs: d_validate fixes\n\nd_validate has been broken for a long time.\n\nkmem_ptr_validate does not guarantee that a pointer can be dereferenced\nif it can go away at any time. Even rcu_read_lock doesn\u0027t help, because\nthe pointer might be queued in RCU callbacks but not executed yet.\n\nSo the parent cannot be checked, nor the name hashed. The dentry pointer\ncan not be touched until it can be verified under lock. Hashing simply\ncannot be used.\n\nInstead, verify the parent/child relationship by traversing parent\u0027s\nd_child list. It\u0027s slow, but only ncpfs and the destaged smbfs care\nabout it, at this point.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "01539ba2a706ab7d35fc0667dff919ade7f87d63",
      "tree": "5a4bd0cf78007d06690fe4ac06bbd49a5a70bc47",
      "parents": [
        "9e9bc9736756f25d6c47b4eba0ebf25b20a6f153",
        "dc69d1af9e8d9cbbabff88bb35a6782187a22229"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 19:13:58 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 19:13:58 2011 -0800"
      },
      "message": "Merge branch \u0027omap-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6\n\n* \u0027omap-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6: (243 commits)\n  omap2: Make OMAP2PLUS select OMAP_DM_TIMER\n  OMAP4: hwmod data: Fix alignment and end of line in structurefields\n  OMAP4: hwmod data: Move the DMA structures\n  OMAP4: hwmod data: Move the smartreflex structures\n  OMAP4: hwmod data: Fix missing SIDLE_SMART_WKUP in smartreflexsysc\n  arm: omap: tusb6010: add name for MUSB IRQ\n  arm: omap: craneboard: Add USB EHCI support\n  omap2+: Initialize serial port for dynamic remuxing for n8x0\n  omap2+: Add struct omap_board_data and use it for platform level serial init\n  omap2+: Allow hwmod state changes to mux pads based on the state changes\n  omap2+: Add support for hwmod specific muxing of devices\n  omap2+: Add omap_mux_get_by_name\n  OMAP2: PM: fix compile error when !CONFIG_SUSPEND\n  MAINTAINERS: OMAP: hwmod: update hwmod code, data maintainership\n  OMAP4: Smartreflex framework extensions\n  OMAP4: hwmod: Add inital data for smartreflex modules.\n  OMAP4: PM: Program correct init voltages for scalable VDDs\n  OMAP4: Adding voltage driver support\n  OMAP4: Register voltage PMIC parameters with the voltage layer\n  OMAP3: PM: Program correct init voltages for VDD1 and VDD2\n  ...\n\nFix up trivial conflict in arch/arm/plat-omap/Kconfig\n"
    },
    {
      "commit": "9e9bc9736756f25d6c47b4eba0ebf25b20a6f153",
      "tree": "647240f479c5f23910c3e6194d1c35b6ba54d75e",
      "parents": [
        "3c0cb7c31c206aaedb967e44b98442bbeb17a6c4",
        "e3c92215198cb6aa00ad38db2780faa6b72e0a3f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 18:32:12 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 18:32:12 2011 -0800"
      },
      "message": "Merge branch \u0027v4l_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6\n\n* \u0027v4l_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6: (255 commits)\n  [media] radio-aimslab.c: Fix gcc 4.5+ bug\n  [media] cx25821: Fix compilation breakage due to BKL dependency\n  [media] v4l2-compat-ioctl32: fix compile warning\n  [media] zoran: fix compiler warning\n  [media] tda18218: fix compile warning\n  [media] ngene: fix compile warning\n  [media] DVB: IR support for TechnoTrend CT-3650\n  [media] cx23885, cimax2.c: Fix case of two CAM insertion irq\n  [media] ir-nec-decoder: fix repeat key issue\n  [media] staging: se401 depends on USB\n  [media] staging: usbvideo/vicam depends on USB\n  [media] soc_camera: Add the ability to bind regulators to soc_camedra devices\n  [media] V4L2: Add a v4l2-subdev (soc-camera) driver for OmniVision OV2640 sensor\n  [media] v4l: soc-camera: switch to .unlocked_ioctl\n  [media] v4l: ov772x: simplify pointer dereference\n  [media] ov9640: fix OmniVision OV9640 sensor driver\u0027s priv data retrieving\n  [media] ov9640: use macro to request OmniVision OV9640 sensor private data\n  [media] ivtv-i2c: Fix two warnings\n  [media] staging/lirc: Update lirc TODO files\n  [media] cx88: Remove the obsolete i2c_adapter.id field\n  ...\n"
    },
    {
      "commit": "3c0cb7c31c206aaedb967e44b98442bbeb17a6c4",
      "tree": "3ecba45d7ffae4fba4a5aafaef4af5b0b1105bde",
      "parents": [
        "f70f5b9dc74ca7d0a64c4ead3fb28da09dc1b234",
        "404a02cbd2ae8bf256a2fa1169bdfe86bb5ebb34"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 16:50:35 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 16:50:35 2011 -0800"
      },
      "message": "Merge branch \u0027devel\u0027 of master.kernel.org:/home/rmk/linux-2.6-arm\n\n* \u0027devel\u0027 of master.kernel.org:/home/rmk/linux-2.6-arm: (416 commits)\n  ARM: DMA: add support for DMA debugging\n  ARM: PL011: add DMA burst threshold support for ST variants\n  ARM: PL011: Add support for transmit DMA\n  ARM: PL011: Ensure IRQs are disabled in UART interrupt handler\n  ARM: PL011: Separate hardware FIFO size from TTY FIFO size\n  ARM: PL011: Allow better handling of vendor data\n  ARM: PL011: Ensure error flags are clear at startup\n  ARM: PL011: include revision number in boot-time port printk\n  ARM: vexpress: add sched_clock() for Versatile Express\n  ARM i.MX53: Make MX53 EVK bootable\n  ARM i.MX53: Some bug fix about MX53 MSL code\n  ARM: 6607/1: sa1100: Update platform device registration\n  ARM: 6606/1: sa1100: Fix platform device registration\n  ARM i.MX51: rename IPU irqs\n  ARM i.MX51: Add ipu clock support\n  ARM: imx/mx27_3ds: Add PMIC support\n  ARM: DMA: Replace page_to_dma()/dma_to_page() with pfn_to_dma()/dma_to_pfn()\n  mx51: fix usb clock support\n  MX51: Add support for usb host 2\n  arch/arm/plat-mxc/ehci.c: fix errors/typos\n  ...\n"
    },
    {
      "commit": "f70f5b9dc74ca7d0a64c4ead3fb28da09dc1b234",
      "tree": "01f79ae109966d2ec515358481c151cda549d9ab",
      "parents": [
        "b69fc2efc9205d58c820eb2eb1caa6bf873b4b0d",
        "09798eb9479da3413bdf96e7d22a84d8b21e05e1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 15:30:54 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 15:30:54 2011 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next-2.6: (25 commits)\n  atyfb: Fix bootup hangs on sparc64.\n  sparc: update copyright in piggyback.c\n  sparc: unify strip command in boot/Makefile\n  sparc: rename piggyback_32 to piggyback\n  sparc: fix tftpboot.img for sparc64 on little-endian host\n  sparc: add $BITS to piggyback arguments\n  sparc: remove obsolete ELF support in piggyback_32.c\n  sparc: additional comments to piggyback_32.c\n  sparc: use _start for the start entry (like 64 bit does)\n  sparc: use trapbase in setup_arch\n  sparc: refactor piggy_32.c\n  Added support for ampopts in APBUART driver. Used in AMP systems.\n  APBUART: added raw AMBA vendor/device number to match against.\n  SPARC/LEON: avoid AMBAPP name duplicates in openprom fs when REG is missing\n  SPARC/LEON: added support for selecting Timer Core and Timer within core\n  LEON: added raw AMBA vendor/device number to find TIMER, IRQCTRL\n  SPARC/LEON: added support for IRQAMP IRQ Controller\n  SPARC/LEON: find IRQCTRL and Timer via OF-Tree, instead of hardcoded.\n  sparc: fix sparse warnings in arch/sparc/prom for 32 bit build\n  sparc: remove unused prom tree functions\n  ...\n"
    },
    {
      "commit": "404a02cbd2ae8bf256a2fa1169bdfe86bb5ebb34",
      "tree": "99119edc53fdca73ed7586829b8ee736e09440b3",
      "parents": [
        "28cdac6690cb113856293bf79b40de33dbd8f974",
        "1051b9f0f9eab8091fe3bf98320741adf36b4cfa"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Jan 06 22:33:32 2011 +0000"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Jan 06 22:33:32 2011 +0000"
      },
      "message": "Merge branch \u0027devel-stable\u0027 into devel\n\nConflicts:\n\tarch/arm/mach-pxa/clock.c\n\tarch/arm/mach-pxa/clock.h\n"
    },
    {
      "commit": "28cdac6690cb113856293bf79b40de33dbd8f974",
      "tree": "64cd8ca8376ccf9a12faee3588c15a5839f9a28b",
      "parents": [
        "4073723acb9cdcdbe4df9c0e0c376c65d1697e43",
        "36bb94ba36f332de767cfaa3af6a5136435a3a9c"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Jan 06 22:33:19 2011 +0000"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Jan 06 22:33:19 2011 +0000"
      },
      "message": "Merge branch \u0027pgt\u0027 (early part) into devel\n"
    },
    {
      "commit": "4073723acb9cdcdbe4df9c0e0c376c65d1697e43",
      "tree": "f41c17eac157b1223ce104845cf9b1e5a9e6a83d",
      "parents": [
        "58daf18cdcab550262a5f4681e1f1e073e21965a",
        "4ec3eb13634529c0bc7466658d84d0bbe3244aea"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Jan 06 22:32:52 2011 +0000"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Jan 06 22:32:52 2011 +0000"
      },
      "message": "Merge branch \u0027misc\u0027 into devel\n\nConflicts:\n\tarch/arm/Kconfig\n\tarch/arm/common/Makefile\n\tarch/arm/kernel/Makefile\n\tarch/arm/kernel/smp.c\n"
    },
    {
      "commit": "4ec3eb13634529c0bc7466658d84d0bbe3244aea",
      "tree": "b491daac2ccfc7b8ca88e171a43f66888463568a",
      "parents": [
        "24056f525051a9e186af28904b396320e18bf9a0",
        "15095bb0fe779c0403091bda7adce5fb3bb9ca35"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Jan 06 22:31:35 2011 +0000"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Jan 06 22:32:03 2011 +0000"
      },
      "message": "Merge branch \u0027smp\u0027 into misc\n\nConflicts:\n\tarch/arm/kernel/entry-armv.S\n\tarch/arm/mm/ioremap.c\n"
    },
    {
      "commit": "24056f525051a9e186af28904b396320e18bf9a0",
      "tree": "a8580f24820e21ad48333fce6b5f03be55edd561",
      "parents": [
        "9eedd96301cad8ab58ee8c1e579677d0a75c2ba1"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Mon Jan 03 11:29:28 2011 +0000"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Jan 06 22:31:11 2011 +0000"
      },
      "message": "ARM: DMA: add support for DMA debugging\n\nAdd ARM support for the DMA debug infrastructure, which allows the\nDMA API usage to be debugged.\n\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "b69fc2efc9205d58c820eb2eb1caa6bf873b4b0d",
      "tree": "99a505e56cd10e883ee87ced7ebc26811be341e1",
      "parents": [
        "84b7290cca16c61a167c7e1912cd84a479852165",
        "c6d92e9b84da2002ee7a75b784834970ddfd3bfd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 13:36:30 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 13:36:30 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://codeaurora.org/quic/kernel/davidb/linux-msm\n\n* \u0027for-linus\u0027 of git://codeaurora.org/quic/kernel/davidb/linux-msm: (35 commits)\n  mmc: msm_sdcc: Check for only DATA_END interrupt to end a request\n  mmc: msm_sdcc: Fix bug in PIO mode when data size is not word aligned\n  mmc: msm_sdcc: Reset SDCC in case of data transfer errors\n  mmc: msm_sdcc: Add prog done interrupt support\n  mmc: msm_sdcc: Fix possible circular locking dependency warning\n  MSM: Add USB support for MSM7x30\n  MSM: Add USB suport for QSD8x50\n  msm: initial framebuffer support\n  msm: add handling for clocks tagged as CLK_MINMAX\n  msm: trout: change name of pmdh_clk to mddi_clk\n  msm: add CLK_MINMAX to pmdh_clk\n  msm: trout: add gpio_to_irq\n  msm: iommu: Use the correct memory allocation flag\n  msm_serial: Remove redundant unlikely()\n  msm: iommu: Miscellaneous code cleanup\n  msm: iommu: Support cache-coherent memory access\n  msm: iommu: Definitions for extended memory attributes\n  msm: iommu: Kconfig dependency for the IOMMU API\n  msm: iommu: Check if device is already attached\n  msm: iommu: Kconfig item for cacheable page tables\n  ...\n"
    },
    {
      "commit": "84b7290cca16c61a167c7e1912cd84a479852165",
      "tree": "8ecdd0ac8519cf5f38032db0f87ee1640b488efa",
      "parents": [
        "9858a38ea3a940762ae3028cce88f686d0e0c28b",
        "1928e87bcf185f56008d0746f887b691c1cb8c4a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 13:35:12 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 13:35:12 2011 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-2.6: (55 commits)\n  video: udlfb: Kill off special printk wrappers, use pr_fmt().\n  video: udlfb: Kill off some magic constants for EDID sizing.\n  video: udlfb: deifdefify (yes, that\u0027s a word).\n  fbdev: modedb: Add a new mode for 864x480 TAAL panels.\n  drivers/video/i810/i810-i2c.c: fix i2c bus handling\n  video: Fix the HGA framebuffer driver\n  drivers/video/carminefb.c: improve error handling\n  video: imxfb: Fix the maximum value for yres\n  fbdev: sh_mobile_lcdcfb: Enable 32 bpp and 24 bpp support\n  fbdev: sh_mipi_dsi: use platform provided register layout and values\n  ARM: mach-shmobile: specify sh7372 MIPI DSI register layout\n  fbdev: sh_mipi_dsi: support different register layouts\n  ARM: mach-shmobile: improve MIPI DSI clock configuration\n  fbdev: sh-mobile: implement MIPI DSI runtime PM support\n  sisfb: eliminate compiler warnings\n  sisfb: delete unused register I/O macros\n  sisfb: replace setSISIDXREG with SiS_SetRegANDOR\n  sisfb: replace andSISIDXREG with SiS_SetRegAND\n  sisfb: replace orSISIDXREG with SiS_SetRegOR\n  sisfb: replace outSISIDXREG with SiS_SetReg\n  ...\n"
    },
    {
      "commit": "9858a38ea3a940762ae3028cce88f686d0e0c28b",
      "tree": "f34a3ba1eba9be58cdd906e33280ce5b35d31b06",
      "parents": [
        "abb359450f20c32ae03039d8736f12b1d561caf5",
        "f862f904d357dc0d3612347a8dbabe6fae037fbb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 13:34:45 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 13:34:45 2011 -0800"
      },
      "message": "Merge branch \u0027sh-latest\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6\n\n* \u0027sh-latest\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6:\n  sh: include Migo-R TS driver in Migo-R defconfig\n  sh: correct definitions to access stack pointers\n  sh: Tidy up SH-4A unaligned load support.\n  dma: shdma: NMI support.\n  sh: mach-sdk7786: Handle baseboard NMI source selection.\n  sh: mach-rsk: Add polled GPIO buttons support for RSK+7203.\n  sh: Break out cpuinfo_op procfs bits.\n  sh: Enable optional gpiolib for all CPUs with pinmux tables.\n  sh: migrate SH_CLK_MD to mode pin API.\n  sh: machvec IO death.\n"
    },
    {
      "commit": "abb359450f20c32ae03039d8736f12b1d561caf5",
      "tree": "6e8723885feb66a138f19f0ff31615dc13a8d859",
      "parents": [
        "cb600d2f83c854ec3d6660063e4466431999489b",
        "4e3dbdb1392a83bd21a6ff8f6bc785495058d37c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 12:30:19 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 12:30:19 2011 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1436 commits)\n  cassini: Use local-mac-address prom property for Cassini MAC address\n  net: remove the duplicate #ifdef __KERNEL__\n  net: bridge: check the length of skb after nf_bridge_maybe_copy_header()\n  netconsole: clarify stopping message\n  netconsole: don\u0027t announce stopping if nothing happened\n  cnic: Fix the type field in SPQ messages\n  netfilter: fix export secctx error handling\n  netfilter: fix the race when initializing nf_ct_expect_hash_rnd\n  ipv4: IP defragmentation must be ECN aware\n  net: r6040: Return proper error for r6040_init_one\n  dcb: use after free in dcb_flushapp()\n  dcb: unlock on error in dcbnl_ieee_get()\n  net: ixp4xx_eth: Return proper error for eth_init_one\n  include/linux/if_ether.h: Add #define ETH_P_LINK_CTL for HPNA and wlan local tunnel\n  net: add POLLPRI to sock_def_readable()\n  af_unix: Avoid socket-\u003esk NULL OOPS in stream connect security hooks.\n  net_sched: pfifo_head_drop problem\n  mac80211: remove stray extern\n  mac80211: implement off-channel TX using hw r-o-c offload\n  mac80211: implement hardware offload for remain-on-channel\n  ...\n"
    },
    {
      "commit": "4e3dbdb1392a83bd21a6ff8f6bc785495058d37c",
      "tree": "fe455c384a1e470b49bf504bc15b9c44ae81504e",
      "parents": [
        "2ad0d9d413abc3380fc1d89a9da7f8db59d9746b"
      ],
      "author": {
        "name": "Richard Mortimer",
        "email": "richm@oldelvet.org.uk",
        "time": "Thu Jan 06 11:50:30 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 06 11:50:30 2011 -0800"
      },
      "message": "cassini: Use local-mac-address prom property for Cassini MAC address\n\nFallback on the local-mac-address prom property if the Cassini device\ndoes not have an address programmed in the VPD ROM. This uses the same\ntechnique as implemented by the sungem driver.\n\nThe problem was reported by Frans van Berckel using Debian kernel 2.6.34-7\non Sun Fire V440. udev was assigning a new eth\u003cn\u003e device name on each reboot\nbecause the cassini driver was using a random MAC address.\n\nFix tested on 2.6.34-7 and 2.6.37 Sun Fire V440. Compile tested against\n2.6.36 davem/sparc-2.6.git\n\nReported-by: Frans van Berckel \u003cfberckel@xs4all.nl\u003e\nTested-by: Frans van Berckel \u003cfberckel@xs4all.nl\u003e\nReviewed-by: Julian Calaby \u003cjulian.calaby@gmail.com\u003e\nReviewed-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\nSigned-off-by: Richard Mortimer \u003crichm@oldelvet.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2ad0d9d413abc3380fc1d89a9da7f8db59d9746b",
      "tree": "86bbbb8676ee52198867b4281ad52b1b3aecef3c",
      "parents": [
        "f88de8de5a8c8a8a73960d4432ceef2d38b7f86f"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Thu Jan 06 11:41:42 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 06 11:41:42 2011 -0800"
      },
      "message": "net: remove the duplicate #ifdef __KERNEL__\n\nSince we are already in #ifdef __KERNEL__, we don\u0027t need to check it\nagain.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "09798eb9479da3413bdf96e7d22a84d8b21e05e1",
      "tree": "75e7b1d5475d3ab72bbc0f1d306718800523e604",
      "parents": [
        "050855887236701c5e7ff803b42265824ce99885"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 05 13:08:06 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 06 11:38:19 2011 -0800"
      },
      "message": "atyfb: Fix bootup hangs on sparc64.\n\nAfter commit 25edd6946a1d74e5e77813c2324a0908c68bcf9e (\"sparc64: Get\nrid of indirect p1275 PROM call buffer.\")  we can\u0027t pass virtual\naddresses \u003e4GB to PROM calls.\n\nLargely this is never necessary in drivers because we have a copy of\nthe entire PROM device tree in the kernel and a set of of_*()\ninterfaces to access it.\n\nUnfortunately there were some lingering prom calls in the atyfb\ndriver, in particular prom_finddevice() was being called with an\non-stack address which could be anywhere.\n\nThis code is actually probing for information we already have, the\nPROM choosen console output device is stored in of_console_device so\nall of this nasty code consolidates into a one-line comparison.\n\nNext we have some prom_getintdefault() calls which are trivially\ntransformed into the equivalent of_getintprop_default().\n\nSpecial thanks to Fabio, who figured out exactly where the bootup\nwas hanging.  That made this bug trivial to fix.\n\nReported-by: Fabio M. Di NItto \u003cfabbione@fabbione.net\u003e\nReported-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\nReported-by: Frans van Berckel \u003cfberckel@xs4all.nl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Fabio M. Di NItto \u003cfabbione@fabbione.net\u003e\n"
    },
    {
      "commit": "f88de8de5a8c8a8a73960d4432ceef2d38b7f86f",
      "tree": "cfbbf4195278a69944db9af044ad51b036957f49",
      "parents": [
        "38cfb907a55f3223445151b517b6e4678b8c9d66"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Sat Dec 25 03:41:30 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 06 11:33:05 2011 -0800"
      },
      "message": "net: bridge: check the length of skb after nf_bridge_maybe_copy_header()\n\nSince nf_bridge_maybe_copy_header() may change the length of skb,\nwe should check the length of skb after it to handle the ppoe skbs.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "38cfb907a55f3223445151b517b6e4678b8c9d66",
      "tree": "d585d38666d2ce22f9719448e224eb55b850eaa8",
      "parents": [
        "141dfba342b672588799432d74a3b6be88b5d713"
      ],
      "author": {
        "name": "Ferenc Wagner",
        "email": "wferi@niif.hu",
        "time": "Thu Jan 06 05:11:20 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 06 11:30:23 2011 -0800"
      },
      "message": "netconsole: clarify stopping message\n\nSigned-off-by: Ferenc Wagner \u003cwferi@niif.hu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "141dfba342b672588799432d74a3b6be88b5d713",
      "tree": "84fa2d4340133a9caf350cf38344fe9569671998",
      "parents": [
        "68d7c1aa2fee6acb11fcb826a207e4b81d8a1f57"
      ],
      "author": {
        "name": "Ferenc Wagner",
        "email": "wferi@niif.hu",
        "time": "Thu Jan 06 05:11:19 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 06 11:30:22 2011 -0800"
      },
      "message": "netconsole: don\u0027t announce stopping if nothing happened\n\nSigned-off-by: Ferenc Wagner \u003cwferi@niif.hu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "68d7c1aa2fee6acb11fcb826a207e4b81d8a1f57",
      "tree": "8f95cc15abcc81b0a3e47ec2c370373bd9c02219",
      "parents": [
        "cba85b532e4aabdb97f44c18987d45141fd93faa"
      ],
      "author": {
        "name": "Michael Chan",
        "email": "mchan@broadcom.com",
        "time": "Wed Jan 05 15:14:13 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 06 11:27:22 2011 -0800"
      },
      "message": "cnic: Fix the type field in SPQ messages\n\nThe new firmware interface requires each Slow Path Queue (SPQ) message\u0027s\ntype field to include the function number.  The existing code does not\ndo this consistently.  We fix this by OR\u0027ing in the function number\ninto the type field centrally in cnic_submit_kwqe_16().\n\nSigned-off-by: Michael Chan \u003cmchan@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cba85b532e4aabdb97f44c18987d45141fd93faa",
      "tree": "785e2a715a922c36b15e1929473498e3b3aae724",
      "parents": [
        "f682cefa5ad204d3bfaa54a58046c66d2d035ac1"
      ],
      "author": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Thu Jan 06 11:25:00 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 06 11:25:00 2011 -0800"
      },
      "message": "netfilter: fix export secctx error handling\n\nIn 1ae4de0cdf855305765592647025bde55e85e451, the secctx was exported\nvia the /proc/net/netfilter/nf_conntrack and ctnetlink interfaces\ninstead of the secmark.\n\nThat patch introduced the use of security_secid_to_secctx() which may\nreturn a non-zero value on error.\n\nIn one of my setups, I have NF_CONNTRACK_SECMARK enabled but no\nsecurity modules. Thus, security_secid_to_secctx() returns a negative\nvalue that results in the breakage of the /proc and `conntrack -L\u0027\noutputs. To fix this, we skip the inclusion of secctx if the\naforementioned function fails.\n\nThis patch also fixes the dynamic netlink message size calculation\nif security_secid_to_secctx() returns an error, since its logic is\nalso wrong.\n\nThis problem exists in Linux kernel \u003e\u003d 2.6.37.\n\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f682cefa5ad204d3bfaa54a58046c66d2d035ac1",
      "tree": "8c55a0b722df666bb0a75f5749c7457cd5d44f3b",
      "parents": [
        "6623e3b24a5ebb07e81648c478d286a1329ab891"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Wed Jan 05 04:23:23 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 06 11:22:20 2011 -0800"
      },
      "message": "netfilter: fix the race when initializing nf_ct_expect_hash_rnd\n\nSince nf_ct_expect_dst_hash() may be called without nf_conntrack_lock\nlocked, nf_ct_expect_hash_rnd should be initialized in the atomic way.\n\nIn this patch, we use nf_conntrack_hash_rnd instead of\nnf_ct_expect_hash_rnd.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6623e3b24a5ebb07e81648c478d286a1329ab891",
      "tree": "e3e558391cbad217925baab7f926ec7250a810d9",
      "parents": [
        "9c86c0f4ba49b39f909d7f18731b91e563e07065"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Jan 05 07:52:55 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 06 11:21:30 2011 -0800"
      },
      "message": "ipv4: IP defragmentation must be ECN aware\n\nRFC3168 (The Addition of Explicit Congestion Notification to IP)\nstates :\n\n5.3.  Fragmentation\n\n   ECN-capable packets MAY have the DF (Don\u0027t Fragment) bit set.\n   Reassembly of a fragmented packet MUST NOT lose indications of\n   congestion.  In other words, if any fragment of an IP packet to be\n   reassembled has the CE codepoint set, then one of two actions MUST be\n   taken:\n\n      * Set the CE codepoint on the reassembled packet.  However, this\n        MUST NOT occur if any of the other fragments contributing to\n        this reassembly carries the Not-ECT codepoint.\n\n      * The packet is dropped, instead of being reassembled, for any\n        other reason.\n\nThis patch implements this requirement for IPv4, choosing the first\naction :\n\nIf one fragment had NO-ECT codepoint\n        reassembled frame has NO-ECT\nElIf one fragment had CE codepoint\n        reassembled frame has CE\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9c86c0f4ba49b39f909d7f18731b91e563e07065",
      "tree": "70a179d53210068875525163f3350f7665bb9dae",
      "parents": [
        "2a8fe003741aa90b6b9453e90af4bbb7bc42918c"
      ],
      "author": {
        "name": "Axel Lin",
        "email": "axel.lin@gmail.com",
        "time": "Tue Jan 04 22:40:04 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 06 11:18:07 2011 -0800"
      },
      "message": "net: r6040: Return proper error for r6040_init_one\n\nReturn -ENOMEM instead of 0 for the case of mdiobus_alloc and kmalloc failure.\n\nSigned-off-by: Axel Lin \u003caxel.lin@gmail.com\u003e\nAcked-by: Florian Fainelli \u003cflorian@openwrt.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2a8fe003741aa90b6b9453e90af4bbb7bc42918c",
      "tree": "44450d3e65a5f1447424335e64213a1001d21d0a",
      "parents": [
        "70bfa2d2e1bfd90ef26758b5e2749f043a940037"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Tue Jan 04 21:03:44 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 06 11:16:54 2011 -0800"
      },
      "message": "dcb: use after free in dcb_flushapp()\n\nThe original code has a use after free bug because it\u0027s not using the\n_safe() version of the list_for_each_entry() macro.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "70bfa2d2e1bfd90ef26758b5e2749f043a940037",
      "tree": "a6dd525ad85e1fe1b95a906f8b9fa50c7f275bdb",
      "parents": [
        "0c6610017459ed9642548694fe88971d3f4206aa"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Tue Jan 04 21:03:12 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 06 11:16:54 2011 -0800"
      },
      "message": "dcb: unlock on error in dcbnl_ieee_get()\n\nThere is a \"goto nla_put_failure\" hidden inside the NLA_PUT() macro, but\nwe\u0027re holding the dcb_lock so we need to unlock first.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cb600d2f83c854ec3d6660063e4466431999489b",
      "tree": "e7d46c4b7f43de13cf1649151cd39ec4fae0b43a",
      "parents": [
        "47935a731b7b850a4c6c0e55ed0741e3dd25d889",
        "d50d8fe192428090790e7178e9507e981e0b005b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 11:12:17 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 11:12:17 2011 -0800"
      },
      "message": "Merge branch \u0027x86-mm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-mm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, mm: Initialize initial_page_table before paravirt jumps\n"
    },
    {
      "commit": "0c6610017459ed9642548694fe88971d3f4206aa",
      "tree": "c9ce737e7e881f611b894605fee75f6eee0f1a50",
      "parents": [
        "238c855805c853eaec95b0bc3065effb64f955a0"
      ],
      "author": {
        "name": "Axel Lin",
        "email": "axel.lin@gmail.com",
        "time": "Tue Jan 04 19:24:06 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 06 11:12:01 2011 -0800"
      },
      "message": "net: ixp4xx_eth: Return proper error for eth_init_one\n\nReturn PTR_ERR(port-\u003ephydev) instead of 1 if phy_connect failed.\n\nSigned-off-by: Axel Lin \u003caxel.lin@gmail.com\u003e\nAcked-by: Krzysztof Halasa \u003ckhc@pm.waw.pl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "47935a731b7b850a4c6c0e55ed0741e3dd25d889",
      "tree": "6f5a97961f8e73e325d2bc1d6fb1899ad8f7d8e9",
      "parents": [
        "77a0dd54ba3c86b00ab7079bc3be5d82395ecab2",
        "3fb82d56ad003e804923185316236f26b30dfdd5",
        "fd35fbcdd1b2579a6e00a1545f7124e4005d0474",
        "9e76a97efd31a08cb19d0ba12013b8fb4ad3e474",
        "c8217b8305e5e75c23617f2f4cd262527d952c0a",
        "3cf9b85b474e656a0856b88290c7a289ac5ea247",
        "f6cd24777513fcc673d432cc29ef59881d3e4df1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 11:11:50 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 11:11:50 2011 -0800"
      },
      "message": "Merge branches \u0027x86-alternatives-for-linus\u0027, \u0027x86-fpu-for-linus\u0027, \u0027x86-hwmon-for-linus\u0027, \u0027x86-paravirt-for-linus\u0027, \u0027core-locking-for-linus\u0027 and \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-alternatives-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, suspend: Avoid unnecessary smp alternatives switch during suspend/resume\n\n* \u0027x86-fpu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86-64, asm: Use fxsaveq/fxrestorq in more places\n\n* \u0027x86-hwmon-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, hwmon: Add core threshold notification to therm_throt.c\n\n* \u0027x86-paravirt-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, paravirt: Use native_halt on a halt, not native_safe_halt\n\n* \u0027core-locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  locking, lockdep: Convert sprintf_symbol to %pS\n\n* \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  irq: Better struct irqaction layout\n"
    },
    {
      "commit": "238c855805c853eaec95b0bc3065effb64f955a0",
      "tree": "73520d70f0d447b39cea5dd21f559d7ecf02d734",
      "parents": [
        "5f9251cb93237c9578160df9acc6ce9948ad8c52"
      ],
      "author": {
        "name": "Henry Ptasinski",
        "email": "henryp@broadcom.com",
        "time": "Tue Jan 04 16:07:14 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 06 11:10:05 2011 -0800"
      },
      "message": "include/linux/if_ether.h: Add #define ETH_P_LINK_CTL for HPNA and wlan local tunnel\n\nEthertype used by HPNA control protocols (LARQ, rate, link, etc) and by\nBroadcom wlan drivers for local signalling.\n\nSigned-off-by: Henry Ptasinski \u003chenryp@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "77a0dd54ba3c86b00ab7079bc3be5d82395ecab2",
      "tree": "7260d5349fe78251115decdebf1a8de33e2f14bb",
      "parents": [
        "d7a5a18190d6f523b5d795bfd73f83cf13a3a383",
        "cfa60917f0ba6eca83f41aef3cb4a7dd7736ac9f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 11:09:57 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 11:09:57 2011 -0800"
      },
      "message": "Merge branch \u0027x86-uv-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-uv-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, UV, BAU: Extend for more than 16 cpus per socket\n  x86, UV: Fix the effect of extra bits in the hub nodeid register\n  x86, UV: Add common uv_early_read_mmr() function for reading MMRs\n"
    },
    {
      "commit": "d7a5a18190d6f523b5d795bfd73f83cf13a3a383",
      "tree": "a7ec0b814d18c78b42403afae048346f45f82adc",
      "parents": [
        "4f00b901d4233a78e6ca4d44c8c6fc5d38a3ee9e",
        "a8760eca6cf60ed303ad494ef45901f63165d2c8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 11:08:14 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 11:08:14 2011 -0800"
      },
      "message": "Merge branch \u0027x86-tsc-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-tsc-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86: Check tsc available/disabled in the delayed init function\n  x86: Improve TSC calibration using a delayed workqueue\n  x86: Make tsc\u003dreliable override boot time stability checks\n"
    },
    {
      "commit": "4f00b901d4233a78e6ca4d44c8c6fc5d38a3ee9e",
      "tree": "9b9da4230d33c47298d4fa3e93a4a5f0cb047ee8",
      "parents": [
        "b4c6e2ea5e46b03c764a918f4999a77a3149979f",
        "94462ad3b14739d158a1ab87bb30008c1e5a6bc1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 11:07:33 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 11:07:33 2011 -0800"
      },
      "message": "Merge branch \u0027x86-security-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-security-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  module: Move RO/NX module protection to after ftrace module update\n  x86: Resume trampoline must be executable\n  x86: Add RO/NX protection for loadable kernel modules\n  x86: Add NX protection for kernel data\n  x86: Fix improper large page preservation\n"
    },
    {
      "commit": "b4c6e2ea5e46b03c764a918f4999a77a3149979f",
      "tree": "bc2ee8ac6a2b3bb656aa95d1477514aa45bb834c",
      "parents": [
        "6f46b120a96212b85cbdcb84a64c854dfd791ede",
        "991cfffa7c19aa648546aff666595af896e568ba"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 11:06:31 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 11:06:31 2011 -0800"
      },
      "message": "Merge branch \u0027x86-platform-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-platform-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, earlyprintk: Move mrst early console to platform/ and fix a typo\n  x86, apbt: Setup affinity for apb timers acting as per-cpu timer\n  ce4100: Add errata fixes for UART on CE4100\n  x86: platform: Move iris to x86/platform where it belongs\n  x86, mrst: Check platform_device_register() return code\n  x86/platform: Add Eurobraille/Iris power off support\n  x86, mrst: Add explanation for using 1960 as the year offset for vrtc\n  x86, mrst: Fix dependencies of \"select INTEL_SCU_IPC\"\n  x86, mrst: The shutdown for MRST requires the SCU IPC mechanism\n  x86: Ce4100: Add reboot_fixup() for CE4100\n  ce4100: Add PCI register emulation for CE4100\n  x86: Add CE4100 platform support\n  x86: mrst: Set vRTC\u0027s IRQ to level trigger type\n  x86: mrst: Add audio driver bindings\n  rtc: Add drivers/rtc/rtc-mrst.c\n  x86: mrst: Add vrtc driver which serves as a wall clock device\n  x86: mrst: Add Moorestown specific reboot/shutdown support\n  x86: mrst: Parse SFI timer table for all timer configs\n  x86/mrst: Add SFI platform device parsing code\n"
    },
    {
      "commit": "6f46b120a96212b85cbdcb84a64c854dfd791ede",
      "tree": "bda816b4619efc767bdbaf139988868df070bbc1",
      "parents": [
        "4e1db5e58af8bc6ab4a651df279add41c48d3fc2",
        "c7657ac0c3e4d4ab569296911164b7a2b0ff871a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 11:06:09 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 11:06:09 2011 -0800"
      },
      "message": "Merge branch \u0027x86-microcode-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-microcode-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, microcode, AMD: Cleanup code a bit\n  x86, microcode, AMD: Replace vmalloc+memset with vzalloc\n"
    },
    {
      "commit": "4e1db5e58af8bc6ab4a651df279add41c48d3fc2",
      "tree": "3288c8411334b47daabc4688df9e5c4e0ba825b6",
      "parents": [
        "37d9a8c5ea8fc063841c133fc53cc168ee620762",
        "eb48c9cb2053e7bb5f7f8f0371cb578a0d439450"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 11:05:21 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 11:05:21 2011 -0800"
      },
      "message": "Merge branch \u0027x86-mce-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-mce-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  apic, amd: Make firmware bug messages more meaningful\n  mce, amd: Remove goto in threshold_create_device()\n  mce, amd: Add helper functions to setup APIC\n  mce, amd: Shorten local variables mci_misc_{hi,lo}\n  mce, amd: Implement mce_threshold_block_init() helper function\n"
    }
  ],
  "next": "37d9a8c5ea8fc063841c133fc53cc168ee620762"
}
