)]}'
{
  "log": [
    {
      "commit": "e8eef82b2c652d031bee9dff9762325672f5a1e0",
      "tree": "b4c69b01c190e5e5a285a46dd4b26e4c801ddaa2",
      "parents": [
        "757902513019e6ee469791ff76f954b19ca8d036"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sun Dec 12 14:36:17 2010 +0000"
      },
      "committer": {
        "name": "Liam Girdwood",
        "email": "lrg@slimlogic.co.uk",
        "time": "Wed Jan 12 14:33:04 2011 +0000"
      },
      "message": "regulator: Provide a selector based set_voltage_sel() operation\n\nMany regulator drivers implement voltage setting by looping through a\ntable of possible values, normally because the set of available voltages\ncan\u0027t be mapped onto selectors with simple calcuation. Factor out these\nloops by providing a variant of set_voltage() which takes a selector rather\nthan a voltage range as an argument and implementing a loop through the\navailable selectors in the core.\n\nThis is not going to be suitable for use with all devices as when the\nregulator voltage can be mapped onto selector values with a simple\ncalculation the linear scan through the available values will be more\nexpensive than just doing the calculation, especially for regulators\nthat provide fine grained voltage control.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Liam Girdwood \u003clrg@slimlogic.co.uk\u003e\n"
    },
    {
      "commit": "5e428d5cecc3f109b52e993a1bd91f82137867b3",
      "tree": "d41732db5fb7325145f2539ddc21c50bd564a09f",
      "parents": [
        "167e3d8af98a111994c4d6b3c5cbc589aedbbc2a"
      ],
      "author": {
        "name": "Yong Shen",
        "email": "yong.shen@linaro.org",
        "time": "Tue Dec 14 14:00:55 2010 +0800"
      },
      "committer": {
        "name": "Liam Girdwood",
        "email": "lrg@slimlogic.co.uk",
        "time": "Wed Jan 12 14:33:03 2011 +0000"
      },
      "message": "regulator: support PMIC mc13892\n\nadd support for mc13892, tested on mx51 babbage board\n\nSigned-off-by: Arnaud Patard \u003carnaud.patard@rtp-net.org\u003e\nSigned-off-by: Yong Shen \u003cyong.shen@linaro.org\u003e\nAcked-by: Sascha Hauer \u003cs.hauer@pengutronix.de\u003e\nAcked-by: Samuel Ortiz \u003csameo@linux.intel.com\u003e\nAcked-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Liam Girdwood \u003clrg@slimlogic.co.uk\u003e\n"
    },
    {
      "commit": "57c78e359a35c69eca4c88f107500f74ef7f0acf",
      "tree": "1b58bce66db5c9c7a7c9dc2de153f18a53af0dcf",
      "parents": [
        "a1e516e3a5552519a01e8a7636569d2d1b68431f"
      ],
      "author": {
        "name": "Yong Shen",
        "email": "yong.shen@linaro.org",
        "time": "Tue Dec 14 14:00:53 2010 +0800"
      },
      "committer": {
        "name": "Liam Girdwood",
        "email": "lrg@slimlogic.co.uk",
        "time": "Wed Jan 12 14:33:03 2011 +0000"
      },
      "message": "Change the register name definitions for mc13783\n\nTo make mc13783 and mc13892 share code, the register names should be\nchanged to fit the new macro definitions in the comming patch.\n\nSigned-off-by: Yong Shen \u003cyong.shen@linaro.org\u003e\nAcked-by: Sascha Hauer \u003cs.hauer@pengutronix.de\u003e\nAcked-by: Samuel Ortiz \u003csameo@linux.intel.com\u003e\nAcked-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Liam Girdwood \u003clrg@slimlogic.co.uk\u003e\n"
    },
    {
      "commit": "cb189b07d57b574cc14382e2130960b0a0193c23",
      "tree": "8a8d9992e9a2776830989b9acc1301a70d55e349",
      "parents": [
        "1394fd2826afb2adf7f6c4833d36a0feba22e665"
      ],
      "author": {
        "name": "Bengt Jonsson",
        "email": "bengt.g.jonsson@stericsson.com",
        "time": "Fri Dec 10 11:08:40 2010 +0100"
      },
      "committer": {
        "name": "Liam Girdwood",
        "email": "lrg@slimlogic.co.uk",
        "time": "Wed Jan 12 14:33:02 2011 +0000"
      },
      "message": "regulators: Moved define for number of regulators in ab8500\n\nThe define for number of regulators is moved from ab8500-core to\nab8500-regulator so that the regulator driver can be updated\nindependently of ab8500-core. This also changes the platform\nconfiguration structure of ab8500-core so that it contains a\npointer to the regulator_init_data array plus number of\nregulators instead of an fixed size array of pointers to\nregulator_init_data.\n\nSigned-off-by: Bengt Jonsson \u003cbengt.g.jonsson@stericsson.com\u003e\nAcked-by: Linus Walleij \u003clinus.walleij@stericsson.com\u003e\nAcked-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Liam Girdwood \u003clrg@slimlogic.co.uk\u003e\n"
    },
    {
      "commit": "476c2d83c7ffb2429b2a504fbdb4326fc8a9d0e8",
      "tree": "cdc7b4161bef5aa90a9f375229dc3dc61900ea6c",
      "parents": [
        "1bf5a1f86a328122714680cd59951074b4f31e07"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Fri Dec 10 17:28:07 2010 +0000"
      },
      "committer": {
        "name": "Liam Girdwood",
        "email": "lrg@slimlogic.co.uk",
        "time": "Wed Jan 12 14:33:01 2011 +0000"
      },
      "message": "regulator: Allow drivers to report voltages as selectors\n\nSince drivers already have to provide an API for translating selectors\ninto voltages they may as well just report the selector values directly\nto the core API rather than implement the lookup themselves. The old\ninterface is left in place for now, but may be removed in future.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Liam Girdwood \u003clrg@slimlogic.co.uk\u003e\n"
    },
    {
      "commit": "f8c12fe329c8da9f50d8b2b1183eeaa4d587e747",
      "tree": "8ec2dee6efcf6a6a96e161bf9a86c6d9befb2a58",
      "parents": [
        "f4d6adf11b0a596ac4fee2fb2591f286de35c088"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Nov 29 15:55:17 2010 +0000"
      },
      "committer": {
        "name": "Liam Girdwood",
        "email": "lrg@slimlogic.co.uk",
        "time": "Wed Jan 12 14:33:01 2011 +0000"
      },
      "message": "regulator: Copy constraints from regulators when initialising them\n\nCurrently the regulator API uses the constraints structure passed in to\nthe core throughout the lifetime of the object. This means that it is not\npossible to mark the constraints as __initdata so if the kernel supports\nmany boards the constraints for all of them are kept around throughout the\nlifetime of the system, consuming memory needlessly. By copying constraints\nthat are actually used we allow the use of __initdata, saving memory when\nmultiple boards are supported.\n\nThis also means the constraints can be const.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Liam Girdwood \u003clrg@slimlogic.co.uk\u003e\n"
    },
    {
      "commit": "3a93f2a9f4d8f73d74c0e552feb68a10f778a219",
      "tree": "8a9f503f2f061ad3fe9712b0986b0da346f4c8d2",
      "parents": [
        "63cee946148821bca42be10130b061c2d0f5af7e"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Wed Nov 10 14:38:29 2010 +0000"
      },
      "committer": {
        "name": "Liam Girdwood",
        "email": "lrg@slimlogic.co.uk",
        "time": "Wed Jan 12 14:32:59 2011 +0000"
      },
      "message": "regulator: Report actual configured voltage to set_voltage()\n\nChange the interface used by set_voltage() to report the selected value\nto the regulator core in terms of a selector used by list_voltage().\nThis allows the regulator core to know the voltage that was chosen\nwithout having to do an explict get_voltage(), which would be much more\nexpensive as it will generally access hardware.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Liam Girdwood \u003clrg@slimlogic.co.uk\u003e\n"
    },
    {
      "commit": "4162cf64973df51fc885825bc9ca4d055891c49f",
      "tree": "f218c7bd298f4d41be94d08a314eb9fbc3fcb4ea",
      "parents": [
        "fb7b5a956992fdc53d0b9c8ea29b51b92839dc1b",
        "343a8d13aae58dec562dbb5c7d48a53e9b847871"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 11 16:32:41 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 11 16:32:41 2011 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (67 commits)\n  cxgb4vf: recover from failure in cxgb4vf_open()\n  netfilter: ebtables: make broute table work again\n  netfilter: fix race in conntrack between dump_table and destroy\n  ah: reload pointers to skb data after calling skb_cow_data()\n  ah: update maximum truncated ICV length\n  xfrm: check trunc_len in XFRMA_ALG_AUTH_TRUNC\n  ehea: Increase the skb array usage\n  net/fec: remove config FEC2 as it\u0027s used nowhere\n  pcnet_cs: add new_id\n  tcp: disallow bind() to reuse addr/port\n  net/r8169: Update the function of parsing firmware\n  net: ppp: use {get,put}_unaligned_be{16,32}\n  CAIF: Fix IPv6 support in receive path for GPRS/3G\n  arp: allow to invalidate specific ARP entries\n  net_sched: factorize qdisc stats handling\n  mlx4: Call alloc_etherdev to allocate RX and TX queues\n  net: Add alloc_netdev_mqs function\n  caif: don\u0027t set connection request param size before copying data\n  cxgb4vf: fix mailbox data/control coherency domain race\n  qlcnic: change module parameter permissions\n  ...\n"
    },
    {
      "commit": "60dbb011df9764294284cc3e70f935eaa462e15e",
      "tree": "7bf7672001c3fc87850895577f22c0f6dc4c1138",
      "parents": [
        "4b0ef1f223be4e092632b4152ceec5627ac10f59",
        "2f46e07995734a363608e974a82fd05d5b610750"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 11 15:43:03 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 11 15:43:03 2011 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of git://1984.lsi.us.es/net-2.6\n"
    },
    {
      "commit": "b9d919a4ac6cf031b8e065f82ad8f1b0c9ed74b1",
      "tree": "3139b066396956fd3794df0cb1aa74dcc9f1cb28",
      "parents": [
        "7c955fca3e1d8132982148267d9efcafae849bb6",
        "357f54d6b38252737116a6d631f6ac28ded018ed"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 11 15:11:56 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 11 15:11:56 2011 -0800"
      },
      "message": "Merge branch \u0027nfs-for-2.6.38\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027nfs-for-2.6.38\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (89 commits)\n  NFS fix the setting of exchange id flag\n  NFS: Don\u0027t use vm_map_ram() in readdir\n  NFSv4: Ensure continued open and lockowner name uniqueness\n  NFS: Move cl_delegations to the nfs_server struct\n  NFS: Introduce nfs_detach_delegations()\n  NFS: Move cl_state_owners and related fields to the nfs_server struct\n  NFS: Allow walking nfs_client.cl_superblocks list outside client.c\n  pnfs: layout roc code\n  pnfs: update nfs4_callback_recallany to handle layouts\n  pnfs: add CB_LAYOUTRECALL handling\n  pnfs: CB_LAYOUTRECALL xdr code\n  pnfs: change lo refcounting to atomic_t\n  pnfs: check that partial LAYOUTGET return is ignored\n  pnfs: add layout to client list before sending rpc\n  pnfs: serialize LAYOUTGET(openstateid)\n  pnfs: layoutget rpc code cleanup\n  pnfs: change how lsegs are removed from layout list\n  pnfs: change layout state seqlock to a spinlock\n  pnfs: add prefix to struct pnfs_layout_hdr fields\n  pnfs: add prefix to struct pnfs_layout_segment fields\n  ...\n"
    },
    {
      "commit": "2f46e07995734a363608e974a82fd05d5b610750",
      "tree": "204c3b071e832cf17cefaaab309966f73da3808b",
      "parents": [
        "13ee6ac579574a2a95e982b19920fd2495dce8cd"
      ],
      "author": {
        "name": "Florian Westphal",
        "email": "fw@strlen.de",
        "time": "Tue Jan 11 23:55:51 2011 +0100"
      },
      "committer": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Tue Jan 11 23:55:51 2011 +0100"
      },
      "message": "netfilter: ebtables: make broute table work again\n\nbroute table init hook sets up the \"br_should_route_hook\" pointer,\nwhich then gets called from br_input.\n\ncommit a386f99025f13b32502fe5dedf223c20d7283826\n(bridge: add proper RCU annotation to should_route_hook)\nintroduced a typedef, and then changed this to:\n\nbr_should_route_hook_t *rhook;\n[..]\nrhook \u003d rcu_dereference(br_should_route_hook);\nif (*rhook(skb))\n\nproblem is that \"br_should_route_hook\" contains the address of the function,\nso calling *rhook() results in kernel panic.\n\nSigned-off-by: Florian Westphal \u003cfw@strlen.de\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\n"
    },
    {
      "commit": "e9688f6acad8cb1f2e8d7abb2de06a6a5c9cbcf2",
      "tree": "2f9b89987c57e3395e53d3ca354f9674c0bef369",
      "parents": [
        "40c73abbb37e399eba274fe49e520ffa3dd65bdb",
        "0f0a25bf516843adae479636dc1cf75fd0bd003c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 11 14:37:31 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 11 14:37:31 2011 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (44 commits)\n  ext4: fix trimming starting with block 0 with small blocksize\n  ext4: revert buggy trim overflow patch\n  ext4: don\u0027t pass entire map to check_eofblocks_fl\n  ext4: fix memory leak in ext4_free_branches\n  ext4: remove ext4_mb_return_to_preallocation()\n  ext4: flush the i_completed_io_list during ext4_truncate\n  ext4: add error checking to calls to ext4_handle_dirty_metadata()\n  ext4: fix trimming of a single group\n  ext4: fix uninitialized variable in ext4_register_li_request\n  ext4: dynamically allocate the jbd2_inode in ext4_inode_info as necessary\n  ext4: drop i_state_flags on architectures with 64-bit longs\n  ext4: reorder ext4_inode_info structure elements to remove unneeded padding\n  ext4: drop ec_type from the ext4_ext_cache structure\n  ext4: use ext4_lblk_t instead of sector_t for logical blocks\n  ext4: replace i_delalloc_reserved_flag with EXT4_STATE_DELALLOC_RESERVED\n  ext4: fix 32bit overflow in ext4_ext_find_goal()\n  ext4: add more error checks to ext4_mkdir()\n  ext4: ext4_ext_migrate should use NULL not 0\n  ext4: Use ext4_error_file() to print the pathname to the corrupted inode\n  ext4: use IS_ERR() to check for errors in ext4_error_file\n  ...\n"
    },
    {
      "commit": "40c73abbb37e399eba274fe49e520ffa3dd65bdb",
      "tree": "11ee28f09a2455c7134964f7f09e16a93d058c13",
      "parents": [
        "0945f352ce1520765296fc2b07e50055c847d39d",
        "d96336b05d718b03ff03c94c0dc0cc283a29d534"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 11 14:36:55 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 11 14:36:55 2011 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6:\n  ext2: Resolve \u0027dereferencing pointer to incomplete type\u0027 when enabling EXT2_XATTR_DEBUG\n  ext3: Remove redundant unlikely()\n  ext2: Remove redundant unlikely()\n  ext3: speed up file creates by optimizing rec_len functions\n  ext2: speed up file creates by optimizing rec_len functions\n  ext3: Add more journal error check\n  ext3: Add journal error check in resize.c\n  quota: Use %pV and __attribute__((format (printf in __quota_error and fix fallout\n  ext3: Add FITRIM handling\n  ext3: Add batched discard support for ext3\n  ext3: Add journal error check into ext3_rename()\n  ext3: Use search_dirblock() in ext3_dx_find_entry()\n  ext3: Avoid uninitialized memory references with a corrupted htree directory\n  ext3: Return error code from generic_check_addressable\n  ext3: Add journal error check into ext3_delete_entry()\n  ext3: Add error check in ext3_mkdir()\n  fs/ext3/super.c: Use printf extension %pV\n  fs/ext2/super.c: Use printf extension %pV\n  ext3: don\u0027t update sb journal_devnum when RO dev\n"
    },
    {
      "commit": "357f54d6b38252737116a6d631f6ac28ded018ed",
      "tree": "9f2774fb0685659b4fa2f65b9dee3318902d24c9",
      "parents": [
        "68c404b18f6fba404b2753622d0459c68ee128ae"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Tue Dec 14 10:11:57 2010 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 11 14:17:09 2011 -0500"
      },
      "message": "NFS fix the setting of exchange id flag\n\nIndicate support for referrals. Do not set any PNFS roles. Check the flags\nreturned by the server for validity. Do not use exchange flags from an old\nclient ID instance when recovering a client ID.\n\nUpdate the EXCHID4_FLAG_XXX set to RFC 5661.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "16ee8db6a93ffbc021132599f33288613f042c3d",
      "tree": "3f919fb63f24f4b9d9f8b34269ba95ed3e81396e",
      "parents": [
        "5943a268002fce97885f2ca08827ff1b0312068c",
        "fa36e956c5027d9a985d555d104d293c0a98d2c3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 11 11:11:46 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 11 11:11:46 2011 -0800"
      },
      "message": "Merge branch \u0027x86-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86: Fix Moorestown VRTC fixmap placement\n  x86/gpio: Implement x86 gpio_to_irq convert function\n  x86, UV: Fix APICID shift for Westmere processors\n  x86: Use PCI method for enabling AMD extended config space before MSR method\n  x86: tsc: Prevent delayed init if initial tsc calibration failed\n  x86, lapic-timer: Increase the max_delta to 31 bits\n  x86: Fix sparse non-ANSI function warnings in smpboot.c\n  x86, numa: Fix CONFIG_DEBUG_PER_CPU_MAPS without NUMA emulation\n  x86, AMD, PCI: Add AMD northbridge PCI device id for CPU families 12h and 14h\n  x86, numa: Fix cpu to node mapping for sparse node ids\n  x86, numa: Fake node-to-cpumask for NUMA emulation\n  x86, numa: Fake apicid and pxm mappings for NUMA emulation\n  x86, numa: Avoid compiling NUMA emulation functions without CONFIG_NUMA_EMU\n  x86, numa: Reduce minimum fake node size to 32M\n\nFix up trivial conflict in arch/x86/kernel/apic/x2apic_uv_x.c\n"
    },
    {
      "commit": "5943a268002fce97885f2ca08827ff1b0312068c",
      "tree": "5e304e79b68263e799224ebb1a08ead474ab299b",
      "parents": [
        "42776163e13a56ea3096edff7a5df95408e80eb4",
        "96c8f06a0fb359a9a89701a7afab6d837e466ab0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 11 11:06:41 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 11 11:06:41 2011 -0800"
      },
      "message": "Merge branch \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  rtc: Namespace fixup\n  RTC: Remove UIE emulation\n  RTC: Rework RTC code to use timerqueue for events\n\nFix up trivial conflict in drivers/rtc/rtc-dev.c\n"
    },
    {
      "commit": "42776163e13a56ea3096edff7a5df95408e80eb4",
      "tree": "92f17bb5dadc7261b2d9238244cd8d4cb6c1bfd7",
      "parents": [
        "edb2877f4a62647e36e20839a786f94d688a06ed",
        "3d03e2ea74103a50c23d6ab1906cf73399c0dafb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 11 11:02:13 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 11 11:02:13 2011 -0800"
      },
      "message": "Merge branch \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (28 commits)\n  perf session: Fix infinite loop in __perf_session__process_events\n  perf evsel: Support perf_evsel__open(cpus \u003e 1 \u0026\u0026 threads \u003e 1)\n  perf sched: Use PTHREAD_STACK_MIN to avoid pthread_attr_setstacksize() fail\n  perf tools: Emit clearer message for sys_perf_event_open ENOENT return\n  perf stat: better error message for unsupported events\n  perf sched: Fix allocation result check\n  perf, x86: P4 PMU - Fix unflagged overflows handling\n  dynamic debug: Fix build issue with older gcc\n  tracing: Fix TRACE_EVENT power tracepoint creation\n  tracing: Fix preempt count leak\n  tracepoint: Add __rcu annotation\n  tracing: remove duplicate null-pointer check in skb tracepoint\n  tracing/trivial: Add missing comma in TRACE_EVENT comment\n  tracing: Include module.h in define_trace.h\n  x86: Save rbp in pt_regs on irq entry\n  x86, dumpstack: Fix unused variable warning\n  x86, NMI: Clean-up default_do_nmi()\n  x86, NMI: Allow NMI reason io port (0x61) to be processed on any CPU\n  x86, NMI: Remove DIE_NMI_IPI\n  x86, NMI: Add priorities to handlers\n  ...\n"
    },
    {
      "commit": "edb2877f4a62647e36e20839a786f94d688a06ed",
      "tree": "b7d7c5f3d5bf2ad1e41f72c43483be6023be2d92",
      "parents": [
        "5b2eef966cb2ae307aa4ef1767f7307774bc96ca",
        "f9db92cb8084c756890ddf953e9329588c59e8e8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 11 11:01:24 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 11 11:01:24 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc: (39 commits)\n  mmc: davinci: add support for SDIO irq handling\n  mmc: fix division by zero in MMC core\n  mmc: tmio_mmc: fix CMD irq handling\n  mmc: tmio_mmc: handle missing HW interrupts\n  mfd: sh_mobile_sdhi: activate SDIO IRQ for tmio_mmc\n  mmc: tmio_mmc: implement SDIO IRQ support\n  mfd: sdhi: require the tmio-mmc driver to bounce unaligned buffers\n  mmc: tmio_mmc: silence compiler warnings\n  mmc: tmio_mmc: implement a bounce buffer for unaligned DMA\n  mmc: tmio_mmc: merge the private header into the driver\n  mmc: tmio_mmc: fix PIO fallback on DMA descriptor allocation failure\n  mmc: tmio_mmc: allow multi-element scatter-gather lists\n  mmc: Register debugfs dir before calling card probe function.\n  mmc: MMC_BLOCK_MINORS should depend on MMC_BLOCK.\n  mmc: Explain why we make adjacent mmc_bus_{put,get} calls during rescan.\n  mmc: Fix sd/sdio/mmc initialization frequency retries\n  mmc: fix mmc_set_bus_width_ddr() call without bus-width-test cap\n  mmc: dw_mmc: Add Synopsys DesignWare mmc host driver.\n  mmc: add sdhci-tegra driver for Tegra SoCs\n  mmc: sdhci: add quirk for max len ADMA descriptors\n  ...\n"
    },
    {
      "commit": "5b2eef966cb2ae307aa4ef1767f7307774bc96ca",
      "tree": "095a251e145903598dd8d90d5b2eb880f0d6ff93",
      "parents": [
        "8adbf8d46718a8f110de55ec82c40d04d0c362cc",
        "56bec7c009872ef33fe452ea75fecba481351b44"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 17:11:39 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 17:11:39 2011 -0800"
      },
      "message": "Merge branch \u0027drm-core-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6\n\n* \u0027drm-core-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (390 commits)\n  drm/radeon/kms: disable underscan by default\n  drm/radeon/kms: only enable hdmi features if the monitor supports audio\n  drm: Restore the old_fb upon modeset failure\n  drm/nouveau: fix hwmon device binding\n  radeon: consolidate asic-specific function decls for pre-r600\n  vga_switcheroo: comparing too few characters in strncmp()\n  drm/radeon/kms: add NI pci ids\n  drm/radeon/kms: don\u0027t enable pcie gen2 on NI yet\n  drm/radeon/kms: add radeon_asic struct for NI asics\n  drm/radeon/kms/ni: load default sclk/mclk/vddc at pm init\n  drm/radeon/kms: add ucode loader for NI\n  drm/radeon/kms: add support for DCE5 display LUTs\n  drm/radeon/kms: add ni_reg.h\n  drm/radeon/kms: add bo blit support for NI\n  drm/radeon/kms: always use writeback/events for fences on NI\n  drm/radeon/kms: adjust default clock/vddc tracking for pm on DCE5\n  drm/radeon/kms: add backend map workaround for barts\n  drm/radeon/kms: fill gpu init for NI asics\n  drm/radeon/kms: add disabled vbios accessor for NI asics\n  drm/radeon/kms: handle NI thermal controller\n  ...\n"
    },
    {
      "commit": "8adbf8d46718a8f110de55ec82c40d04d0c362cc",
      "tree": "dbaf7109edaaa26496e131e6644074fbcb75c75d",
      "parents": [
        "0be8c8bd1de21d75ef14eb6af35b664f70a35746",
        "0cc43a1806f078f7fd414850d8f1f1761696e4af"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 17:09:13 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 17:09:13 2011 -0800"
      },
      "message": "Merge branch \u0027i2c-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging\n\n* \u0027i2c-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:\n  i2c: Constify i2c_client where possible\n  i2c-algo-bit: Complain about masters which can\u0027t read SCL\n  i2c-algo-bit: Refactor adapter registration\n  i2c: Add generic I2C multiplexer using GPIO API\n  i2c-nforce2: Remove unnecessary cast of pci_get_drvdata\n  i2c-i801: Include \u003clinux/slab.h\u003e\n"
    },
    {
      "commit": "e54be894eae10eca9892e965cc9532f5d5a11767",
      "tree": "27ace4446e42058ef4813a34bf63b55a870e7a12",
      "parents": [
        "949f6711b83d2809d1ccb9d830155a65fdacdff9",
        "c6c0ac664c86ff6408fadbed4913938c8a732e26"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 16:10:33 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 16:10:33 2011 -0800"
      },
      "message": "Merge branch \u0027driver-core-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6\n\n* \u0027driver-core-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6:\n  driver core: Document that device_rename() is only for networking\n  sysfs: remove useless test from sysfs_merge_group\n  driver-core: merge private parts of class and bus\n  driver core: fix whitespace in class_attr_string\n"
    },
    {
      "commit": "36909ea43814cba34f7c921e99cba33d770a54e1",
      "tree": "294b44411dc7939e152aa1002f9f5fe9868751f6",
      "parents": [
        "91b5c98c2e062f982423686c77b8bf31f37fa196"
      ],
      "author": {
        "name": "Tom Herbert",
        "email": "therbert@google.com",
        "time": "Sun Jan 09 19:36:31 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 10 16:05:30 2011 -0800"
      },
      "message": "net: Add alloc_netdev_mqs function\n\nAdded alloc_netdev_mqs function which allows the number of transmit and\nreceive queues to be specified independenty.  alloc_netdev_mq was\nchanged to a macro to call the new function.  Also added\nalloc_etherdev_mqs with same purpose.\n\nSigned-off-by: Tom Herbert \u003ctherbert@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "949f6711b83d2809d1ccb9d830155a65fdacdff9",
      "tree": "4b8bdb0e98489bc8ad77fa144926931c37e2e4f2",
      "parents": [
        "443e6221e465efa8efb752a8405a759ef1161af9",
        "7959d55679e4360205c9ebc89d40a5503c53bae2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 16:04:53 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 16:04:53 2011 -0800"
      },
      "message": "Merge branch \u0027staging-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6\n\n* \u0027staging-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6: (510 commits)\n  staging: speakup: fix failure handling\n  staging: usbip: remove double giveback of URB\n  Staging: batman-adv: Remove batman-adv from staging\n  Staging: hv: Use only one txf buffer per channel and kmalloc/GFP_KERNEL on initialize\n  staging: hv: remove unneeded osd_schedule_callback\n  staging: hv: convert channel_mgmt.c to not call osd_schedule_callback\n  staging: hv: convert vmbus_on_msg_dpc to not call osd_schedule_callback\n  staging: brcm80211: Fix WL_\u003ctype\u003e logging macros\n  Staging: IIO: DDS: AD9833 / AD9834 driver\n  Staging: IIO: dds.h convenience macros\n  Staging: IIO: Direct digital synthesis abi documentation\n  staging: brcm80211: Convert ETHER_TYPE_802_1X to ETH_P_PAE\n  staging: brcm80211: Remove unused ETHER_TYPE_\u003cfoo\u003e #defines\n  staging: brcm80211: Remove ETHER_HDR_LEN, use ETH_HLEN\n  staging: brcm80211: Convert ETHER_ADDR_LEN to ETH_ALEN\n  staging: brcm80211: Convert ETHER_IS\u003cFOO\u003e to is_\u003cfoo\u003e_ether_addr\n  staging: brcm80211: Remove unused ether_\u003cfoo\u003e #defines and struct\n  staging: brcm80211: Convert ETHER_IS_MULTI to is_multicast_ether_addr\n  staging: brcm80211: Remove unused #defines ETHER_\u003cfoo\u003e_LOCALADDR\n  Staging: comedi: Fix checkpatch.pl issues in file s526.c\n  ...\n\nFix up trivial conflict in drivers/video/udlfb.c\n"
    },
    {
      "commit": "443e6221e465efa8efb752a8405a759ef1161af9",
      "tree": "8732213fc309a14f8613849b1ff2a2951757aff1",
      "parents": [
        "0caca697a2d173c6beff3c24e7d9481b732bd131",
        "1a7d946993aaf2a79e9c65abbe169a108e351bcb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 15:39:48 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 15:39:48 2011 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mjg59/platform-drivers-x86\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mjg59/platform-drivers-x86: (36 commits)\n  sony-laptop: support new hotkeys on the P, Z and EC series\n  platform/x86: Consistently select LEDS Kconfig options\n  sony-laptop: fix sparse non-ANSI function warning\n  intel_ips: fix sparse non-ANSI function warning\n  Support KHLB2 in the compal laptop driver\n  acer-wmi: Enabled Acer Launch Manager mode\n  [PATCH] intel_pmic_gpio: modify EOI handling following change of kernel irq subsystem\n  ACPI Thinkpad: We must always call va_end() after va_start() but do not do so in thinkpad_acpi.c::acpi_evalf()\n  acer-wmi: Initialize wlan/bluetooth/wwan rfkill software block state\n  acer-wmi: Detect the WiFi/Bluetooth/3G devices available\n  acer-wmi: Add 3G rfkill sysfs file\n  acer-wmi: Add acer wmi hotkey events support\n  platform/x86: Kconfig: Replace select by depends on ACPI_WMI\n  ideapad: pass ideapad_priv as argument (part 2)\n  ideapad: pass ideapad_priv as argument (part 1)\n  ideapad: add markups, unify comments and return result when init\n  ideapad: add hotkey support\n  ideapad: let camera power control entry under platform driver\n  ideapad: add platform driver for ideapad\n  fujitsu-laptop: fix compiler warning on pnp_ids\n  ...\n"
    },
    {
      "commit": "c599bd6b9ac8926b03e6bf332a8c14ae2ffb43a3",
      "tree": "353f7dc0114794bb9b78ceae4c42c724ef0d10e2",
      "parents": [
        "2d70a3d42de642e1d78355338b63cf064dc0f345"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Mon Jan 10 02:54:32 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 10 13:31:14 2011 -0800"
      },
      "message": "netdev: bfin_mac: let boards set vlan masks\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0cc43a1806f078f7fd414850d8f1f1761696e4af",
      "tree": "2278fca3af95002a867fa72b34e4ca97ccf5489f",
      "parents": [
        "af5a60baaee66e2f891dbb9a8519ca28ab7da7cd"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Mon Jan 10 22:11:23 2011 +0100"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Mon Jan 10 22:11:23 2011 +0100"
      },
      "message": "i2c: Constify i2c_client where possible\n\nHelper functions for I2C and SMBus transactions don\u0027t modify the\ni2c_client that is passed to them, so it can be marked const.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "92ed1a76ca31774eb27de14b2215841367c68056",
      "tree": "f9becefa5dbcdaa8cfd65100e1735044cd3910d6",
      "parents": [
        "b18a5c80eb2e7e9c72d23f1960b09d78ddf7e5b0"
      ],
      "author": {
        "name": "Peter Korsgaard",
        "email": "peter.korsgaard@barco.com",
        "time": "Mon Jan 10 22:11:23 2011 +0100"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Mon Jan 10 22:11:23 2011 +0100"
      },
      "message": "i2c: Add generic I2C multiplexer using GPIO API\n\nAdd an i2c mux driver providing access to i2c bus segments using a\nhardware MUX sitting on a master bus and controlled through gpio pins.\n\nE.G. something like:\n\n  ----------              ----------  Bus segment 1   - - - - -\n |          | SCL/SDA    |          |-------------- |           |\n |          |------------|          |\n |          |            |          | Bus segment 2 |           |\n |  Linux   | GPIO 1..N  |   MUX    |---------------   Devices\n |          |------------|          |               |           |\n |          |            |          | Bus segment M\n |          |            |          |---------------|           |\n  ----------              ----------                  - - - - -\n\nSCL/SDA of the master I2C bus is multiplexed to bus segment 1..M\naccording to the settings of the GPIO pins 1..N.\n\nSigned-off-by: Peter Korsgaard \u003cpeter.korsgaard@barco.com\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "68c404b18f6fba404b2753622d0459c68ee128ae",
      "tree": "c1ec0bb12f19d91071b461cc2831d9d3dd4c74f3",
      "parents": [
        "d035c36c58dd9183ad6aa7875dea89893faedb55",
        "6650239a4b01077e80d5a4468562756d77afaa59"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jan 10 14:48:02 2011 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jan 10 14:48:02 2011 -0500"
      },
      "message": "Merge branch \u0027bugfixes\u0027 into nfs-for-2.6.38\n\nConflicts:\n\tfs/nfs/nfs2xdr.c\n\tfs/nfs/nfs3xdr.c\n\tfs/nfs/nfs4xdr.c\n"
    },
    {
      "commit": "6650239a4b01077e80d5a4468562756d77afaa59",
      "tree": "505c9a1dc26c26608ce6a5981093a6357d4f3638",
      "parents": [
        "3c0eee3fe6a3a1c745379547c7e7c904aa64f6d5"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jan 08 17:45:38 2011 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jan 10 14:45:01 2011 -0500"
      },
      "message": "NFS: Don\u0027t use vm_map_ram() in readdir\n\nvm_map_ram() is not available on NOMMU platforms, and causes trouble\non incoherrent architectures such as ARM when we access the page data\nthrough both the direct and the virtual mapping.\n\nThe alternative is to use the direct mapping to access page data\nfor the case when we are not crossing a page boundary, but to copy\nthe data into a linear scratch buffer when we are accessing data\nthat spans page boundaries.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nTested-by: Marc Kleine-Budde \u003cmkl@pengutronix.de\u003e\nCc: stable@kernel.org  [2.6.37]\n"
    },
    {
      "commit": "e0e736fc0d33861335e2a132e4f688f7fd380c61",
      "tree": "d9febe9ca1ef1e24efc5e6e1e34e412316d246bd",
      "parents": [
        "a08948812b30653eb2c536ae613b635a989feb6f",
        "aeda4ac3efc29e4d55989abd0a73530453aa69ba"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 11:18:59 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 11:18:59 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: (30 commits)\n  MAINTAINERS: Add tomoyo-dev-en ML.\n  SELinux: define permissions for DCB netlink messages\n  encrypted-keys: style and other cleanup\n  encrypted-keys: verify datablob size before converting to binary\n  trusted-keys: kzalloc and other cleanup\n  trusted-keys: additional TSS return code and other error handling\n  syslog: check cap_syslog when dmesg_restrict\n  Smack: Transmute labels on specified directories\n  selinux: cache sidtab_context_to_sid results\n  SELinux: do not compute transition labels on mountpoint labeled filesystems\n  This patch adds a new security attribute to Smack called SMACK64EXEC. It defines label that is used while task is running.\n  SELinux: merge policydb_index_classes and policydb_index_others\n  selinux: convert part of the sym_val_to_name array to use flex_array\n  selinux: convert type_val_to_struct to flex_array\n  flex_array: fix flex_array_put_ptr macro to be valid C\n  SELinux: do not set automatic i_ino in selinuxfs\n  selinux: rework security_netlbl_secattr_to_sid\n  SELinux: standardize return code handling in selinuxfs.c\n  SELinux: standardize return code handling in selinuxfs.c\n  SELinux: standardize return code handling in policydb.c\n  ...\n"
    },
    {
      "commit": "83723d60717f8da0f53f91cf42a845ed56c09662",
      "tree": "9d32edc2c6dc4849e63d422f8dad42606b2f984f",
      "parents": [
        "45b9f509b7f5d2d792b3c03b78ddc8ec543e921b"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Jan 10 20:11:38 2011 +0100"
      },
      "committer": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Mon Jan 10 20:11:38 2011 +0100"
      },
      "message": "netfilter: x_tables: dont block BH while reading counters\n\nUsing \"iptables -L\" with a lot of rules have a too big BH latency.\nJesper mentioned ~6 ms and worried of frame drops.\n\nSwitch to a per_cpu seqlock scheme, so that taking a snapshot of\ncounters doesnt need to block BH (for this cpu, but also other cpus).\n\nThis adds two increments on seqlock sequence per ipt_do_table() call,\nits a reasonable cost for allowing \"iptables -L\" not block BH\nprocessing.\n\nReported-by: Jesper Dangaard Brouer \u003chawk@comx.dk\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Patrick McHardy \u003ckaber@trash.net\u003e\nAcked-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nAcked-by: Jesper Dangaard Brouer \u003chawk@comx.dk\u003e\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\n"
    },
    {
      "commit": "d96336b05d718b03ff03c94c0dc0cc283a29d534",
      "tree": "7452c001a17b3c01fda7696ec9160abb38c8b66a",
      "parents": [
        "8057b9653923bd762d89ccb730c76cba40ce96f0"
      ],
      "author": {
        "name": "Josh Hunt",
        "email": "johunt@akamai.com",
        "time": "Mon Dec 27 13:46:38 2010 -0800"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Jan 10 19:04:08 2011 +0100"
      },
      "message": "ext2: Resolve \u0027dereferencing pointer to incomplete type\u0027 when enabling EXT2_XATTR_DEBUG\n\nWhen I enable EXT2_XATTR_DEBUG in fs/ext2/xattr.c I get a build error stating\nthe following:\n\n  CC      fs/ext2/xattr.o\nfs/ext2/xattr.c: In function \u0027ext2_xattr_cache_insert\u0027:\nfs/ext2/xattr.c:841: error: dereferencing pointer to incomplete type\nfs/ext2/xattr.c:846: error: dereferencing pointer to incomplete type\nmake[2]: *** [fs/ext2/xattr.o] Error 1\nmake[1]: *** [fs/ext2] Error 2\nmake: *** [fs] Error 2\n\nThese lines reference ext2_xattr_cache-\u003ec_entry_count which is defined\nin struct mb_cache. struct mb_cache is currently only defined in fs/mbcache.c.\nMoving struct mb_cache definition to include/linux/mbcache.h to resolve the\nissue.\n\nSigned-off-by: Josh Hunt \u003cjohunt@akamai.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "a4ae3094869f18e26ece25ad175bbe4cd740e60b",
      "tree": "dea6bfdc5c0e3e34b2bd74cffae147220c4cc855",
      "parents": [
        "40a063f6691ce937a3d00c9700b6964b5ec4e022"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Tue Dec 07 11:55:27 2010 -0600"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Jan 10 19:04:07 2011 +0100"
      },
      "message": "ext3: speed up file creates by optimizing rec_len functions\n\nThe addition of 64k block capability in the rec_len_from_disk\nand rec_len_to_disk functions added a bit of math overhead which\nslows down file create workloads needlessly when the architecture\ncannot even support 64k blocks, thanks to page size limits.\n\nSimilar changes already exist in the ext4 codebase.\n\nThe directory entry checking can also be optimized a bit\nby sprinkling in some unlikely() conditions to move the\nerror handling out of line.\n\nbonnie++ sequential file creates on a 512MB ramdisk speeds up\nfrom about 77,000/s to about 82,000/s, about a 6% improvement.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "055adcbd7da75868697e767adc4f3272f6cae76c",
      "tree": "613866918d108adf8536a0d0aab0f1d3bc2c5072",
      "parents": [
        "9c52749232b5cef506877ac633ea14083bd17e02"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Nov 23 18:49:54 2010 -0800"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Jan 10 19:04:05 2011 +0100"
      },
      "message": "quota: Use %pV and __attribute__((format (printf in __quota_error and fix fallout\n\nUse %pV in __quota_error so a single printk can not be\ninterleaved with other logging messages.\nAdd __attribute__((format (printf, 3, 4))) so format\nand arguments can be verified by compiler.\nMake sure printk formats and arguments match.\n\nBlock # needed a pointer dereference.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "b853b96b1dbdc05fc8eae141a595366d8172962b",
      "tree": "d0f7eb47da8263f2ac35554ead88a8cf70cd99cf",
      "parents": [
        "ad1857a0e0cb29313efae3bb69c913b2c3c833a1"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Mon Nov 22 12:29:17 2010 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Jan 10 19:03:58 2011 +0100"
      },
      "message": "ext3: Add batched discard support for ext3\n\nWalk through allocation groups and trim all free extents. It can be\ninvoked through FITRIM ioctl on the file system. The main idea is to\nprovide a way to trim the whole file system if needed, since some SSD\u0027s\nmay suffer from performance loss after the whole device was filled (it\ndoes not mean that fs is full!).\n\nIt search for free extents in allocation groups specified by Byte range\nstart -\u003e start+len. When the free extent is within this range, blocks are\nmarked as used and then trimmed. Afterwards these blocks are marked as\nfree in per-group bitmap.\n\n[JK: Fixed up error handling and trimming of a single group]\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\nReviewed-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "8aefcd557d26d0023a36f9ec5afbf55e59f8f26b",
      "tree": "e13143306cd64525cddd2cc2513c448275a1d95a",
      "parents": [
        "353eb83c1422c6326eaab30ce044a179c6018169"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:29:43 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:29:43 2011 -0500"
      },
      "message": "ext4: dynamically allocate the jbd2_inode in ext4_inode_info as necessary\n\nReplace the jbd2_inode structure (which is 48 bytes) with a pointer\nand only allocate the jbd2_inode when it is needed --- that is, when\nthe file system has a journal present and the inode has been opened\nfor writing.  This allows us to further slim down the ext4_inode_info\nstructure.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "1a7d946993aaf2a79e9c65abbe169a108e351bcb",
      "tree": "8580fe6e0a610ae950dfbb0aaf4f588635f4aad9",
      "parents": [
        "0c51a4d8abd6ed5ba55f828840c6b78ab672644b"
      ],
      "author": {
        "name": "Mattia Dongili",
        "email": "malattia@linux.it",
        "time": "Sat Jan 08 18:47:29 2011 +0900"
      },
      "committer": {
        "name": "Matthew Garrett",
        "email": "mjg@redhat.com",
        "time": "Mon Jan 10 12:00:22 2011 -0500"
      },
      "message": "sony-laptop: support new hotkeys on the P, Z and EC series\n\nAdd new mappings for assist, VAIO, zoom and eject buttons present on\nrefurbished P, Z and EC models.\n\nReported-by: Gyorgy Jeney \u003cnog.lkml@gmail.com\u003e\nReported-by: Stephan Mueller \u003csmueller@chronox.de\u003e\nCc: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\nCc: Matthew Garrett \u003cmjg@redhat.com\u003e\nSigned-off-by: Mattia Dongili \u003cmalattia@linux.it\u003e\nSigned-off-by: Matthew Garrett \u003cmjg@redhat.com\u003e\n"
    },
    {
      "commit": "a08948812b30653eb2c536ae613b635a989feb6f",
      "tree": "7f648ea16caf9c210dcdd4f30e13648f51624830",
      "parents": [
        "0bd2cbcdfaff9cb22267d66fc843fa4f73f0c281",
        "6099469805c24af14250e182bb9ca082b8a6b716"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 08:57:46 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 08:57:46 2011 -0800"
      },
      "message": "Merge branch \u0027hwmon-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/staging\n\n* \u0027hwmon-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/staging: (44 commits)\n  hwmon: Support for Dallas Semiconductor DS620\n  hwmon: driver for Sensirion SHT21 humidity and temperature sensor\n  hwmon: Add humidity attribute to sysfs ABI\n  hwmon: sysfs ABI updates\n  hwmon: (via-cputemp) sync hotplug handling with coretemp/pkgtemp\n  hwmon: (lm95241) Rewrite to avoid using macros\n  hwmon: (applesmc) Fix checkpatch errors and fix value range checks\n  hwmon: (applesmc) Update copyright information\n  hwmon: (applesmc) Silence driver\n  hwmon: (applesmc) Simplify feature sysfs handling\n  hwmon: (applesmc) Dynamic creation of fan files\n  hwmon: (applesmc) Extract all features generically\n  hwmon: (applesmc) Handle new temperature format\n  hwmon: (applesmc) Dynamic creation of temperature files\n  hwmon: (applesmc) Introduce a register lookup table\n  hwmon: (applesmc) Use pr_fmt and pr_\u003clevel\u003e\n  hwmon: (applesmc) Relax the severity of device init failure\n  hwmon: (applesmc) Add MacBookAir3,1(3,2) support\n  hwmon: (w83627hf) Use pr_fmt and pr_\u003clevel\u003e\n  hwmon: (w83627ehf) Use pr_fmt and pr_\u003clevel\u003e\n  ...\n"
    },
    {
      "commit": "0bd2cbcdfaff9cb22267d66fc843fa4f73f0c281",
      "tree": "7d9732bcf5f2f646cb0c2c529c48b454b15d4ae2",
      "parents": [
        "57cc7215b70856dc6bae8e55b00ecd7b1d7429b1",
        "a081748735c5feb96b1365e78a5ff0fb6ca7e3a4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 08:57:03 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 08:57:03 2011 -0800"
      },
      "message": "Merge branch \u0027next-devicetree\u0027 of git://git.secretlab.ca/git/linux-2.6\n\n* \u0027next-devicetree\u0027 of git://git.secretlab.ca/git/linux-2.6: (29 commits)\n  of/flattree: forward declare struct device_node in of_fdt.h\n  ipmi: explicitly include of_address.h and of_irq.h\n  sparc: explicitly cast negative phandle checks to s32\n  powerpc/405: Fix missing #{address,size}-cells in i2c node\n  powerpc/5200: dts: refactor dts files\n  powerpc/5200: dts: Change combatible strings on localbus\n  powerpc/5200: dts: remove unused properties\n  powerpc/5200: dts: rename nodes to prepare for refactoring dts files\n  of/flattree: Update dtc to current mainline.\n  of/device: Don\u0027t register disabled devices\n  powerpc/dts: fix syntax bugs in bluestone.dts\n  of: Fixes for OF probing on little endian systems\n  of: make drivers depend on CONFIG_OF instead of CONFIG_PPC_OF\n  of/flattree: Add of_flat_dt_match() helper function\n  of_serial: explicitly include of_irq.h\n  of/flattree: Refactor unflatten_device_tree and add fdt_unflatten_tree\n  of/flattree: Reorder unflatten_dt_node\n  of/flattree: Refactor unflatten_dt_node\n  of/flattree: Add non-boottime device tree functions\n  of/flattree: Add Kconfig for EARLY_FLATTREE\n  ...\n\nFix up trivial conflict in arch/sparc/prom/tree_32.c as per Grant.\n"
    },
    {
      "commit": "57cc7215b70856dc6bae8e55b00ecd7b1d7429b1",
      "tree": "f6dedefd41e6745a9b801166b99af7d830e41ef2",
      "parents": [
        "37721e1b0cf98cb65895f234d8c500d270546529"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Jan 10 08:18:25 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 08:51:44 2011 -0800"
      },
      "message": "headers: kobject.h redux\n\nRemove kobject.h from files which don\u0027t need it, notably,\nsched.h and fs.h.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "37721e1b0cf98cb65895f234d8c500d270546529",
      "tree": "6fb3ec6910513b18e100b17432864fa8c46d55e4",
      "parents": [
        "9f99a2f0e44663517b99b69a3e4a499d0ba877df"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Jan 10 08:17:10 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 08:51:44 2011 -0800"
      },
      "message": "headers: path.h redux\n\nRemove path.h from sched.h and other files.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a1e8fad5900fa94adb500c6e0dfd60a307f7a3c9",
      "tree": "c619277e587a99c90e76a1e7b63746af4d959d72",
      "parents": [
        "e3166331a3288dd7184548896a1c7ab682f0dbe8",
        "a45b0616e7ee9db4c1b2b9a4a79a974325fa9bf3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 08:38:01 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 08:38:01 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6:\n  slub: Fix a crash during slabinfo -v\n  tracing/slab: Move kmalloc tracepoint out of inline code\n  slub: Fix slub_lock down/up imbalance\n  slub: Fix build breakage in Documentation/vm\n  slub tracing: move trace calls out of always inlined functions to reduce kernel code size\n  slub: move slabinfo.c to tools/slub/slabinfo.c\n"
    },
    {
      "commit": "0c05384a5a1af2352b8c244cf32f480ba6cbf024",
      "tree": "5090f9d2d07d0bccae3144bb0cdbdf15e8555013",
      "parents": [
        "1542dec1c9109fdcd1c53460f064096f24fc49d2",
        "bc91c9f313309915f6ec767f56f78dcd0305b20f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 08:27:52 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 08:27:52 2011 -0800"
      },
      "message": "Merge branch \u0027kbuild\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6\n\n* \u0027kbuild\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6:\n  mkuboot.sh: Fail if mkimage is missing\n  gen_init_cpio: checkpatch fixes\n  gen_init_cpio: Avoid race between call to stat() and call to open()\n  modpost: Fix address calculation in reloc_location()\n  Make fixdep error handling more explicit\n  checksyscalls: Fix stand-alone usage\n  modpost: Put .zdebug* section on white list\n  kbuild: fix interaction of CONFIG_IKCONFIG and KCONFIG_CONFIG\n  kbuild: export linux/{a.out,kvm,kvm_para}.h on headers_install_all\n  kbuild: introduce HDR_ARCH_LIST for headers_install_all\n  headers_install: check exit status of unifdef\n  gen_init_cpio: remove leading `/\u0027 from file names\n  scripts/genksyms: fix header usage\n  fixdep: use hash table instead of a single array\n"
    },
    {
      "commit": "1542dec1c9109fdcd1c53460f064096f24fc49d2",
      "tree": "6b100234ff75d462817b948772f5f62aebcf0503",
      "parents": [
        "facc7a96d443d84060a8679c3fcc51d20d4981c3",
        "2ad2c320a107aceeba984f97ab2a60064101f5d5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 08:22:33 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 08:22:33 2011 -0800"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:\n  pata_platform: Remove CONFIG_HAVE_PATA_PLATFORM\u0027s dependencies.\n  pata_hpt37x: actually limit HPT370 to UltraDMA/66\n  pata_hpt3x2n: coding style cleanup\n  pata_hpt37x: coding style cleanup\n  pata_hpt366: coding style cleanup\n  pata_hpt3x2n: calculate average f_CNT\n  pata_hpt3x2n: clarify about HPT371N support\n  pata_hpt{37x|3x2n}: SATA mode filtering\n  [libata] avoid needlessly passing around ptr to SCSI completion func\n  [libata] new driver acard_ahci, for ATP8620 host controller\n"
    },
    {
      "commit": "facc7a96d443d84060a8679c3fcc51d20d4981c3",
      "tree": "e2d633b07766609aedac0708adcde2bc2e37e68a",
      "parents": [
        "c8940eca75e6d1ea57f6c491a30bd1023c64c9ad",
        "4ead36407b41eae942c8c9f70ef963cd369c90e2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 08:15:37 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 08:15:37 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (34 commits)\n  HID: roccat: Update sysfs attribute doc\n  HID: roccat: don\u0027t use #pragma pack\n  HID: roccat: Add support for Roccat Kone[+] v2\n  HID: roccat: reduce number of functions in kone and pyra drivers\n  HID: roccat: declare meaning of pack pragma usage in driver headers\n  HID: roccat: use class for char device for sysfs attribute creation\n  sysfs: Introducing binary attributes for struct class\n  HID: hidraw: add compatibility ioctl() for 32-bit applications.\n  HID: hid-picolcd: Fix memory leak in picolcd_debug_out_report()\n  HID: picolcd: fix misuse of logical operation in place of bitop\n  HID: usbhid: base runtime PM on modern API\n  HID: replace offsets values with their corresponding BTN_* defines\n  HID: hid-mosart: support suspend/resume\n  HID: hid-mosart: ignore buttons report\n  HID: hid-picolcd: don\u0027t use flush_scheduled_work()\n  HID: simplify an index check in hid_lookup_collection\n  HID: Hoist assigns from ifs\n  HID: Remove superfluous __inline__\n  HID: Use vzalloc for vmalloc/memset(,0...)\n  HID: Add and use hid_\u003clevel\u003e: dev_\u003clevel\u003e equivalents\n  ...\n"
    },
    {
      "commit": "c8940eca75e6d1ea57f6c491a30bd1023c64c9ad",
      "tree": "d68944ab9fa8ba3c77b18edc2bd836c7e355b23e",
      "parents": [
        "78c92a9fd4b6abbbc1fe1ec335c697cb4e63f252",
        "3ae22e8c8ac39daf88ae32f047fb23825be7c646"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 08:14:53 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 08:14:53 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:\n  spi / PM: Support dev_pm_ops\n  PM: Prototype the pm_generic_ operations\n  PM / Runtime: Generic resume shouldn\u0027t set RPM_ACTIVE unconditionally\n  PM: Use dev_name() in core device suspend and resume routines\n  PM: Permit registration of parentless devices during system suspend\n  PM: Replace the device power.status field with a bit field\n  PM: Remove redundant checks from core device resume routines\n  PM: Use a different list of devices for each stage of device suspend\n  PM: Avoid compiler warning in pm_noirq_op()\n  PM: Use pm_wakeup_pending() in __device_suspend()\n  PM / Wakeup: Replace pm_check_wakeup_events() with pm_wakeup_pending()\n  PM: Prevent dpm_prepare() from returning errors unnecessarily\n  PM: Fix references to basic-pm-debugging.txt in drivers-testing.txt\n  PM / Runtime: Add synchronous runtime interface for interrupt handlers (v3)\n  PM / Hibernate: When failed, in_suspend should be reset\n  PM / Hibernate: hibernation_ops-\u003eleave should be checked too\n  Freezer: Fix a race during freezing of TASK_STOPPED tasks\n  PM: Use proper ccflag flag in kernel/power/Makefile\n  PM / Runtime: Fix comments to match runtime callback code\n"
    },
    {
      "commit": "78c92a9fd4b6abbbc1fe1ec335c697cb4e63f252",
      "tree": "a04527a9a6ecb532439b84b6a6b143fac75ce594",
      "parents": [
        "b65f0d673a0280a49b80f44c9a62e5dfc1ec203f",
        "410cf2bd3dc6ec1ed9e1b36b25b9d7aa927ed14e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 08:14:02 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 08:14:02 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:\n  firewire: use split transaction timeout only for split transactions\n  firewire: ohci: consolidate context status flags\n  firewire: ohci: cache the context run bit\n  firewire: ohci: flush AT contexts after bus reset - addendum\n  firewire: ohci: flush AT contexts after bus reset for OHCI 1.2\n  firewire: net: set carrier state at ifup\n  firewire: net: add carrier detection\n  firewire: net: ratelimit error messages\n  firewire: ohci: restart iso DMA contexts on resume from low power mode\n  firewire: ohci: restore GUID on resume.\n  firewire: ohci: use common buffer for self IDs and AR descriptors\n  firewire: ohci: optimize iso context checks in the interrupt handler\n  firewire: make PHY packet header format consistent\n  firewire: ohci: properly clear posted write errors\n  firewire: ohci: flush MMIO writes in the interrupt handler\n  firewire: ohci: fix AT context initialization error handling\n  firewire: ohci: Asynchronous Reception rewrite\n  firewire: core: Update WARN uses\n  firewire: nosy: char device is not seekable\n"
    },
    {
      "commit": "7d44b0440147d83a65270205b22e7d365de28948",
      "tree": "0adc818f569f45912a19482773dabbf71b191b9d",
      "parents": [
        "0dc1488527a3c01383a50e5df7187219567586a3",
        "1baa26b2be92fe9917e2f7ef46d423b5dfa4da71"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 07:43:54 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 07:43:54 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:\n  fuse: fix ioctl ABI\n  fuse: allow batching of FORGET requests\n  fuse: separate queue for FORGET requests\n  fuse: ioctl cleanup\n\nFix up trivial conflict in fs/fuse/inode.c due to RCU lookup having done\nthe RCU-freeing of the inode in fuse_destroy_inode().\n"
    },
    {
      "commit": "0dc1488527a3c01383a50e5df7187219567586a3",
      "tree": "487bbeaed9a9bc6cafabeed0f17be3ae888b5442",
      "parents": [
        "175881db8916a5f5cdf920d32214caef588870fd"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Sat Jan 08 19:40:33 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 07:38:54 2011 -0800"
      },
      "message": "pipe_fs_i.h: fix kernel-doc warning\n\nFix kernel-doc notation warnings in pipe_fs_i.h:\n\n  Warning(include/linux/pipe_fs_i.h:58): No description found for parameter \u0027buffers\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "175881db8916a5f5cdf920d32214caef588870fd",
      "tree": "a29271558505156de398ad6886b7c4adf8066b11",
      "parents": [
        "2a8c0c68487a68441e701f493f43fd547d87c8df"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Sat Jan 08 19:38:02 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 07:38:53 2011 -0800"
      },
      "message": "hrtimer.h: fix kernel-doc warning\n\nFix new kernel-doc notation warning in hrtimer.h:\n\n  Warning(include/linux/hrtimer.h:150): Excess struct/union/enum/typedef member \u0027first\u0027 description in \u0027hrtimer_clock_base\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2a8c0c68487a68441e701f493f43fd547d87c8df",
      "tree": "0731938d08b2d171aa40cff6c24f6183e06a9d01",
      "parents": [
        "39191628ed169510db2f3f472e1ec14e08f9690f"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Sat Jan 08 19:37:20 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 07:38:53 2011 -0800"
      },
      "message": "fs: fix dcache.h kernel-doc notation\n\nFix new kernel-doc notation warning in dcache.h:\n\n  Warning(include/linux/dcache.h:316): Excess function parameter \u0027Returns\u0027 description in \u0027__d_rcu_to_refcount\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc:\tNick Piggin \u003cnpiggin@kernel.dk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fc741216db156994c554ac31c1151fe0e00d8f0e",
      "tree": "692c6278f1c20e4452620adee1ea3cd05d878819",
      "parents": [
        "f01a5236bd4b140198fbcc550f085e8361fd73fa"
      ],
      "author": {
        "name": "Jesse Gross",
        "email": "jesse@nicira.com",
        "time": "Sun Jan 09 06:23:32 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jan 09 23:35:34 2011 -0800"
      },
      "message": "net offloading: Pass features into netif_needs_gso().\n\nNow that there is a single function that can compute the device\nfeatures relevant to a packet, we don\u0027t want to run it for each\noffload.  This converts netif_needs_gso() to take the features\nof the device, rather than computing them itself.\n\nSigned-off-by: Jesse Gross \u003cjesse@nicira.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f01a5236bd4b140198fbcc550f085e8361fd73fa",
      "tree": "01d122dcd3aa7e8e1f84f11f74f5c30593a5f850",
      "parents": [
        "9497a0518e8183959e45da05f317f1cb36f2cd7c"
      ],
      "author": {
        "name": "Jesse Gross",
        "email": "jesse@nicira.com",
        "time": "Sun Jan 09 06:23:31 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jan 09 23:35:33 2011 -0800"
      },
      "message": "net offloading: Generalize netif_get_vlan_features().\n\nnetif_get_vlan_features() is currently only used by netif_needs_gso(),\nso it only concerns itself with GSO features.  However, several other\nplaces also should take into account the contents of the packet when\ndeciding whether to offload to hardware.  This generalizes the function\nto return features about all of the various forms of offloading.  Since\noffloads tend to be linked together, this avoids duplicating the logic\nin each location (i.e. the scatter/gather code also needs the checksum\nlogic).\n\nSuggested-by: Michał Mirosław \u003cmirqus@gmail.com\u003e\nSigned-off-by: Jesse Gross \u003cjesse@nicira.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "49da97dcb6b00a6869bbc3fa6ec7fdfd8a6e41a3",
      "tree": "8d558ccfa1cd3c7c20bf0822250a4631d00519c4",
      "parents": [
        "8649a230e33320b00f778a6f7c17a2764e844730"
      ],
      "author": {
        "name": "Shawn Guo",
        "email": "shawn.guo@freescale.com",
        "time": "Wed Jan 05 21:13:11 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jan 09 15:42:55 2011 -0800"
      },
      "message": "net/fec: add mac field into platform data and consolidate fec_get_mac\n\nAdd mac field into fec_platform_data and consolidate function\nfec_get_mac to get mac address in following order.\n\n 1) module parameter via kernel command line fec.macaddr\u003d0x00,0x04,...\n 2) from flash in case of CONFIG_M5272 or fec_platform_data mac\n    field for others, which typically have mac stored in fuse\n 3) fec mac address registers set by bootloader\n\nSigned-off-by: Shawn Guo \u003cshawn.guo@freescale.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "aeda4ac3efc29e4d55989abd0a73530453aa69ba",
      "tree": "35b3d2cca8bfb49cf08bf1c6b55b586c1e5971e7",
      "parents": [
        "d2e7ad19229f982fc1eb731827d82ceac90abfb3",
        "350e4f31e0eaf56dfc3b328d24a11bdf42a41fb8"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Jan 10 10:40:42 2011 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Jan 10 10:40:42 2011 +1100"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.infradead.org/users/eparis/selinux into next\n"
    },
    {
      "commit": "d2e7ad19229f982fc1eb731827d82ceac90abfb3",
      "tree": "98a3741b4d4b27a48b3c7ea9babe331e539416a8",
      "parents": [
        "d03a5d888fb688c832d470b749acc5ed38e0bc1d",
        "0c21e3aaf6ae85bee804a325aa29c325209180fd"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Jan 10 09:46:24 2011 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Jan 10 09:46:24 2011 +1100"
      },
      "message": "Merge branch \u0027master\u0027 into next\n\nConflicts:\n\tsecurity/smack/smack_lsm.c\n\nVerified and added fix by Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nOk\u0027d by Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "6099469805c24af14250e182bb9ca082b8a6b716",
      "tree": "9b08dd1a10ff89f2557575f5bf95b07babf92beb",
      "parents": [
        "430400b86304ea729ba10f2966a8af67da60a37f"
      ],
      "author": {
        "name": "Roland Stigge",
        "email": "stigge@antcom.de",
        "time": "Sun Jan 09 09:31:39 2011 -0500"
      },
      "committer": {
        "name": "Guenter Roeck",
        "email": "guenter.roeck@ericsson.com",
        "time": "Sun Jan 09 09:10:10 2011 -0800"
      },
      "message": "hwmon: Support for Dallas Semiconductor DS620\n\nDriver for Dallas Semiconductor DS620 temperature sensor and thermostat\n\nSigned-off-by: Roland Stigge \u003cstigge@antcom.de\u003e\nSigned-off-by: Guenter Roeck \u003cguenter.roeck@ericsson.com\u003e\n"
    },
    {
      "commit": "a45b0616e7ee9db4c1b2b9a4a79a974325fa9bf3",
      "tree": "661b2cc7b0117fc1bbec27fc196c059002b4698b",
      "parents": [
        "3c0eee3fe6a3a1c745379547c7e7c904aa64f6d5",
        "8165984acf825917437debae519209073c32a5a7"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@kernel.org",
        "time": "Sun Jan 09 11:05:53 2011 +0200"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@kernel.org",
        "time": "Sun Jan 09 11:05:53 2011 +0200"
      },
      "message": "Merge branch \u0027slab/next\u0027 into for-linus\n"
    },
    {
      "commit": "845ecd20239c28e97e766ff54078a58be19f3a91",
      "tree": "ac25a1b5e5769c9207c9fd886acd4380a3184701",
      "parents": [
        "39a65a0dbbf73403daa9f4cc0ab30957ba61e60f"
      ],
      "author": {
        "name": "Arnd Hannemann",
        "email": "arnd@arndnet.de",
        "time": "Tue Dec 28 23:22:31 2010 +0100"
      },
      "committer": {
        "name": "Chris Ball",
        "email": "cjb@laptop.org",
        "time": "Sat Jan 08 23:52:30 2011 -0500"
      },
      "message": "mmc: tmio_mmc: implement SDIO IRQ support\n\nThis patch implements SDIO IRQ support for mfds which\nannounce the TMIO_MMC_SDIO_IRQ flag for tmio_mmc.\nIf MMC_CAP_SDIO_IRQ is also set SDIO IRQ signalling is activated.\nTested with a b43-based wireless SDIO card and sh_mobile_sdhi.\n\nSigned-off-by: Arnd Hannemann \u003carnd@arndnet.de\u003e\nSigned-off-by: Chris Ball \u003ccjb@laptop.org\u003e\n"
    },
    {
      "commit": "93173054f2979de41b1912b19f0b57edfb35fcdc",
      "tree": "14c2872048dde7e15d386f1211836c86b1b6c69f",
      "parents": [
        "e0bc6ff8b8d5c066d978d23e690d5599db4cb2b3"
      ],
      "author": {
        "name": "Guennadi Liakhovetski",
        "email": "g.liakhovetski@gmx.de",
        "time": "Wed Dec 22 12:02:15 2010 +0100"
      },
      "committer": {
        "name": "Chris Ball",
        "email": "cjb@laptop.org",
        "time": "Sat Jan 08 23:52:29 2011 -0500"
      },
      "message": "mmc: tmio_mmc: implement a bounce buffer for unaligned DMA\n\nFor example, with SDIO WLAN cards, some transfers happen with buffers at\nodd addresses, whereas the SH-Mobile DMA engine requires even addresses\nfor SDHI. This patch extends the tmio driver with a bounce buffer, that\nis used for single entry scatter-gather lists both for sending and\nreceiving. If we ever encounter unaligned transfers with multi-element\nsg lists, this patch will have to be extended. For now it just falls\nback to PIO in this and other unsupported cases.\n\nSigned-off-by: Guennadi Liakhovetski \u003cg.liakhovetski@gmx.de\u003e\nAcked-by: Samuel Ortiz \u003csameo@linux.intel.com\u003e\nSigned-off-by: Chris Ball \u003ccjb@laptop.org\u003e\n"
    },
    {
      "commit": "f95f3850f7a9e1d49ebc5b6e72e7cc3ec3685b0b",
      "tree": "2903746678fde809a1fcede6ce16cd9f45334214",
      "parents": [
        "03d2bfc878e4dff9e596accc7b7eccf947804a3c"
      ],
      "author": {
        "name": "Will Newton",
        "email": "will.newton@gmail.com",
        "time": "Sun Jan 02 01:11:59 2011 -0500"
      },
      "committer": {
        "name": "Chris Ball",
        "email": "cjb@laptop.org",
        "time": "Sat Jan 08 23:52:24 2011 -0500"
      },
      "message": "mmc: dw_mmc: Add Synopsys DesignWare mmc host driver.\n\nThis adds the mmc host driver for the Synopsys DesignWare mmc\nhost controller, found in a number of embedded SoC designs.\n\nSigned-off-by: Will Newton \u003cwill.newton@imgtec.com\u003e\nReviewed-by: Matt Fleming \u003cmatt@console-pimps.org\u003e\nReviewed-by: Chris Ball \u003ccjb@laptop.org\u003e\nSigned-off-by: Chris Ball \u003ccjb@laptop.org\u003e\n"
    },
    {
      "commit": "30652aa36b58d57fcc1a0acce51e391bbb6edf5e",
      "tree": "80743c840e0456381b4e1aea223661eb694a976e",
      "parents": [
        "c288b85554097a3d1271f935c48b442280b2db9e"
      ],
      "author": {
        "name": "Olof Johansson",
        "email": "olof@lixom.net",
        "time": "Sat Jan 01 18:37:32 2011 -0600"
      },
      "committer": {
        "name": "Chris Ball",
        "email": "cjb@laptop.org",
        "time": "Sat Jan 08 23:52:23 2011 -0500"
      },
      "message": "mmc: sdhci: add quirk for max len ADMA descriptors\n\nSome controllers misparse segment length 0 as being 0, not 65536. Add\na quirk to deal with it.\n\nSigned-off-by: Olof Johansson \u003colof@lixom.net\u003e\nReviewed-by: Chris Ball \u003ccjb@laptop.org\u003e\nSigned-off-by: Chris Ball \u003ccjb@laptop.org\u003e\n"
    },
    {
      "commit": "22113efd00491310da802f3b1a9a66cfcf415fac",
      "tree": "1faf6e99a591f9b6856bab6c8318eeeacb076051",
      "parents": [
        "e6f29a8dc1602e170daf955233891a9130573a55"
      ],
      "author": {
        "name": "Aries Lee",
        "email": "arieslee@jmicron.com",
        "time": "Wed Dec 15 08:14:24 2010 +0100"
      },
      "committer": {
        "name": "Chris Ball",
        "email": "cjb@laptop.org",
        "time": "Sat Jan 08 23:52:09 2011 -0500"
      },
      "message": "mmc: Test bus-width for old MMC devices\n\nSome old MMC devices fail with the 4/8 bits the driver tries to use\nexclusively.  This patch adds a test for the given bus setup and falls\nback to the lower bit mode (until 1-bit mode) when the test fails.\n\n[Major rework and refactoring by tiwai]\n[Quirk addition and many fixes by prakity]\n\nSigned-off-by: Aries Lee \u003carieslee@jmicron.com\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nSigned-off-by: Philip Rakity \u003cprakity@marvell.com\u003e\nTested-by: Philip Rakity \u003cprakity@marvell.com\u003e\nSigned-off-by: Chris Ball \u003ccjb@laptop.org\u003e\n"
    },
    {
      "commit": "a081748735c5feb96b1365e78a5ff0fb6ca7e3a4",
      "tree": "d9eda8a39ba1f4b7849e1fd63c3a0e5ff0215c27",
      "parents": [
        "672d8eafe38e9324055b8c0d0ad6e95c43b6d52a"
      ],
      "author": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Sat Jan 08 21:42:42 2011 -0700"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Sat Jan 08 21:42:42 2011 -0700"
      },
      "message": "of/flattree: forward declare struct device_node in of_fdt.h\n\nThis patch forward declares struct device_node to fix a compile error\nwhen of_fdt.h is included, but of.h is not.  Alternately, including\nlinux/of.h could have been added to of_fdt.h, but that pulls in a lot\nof unnecessary declarations when only working with the flattened\nform.\n\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "080bc9774b6f1e3866747b18631bad26f47c22ce",
      "tree": "07ac4d1539b75036083d8b3c499e213fcca09cc4",
      "parents": [
        "e594573d790bd7e269f05955d316b88f7be0c14a"
      ],
      "author": {
        "name": "Ohad Ben-Cohen",
        "email": "ohad@wizery.com",
        "time": "Sun Nov 28 07:21:29 2010 +0200"
      },
      "committer": {
        "name": "Chris Ball",
        "email": "cjb@laptop.org",
        "time": "Sat Jan 08 22:48:17 2011 -0500"
      },
      "message": "mmc: sdio: don\u0027t reinitialize nonremovable powered-resumed cards\n\nUpon system resume, SDIO core must reinitialize cards that were\npowered off during suspend.\n\nIf the card had its power kept during suspend (and thus it is\n\u0027powered-resumed\u0027), SDIO core performs only a limited reinitializing,\nmainly needed to make sure that the card wasn\u0027t removed/replaced.\n\nIf a __nonremovable__ card is powered-resumed, we can safely skip the\nreinitializing phase.\n\nNote: 9b966aa (mmc: sdio: fully reconfigure oldcard on resume) removed\nthe bus width reconfiguration since mmc_sdio_init_card already does it.\nIt is brought back now in case mmc_sdio_init_card is skipped.\n\nSigned-off-by: Ohad Ben-Cohen \u003cohad@wizery.com\u003e\nSigned-off-by: Chris Ball \u003ccjb@laptop.org\u003e\n"
    },
    {
      "commit": "8f230f454fe04ba326ffaead3a6b88dcf44eaf4b",
      "tree": "9f5c43b48aa84131f7b94b44e4d500e0ec271ba0",
      "parents": [
        "150ee73d1b35936aafc5fd3b39a7291b1f66de07"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Wed Dec 08 10:04:30 2010 +0100"
      },
      "committer": {
        "name": "Chris Ball",
        "email": "cjb@laptop.org",
        "time": "Sat Jan 08 22:48:04 2011 -0500"
      },
      "message": "mmc: Add support for JMicron 388 SD/MMC controller\n\nJMicron 388 SD/MMC combo controller supports the 1.8V low-voltage for\nSD, but MMC doesn\u0027t work with the low-voltage, resulting in an error\nat probing.\n\nThis patch adds the support for multiple voltage mask per device type,\nso that SD works with 1.8V while MMC forces 3.3V.  Here new ocr_avail_*\nfields for each device are introduced, so that the actual OCR mask is\nswitched dynamically.\n\nAlso, the restriction of low-voltage in core/sd.c is removed when the\nbit is allowed explicitly via ocr_avail_sd mask.\n\nThis patch was rewritten from scratch based on Aries\u0027 original code.\n\nSigned-off-by: Aries Lee \u003carieslee@jmicron.com\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nReviewed-by: Chris Ball \u003ccjb@laptop.org\u003e\nSigned-off-by: Chris Ball \u003ccjb@laptop.org\u003e\n"
    },
    {
      "commit": "04566831a703ae3ef4b49a2deae261c9ed26e020",
      "tree": "5dbf02cc4733de2959b5d40f848a74b758804c61",
      "parents": [
        "26daa1ed40c6b31b4220581431982814c47c608a"
      ],
      "author": {
        "name": "Linus Walleij",
        "email": "linus.walleij@stericsson.com",
        "time": "Mon Nov 08 21:36:50 2010 -0500"
      },
      "committer": {
        "name": "Chris Ball",
        "email": "cjb@laptop.org",
        "time": "Sat Jan 08 22:48:03 2011 -0500"
      },
      "message": "mmc: Aggressive clock gating framework\n\nThis patch modifies the MMC core code to optionally call the set_ios()\noperation on the driver with the clock frequency set to 0 (gate) after\na grace period of at least 8 MCLK cycles, then restore it (ungate)\nbefore any new request. This gives the driver the option to shut down\nthe MCI clock to the MMC/SD card when the clock frequency is 0, i.e.\nthe core has stated that the MCI clock does not need to be generated.\n\nIt is inspired by existing clock gating code found in the OMAP and\nAtmel drivers and brings this up to the host abstraction.  Gating is\nperformed before and after any MMC request.\n\nThis patchset implements this for the MMCI/PL180 MMC/SD host controller,\nbut it should be simple to switch OMAP/Atmel over to using this instead.\n\nmmc_set_{gated,ungated}() add variable protection to the state holders\nfor the clock gating code.  This is particularly important when ordinary\n.set_ios() calls would race with the .set_ios() call resulting from a\ndelayed gate operation.\n\nSigned-off-by: Linus Walleij \u003clinus.walleij@stericsson.com\u003e\nReviewed-by: Chris Ball \u003ccjb@laptop.org\u003e\nTested-by: Chris Ball \u003ccjb@laptop.org\u003e\nSigned-off-by: Chris Ball \u003ccjb@laptop.org\u003e\n"
    },
    {
      "commit": "26daa1ed40c6b31b4220581431982814c47c608a",
      "tree": "619f6204fbbe992f7ae9da99cb01e5de6b7a9990",
      "parents": [
        "17d8020d9a4ee7d5965996ea75636dc3d058963f"
      ],
      "author": {
        "name": "Jennifer Li",
        "email": "Jennifer.li@o2micro.com",
        "time": "Wed Nov 17 23:01:59 2010 -0500"
      },
      "committer": {
        "name": "Chris Ball",
        "email": "cjb@laptop.org",
        "time": "Sat Jan 08 22:48:03 2011 -0500"
      },
      "message": "mmc: sdhci: Disable ADMA on some O2Micro SD/MMC parts.\n\nThis patch disables the broken ADMA on selected O2Micro devices.\n\nSigned-off-by: Jennifer Li \u003cJennifer.li@o2micro.com\u003e\nReviewed-by: Chris Ball \u003ccjb@laptop.org\u003e\nSigned-off-by: Chris Ball \u003ccjb@laptop.org\u003e\n"
    },
    {
      "commit": "2d75af2f2a7a6103a6d539a492fe81deacabde44",
      "tree": "283f6f7acc28936e25656502e77e10909fde7d6f",
      "parents": [
        "870915e047a2da695be118d32dd5a900f0c3e933"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Fri Jan 07 13:36:58 2011 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Jan 07 23:36:59 2011 -0500"
      },
      "message": "dynamic debug: Fix build issue with older gcc\n\nOn older gcc (3.3) dynamic debug fails to compile:\n\ninclude/net/inet_connection_sock.h: In function `inet_csk_reset_xmit_timer\u0027:\ninclude/net/inet_connection_sock.h:236: error: duplicate label declaration `do_printk\u0027\ninclude/net/inet_connection_sock.h:219: error: this is a previous declaration\ninclude/net/inet_connection_sock.h:236: error: duplicate label declaration `out\u0027\ninclude/net/inet_connection_sock.h:219: error: this is a previous declaration\ninclude/net/inet_connection_sock.h:236: error: duplicate label `do_printk\u0027\ninclude/net/inet_connection_sock.h:236: error: duplicate label `out\u0027\n\nFix, by reverting the usage of JUMP_LABEL() in dynamic debug for now.\n\nCc: \u003cstable@kernel.org\u003e\nReported-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nTested-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "bd1c8b22b7b81c6f6c4f5c19cb2387da3d02fb0f",
      "tree": "fcfceb5c70b2b6da02ccb5c1a08dc31268db2b7c",
      "parents": [
        "881fe4bdcdc899674524e30a76c76d298b447008"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Jan 04 16:06:09 2011 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Jan 07 20:57:22 2011 -0500"
      },
      "message": "tracepoint: Add __rcu annotation\n\nAdd __rcu annotation to :\n\t(struct tracepoint)-\u003efuncs\n\nAcked-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4D22D4F1.50505@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "ec6e7c3ae39cb1dc279b5274aaaadd09ff8e224b",
      "tree": "5f68f7761cbd7c529dd9d9b31abe14e043e3ded8",
      "parents": [
        "3a9f987b3141f086de27832514aad9f50a53f754"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@efficios.com",
        "time": "Thu Jan 06 13:45:32 2011 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Jan 07 20:53:35 2011 -0500"
      },
      "message": "tracing/trivial: Add missing comma in TRACE_EVENT comment\n\nAdd missing comma within the TRACE_EVENT() example in tracepoint.h.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nLKML-Reference: \u003c20110106184532.GA2526@Krystal\u003e\nCC: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCC: Ingo Molnar \u003cmingo@elte.hu\u003e\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "021db8e2bde53024a163fb4417a185de46fe77aa",
      "tree": "098a28bd2414ea2622493a1736a677dab5085dfc",
      "parents": [
        "72eb6a791459c87a0340318840bb3bd9252b627b",
        "07fe0351702b6f0c9749e80cdbcb758686b0fe9b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 17:08:46 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 17:08:46 2011 -0800"
      },
      "message": "Merge branch \u0027next-spi\u0027 of git://git.secretlab.ca/git/linux-2.6\n\n* \u0027next-spi\u0027 of git://git.secretlab.ca/git/linux-2.6: (77 commits)\n  spi/omap: Fix DMA API usage in OMAP MCSPI driver\n  spi/imx: correct the test on platform_get_irq() return value\n  spi/topcliff: Typo fix threhold to threshold\n  spi/dw_spi Typo change diable to disable.\n  spi/fsl_espi: change the read behaviour of the SPIRF\n  spi/mpc52xx-psc-spi: move probe/remove to proper sections\n  spi/dw_spi: add DMA support\n  spi/dw_spi: change to EXPORT_SYMBOL_GPL for exported APIs\n  spi/dw_spi: Fix too short timeout in spi polling loop\n  spi/pl022: convert running variable\n  spi/pl022: convert busy flag to a bool\n  spi/pl022: pass the returned sglen to the DMA engine\n  spi/pl022: map the buffers on the DMA engine\n  spi/topcliff_pch: Fix data transfer issue\n  spi/imx: remove autodetection\n  spi/pxa2xx: pass of_node to spi device and set a parent device\n  spi/pxa2xx: Modify RX-Tresh instead of busy-loop for the remaining RX bytes.\n  spi/pxa2xx: Add chipselect support for Sodaville\n  spi/pxa2xx: Consider CE4100\u0027s FIFO depth\n  spi/pxa2xx: Add CE4100 support\n  ...\n"
    },
    {
      "commit": "72eb6a791459c87a0340318840bb3bd9252b627b",
      "tree": "3bfb8ad99f9c7e511f37f72d57b56a2cea06d753",
      "parents": [
        "23d69b09b78c4876e134f104a3814c30747c53f1",
        "55ee4ef30241a62b700f79517e6d5ef2ddbefa67"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 17:02:58 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 17:02:58 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\n* \u0027for-2.6.38\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu: (30 commits)\n  gameport: use this_cpu_read instead of lookup\n  x86: udelay: Use this_cpu_read to avoid address calculation\n  x86: Use this_cpu_inc_return for nmi counter\n  x86: Replace uses of current_cpu_data with this_cpu ops\n  x86: Use this_cpu_ops to optimize code\n  vmstat: User per cpu atomics to avoid interrupt disable / enable\n  irq_work: Use per cpu atomics instead of regular atomics\n  cpuops: Use cmpxchg for xchg to avoid lock semantics\n  x86: this_cpu_cmpxchg and this_cpu_xchg operations\n  percpu: Generic this_cpu_cmpxchg() and this_cpu_xchg support\n  percpu,x86: relocate this_cpu_add_return() and friends\n  connector: Use this_cpu operations\n  xen: Use this_cpu_inc_return\n  taskstats: Use this_cpu_ops\n  random: Use this_cpu_inc_return\n  fs: Use this_cpu_inc_return in buffer.c\n  highmem: Use this_cpu_xx_return() operations\n  vmstat: Use this_cpu_inc_return for vm statistics\n  x86: Support for this_cpu_add, sub, dec, inc_return\n  percpu: Generic support for this_cpu_add, sub, dec, inc_return\n  ...\n\nFixed up conflicts: in arch/x86/kernel/{apic/nmi.c, apic/x2apic_uv_x.c, process.c}\nas per Tejun.\n"
    },
    {
      "commit": "23d69b09b78c4876e134f104a3814c30747c53f1",
      "tree": "40744de4f4126c21027ce537264524095e0e7979",
      "parents": [
        "e744070fd4ff9d3114277e52d77afa21579adce2",
        "569ff2de2e1c8ac67c8df3a7367d46d0d9460a35"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 16:58:04 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 16:58:04 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\n* \u0027for-2.6.38\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: (33 commits)\n  usb: don\u0027t use flush_scheduled_work()\n  speedtch: don\u0027t abuse struct delayed_work\n  media/video: don\u0027t use flush_scheduled_work()\n  media/video: explicitly flush request_module work\n  ioc4: use static work_struct for ioc4_load_modules()\n  init: don\u0027t call flush_scheduled_work() from do_initcalls()\n  s390: don\u0027t use flush_scheduled_work()\n  rtc: don\u0027t use flush_scheduled_work()\n  mmc: update workqueue usages\n  mfd: update workqueue usages\n  dvb: don\u0027t use flush_scheduled_work()\n  leds-wm8350: don\u0027t use flush_scheduled_work()\n  mISDN: don\u0027t use flush_scheduled_work()\n  macintosh/ams: don\u0027t use flush_scheduled_work()\n  vmwgfx: don\u0027t use flush_scheduled_work()\n  tpm: don\u0027t use flush_scheduled_work()\n  sonypi: don\u0027t use flush_scheduled_work()\n  hvsi: don\u0027t use flush_scheduled_work()\n  xen: don\u0027t use flush_scheduled_work()\n  gdrom: don\u0027t use flush_scheduled_work()\n  ...\n\nFixed up trivial conflict in drivers/media/video/bt8xx/bttv-input.c\nas per Tejun.\n"
    },
    {
      "commit": "c97415a72521071c235e0879f9a600014afd87b1",
      "tree": "4b71de5a0074f93daf4ddea07888c70c3bcc0eaf",
      "parents": [
        "a7153258b70ccbe3922fcee9ca4271d4f4c2bc55"
      ],
      "author": {
        "name": "Stefan Achatz",
        "email": "erazor_de@users.sourceforge.net",
        "time": "Fri Nov 26 19:57:29 2010 +0000"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Sat Jan 08 01:09:21 2011 +0100"
      },
      "message": "sysfs: Introducing binary attributes for struct class\n\nAdded dev_bin_attrs to struct class similar to existing dev_attrs.\n\nSigned-off-by: Stefan Achatz \u003cerazor_de@users.sourceforge.net\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "e744070fd4ff9d3114277e52d77afa21579adce2",
      "tree": "5f397c684c61a50bd47014abfe685fd6c3d09d8c",
      "parents": [
        "d004e4d3322340b6433caaef4a47ab8c933afb70",
        "c9b5f501ef1580faa30c40c644b7691870462201"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 14:55:48 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 14:55:48 2011 -0800"
      },
      "message": "Merge branch \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: Constify function scope static struct sched_param usage\n  sched: Fix strncmp operation\n  sched: Move sched_autogroup_exit() to free_signal_struct()\n  sched: Fix struct autogroup memory leak\n  sched: Mark autogroup_init() __init\n  sched: Consolidate the name of root_task_group and init_task_group\n"
    },
    {
      "commit": "d074b104cefcb6e8ded55a53e62fed59a246f55d",
      "tree": "8c5b3a3992c5abab8b41b6e1f2837bc46f82b207",
      "parents": [
        "31b6ca0af758a88e5e769b48cc6dde037ee37b96",
        "c413521eb4e2d7ffd5ce432a144708d479054bd3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 14:50:14 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 14:50:14 2011 -0800"
      },
      "message": "Merge branch \u0027rmobile-latest\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6\n\n* \u0027rmobile-latest\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (67 commits)\n  ARM: mach-shmobile: update for SMP changes.\n  ARM: mach-shmobile: update for GIC changes.\n  ARM: mach-shmobile: Fix up clkdev fallout for SH73A0.\n  dma: shdma: don\u0027t register the global die notifier multiple times\n  ARM: mach-shmobile: Rely on run-time IRQ handlers\n  ARM: mach-shmobile: Run-time IRQ handler for GIC\n  ARM: mach-shmobile: Run-time IRQ handler for INTCA\n  ARM: mach-shmobile: Enable CONFIG_MULTI_IRQ_HANDLER\n  ARM: mach-shmobile: Use shared GIC entry macros\n  ARM: mach-shmobile: mackerel: Add zboot support\n  ARM: mach-shmobile: mackerel: Add HDMI sound support\n  ARM: mach-shmobile: mackerel: add HDMI video support\n  ARM: mach-shmobile: ap4evb: fixup clk_put timing of fsib_clk\n  ARM: mach-shmobile: sh73a0: fix div4 table\n  ARM: mach-shmobile: ap4/mackerel: modify wrong comment out of USB\n  ARM: mach-shmobile: Mackerel VGA camera support\n  mmc: sh_mmcif: make DMA support by the driver unconditional\n  ARM: mach-shmobile: Add eMMC support through MMCIF on AG5EVM\n  ARM: mach-shmobile: Use pullups for AG5EVM KEYSC pins\n  ARM: mach-shmobile: sh73a0 GPIO pullup improvement\n  ...\n"
    },
    {
      "commit": "31b6ca0af758a88e5e769b48cc6dde037ee37b96",
      "tree": "e1968d7168affb25e33e2be2d1d102f94af98af0",
      "parents": [
        "56b85f32d530d09d6805488ad00775d4e0e3baab",
        "554738da71004d96e06fb75f4772dfc3b0f47810"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 14:45:47 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 14:45:47 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (58 commits)\n  Input: wacom_w8001 - support pen or touch only devices\n  Input: wacom_w8001 - use __set_bit to set keybits\n  Input: bu21013_ts - fix misuse of logical operation in place of bitop\n  Input: i8042 - add Acer Aspire 5100 to the Dritek list\n  Input: wacom - add support for digitizer in Lenovo W700\n  Input: psmouse - disable the synaptics extension on OLPC machines\n  Input: psmouse - fix up Synaptics comment\n  Input: synaptics - ignore bogus mt packet\n  Input: synaptics - add multi-finger and semi-mt support\n  Input: synaptics - report clickpad property\n  input: mt: Document interface updates\n  Input: fix double equality sign in uevent\n  Input: introduce device properties\n  hid: egalax: Add support for Wetab (726b)\n  Input: include MT library as source for kerneldoc\n  MAINTAINERS: Update input-mt entry\n  hid: egalax: Add support for Samsung NB30 netbook\n  hid: egalax: Document the new devices in Kconfig\n  hid: egalax: Add support for Wetab\n  hid: egalax: Convert to MT slots\n  ...\n\nFixed up trivial conflict in drivers/input/keyboard/Kconfig\n"
    },
    {
      "commit": "56b85f32d530d09d6805488ad00775d4e0e3baab",
      "tree": "e7fbe69e338ef775d3b2dd822aa915d259b4bc94",
      "parents": [
        "3e5b08cbbf78bedd316904ab0cf3b27119433ee5",
        "568389c257fa7d74ce36c2f78bad31965fded4cf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 14:39:20 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 14:39:20 2011 -0800"
      },
      "message": "Merge branch \u0027tty-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6\n\n* \u0027tty-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6: (36 commits)\n  serial: apbuart: Fixup apbuart_console_init()\n  TTY: Add tty ioctl to figure device node of the system console.\n  tty: add \u0027active\u0027 sysfs attribute to tty0 and console device\n  drivers: serial: apbuart: Handle OF failures gracefully\n  Serial: Avoid unbalanced IRQ wake disable during resume\n  tty: fix typos/errors in tty_driver.h comments\n  pch_uart : fix warnings for 64bit compile\n  8250: fix uninitialized FIFOs\n  ip2: fix compiler warning on ip2main_pci_tbl\n  specialix: fix compiler warning on specialix_pci_tbl\n  rocket: fix compiler warning on rocket_pci_ids\n  8250: add a UPIO_DWAPB32 for 32 bit accesses\n  8250: use container_of() instead of casting\n  serial: omap-serial: Add support for kernel debugger\n  serial: fix pch_uart kconfig \u0026 build\n  drivers: char: hvc: add arm JTAG DCC console support\n  RS485 documentation: add 16C950 UART description\n  serial: ifx6x60: fix memory leak\n  serial: ifx6x60: free IRQ on error\n  Serial: EG20T: add PCH_UART driver\n  ...\n\nFixed up conflicts in drivers/serial/apbuart.c with evil merge that\nmakes the code look fairly sane (unlike either side).\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": "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": "07e06b011db2b3300f6c975ebf293fc4c8c59942",
      "tree": "f6f0fdd7c1707aa9badf16d1ceb4de1e16adb9e9",
      "parents": [
        "cb600d2f83c854ec3d6660063e4466431999489b"
      ],
      "author": {
        "name": "Yong Zhang",
        "email": "yong.zhang0@gmail.com",
        "time": "Fri Jan 07 15:17:36 2011 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 07 15:54:34 2011 +0100"
      },
      "message": "sched: Consolidate the name of root_task_group and init_task_group\n\nroot_task_group is the leftover of USER_SCHED, now it\u0027s always\nsame to init_task_group.\nBut as Mike suggested, root_task_group is maybe the suitable name\nto keep for a tree.\nSo in this patch:\n  init_task_group      --\u003e root_task_group\n  init_task_group_load --\u003e root_task_group_load\n  INIT_TASK_GROUP_LOAD --\u003e ROOT_TASK_GROUP_LOAD\n\nSuggested-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20110107071736.GA32635@windriver.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ca86828ccd3128513f6d4e200b437deac95408db",
      "tree": "9798958474163e2ddeda051c7c79be1f3905d818",
      "parents": [
        "cb600d2f83c854ec3d6660063e4466431999489b"
      ],
      "author": {
        "name": "Robert Richter",
        "email": "robert.richter@amd.com",
        "time": "Thu Jan 06 17:51:07 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 07 14:00:14 2011 +0100"
      },
      "message": "x86, AMD, PCI: Add AMD northbridge PCI device id for CPU families 12h and 14h\n\nThis patch adds the PCI northbridge device id for AMD CPU\nfamilies 12h and 14h. Both families have implemented the same\nPCI northbridge device.\n\nThere are some future use cases that use this PCI device and\nwe would like to clarify its naming.\n\nSigned-off-by: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: xen-devel@lists.xensource.com \u003cxen-devel@lists.xensource.com\u003e\nCc: Keir Fraser \u003ckeir@xen.org\u003e\nCc: Jan Beulich \u003cJBeulich@novell.com\u003e\nLKML-Reference: \u003c20110106165107.GL4739@erda.amd.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\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": "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": "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": "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"
    }
  ],
  "next": "fa0d7e3de6d6fc5004ad9dea0dd6b286af8f03e9"
}
