)]}'
{
  "log": [
    {
      "commit": "9a1e8eb1f0b76b5e72a2343ad881c81b08dd6410",
      "tree": "f844d0e1316b49fd66cf773009ba2c3d46fcd18f",
      "parents": [
        "c8cece84c9f36410de5164735e909603426e4d5f"
      ],
      "author": {
        "name": "David Brownell",
        "email": "david-b@pacbell.net",
        "time": "Fri Feb 08 04:21:21 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:38 2008 -0800"
      },
      "message": "Basic PWM driver for AVR32 and AT91\n\nPWM device setup, and a simple PWM driver exposing a programming interface\ngiving access to each channel\u0027s full capabilities.  Note that this doesn\u0027t\nsupport starting several channels in synch.\n\n[hskinnemoen@atmel.com: allocate platform device dynamically]\n[hskinnemoen@atmel.com: Kconfig fix]\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: Andrew Victor \u003clinux@maxim.org.za\u003e\nCc: Nicolas Ferre \u003cnicolas.ferre@atmel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6d141c3ff6d74cc30cdbf26155842756ac16cf7f",
      "tree": "55c20a99ba64aa48ebc17d1df61e9c7e7a5dd0cc",
      "parents": [
        "ae161068756c203ccbeeb9178f4d4f6665d294cf"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Feb 08 04:21:09 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:37 2008 -0800"
      },
      "message": "workqueue: make delayed_work_timer_fn() static\n\ndelayed_work_timer_fn() is a timer function, make it static.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b4bd7d59451960d4e1d994c01581b31b08fe3720",
      "tree": "6cd02772f848006a349d1acc3e5c2808a3761ec7",
      "parents": [
        "13050d89019a4127178c0945733fb23649f9f3fe"
      ],
      "author": {
        "name": "Wim Van Sebroeck",
        "email": "wim@iguana.be",
        "time": "Fri Feb 08 04:20:58 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:37 2008 -0800"
      },
      "message": "SMBIOS/DMI: add type 41 \u003d Onboard Devices Extended Information\n\nFrom version 2.6 of the SMBIOS standard, type 10 (On Board Devices\nInformation) becomes obsolete.  The reason for this is that no further\nfields can be added to this structure without adversely affecting existing\nsoftware\u0027s ability to properly parse the data.\n\nTherefore type 41 (Onboard Devices Extended Information) was added.\nThe structure is as follows:\n\nstruct smbios_type_41 {\n\tu8 type;\n\tu8 length;\n\tu16 handle;\n\tu8 reference_designation_string;\n\tu8 device_type;\t\t/* same device type as in type 10 */\n\tu8 device_type_instance;\n\tu16 segment_group_number;\n\tu8 bus_number;\n\tu8 device_function_number;\n};\n\nFor more info: http://www.dmtf.org/standards/smbios\n\nSigned-off-by: Wim Van Sebroeck \u003cwim@iguana.be\u003e\nCc: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a9ca663578321695658675103c35452d8ce91d85",
      "tree": "036b9812bfa6066f832a345e0118644df92f31e9",
      "parents": [
        "28f7c4d413b9e6326f8d0aef31cd5ba8500b20dd"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Feb 08 04:20:47 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:36 2008 -0800"
      },
      "message": "kill UDFFS_{DATE,VERSION}\n\nPrinting date and version of a driver makes sense if there\u0027s a maintainer\nwho\u0027s maintaining and using these, but printing ancient version information\nonly confuses users.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "756fa92f4d725698ffa4ac1faeb8f4e8cdb6cd95",
      "tree": "383d23fde3e040ac4dabdf0d418e7b04ac5fc1c8",
      "parents": [
        "48d6d8ff7dca804536298e517298182c4a51c421"
      ],
      "author": {
        "name": "Marcin Slusarz",
        "email": "marcin.slusarz@gmail.com",
        "time": "Fri Feb 08 04:20:46 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:35 2008 -0800"
      },
      "message": "udf: fix udf_debug macro\n\nudf_debug should be enclosed with do { } while (0)\nto be safely used in code like below:\nif (something)\n\tudf_debug();\nelse\n\tanything;\n(Otherwise compiler will not compile it with:\n\"error: expected expression before \u0027else\u0027\")\n\nSigned-off-by: Marcin Slusarz \u003cmarcin.slusarz@gmail.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6c79e987d629cb0f8f7e2983725f4434a2dec66b",
      "tree": "ea2e17a12a0bdc5d68d2fe49941bfdf249e0f647",
      "parents": [
        "3a71fc5de56338076fe99f24f50bccfebabefe18"
      ],
      "author": {
        "name": "Marcin Slusarz",
        "email": "marcin.slusarz@gmail.com",
        "time": "Fri Feb 08 04:20:30 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:34 2008 -0800"
      },
      "message": "udf: remove some ugly macros\n\nremove macros:\n- UDF_SB_PARTMAPS\n- UDF_SB_PARTTYPE\n- UDF_SB_PARTROOT\n- UDF_SB_PARTLEN\n- UDF_SB_PARTVSN\n- UDF_SB_PARTNUM\n- UDF_SB_TYPESPAR\n- UDF_SB_TYPEVIRT\n- UDF_SB_PARTFUNC\n- UDF_SB_PARTFLAGS\n- UDF_SB_VOLIDENT\n- UDF_SB_NUMPARTS\n- UDF_SB_PARTITION\n- UDF_SB_SESSION\n- UDF_SB_ANCHOR\n- UDF_SB_LASTBLOCK\n- UDF_SB_LVIDBH\n- UDF_SB_LVID\n- UDF_SB_UMASK\n- UDF_SB_GID\n- UDF_SB_UID\n- UDF_SB_RECORDTIME\n- UDF_SB_SERIALNUM\n- UDF_SB_UDFREV\n- UDF_SB_FLAGS\n- UDF_SB_VAT\n- UDF_UPDATE_UDFREV\n- UDF_SB_FREE\nand open code them\n\nconvert UDF_SB_LVIDIU macro to udf_sb_lvidiu function\n\nrename some struct udf_sb_info fields:\n- s_volident to s_volume_ident\n- s_lastblock to s_last_block\n- s_lvidbh to s_lvid_bh\n- s_recordtime to s_record_time\n- s_serialnum to s_serial_number;\n- s_vat to s_vat_inode;\n\nSigned-off-by: Marcin Slusarz \u003cmarcin.slusarz@gmail.com\u003e\nCc: Ben Fennema \u003cbfennema@falcon.csc.calpoly.edu\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "74bedc4d56211b30686c6f2f574bf6c6a9654887",
      "tree": "ce9e18f9f52c76a05c8a7ec91510da6041cca7e1",
      "parents": [
        "9261303ab7589cda6a3b95f9f80c9063538dc335"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Feb 08 04:20:28 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:34 2008 -0800"
      },
      "message": "libfs: rename simple_attr_close to simple_attr_release\n\nsimple_attr_close implementes -\u003erelease so it should be named accordingly.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: \u003cstefano.brivio@polimi.it\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8b88b0998e35d239e74446cc30f354bdab86df89",
      "tree": "c13773b744cf12b1e30ec9336a4acaf21e46c6d9",
      "parents": [
        "efae09f3e99fcc1bdead7bc23a508b3bade3f82f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Feb 08 04:20:26 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:34 2008 -0800"
      },
      "message": "libfs: allow error return from simple attributes\n\nSometimes simple attributes might need to return an error, e.g. for\nacquiring a mutex interruptibly.  In fact we have that situation in\nspufs already which is the original user of the simple attributes.  This\npatch merged the temporarily forked attributes in spufs back into the\nmain ones and allows to return errors.\n\n[akpm@linux-foundation.org: build fix]\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: \u003cstefano.brivio@polimi.it\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "531d7d4256f3726b93f7a91f97132a944ab28148",
      "tree": "24c9e99d52948ecb7d36cf2a0894096bb4d490ea",
      "parents": [
        "90b315af12b427eeb09b2812343fb4ef9d01cf17"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Fri Feb 08 04:20:22 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:34 2008 -0800"
      },
      "message": "asm-*/posix_types.h: scrub __GLIBC__\n\nSome arches (like alpha and ia64) already have a clean posix_types.h header.\nThis brings all the others in line by removing all references to __GLIBC__\n(and some undocumented __USE_ALL).\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8b5f6883683c91ad7e1af32b7ceeb604d68e2865",
      "tree": "8076ebf4311d2b3a324eccb7e524e3ad4bafe9a6",
      "parents": [
        "2004dc8eec1b4f0692b3be87ea80c70faa44d619"
      ],
      "author": {
        "name": "Marcin Slusarz",
        "email": "marcin.slusarz@gmail.com",
        "time": "Fri Feb 08 04:20:12 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:32 2008 -0800"
      },
      "message": "byteorder: move le32_add_cpu \u0026 friends from OCFS2 to core\n\nThis patchset moves le*_add_cpu and be*_add_cpu functions from OCFS2 to core\nheader (1st), converts ext3 filesystem to this API (2nd) and replaces XFS\ndifferent named functions with new ones (3rd).\n\nThere are many places where these functions will be useful.  Just look at:\ngrep -r \u0027cpu_to_[ble12346]*([ble12346]*_to_cpu.*[-+]\u0027 linux-src/ Patch for\next3 is an example how conversions will probably look like.\n\nThis patch:\n\n- move inline functions which add native byte order variable to\n  little/big endian variable to core header\n  * le16_add_cpu(__le16 *var, u16 val)\n  * le32_add_cpu(__le32 *var, u32 val)\n  * le64_add_cpu(__le64 *var, u64 val)\n  * be32_add_cpu(__be32 *var, u32 val)\n- add for completeness:\n  * be16_add_cpu(__be16 *var, u16 val)\n  * be64_add_cpu(__be64 *var, u64 val)\n\nSigned-off-by: Marcin Slusarz \u003cmarcin.slusarz@gmail.com\u003e\nAcked-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: David Chinner \u003cdgc@sgi.com\u003e\nCc: Timothy Shimmin \u003ctes@sgi.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "edde08f2a8f13a648ab6d26f33e88d0c6146f3d1",
      "tree": "16c0580449068472b7cb2ab3093fda3cc19f18b0",
      "parents": [
        "144b2a91468bdc0d4fa64b220c152fb58b8ffe05"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Fri Feb 08 04:19:57 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:31 2008 -0800"
      },
      "message": "misc: removal of final callers using fastcall\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "144b2a91468bdc0d4fa64b220c152fb58b8ffe05",
      "tree": "2b10f43deeeb889e02b71db7e2a51d400345b37c",
      "parents": [
        "ec7015840ad7a8cdc87f52367ffe9c0b0401d919"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Fri Feb 08 04:19:56 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:31 2008 -0800"
      },
      "message": "asm-generic: remove fastcall\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ec7015840ad7a8cdc87f52367ffe9c0b0401d919",
      "tree": "4d0d7dc6f4ab1e364521a866e0150794d9739a28",
      "parents": [
        "9f741cb8fecef923cce1dff820ac6aa78c12d136"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Fri Feb 08 04:19:55 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:31 2008 -0800"
      },
      "message": "Remove fastcall from linux/include\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b920de1b77b72ca9432ac3f97edb26541e65e5dd",
      "tree": "40fa9be1470e929c47927dea7eddf184c0204229",
      "parents": [
        "ef3d534754f31fed9c3b976fee1ece1b3bc38282"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Feb 08 04:19:31 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:30 2008 -0800"
      },
      "message": "mn10300: add the MN10300/AM33 architecture to the kernel\n\nAdd architecture support for the MN10300/AM33 CPUs produced by MEI to the\nkernel.\n\nThis patch also adds board support for the ASB2303 with the ASB2308 daughter\nboard, and the ASB2305.  The only processor supported is the MN103E010, which\nis an AM33v2 core plus on-chip devices.\n\n[akpm@linux-foundation.org: nuke cvs control strings]\nSigned-off-by: Masakazu Urade \u003curade.masakazu@jp.panasonic.com\u003e\nSigned-off-by: Koichi Yasutake \u003cyasutake.koichi@jp.panasonic.com\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ef3d534754f31fed9c3b976fee1ece1b3bc38282",
      "tree": "d41ebed23063740a72103ccd5c7dabd96a425289",
      "parents": [
        "62fb44b9622e4c0e00f31fb27620d97a00ae3dc6"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Feb 08 04:19:30 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:30 2008 -0800"
      },
      "message": "mn10300: allocate serial port UART IDs for on-chip serial ports\n\nAllocate serial port UART type IDs for the MN10300 on-chip serial ports.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1eb114112381eb66ebacdace1b6e70d30d603f9c",
      "tree": "3b97926b1a90aa996f99a23281809c3d960fd3d8",
      "parents": [
        "7fa3031500ec9b0a7460c8c23751799006ffee74"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Feb 08 04:19:29 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:30 2008 -0800"
      },
      "message": "aout: remove unnecessary inclusions of {asm, linux}/a.out.h\n\nRemove now unnecessary inclusions of {asm,linux}/a.out.h.\n\n[akpm@linux-foundation.org: fix alpha build]\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7fa3031500ec9b0a7460c8c23751799006ffee74",
      "tree": "2a7e9202b35a39dc8217e95825263c0629e67e35",
      "parents": [
        "b0b933c08bd5fd053bbba8ba6387f543be03d49f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Feb 08 04:19:28 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:30 2008 -0800"
      },
      "message": "aout: suppress A.OUT library support if !CONFIG_ARCH_SUPPORTS_AOUT\n\nSuppress A.OUT library support if CONFIG_ARCH_SUPPORTS_AOUT is not set.\n\nNot all architectures support the A.OUT binfmt, so the ELF binfmt should not\nbe permitted to go looking for A.OUT libraries to load in such a case.  Not\nonly that, but under such conditions A.OUT core dumps are not produced either.\n\nTo make this work, this patch also does the following:\n\n (1) Makes the existence of the contents of linux/a.out.h contingent on\n     CONFIG_ARCH_SUPPORTS_AOUT.\n\n (2) Renames dump_thread() to aout_dump_thread() as it\u0027s only called by A.OUT\n     core dumping code.\n\n (3) Moves aout_dump_thread() into asm/a.out-core.h and makes it inline.  This\n     is then included only where needed.  This means that this bit of arch\n     code will be stored in the appropriate A.OUT binfmt module rather than\n     the core kernel.\n\n (4) Drops A.OUT support for Blackfin (according to Mike Frysinger it\u0027s not\n     needed) and FRV.\n\nThis patch depends on the previous patch to move STACK_TOP[_MAX] out of\nasm/a.out.h and into asm/processor.h as they\u0027re required whether or not A.OUT\nformat is available.\n\n[jdike@addtoit.com: uml: re-remove accidentally restored code]\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "922a70d327bd4b11342c2afd08e20d35f52064c3",
      "tree": "aff7e43fa600363128c15c4b9a1ceba3869aac15",
      "parents": [
        "3eb056764dd806bbe84eb604e45e7470feeaafd8"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Feb 08 04:19:26 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:29 2008 -0800"
      },
      "message": "aout: move STACK_TOP[_MAX] to asm/processor.h\n\nMove STACK_TOP[_MAX] out of asm/a.out.h and into asm/processor.h as they\u0027re\nrequired whether or not A.OUT format is available.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3eb056764dd806bbe84eb604e45e7470feeaafd8",
      "tree": "97a8fe2123d2c9df2bcb48052ac33d445a00f64c",
      "parents": [
        "cf4fc6cb76e50b01666e28a9f4b2e6fbcbb96d5f"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Feb 08 04:19:25 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:29 2008 -0800"
      },
      "message": "time: fix typo in comments\n\nFix typo in comments.\n\nBTW: I have to fix coding style in arch/ia64/kernel/time.c also, otherwise\ncheckpatch.pl will be complaining.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cf4fc6cb76e50b01666e28a9f4b2e6fbcbb96d5f",
      "tree": "ac1e027b7e759822014bd3a72ababd1fa1052198",
      "parents": [
        "0b858e6ff9a38b987a83d22e6f2a2f621c80608d"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Feb 08 04:19:24 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:29 2008 -0800"
      },
      "message": "timekeeping: rename timekeeping_is_continuous to timekeeping_valid_for_hres\n\nFunction timekeeping_is_continuous() no longer checks flag\nCLOCK_IS_CONTINUOUS, and it checks CLOCK_SOURCE_VALID_FOR_HRES now.  So rename\nthe function accordingly.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "146a505d498c36de98ec161d791dd50beca7f9a3",
      "tree": "f126c55b34488866ff179717f1b2a0c7cdd5df6b",
      "parents": [
        "d5df763b81946a405837b80874516dfc2a8f7ebf"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Feb 08 04:19:22 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:29 2008 -0800"
      },
      "message": "Get rid of the kill_pgrp_info() function\n\nThere\u0027s only one caller left - the kill_pgrp one - so merge these two\nfunctions and forget the kill_pgrp_info one.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fea9d175545b38cb3e84569400419eb81bc90fa3",
      "tree": "0d43fe9ed2ea6104ee8b15a3eb8da081dd08fd35",
      "parents": [
        "46f382d2b69d2221086b823f0dbc8f32c027cac2"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:19 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:29 2008 -0800"
      },
      "message": "ITIMER_REAL: convert to use struct pid\n\nsignal_struct-\u003etsk points to the -\u003egroup_leader and thus we have the nasty\ncode in de_thread() which has to change it and restart -\u003ereal_timer if the\nleader is changed.\n\nUse \"struct pid *leader_pid\" instead.  This also allows us to kill now\nunneeded send_group_sig_info().\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "46f382d2b69d2221086b823f0dbc8f32c027cac2",
      "tree": "bc71bbdd7f158aea817ef08f9cf13ac515d3776f",
      "parents": [
        "d36174bc2bce0372693a9cfbdef8b2689c9982cb"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:19 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:28 2008 -0800"
      },
      "message": "uglify while_each_pid_task() to make sure we don\u0027t count the execing pricess twice\n\nThere is a window when de_thread() switches the leader and drops\ntasklist_lock.  In that window do_each_pid_task(PIDTYPE_PID) finds both new\nand old leaders.\n\nThe problem is pretty much theoretical and probably can be ignored.  Currently\nthe only users of do_each_pid_task(PIDTYPE_PID) are send_sigio/send_sigurg, so\nthey can send the signal to the same process twice.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "44c4e1b2581f7273ab14ef30b6430618801c57b1",
      "tree": "9881990d56dd58f0c93991217a999bab145946fa",
      "parents": [
        "161550d74c07303ffa6187ba776f62df5a906a21"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Feb 08 04:19:15 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:27 2008 -0800"
      },
      "message": "pid: Extend/Fix pid_vnr\n\npid_vnr returns the user space pid with respect to the pid namespace the\nstruct pid was allocated in.  What we want before we return a pid to user\nspace is the user space pid with respect to the pid namespace of current.\n\npid_vnr is a very nice optimization but because it isn\u0027t quite what we want\nit is easy to use pid_vnr at times when we aren\u0027t certain the struct pid\nwas allocated in our pid namespace.\n\nCurrently this describes at least tiocgpgrp and tiocgsid in ttyio.c the\nparent process reported in the core dumps and the parent process in\nget_signal_to_deliver.\n\nSo unless the performance impact is huge having an interface that does what\nwe want instead of always what we want should be much more reliable and\nmuch less error prone.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d12619b5ff5664623524aef796514d1946ea3b4a",
      "tree": "23140ca0148f9154440d3056e2040d8df468a24b",
      "parents": [
        "430c623121ea88ca80595c99fdc63b7f8a803ae5"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:12 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:27 2008 -0800"
      },
      "message": "fix group stop with exit race\n\ndo_signal_stop() counts all sub-thread and sets -\u003egroup_stop_count\naccordingly.  Every thread should decrement -\u003egroup_stop_count and stop,\nthe last one should notify the parent.\n\nHowever a sub-thread can exit before it notices the signal_pending(), or it\nmay be somewhere in do_exit() already.  In that case the group stop never\nfinishes properly.\n\nNote: this is a minimal fix, we can add some optimizations later.  Say we\ncan return quickly if thread_group_empty().  Also, we can move some signal\nrelated code from exit_notify() to exit_signals().\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8520d7c7f8611216e3b270becec95bb35b6899d4",
      "tree": "77001e6830bb415590067e9d4be24cd8bdd36219",
      "parents": [
        "e4cc0a9c876d4d4eadaef97a2bff4a199946d202"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:09 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:27 2008 -0800"
      },
      "message": "teach set_special_pids() to use struct pid\n\nChange set_special_pids() to work with struct pid, not pid_t from global name\nspace. This again speedups and imho cleanups the code, also a preparation for\nthe next patch.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6b39c7bfbd1436836c0fb34c5b437fda1a7a3dd4",
      "tree": "60d3d9719eef3076527fcbf9c3cb362fe0f52d61",
      "parents": [
        "01b8b07a5d77d22e609267dcae74d15e3e9c5f13"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:18:58 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:26 2008 -0800"
      },
      "message": "kill PT_ATTACHED\n\nSince the patch\n\n\t\"Fix ptrace_attach()/ptrace_traceme()/de_thread() race\"\n\tcommit f5b40e363ad6041a96e3da32281d8faa191597b9\n\nwe set PT_ATTACHED and change child-\u003eparent \"atomically\" wrt task_list lock.\n\nThis means we can remove the checks like \"PT_ATTACHED \u0026\u0026 -\u003eparent !\u003d ptracer\"\nwhich were needed to catch the \"ptrace attach is in progress\" case.  We can\nalso remove the flag itself since nobody else uses it.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "01b8b07a5d77d22e609267dcae74d15e3e9c5f13",
      "tree": "dd53c51f75de9511da7fdf283c73080d6c2552a8",
      "parents": [
        "ed2ddbf88c0ddeeae4c78bb306a116dfd867c55c"
      ],
      "author": {
        "name": "Pierre Peiffer",
        "email": "pierre.peiffer@bull.net",
        "time": "Fri Feb 08 04:18:57 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:26 2008 -0800"
      },
      "message": "IPC: consolidate sem_exit_ns(), msg_exit_ns() and shm_exit_ns()\n\nsem_exit_ns(), msg_exit_ns() and shm_exit_ns() are all called when an\nipc_namespace is released to free all ipcs of each type.  But in fact, they\ndo the same thing: they loop around all ipcs to free them individually by\ncalling a specific routine.\n\nThis patch proposes to consolidate this by introducing a common function,\nfree_ipcs(), that do the job.  The specific routine to call on each\nindividual ipcs is passed as parameter.  For this, these ipc-specific\n\u0027free\u0027 routines are reworked to take a generic \u0027struct ipc_perm\u0027 as\nparameter.\n\nSigned-off-by: Pierre Peiffer \u003cpierre.peiffer@bull.net\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Nadia Derbey \u003cNadia.Derbey@bull.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ed2ddbf88c0ddeeae4c78bb306a116dfd867c55c",
      "tree": "de6d6828c03f98be6fc41e8acf3b3e52df28be9b",
      "parents": [
        "4b9fcb0ec60584d639ad105c42b75a3447071e47"
      ],
      "author": {
        "name": "Pierre Peiffer",
        "email": "pierre.peiffer@bull.net",
        "time": "Fri Feb 08 04:18:57 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:26 2008 -0800"
      },
      "message": "IPC: make struct ipc_ids static in ipc_namespace\n\nEach ipc_namespace contains a table of 3 pointers to struct ipc_ids (3 for\nmsg, sem and shm, structure used to store all ipcs) These \u0027struct ipc_ids\u0027\nare dynamically allocated for each icp_namespace as the ipc_namespace\nitself (for the init namespace, they are initialized with pointers to\nstatic variables instead)\n\nIt is so for historical reason: in fact, before the use of idr to store the\nipcs, the ipcs were stored in tables of variable length, depending of the\nmaximum number of ipc allowed.  Now, these \u0027struct ipc_ids\u0027 have a fixed\nsize.  As they are allocated in any cases for each new ipc_namespace, there\nis no gain of memory in having them allocated separately of the struct\nipc_namespace.\n\nThis patch proposes to make this table static in the struct ipc_namespace.\nThus, we can allocate all in once and get rid of all the code needed to\nallocate and free these ipc_ids separately.\n\nSigned-off-by: Pierre Peiffer \u003cpierre.peiffer@bull.net\u003e\nAcked-by: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Nadia Derbey \u003cNadia.Derbey@bull.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "92dfc9dc7ba63134f721b6e745dbdcfc13ea341b",
      "tree": "aa959d2d5ba1819651888601e4d917b01ddcc88c",
      "parents": [
        "6d7623943c905efae327933bc5ee0b2f78e15f56"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Fri Feb 08 04:18:43 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:24 2008 -0800"
      },
      "message": "fix \"modules: make module_address_lookup() safe\"\n\nGet the constness right, avoid nasty cast.\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "596f56018df3ed7de20f6038f72177b3674ebbd4",
      "tree": "8d3956e81dd291e5c01d27d76d5b0dfb9febd38b",
      "parents": [
        "aa7738a5f503abea5445cdd8cc2d501502c748ae"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Fri Feb 08 04:18:40 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:24 2008 -0800"
      },
      "message": "tty: s390 support for termios2.\n\nBackend for s390.\n\nAcked-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "aa7738a5f503abea5445cdd8cc2d501502c748ae",
      "tree": "6e4a845990b68ad3c8d707c6e6abbed4ac24a8db",
      "parents": [
        "d94afc6ccf6690b30ae112ec8101b3f10d50114e"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Fri Feb 08 04:18:39 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:24 2008 -0800"
      },
      "message": "tty: let architectures override the user/kernel macros.\n\nGive architectures that support the new termios2 the possibilty to overide the\nuser_termios_to_kernel_termios and kernel_termios_to_user_termios macros.  As\nsoon as all architectures that use the generic variant have been converted the\nifdefs can go away again.  Architectures in question are avr32, frv, powerpc\nand s390.\n\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d94afc6ccf6690b30ae112ec8101b3f10d50114e",
      "tree": "f54fb1fe147861db876b99809ff1cd1a316c45c0",
      "parents": [
        "f8bab73515ca5b392680bb033dceeb37b8463e95"
      ],
      "author": {
        "name": "mark gross",
        "email": "mgross@linux.intel.com",
        "time": "Fri Feb 08 04:18:39 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:24 2008 -0800"
      },
      "message": "intel-iommu: fault_reason index cleanup\n\nFix an off by one bug in the fault reason string reporting function, and\nclean up some of the code around this buglet.\n\n[akpm@linux-foundation.org: cleanup]\nSigned-off-by: mark gross \u003cmgross@linux.intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2d3a4e3666325a9709cc8ea2e88151394e8f20fc",
      "tree": "c3e75289de8c824f5e2bb2e97d4b6853d48da3f3",
      "parents": [
        "c6caeb7c4544608e8ae62731334661fc396c7f85"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Fri Feb 08 04:18:37 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:24 2008 -0800"
      },
      "message": "proc: fix -\u003eopen\u0027less usage due to -\u003eproc_fops flip\n\nTypical PDE creation code looks like:\n\n\tpde \u003d create_proc_entry(\"foo\", 0, NULL);\n\tif (pde)\n\t\tpde-\u003eproc_fops \u003d \u0026foo_proc_fops;\n\nNotice that PDE is first created, only then -\u003eproc_fops is set up to\nfinal value. This is a problem because right after creation\na) PDE is fully visible in /proc , and\nb) -\u003eproc_fops are proc_file_operations which do not have -\u003eopen callback. So, it\u0027s\n   possible to -\u003eread without -\u003eopen (see one class of oopses below).\n\nThe fix is new API called proc_create() which makes sure -\u003eproc_fops are\nset up before gluing PDE to main tree. Typical new code looks like:\n\n\tpde \u003d proc_create(\"foo\", 0, NULL, \u0026foo_proc_fops);\n\tif (!pde)\n\t\treturn -ENOMEM;\n\nFix most networking users for a start.\n\nIn the long run, create_proc_entry() for regular files will go.\n\nBUG: unable to handle kernel NULL pointer dereference at virtual address 00000024\nprinting eip: c1188c1b *pdpt \u003d 000000002929e001 *pde \u003d 0000000000000000\nOops: 0002 [#1] PREEMPT SMP DEBUG_PAGEALLOC\nlast sysfs file: /sys/block/sda/sda1/dev\nModules linked in: foo af_packet ipv6 cpufreq_ondemand loop serio_raw psmouse k8temp hwmon sr_mod cdrom\n\nPid: 24679, comm: cat Not tainted (2.6.24-rc3-mm1 #2)\nEIP: 0060:[\u003cc1188c1b\u003e] EFLAGS: 00210002 CPU: 0\nEIP is at mutex_lock_nested+0x75/0x25d\nEAX: 000006fe EBX: fffffffb ECX: 00001000 EDX: e9340570\nESI: 00000020 EDI: 00200246 EBP: e9340570 ESP: e8ea1ef8\n DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068\nProcess cat (pid: 24679, ti\u003dE8EA1000 task\u003dE9340570 task.ti\u003dE8EA1000)\nStack: 00000000 c106f7ce e8ee05b4 00000000 00000001 458003d0 f6fb6f20 fffffffb\n       00000000 c106f7aa 00001000 c106f7ce 08ae9000 f6db53f0 00000020 00200246\n       00000000 00000002 00000000 00200246 00200246 e8ee05a0 fffffffb e8ee0550\nCall Trace:\n [\u003cc106f7ce\u003e] seq_read+0x24/0x28a\n [\u003cc106f7aa\u003e] seq_read+0x0/0x28a\n [\u003cc106f7ce\u003e] seq_read+0x24/0x28a\n [\u003cc106f7aa\u003e] seq_read+0x0/0x28a\n [\u003cc10818b8\u003e] proc_reg_read+0x60/0x73\n [\u003cc1081858\u003e] proc_reg_read+0x0/0x73\n [\u003cc105a34f\u003e] vfs_read+0x6c/0x8b\n [\u003cc105a6f3\u003e] sys_read+0x3c/0x63\n [\u003cc10025f2\u003e] sysenter_past_esp+0x5f/0xa5\n [\u003cc10697a7\u003e] destroy_inode+0x24/0x33\n \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nINFO: lockdep is turned off.\nCode: 75 21 68 e1 1a 19 c1 68 87 00 00 00 68 b8 e8 1f c1 68 25 73 1f c1 e8 84 06 e9 ff e8 52 b8 e7 ff 83 c4 10 9c 5f fa e8 28 89 ea ff \u003cf0\u003e fe 4e 04 79 0a f3 90 80 7e 04 00 7e f8 eb f0 39 76 34 74 33\nEIP: [\u003cc1188c1b\u003e] mutex_lock_nested+0x75/0x25d SS:ESP 0068:e8ea1ef8\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "df5f8314ca30d6a76735748e5ba4ca9809c0f434",
      "tree": "e0a6157b1666a320e69586a81c77a3fe83b36a2a",
      "parents": [
        "a56d3fc74c0178c5f41c48315604d62cff4e746d"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Feb 08 04:18:33 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:24 2008 -0800"
      },
      "message": "proc: seqfile convert proc_pid_status to properly handle pid namespaces\n\nCurrently we possibly lookup the pid in the wrong pid namespace.  So\nseq_file convert proc_pid_status which ensures the proper pid namespaces is\npassed in.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: another build fix]\n[akpm@linux-foundation.org: s390 build fix]\n[akpm@linux-foundation.org: fix task_name() output]\n[akpm@linux-foundation.org: fix nommu build]\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Andrew Morgan \u003cmorgan@kernel.org\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "be614086a4aff163d5aa0dc160638d1193b59cde",
      "tree": "f60781ec8485fa7c1a5324a9767ec762e38b7447",
      "parents": [
        "94413d8807a3c511a3675be4ce27a4d16d6408ee"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Feb 08 04:18:30 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:23 2008 -0800"
      },
      "message": "proc: implement proc_single_file_operations\n\nCurrently many /proc/pid files use a crufty precursor to the current seq_file\napi, and they don\u0027t have direct access to the pid_namespace or the pid of for\nwhich they are displaying data.\n\nSo implement proc_single_file_operations to make the seq_file routines easy to\nuse, and to give access to the full state of the pid of we are displaying data\nfor.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "74bd59bb39eb08b4379e2590c5f160748d83f812",
      "tree": "2e0b8e18b0d51f9972239a0322aca313b325a8fa",
      "parents": [
        "aee16ce73c71a241190cef3aaa265f6a3ab8e035"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Feb 08 04:18:24 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:23 2008 -0800"
      },
      "message": "namespaces: cleanup the code managed with PID_NS option\n\nJust like with the user namespaces, move the namespace management code into\nthe separate .c file and mark the (already existing) PID_NS option as \"depend\non NAMESPACES\"\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ae5e1b22f17983da929a0d0178896269e19da186",
      "tree": "e9937e2060167a430cf90955327d1a5a2e7b2303",
      "parents": [
        "58bfdd6deeec02b73691ea2c951a3c5d743bca63"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Feb 08 04:18:22 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:23 2008 -0800"
      },
      "message": "namespaces: move the IPC namespace under IPC_NS option\n\nCurrently the IPC namespace management code is spread over the ipc/*.c files.\nI moved this code into ipc/namespace.c file which is compiled out when needed.\n\nThe linux/ipc_namespace.h file is used to store the prototypes of the\nfunctions in namespace.c and the stubs for NAMESPACES\u003dn case.  This is done\nso, because the stub for copy_ipc_namespace requires the knowledge of the\nCLONE_NEWIPC flag, which is in sched.h.  But the linux/ipc.h file itself in\nincluded into many many .c files via the sys.h-\u003esem.h sequence so adding the\nsched.h into it will make all these .c depend on sched.h which is not that\ngood.  On the other hand the knowledge about the namespaces stuff is required\nin 4 .c files only.\n\nBesides, this patch compiles out some auxiliary functions from ipc/sem.c,\nmsg.c and shm.c files.  It turned out that moving these functions into\nnamespaces.c is not that easy because they use many other calls and macros\nfrom the original file.  Moving them would make this patch complicated.  On\nthe other hand all these functions can be consolidated, so I will send a\nseparate patch doing this a bit later.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "58bfdd6deeec02b73691ea2c951a3c5d743bca63",
      "tree": "8f46771858dee87080b0ed64bc176b25c239f3b1",
      "parents": [
        "c5289a69491f2b597e22d0456b46cc043deedbd8"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Feb 08 04:18:21 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:23 2008 -0800"
      },
      "message": "namespaces: move the UTS namespace under UTS_NS option\n\nCurrently all the namespace management code is in the kernel/utsname.c file,\nso just compile it out and make stubs in the appropriate header.\n\nThe init namespace itself is in init/version.c and is in the kernel all the\ntime.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a3d0c6aa1bb342b9b2c7b123b52ac2f48a4d4d0a",
      "tree": "0c6766dd2add1f08c6153769c655e46ddff82a42",
      "parents": [
        "ac74c00e499ed276a965e5b5600667d5dc04a84a"
      ],
      "author": {
        "name": "Nishanth Aravamudan",
        "email": "nacc@us.ibm.com",
        "time": "Fri Feb 08 04:18:18 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:23 2008 -0800"
      },
      "message": "hugetlb: add locking for overcommit sysctl\n\nWhen I replaced hugetlb_dynamic_pool with nr_overcommit_hugepages I used\nproc_doulongvec_minmax() directly.  However, hugetlb.c\u0027s locking rules\nrequire that all counter modifications occur under the hugetlb_lock.  Add a\ncallback into the hugetlb code similar to the one for nr_hugepages.  Grab\nthe lock around the manipulation of nr_overcommit_hugepages in\nproc_doulongvec_minmax().\n\nSigned-off-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nAcked-by: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a4ffc0a0b240a29cbe489f6db9dae112a49ef1c1",
      "tree": "9719c706444f4b720aff2bb4bdf23a4be3f4b1e3",
      "parents": [
        "d7511ec8115487ccea2ce93bf58d5e5cd2c1c0a3",
        "af195ac82e38ba802fd86b5a014ed05ef6dd88bb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 19:30:50 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 19:30:50 2008 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm: (44 commits)\n  dm raid1: report fault status\n  dm raid1: handle read failures\n  dm raid1: fix EIO after log failure\n  dm raid1: handle recovery failures\n  dm raid1: handle write failures\n  dm snapshot: combine consecutive exceptions in memory\n  dm: stripe enhanced status return\n  dm: stripe trigger event on failure\n  dm log: auto load modules\n  dm: move deferred bio flushing to workqueue\n  dm crypt: use async crypto\n  dm crypt: prepare async callback fn\n  dm crypt: add completion for async\n  dm crypt: add async request mempool\n  dm crypt: extract scatterlist processing\n  dm crypt: tidy io ref counting\n  dm crypt: introduce crypt_write_io_loop\n  dm crypt: abstract crypt_write_done\n  dm crypt: store sector mapping in dm_crypt_io\n  dm crypt: move queue functions\n  ...\n"
    },
    {
      "commit": "d7511ec8115487ccea2ce93bf58d5e5cd2c1c0a3",
      "tree": "e428f9438a563f1fa77479e9c9c4ef8b2e451a8b",
      "parents": [
        "0b61a2ba5dfd1620731e717d686e6ade657fd975",
        "e84542f5db655d1ce7b4890832f0e5d19aae965d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 19:15:38 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 19:15:38 2008 -0800"
      },
      "message": "Merge branch \u0027release\u0027 of git://lm-sensors.org/kernel/mhoffman/hwmon-2.6\n\n* \u0027release\u0027 of git://lm-sensors.org/kernel/mhoffman/hwmon-2.6: (59 commits)\n  hwmon: (lm80) Add individual alarm files\n  hwmon: (lm80) De-macro the sysfs callbacks\n  hwmon: (lm80) Various cleanups\n  hwmon: (w83627hf) Refactor beep enable handling\n  hwmon: (w83627hf) Add individual alarm and beep files\n  hwmon: (w83627hf) Enable VBAT monitoring\n  hwmon: (w83627ehf) The W83627DHG has 8 VID pins\n  hwmon: (asb100) Add individual alarm files\n  hwmon: (asb100) De-macro the sysfs callbacks\n  hwmon: (asb100) Various cleanups\n  hwmon: VRM is not written to registers\n  hwmon: (dme1737) fix Super-IO device ID override\n  hwmon: (dme1737) fix divide-by-0\n  hwmon: (abituguru3) Add AUX4 fan input for Abit IP35 Pro\n  hwmon: Add support for Texas Instruments/Burr-Brown ADS7828\n  hwmon: (adm9240) Add individual alarm files\n  hwmon: (lm77) Add individual alarm files\n  hwmon: Discard useless I2C driver IDs\n  hwmon: (lm85) Make the pwmN_enable files writable\n  hwmon: (lm85) Return standard values in pwmN_enable\n  ...\n"
    },
    {
      "commit": "c00f08d705e149fbfaf7a252b4d4fbb7affdcc96",
      "tree": "8c916856376d0d400ddda239d5be386f9b9516d7",
      "parents": [
        "c8b6de16d9434405e5832b8772e4f986ddd5118e",
        "3adbefee6fd58a061b2bf1df4f3769701860fc62"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 18:22:29 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 18:22:29 2008 -0800"
      },
      "message": "Merge branch \u0027slub-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/christoph/vm\n\n* \u0027slub-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/christoph/vm:\n  SLUB: fix checkpatch warnings\n  Use non atomic unlock\n  SLUB: Support for performance statistics\n  SLUB: Alternate fast paths using cmpxchg_local\n  SLUB: Use unique end pointer for each slab page.\n  SLUB: Deal with annoying gcc warning on kfree()\n"
    },
    {
      "commit": "4f41b09f86e0e3b48194b2ad0356391bf6d47e40",
      "tree": "49e28b85c4fabcd464ebf3e0f7431ca92406a8a2",
      "parents": [
        "afb24528f9012e5c6361ca9a9128c7c089c1cc7c"
      ],
      "author": {
        "name": "Vasily Averin",
        "email": "vvs@sw.ru",
        "time": "Fri Feb 08 02:10:01 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:10:01 2008 +0000"
      },
      "message": "dm: table remove unused variable\n\nSave some bytes.\n\nSigned-off-by: Vasily Averin \u003cvvs@sw.ru\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "76c072b48e39e9291fbf02d6c912cf27d65e093d",
      "tree": "5f5c523a48c014448b28a1a875ed8432fe79807a",
      "parents": [
        "27238b2bea89b1808b570bece6777ab2abc52fe2"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Fri Feb 08 02:09:56 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:09:56 2008 +0000"
      },
      "message": "dm ioctl: move compat code\n\nMove compat_ioctl handling into dm-ioctl.c.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "8ff12cfc009a2a38d87fa7058226fe197bb2696f",
      "tree": "1358ed247d3c897d8790342a978dd5078354a207",
      "parents": [
        "1f84260c8ce3b1ce26d4c1d6dedc2f33a3a29c0c"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Thu Feb 07 17:47:41 2008 -0800"
      },
      "committer": {
        "name": "Christoph Lameter",
        "email": "christoph@stapp.engr.sgi.com",
        "time": "Thu Feb 07 17:47:41 2008 -0800"
      },
      "message": "SLUB: Support for performance statistics\n\nThe statistics provided here allow the monitoring of allocator behavior but\nat the cost of some (minimal) loss of performance. Counters are placed in\nSLUB\u0027s per cpu data structure. The per cpu structure may be extended by the\nstatistics to grow larger than one cacheline which will increase the cache\nfootprint of SLUB.\n\nThere is a compile option to enable/disable the inclusion of the runtime\nstatistics and its off by default.\n\nThe slabinfo tool is enhanced to support these statistics via two options:\n\n-D \tSwitches the line of information displayed for a slab from size\n\tmode to activity mode.\n\n-A\tSorts the slabs displayed by activity. This allows the display of\n\tthe slabs most important to the performance of a certain load.\n\n-r\tReport option will report detailed statistics on\n\nExample (tbench load):\n\nslabinfo -AD\t\t-\u003eShows the most active slabs\n\nName                   Objects    Alloc     Free   %Fast\nskbuff_fclone_cache         33 111953835 111953835  99  99\n:0000192                  2666  5283688  5281047  99  99\n:0001024                   849  5247230  5246389  83  83\nvm_area_struct            1349   119642   118355  91  22\n:0004096                    15    66753    66751  98  98\n:0000064                  2067    25297    23383  98  78\ndentry                   10259    28635    18464  91  45\n:0000080                 11004    18950     8089  98  98\n:0000096                  1703    12358    10784  99  98\n:0000128                   762    10582     9875  94  18\n:0000512                   184     9807     9647  95  81\n:0002048                   479     9669     9195  83  65\nanon_vma                   777     9461     9002  99  71\nkmalloc-8                 6492     9981     5624  99  97\n:0000768                   258     7174     6931  58  15\n\nSo the skbuff_fclone_cache is of highest importance for the tbench load.\nPretty high load on the 192 sized slab. Look for the aliases\n\nslabinfo -a | grep 000192\n:0000192     \u003c- xfs_btree_cur filp kmalloc-192 uid_cache tw_sock_TCP\n\trequest_sock_TCPv6 tw_sock_TCPv6 skbuff_head_cache xfs_ili\n\nLikely skbuff_head_cache.\n\n\nLooking into the statistics of the skbuff_fclone_cache is possible through\n\nslabinfo skbuff_fclone_cache\t-\u003e-r option implied if cache name is mentioned\n\n\n.... Usual output ...\n\nSlab Perf Counter       Alloc     Free %Al %Fr\n--------------------------------------------------\nFastpath             111953360 111946981  99  99\nSlowpath                 1044     7423   0   0\nPage Alloc                272      264   0   0\nAdd partial                25      325   0   0\nRemove partial             86      264   0   0\nRemoteObj/SlabFrozen      350     4832   0   0\nTotal                111954404 111954404\n\nFlushes       49 Refill        0\nDeactivate Full\u003d325(92%) Empty\u003d0(0%) ToHead\u003d24(6%) ToTail\u003d1(0%)\n\nLooks good because the fastpath is overwhelmingly taken.\n\n\nskbuff_head_cache:\n\nSlab Perf Counter       Alloc     Free %Al %Fr\n--------------------------------------------------\nFastpath              5297262  5259882  99  99\nSlowpath                 4477    39586   0   0\nPage Alloc                937      824   0   0\nAdd partial                 0     2515   0   0\nRemove partial           1691      824   0   0\nRemoteObj/SlabFrozen     2621     9684   0   0\nTotal                 5301739  5299468\n\nDeactivate Full\u003d2620(100%) Empty\u003d0(0%) ToHead\u003d0(0%) ToTail\u003d0(0%)\n\n\nDescriptions of the output:\n\nTotal:\t\tThe total number of allocation and frees that occurred for a\n\t\tslab\n\nFastpath:\tThe number of allocations/frees that used the fastpath.\n\nSlowpath:\tOther allocations\n\nPage Alloc:\tNumber of calls to the page allocator as a result of slowpath\n\t\tprocessing\n\nAdd Partial:\tNumber of slabs added to the partial list through free or\n\t\talloc (occurs during cpuslab flushes)\n\nRemove Partial:\tNumber of slabs removed from the partial list as a result of\n\t\tallocations retrieving a partial slab or by a free freeing\n\t\tthe last object of a slab.\n\nRemoteObj/Froz:\tHow many times were remotely freed object encountered when a\n\t\tslab was about to be deactivated. Frozen: How many times was\n\t\tfree able to skip list processing because the slab was in use\n\t\tas the cpuslab of another processor.\n\nFlushes:\tNumber of times the cpuslab was flushed on request\n\t\t(kmem_cache_shrink, may result from races in __slab_alloc)\n\nRefill:\t\tNumber of times we were able to refill the cpuslab from\n\t\tremotely freed objects for the same slab.\n\nDeactivate:\tStatistics how slabs were deactivated. Shows how they were\n\t\tput onto the partial list.\n\nIn general fastpath is very good. Slowpath without partial list processing is\nalso desirable. Any touching of partial list uses node specific locks which\nmay potentially cause list lock contention.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\n\n"
    },
    {
      "commit": "683d0baad3d6e18134927f8c28ee804dbe10fe71",
      "tree": "a1ef69f9cde406492b5deedc6874312cbeb3b357",
      "parents": [
        "5bb983b0cce9b7b281af15730f7019116dd42568"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Jan 07 23:20:29 2008 -0800"
      },
      "committer": {
        "name": "Christoph Lameter",
        "email": "christoph@stapp.engr.sgi.com",
        "time": "Thu Feb 07 17:47:41 2008 -0800"
      },
      "message": "SLUB: Use unique end pointer for each slab page.\n\nWe use a NULL pointer on freelists to signal that there are no more objects.\nHowever the NULL pointers of all slabs match in contrast to the pointers to\nthe real objects which are in different ranges for different slab pages.\n\nChange the end pointer to be a pointer to the first object and set bit 0.\nEvery slab will then have a different end pointer. This is necessary to ensure\nthat end markers can be matched to the source slab during cmpxchg_local.\n\nBring back the use of the mapping field by SLUB since we would otherwise have\nto call a relatively expensive function page_address() in __slab_alloc().  Use\nof the mapping field allows avoiding a call to page_address() in various other\nfunctions as well.\n\nThere is no need to change the page_mapping() function since bit 0 is set on\nthe mapping as also for anonymous pages.  page_mapping(slab_page) will\ntherefore still return NULL although the mapping field is overloaded.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7b501b1f53605bec17454dd8bbdbbf3f57a7cf32",
      "tree": "3ad4ffe685ebf6a4eca96591012005cf4fa9ed26",
      "parents": [
        "455f791ea3e33a274c098b4a8c2e35d4d1a6d518"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Thu Jan 03 19:44:09 2008 +0100"
      },
      "committer": {
        "name": "Mark M. Hoffman",
        "email": "mhoffman@lightlink.com",
        "time": "Thu Feb 07 20:39:44 2008 -0500"
      },
      "message": "hwmon: Discard useless I2C driver IDs\n\nMany I2C hwmon drivers define a driver ID but no other code references\nthese, meaning that they are useless. Discard them, along with a few\nIDs which are defined but never used at all.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: Mark M. Hoffman \u003cmhoffman@lightlink.com\u003e\n"
    },
    {
      "commit": "293c09971631d22f8e91402f58955ccaada9dbde",
      "tree": "c5cdf121b455df519cc18f4daeefdaf112df3c91",
      "parents": [
        "05663368d2138c14fa1b9aa8eeca4ca9a33d7c77"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Fri Nov 30 23:52:44 2007 +0100"
      },
      "committer": {
        "name": "Mark M. Hoffman",
        "email": "mhoffman@lightlink.com",
        "time": "Thu Feb 07 20:39:43 2008 -0500"
      },
      "message": "hwmon: (w83781d) Misc cleanups\n\n* Drop unused defines\n* Drop unused driver ID\n* Remove trailing whitespace\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: Mark M. Hoffman \u003cmhoffman@lightlink.com\u003e\n"
    },
    {
      "commit": "f28dc2f78bbcbf07b8a084fcd89cf6b4256f0664",
      "tree": "ac051fe9264ff967cea12f96ac7dd58e52bca409",
      "parents": [
        "e0ae87a49cf3e721313bf8942299f3f140c6963c"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Sun Nov 04 23:44:23 2007 +0100"
      },
      "committer": {
        "name": "Mark M. Hoffman",
        "email": "mhoffman@lightlink.com",
        "time": "Thu Feb 07 20:39:41 2008 -0500"
      },
      "message": "hwmon: (gl520sm) Various cleanups\n\n* Drop trailing spaces\n* Drop unused driver ID\n* Drop stray backslashes in macros\n* Rename new_client to client\n* Drop redundant initializations to 0\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: Mark M. Hoffman \u003cmhoffman@lightlink.com\u003e\n"
    },
    {
      "commit": "a5955ed27497385cc491ecbe40af45951e830881",
      "tree": "7538f45fcf8cd98a1b12172c858f4067a7968b24",
      "parents": [
        "7dcf9a31ef50367e474e5e320e8ec5e0a8b9d2f0"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Mon Oct 22 17:45:08 2007 +0200"
      },
      "committer": {
        "name": "Mark M. Hoffman",
        "email": "mhoffman@lightlink.com",
        "time": "Thu Feb 07 20:39:41 2008 -0500"
      },
      "message": "hwmon: (gl518sm) Various cleanups\n\n* Drop history, it doesn\u0027t belong there\n* Drop unused struct member\n* Drop bogus struct member comment\n* Drop unused driver ID\n* Rename new_client to client\n* Drop redundant initializations to 0\n* Drop useless cast\n* Drop trailing space\n* Fix comment\n* Drop duplicate comment\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: Mark M. Hoffman \u003cmhoffman@lightlink.com\u003e\n"
    },
    {
      "commit": "7fce084a0b3e2bb8caef919f8f36065953655bb5",
      "tree": "a5bf95b6321ec488dc8a0667b652bb50479a32da",
      "parents": [
        "df922075f2a55b1ae71a6fe589c1cc1b91381f4f"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Sat Nov 03 17:29:20 2007 +0100"
      },
      "committer": {
        "name": "Mark M. Hoffman",
        "email": "mhoffman@lightlink.com",
        "time": "Thu Feb 07 20:39:40 2008 -0500"
      },
      "message": "dmi: Let drivers walk the DMI table\n\nLet drivers walk the DMI table for their own needs. Some drivers need\ndata stored in OEM-specific DMI records for proper operation.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: Mark M. Hoffman \u003cmhoffman@lightlink.com\u003e\n"
    },
    {
      "commit": "c8b6de16d9434405e5832b8772e4f986ddd5118e",
      "tree": "03d5d92be22e83778e3cf1367f8b6847eb953eb6",
      "parents": [
        "a6a852e93705121e2b90bd41ad50e85a508699aa",
        "8e31e607ea050c0df1483d8b6cdd5b1395c03cbe"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 17:30:44 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 17:30:44 2008 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (48 commits)\n  [SCSI] aacraid: do not set valid bit in sense information\n  [SCSI] ses: add new Enclosure ULD\n  [SCSI] enclosure: add support for enclosure services\n  [SCSI] sr: fix test unit ready responses\n  [SCSI] u14-34f: fix data direction bug\n  [SCSI] aacraid: pci_set_dma_max_seg_size opened up for late model controllers\n  [SCSI] fix BUG when sum(scatterlist) \u003e bufflen\n  [SCSI] arcmsr: updates (1.20.00.15)\n  [SCSI] advansys: make 3 functions static\n  [SCSI] Small cleanups for scsi_host.h\n  [SCSI] dc395x: fix uninitialized var warning\n  [SCSI] NCR53C9x: remove driver\n  [SCSI] remove m68k NCR53C9x based drivers\n  [SCSI] dec_esp: Remove driver\n  [SCSI] kernel-doc: fix scsi docbook\n  [SCSI] update my email address\n  [SCSI] add protocol definitions\n  [SCSI] sd: handle bad lba in sense information\n  [SCSI] qla2xxx: Update version number to 8.02.00-k8.\n  [SCSI] qla2xxx: Correct issue where incorrect init-fw mailbox command was used on non-NPIV capable ISPs.\n  ...\n"
    },
    {
      "commit": "d569d5bb3fd96d2907acaddd7c4ea5cb07d02ab8",
      "tree": "2ad7fb8bf4ea59cdcc4ab7b98a14cc0eca451d05",
      "parents": [
        "38582a62ecd337de4212004c7d4844899dc57890"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sun Feb 03 15:40:56 2008 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Feb 07 18:04:10 2008 -0600"
      },
      "message": "[SCSI] enclosure: add support for enclosure services\n\nThe enclosure misc device is really just a library providing sysfs\nsupport for physical enclosure devices and their components.\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "d850bd34f5b2a52ccec90188ad86165f940693e9",
      "tree": "7f22410bf8383d91055e4fa53166d7a283ec7267",
      "parents": [
        "8144f2137b7c69055597bb644a3cb6d08ee0de77"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@ucw.cz",
        "time": "Mon Feb 04 23:53:24 2008 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Feb 07 18:02:43 2008 -0600"
      },
      "message": "[SCSI] Small cleanups for scsi_host.h\n\nSmall cleanups in scsi_host.h. Few #defines make me wonder if their\ndescription is still up to date..?\n\nSigned-off-by: Pavel Machek \u003cpavel@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "89dddbce9c6ec7663af81a74be6a6aa720301994",
      "tree": "e960055eb2357355517a057a599de16ac922c366",
      "parents": [
        "366c246de9cec909c5eba4f784c92d1e75b4dc38"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sun Feb 03 15:32:59 2008 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Feb 07 18:02:41 2008 -0600"
      },
      "message": "[SCSI] add protocol definitions\n\nA lot of SCSI command replies have a protocol ID field.  Add\ndefinitions for the interpretation of that from SPC-3.\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "8b1d03434ee44b08c57f50403eaeab099facebf5",
      "tree": "48d7c5aeb3b765284dcc3d8685ed6ea6aed350cb",
      "parents": [
        "322d739da83bbff0309c202181f79c08d9534880"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Thu Jan 31 13:36:53 2008 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Feb 07 18:02:37 2008 -0600"
      },
      "message": "[SCSI] libiscsi: fix session age rollover and remove cid encoding\n\nThe session age mask is only 4 bits, but session-\u003eage is 32. When\nit gets larger then 15 and we try to or the bits some bits get\ndropped and the check for session age in iscsi_verify_itt is useless.\n\nThe ISCSI_CID_MASK related bits are also useless since cid is always\none.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "322d739da83bbff0309c202181f79c08d9534880",
      "tree": "4bbe485dc4f942ac6d5c8ad1c4508599a1eb2c66",
      "parents": [
        "c238c3bba9b422a9b453c75e157b416204f22a71"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Thu Jan 31 13:36:52 2008 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Feb 07 18:02:37 2008 -0600"
      },
      "message": "[SCSI] iscsi: fix up iscsi printk prefix\n\nSome iscsi class messages have the dev_printk prefix and some libiscsi\nand iscsi_tcp messages have \"iscsi\" or the module name as a prefix which\nis normally pretty useless when trying to figure out which session\nor connection the message is attached to. This patch adds iscsi lib\nand class dev_printks so all messages have a common prefix that\ncan be used to figure out which object printed it.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "8aae18adb240a9eb1999b8245c56522cbefc9047",
      "tree": "a859a89c4385fc3639733db4b56735e26797feba",
      "parents": [
        "568d303b5b3f0f6432ae8f56ecdb0beb2341288e"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Thu Jan 31 13:36:48 2008 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Feb 07 18:02:35 2008 -0600"
      },
      "message": "[SCSI] iscsi class: add async scan helper\n\nIn qla4xxx\u0027s probe it will call the iscsi session setup functions\nfor session that got setup on the initial start. This then makes\nit easy for the iscsi class to export a helper which indicates\nwhen those scans are done.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "bd976f62cd6c6dda1ce57bf3e84447e94844868a",
      "tree": "560e9fd29f0af7d6cb1a89b49e6f2091832c987b",
      "parents": [
        "7fb1921b07a83f71a77f806a2a7d2dd721ea641b"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Thu Jan 31 13:36:46 2008 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Feb 07 18:02:35 2008 -0600"
      },
      "message": "[SCSI] iscsi class: add session scanning\n\nThis just adds iscsi session scanning which works like fc rport scanning.\nThe future patches will hook the drivers into Mathew Wilcox\u0027s async\nscanning infrastructure, so userspace does not have to special case\niscsi and so userspace does not have to make a extra special case for\nhardware iscsi root scanning.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "6eabafbe6616266e8de61980a7dac5ecc1ba1113",
      "tree": "f5533027fac576acf4db08210ea5815db3a15e50",
      "parents": [
        "84ac86ca8c6787f9efff28bc04b1b65fe0a5c310"
      ],
      "author": {
        "name": "Mike Christie",
        "email": "michaelc@cs.wisc.edu",
        "time": "Thu Jan 31 13:36:43 2008 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Feb 07 18:02:34 2008 -0600"
      },
      "message": "[SCSI] iscsi class, libiscsi: add iscsi sysfs session state file\n\nThis adds a iscsi session state file which exports the session\nstate for both software and hardware iscsi. It also hooks libiscsi\nin.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "f8d9d654fcc7dd87f5d0b222e233eaab15d650c4",
      "tree": "22514d77f4904b4cf9dabb4321cf763e2afa91fc",
      "parents": [
        "5234e25c35a708708559727b1e3e04de3a538828"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Tue Jan 29 00:11:27 2008 +0200"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Feb 07 18:02:33 2008 -0600"
      },
      "message": "[SCSI] libiscsi: make __iscsi_complete_pdu() static\n\n__iscsi_complete_pdu() can now become static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "151db1fc23800875c7ac353b106b7dab77061275",
      "tree": "b14f06bec7e45c9cd909df1dfb66b099d273b35c",
      "parents": [
        "145e9230760e4db27cf5f00fd04b005c79ca1c12"
      ],
      "author": {
        "name": "Tony Breeds",
        "email": "tony@bakeyournoodle.com",
        "time": "Fri Feb 08 09:24:52 2008 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 14:54:45 2008 -0800"
      },
      "message": "Fix compilation of powerpc asm-offsets.c with old gcc\n\nCommit ad7f71674ad7c3c4467e48f6ab9e85516dae2720 (\"[POWERPC] Use a\nsensible default for clock_getres() in the VDSO\") corrected the clock\nresolution reported by the VDSO clock_getres() but introduced another\nproblem in that older versions of gcc (gcc-4.0 and earlier) fail to\ncompile the new code in arch/powerpc/kernel/asm-offsets.c.\n\nThis fixes it by introducing a new MONOTONIC_RES_NSEC define in the\ngeneric code which is equivalent to KTIME_MONOTONIC_RES but is just an\ninteger constant, not a ktime union.\n\nSigned-off-by: Tony Breeds \u003ctony@bakeyournoodle.com\u003e\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6e5565f949af1322f8f3d3f43d044645ae448499",
      "tree": "92868f6d3dcc6c105a0d35f9412f75c07139402e",
      "parents": [
        "e5a9e8e6890d9b9c7a0f25b03ffdaf28614a9a4c",
        "03366e7b9bf1544cb0b98f1a5cd6d340654f486a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 12:57:44 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 12:57:44 2008 -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: (34 commits)\n  Input: i8042 - non-x86 build fix\n  Input: pxa27x_keypad - also enable on PXA3xx\n  Input: pxa27x_keypad - add debounce_interval to the keypad platform data\n  Input: pxa27x_keypad - use device resources for I/O memory mapping and IRQ\n  Input: pxa27x_keypad - enable rotary encoders and direct keys\n  Input: pxa27x_keypad - introduce pxa27x_keypad_config()\n  Input: pxa27x_keypad - introduce driver structure and use KEY() to define matrix keys\n  Input: pxa27x_keypad - remove pin configuration from the driver\n  Input: pxa27x_keypad - rename the driver (was pxa27x_keyboard)\n  Input: constify function pointer tables (seq_operations)\n  Input: i8042 - add Fujitsu-Siemens Amilo Pro 2010 to nomux list\n  Input: i8042 - enable DMI quirks on x86-64\n  Input: i8042 - add Dritek quirk for Acer Aspire 9110\n  Input: add input event to APM event bridge\n  Input: mousedev - use BIT_MASK instead of BIT\n  Input: remove duplicate includes\n  Input: remove cdev from input_dev structure\n  Input: remove duplicated headers in drivers/char/keyboard.c\n  Input: i8042 - add Dritek keyboard extension quirk\n  Input: add Tosa keyboard driver\n  ...\n"
    },
    {
      "commit": "0afc2edfada50980bec999f94dcea26ebad3dda6",
      "tree": "8963dd8fd78ee5c3481acad5903bc459bd3d055c",
      "parents": [
        "a8e98d6d51a3eb7bb061b1625193a129c8bd094f",
        "d256eb8db60e36fc5dd0a27ce8a64f65df31f7b5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 10:21:26 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 10:21:26 2008 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:\n  [SPARC32]: Use regsets in arch_ptrace().\n  [SPARC64]: Use regsets in arch_ptrace().\n  [SPARC32]: Use regsets for ELF core dumping.\n  [SPARC64]: Use regsets for ELF core dumping.\n  [SPARC64]: Remove unintentional ptrace debugging messages.\n  [SPARC]: Move over to arch_ptrace().\n  [SPARC]: Remove PTRACE_SUN* handling.\n  [SPARC]: Kill DEBUG_PTRACE code.\n  [SPARC32]: Add user regset support.\n  [SPARC64]: Add user regsets.\n  [SPARC64]: Fix booting on non-zero cpu.\n"
    },
    {
      "commit": "a8e98d6d51a3eb7bb061b1625193a129c8bd094f",
      "tree": "0fa58b6e11e37023b024e55b8f0e7e01438706d4",
      "parents": [
        "f0f1b3364ae7f48084bdf2837fb979ff59622523",
        "f9f7dd222364a6428d2ad99a515935dd1dd89d18"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 10:20:31 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 10:20:31 2008 -0800"
      },
      "message": "Merge git://git.infradead.org/mtd-2.6\n\n* git://git.infradead.org/mtd-2.6: (120 commits)\n  [MTD] Fix mtdoops.c compilation\n  [MTD] [NOR] fix startup lock when using multiple nor flash chips\n  [MTD] [DOC200x] eccbuf is statically defined and always evaluate to true\n  [MTD] Fix maps/physmap.c compilation with CONFIG_PM\n  [MTD] onenand: Add panic_write function to the onenand driver\n  [MTD] mtdoops: Use the panic_write function when present\n  [MTD] Add mtd panic_write function pointer\n  [MTD] [NAND] Freescale enhanced Local Bus Controller FCM NAND support.\n  [MTD] physmap.c: Add support for multiple resources\n  [MTD] [NAND] Fix misparenthesization introduced by commit 78b65179...\n  [MTD] [NAND] Fix Blackfin NFC ECC calculating bug with page size 512 bytes\n  [MTD] [NAND] Remove wrong operation in PM function of the BF54x NFC driver\n  [MTD] [NAND] Remove unused variable in plat_nand_remove\n  [MTD] Unlocking all Intel flash that is locked on power up.\n  [MTD] [NAND] at91_nand: Make mtdparts option can override board info\n  [MTD] mtdoops: Various minor cleanups\n  [MTD] mtdoops: Ensure sequential write to the buffer\n  [MTD] mtdoops: Perform write operations in a workqueue\n  [MTD] mtdoops: Add further error return code checking\n  [MTD] [NOR] Test devtype, not definition in flash_probe(), drivers/mtd/devices/lart.c\n  ...\n"
    },
    {
      "commit": "f0f1b3364ae7f48084bdf2837fb979ff59622523",
      "tree": "e5ef68c0071f44178cc8d1948b64e216d57422aa",
      "parents": [
        "4383f18b7f94a4d668c5eec68645c75d44556235",
        "b7143156c9ceee1a072c57aac8729d2dec5b3bf1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 09:45:58 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 09:45:58 2008 -0800"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (112 commits)\n  ACPI: fix build warning\n  Revert \"cpuidle: build fix for non-x86\"\n  ACPI: update intrd DSDT override console messages\n  ACPI: update DSDT override documentation\n  ACPI: Add \"acpi_no_initrd_override\" kernel parameter\n  ACPI: its a directory not a folder....\n  ACPI: misc cleanups\n  ACPI: add missing prink prefix strings\n  ACPI: cleanup acpi.h\n  ACPICA: fix CONFIG_ACPI_DEBUG_FUNC_TRACE build\n  ACPI: video: Ignore ACPI video devices that aren\u0027t present in hardware\n  ACPI: video: reset brightness on resume\n  ACPI: video: call ACPI notifier chain for ACPI video notifications\n  ACPI: create notifier chain to get hotkey events to graphics driver\n  ACPI: video: delete unused display switch on hotkey event code\n  ACPI: video: create \"brightness_switch_enabled\" modparam\n  cpuidle: Add a poll_idle method\n  ACPI: cpuidle: Support C1 idle time accounting\n  ACPI: enable MWAIT for C1 idle\n  ACPI: idle: Fix acpi_safe_halt usages and interrupt enabling/disabling\n  ...\n"
    },
    {
      "commit": "3d50337f62a61027f40ad4ceddefa3c91e5d479e",
      "tree": "c89bed784ab0fc402e9f4155f500170c9a335949",
      "parents": [
        "5b808a593588b2e6235c59fcd278791c53667787",
        "d39a7a63eb3971b1b3cc5c181ed526bf437b1c72"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 09:45:14 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 09:45:14 2008 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.o-hand.com/linux-rpurdie-leds\n\n* \u0027for-linus\u0027 of git://git.o-hand.com/linux-rpurdie-leds:\n  leds: Add HP Jornada 6xx driver\n  leds: Remove the now uneeded ixp4xx driver\n  leds: Add power LED to the wrap driver\n  leds: Fix led-gpio active_low default brightness\n  leds: hw acceleration for Clevo mail LED driver\n  leds: Add support for hardware accelerated LED flashing\n  leds: Standardise LED naming scheme\n  leds: Add clevo notebook LED driver\n"
    },
    {
      "commit": "5b808a593588b2e6235c59fcd278791c53667787",
      "tree": "6f163b052b8d9d3e8448dd8caf3459a0372dffc4",
      "parents": [
        "d31d29540915f21d3f2bcfdd6d135fde328038a0"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "geert@linux-m68k.org",
        "time": "Thu Feb 07 09:10:37 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 09:10:06 2008 -0800"
      },
      "message": "m68k: kill page walker compile warning\n\nThe recently introduced page walker (walk_page_range()) calls pgd_offset with a\nconst struct mm_struct pointer, causing the following compile warning on m68k:\n\n    mm/pagewalk.c:111: warning: passing argument 1 of \u0027pgd_offset\u0027 discards qualifiers from pointer target type\n\nMake the `mm\u0027 parameter of the inline function pgd_offset() const to shut it\nup.\n\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7a8c6ad918e9c598bf3b799f1a0d5ee4dee59ca3",
      "tree": "ce1ed4557f44560ba0db2713046edcb9a2a39094",
      "parents": [
        "37969581301e50872a1ae84dc73962b5f7ee6b76",
        "e19717fe2bb3624d8242f66d3825881d11a847dd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 09:03:00 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 09:03:00 2008 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq:\n  [CPUFREQ] Add missing printk levels to e_powersaver\n  [CPUFREQ] Fix sparse warning in powernow-k8\n  [CPUFREQ] Support Model D parts and newer in e_powersaver\n  [CPUFREQ] Powernow-k8: Update to support the latest Turion processors\n  [CPUFREQ] fix configuration help message\n  [CPUFREQ] powernow-k8 print pstate instead of fid/did for family 10h\n  [CPUFREQ] Eliminate cpufreq_userspace scaling_setspeed deadlock\n  [CPUFREQ] gx-suspmod.c: use boot_cpu_data instead of current_cpu_data\n  [CPUFREQ] fix incorrect comment on show_available_freqs() in freq_table.c\n  [CPUFREQ] drivers/cpufreq: Add missing \"space\"\n  [CPUFREQ] arch/x86: Add missing \"space\"\n  [CPUFREQ] Remove pointless Kconfig dependancy\n"
    },
    {
      "commit": "37969581301e50872a1ae84dc73962b5f7ee6b76",
      "tree": "35bbd6a07f903f248f4bd209b8d194a922415fe0",
      "parents": [
        "80ff8a805113850a3ffafcc8e6eaa1fdd51b02f3",
        "24f1a849614ba1805e26a05da7cc8c6bd67490ea"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 09:02:26 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 09:02:26 2008 -0800"
      },
      "message": "Merge branch \u0027for-2.6.25\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc\n\n* \u0027for-2.6.25\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (69 commits)\n  [POWERPC] Add SPE registers to core dumps\n  [POWERPC] Use regset code for compat PTRACE_*REGS* calls\n  [POWERPC] Use generic compat_sys_ptrace\n  [POWERPC] Use generic compat_ptrace_request\n  [POWERPC] Use generic ptrace peekdata/pokedata\n  [POWERPC] Use regset code for PTRACE_*REGS* requests\n  [POWERPC] Switch to generic compat_binfmt_elf code\n  [POWERPC] Switch to using user_regset-based core dumps\n  [POWERPC] Add user_regset compat support\n  [POWERPC] Add user_regset_view definitions\n  [POWERPC] Use user_regset accessors for GPRs\n  [POWERPC] ptrace accessors for special regs MSR and TRAP\n  [POWERPC] Use user_regset accessors for SPE regs\n  [POWERPC] Use user_regset accessors for altivec regs\n  [POWERPC] Use user_regset accessors for FP regs\n  [POWERPC] mpc52xx: fix compile error introduce when rebasing patch\n  [POWERPC] 4xx: PCIe indirect DCR spinlock fix.\n  [POWERPC] Add missing native dcr dcr_ind_lock spinlock\n  [POWERPC] 4xx: Fix offset value on Warp board\n  [POWERPC] 4xx: Add 440EPx Sequoia ehci dts entry\n  ...\n"
    },
    {
      "commit": "3099bbc59435928fbd1f4ebd835f825bca755bbb",
      "tree": "5468ed4ca5b1a9f6bba66b1e0eadf379e0b909e0",
      "parents": [
        "ccfea3c98a10b9d4d49b899616a06594ec976d7d"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Thu Feb 07 00:16:40 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:34 2008 -0800"
      },
      "message": "Char: serial167, remove bottomhalf\n\n- Cy_EVENT_OPEN_WAKEUP is simple wake_up\n- Cy_EVENT_HANGUP is wake_up + tty_hangup, which schedules its own work\n- Cy_EVENT_WRITE_WAKEUP is tty_wakeup which may be called directly too\n\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nAcked-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ccfea3c98a10b9d4d49b899616a06594ec976d7d",
      "tree": "cea834a683e572015a51dbf122603c20d040c1f7",
      "parents": [
        "d0d4e1c098754bfbb2aeb94333756d63d255688e"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Thu Feb 07 00:16:39 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:34 2008 -0800"
      },
      "message": "Char: stallion, remove bottomhalf\n\n- tty_hangup schedules a bottomhalf itself, tty_wakeup doesn\u0027t need it\n- call the CD code (part of work handler previously) directly from the code\n  (it wakes somebody up or calls tty_hangup at worse)\n\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nAcked-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cfccaeea62f020242e59a992e1f1a60fe7e5694e",
      "tree": "d6cc42c199836ec94221f05008766ad81c5bacdc",
      "parents": [
        "d2e7a4b66d762cad383c5469c1e8b6076792ab6a"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Thu Feb 07 00:16:38 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:34 2008 -0800"
      },
      "message": "Char: istallion, remove hangup bottomhalf\n\ntty_hangup schedules a work for hangup itself, no need to do it in the driver.\n\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nAcked-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d2e7a4b66d762cad383c5469c1e8b6076792ab6a",
      "tree": "8516adc2f15b67cfc5b802912b379357928eb48f",
      "parents": [
        "1386a820b32285583414a8db3a99305e7ebe8377"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Thu Feb 07 00:16:37 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:34 2008 -0800"
      },
      "message": "Char: esp, remove hangup and wakeup bottomhalves\n\nThere is no need to schedule a bottomhalf for either of them. One is fast\nand the another schedules a bottomhalf itself.\n\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nAcked-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1237a2ef31cf60e01bbecbe198d8c002bbb710db",
      "tree": "1d71f11a023c4ab0262000e90d311223b5ecc28e",
      "parents": [
        "f6de0c9864c10d17f2473940c5f81718a5064bd8"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Thu Feb 07 00:16:34 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:33 2008 -0800"
      },
      "message": "Char: char/serial, remove SERIAL_TYPE_NORMAL redefines\n\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9a7744f9823b9ddf14c47c475e81c1326b1a2787",
      "tree": "a5969eab412bb34aa0f38c6a12a5fffe5553b2ce",
      "parents": [
        "b62f13439147210d5ad4bc40acee32b94c59f06d"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:26 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:33 2008 -0800"
      },
      "message": "Add cmpxchg_local to xtensa\n\nUse the architecture specific __cmpxchg_u32 for 32 bits cmpxchg)_local. Else,\nuse the new generic cmpxchg_local (disables interrupt).\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Chris Zankel \u003cchris@zankel.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b62f13439147210d5ad4bc40acee32b94c59f06d",
      "tree": "f5948b96ce938b4cd28b30dfd02731a1ec7dbc73",
      "parents": [
        "80af4eeb726f038eddc32826e4238feba5b1dfb4"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:26 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:33 2008 -0800"
      },
      "message": "Add cmpxchg_local to v850\n\nUse the new generic cmpxchg_local (disables interrupt). Also use the generic\ncmpxchg as fallback if SMP is not set.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Miles Bader \u003cmiles.bader@necel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "80af4eeb726f038eddc32826e4238feba5b1dfb4",
      "tree": "004867c90a5294a8902fc01f1181beacab587300",
      "parents": [
        "405321d3ab2b41960e2874f2f74609daffbc7a4c"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:25 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:33 2008 -0800"
      },
      "message": "Add cmpxchg_local to sparc64\n\nUse cmpxchg_u32 and cmpxchg_u64 for cmpxchg_local and cmpxchg64_local. For other\ntype sizes, use the new generic cmpxchg_local (disables interrupt).\n\nChange:\nSince the header depends on local_irqsave/local_irqrestore, it must be\nincluded after their declaration.\n\nActually, being below the\n#include \u003clinux/irqflags.h\u003e should be enough, and on sparc64 it is\nincluded at the beginning of system.h.\n\nSo it makes sense to move it up for sparc64.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "405321d3ab2b41960e2874f2f74609daffbc7a4c",
      "tree": "af0d51539011d57b2df0df6c69171433f9d60ff8",
      "parents": [
        "fe4130131ef9e55763fd634a02b1db9290dbbe5a"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:24 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:32 2008 -0800"
      },
      "message": "Add cmpxchg_local to sparc, move __cmpxchg to system.h\n\nMove cmpxchg and add cmpxchg_local to system.h.\nUse the new generic cmpxchg_local (disables interrupt).\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fe4130131ef9e55763fd634a02b1db9290dbbe5a",
      "tree": "523a97bd9f3b9302edfb80c5175ec9a528c1b807",
      "parents": [
        "85fdbe1b4b33b797321bfadf706b355e7cca6165"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:24 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:32 2008 -0800"
      },
      "message": "Add cmpxchg_local to s390\n\nUse the standard __cmpxchg for every type that can be updated atomically.\nUse the new generic cmpxchg_local (disables interrupt) for other types.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "85fdbe1b4b33b797321bfadf706b355e7cca6165",
      "tree": "bb24d49bb9cc2167742af843718587b408ad71e2",
      "parents": [
        "df80c8c5679c4e6c72e694525d76a9f26d5f33dc"
      ],
      "author": {
        "name": "Gunnar Larisch",
        "email": "gl@denx.de",
        "time": "Thu Feb 07 00:16:22 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:32 2008 -0800"
      },
      "message": "Add cmpxchg_local to ppc\n\nAdd a local processor version of cmpxchg for ppc.\n\nImplements __cmpxchg_u32_local and uses it for 32 bits cmpxchg_local.\nIt uses the non NMI safe cmpxchg_local_generic for 1, 2 and 8 bytes\ncmpxchg_local.\n\nSigned-off-by: Gunnar Larisch \u003cgl@denx.de\u003e\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Kumar Gala \u003cgalak@gate.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "df80c8c5679c4e6c72e694525d76a9f26d5f33dc",
      "tree": "84144c163426e6d4ecfaa7c50dd9cd67fa91bc64",
      "parents": [
        "027bcc27d3d1a218dbf4477964a18fed78983357"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:21 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:32 2008 -0800"
      },
      "message": "Add cmpxchg_local to parisc\n\nUse the new generic cmpxchg_local (disables interrupt). Also use the generic\ncmpxchg as fallback if SMP is not set.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\nCc: Matthew Wilcox \u003cwilly@debian.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "027bcc27d3d1a218dbf4477964a18fed78983357",
      "tree": "a76ba273a2cdbd1866e79b3840c3293b13b50251",
      "parents": [
        "5da751035c5c8f5b30978e97fd4b3c75f453b04e"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:20 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:32 2008 -0800"
      },
      "message": "Add cmpxchg_local to m68knommu\n\nUse the new generic cmpxchg_local (disables interrupt). Also use the generic\ncmpxchg as fallback if SMP is not set.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5da751035c5c8f5b30978e97fd4b3c75f453b04e",
      "tree": "9d50b1187702079ba6fb5d61a84db4dbdd646937",
      "parents": [
        "7fa2ac3728ce828070fa3d5846c08157fe5ef431"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:20 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:32 2008 -0800"
      },
      "message": "Add cmpxchg_local to m86k\n\nUse the new generic cmpxchg_local (disables interrupt). Also use the generic\ncmpxchg as fallback if SMP is not set.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7fa2ac3728ce828070fa3d5846c08157fe5ef431",
      "tree": "46d8af0c873bac8d03fd7c166420c9ee5fca7fca",
      "parents": [
        "df0f65f02a55888feae52a7e7d59d29f5edd400d"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:19 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:32 2008 -0800"
      },
      "message": "local_t m32r use architecture specific cmpxchg_local\n\nOn m32r, use the new cmpxchg_local as primitive for the local_cmpxchg\noperation.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nAcked-by: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f94d1d3a1df125461a16b2888eca46d64f113e3a",
      "tree": "35991d4f2f00dd9f3df1fe5d0ca53b5e01545f67",
      "parents": [
        "7b631c2de63b4475351258197409983c8189ed04"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:18 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:32 2008 -0800"
      },
      "message": "Fix m32r __xchg\n\nthe #endif  /* CONFIG_SMP */ should cover the default condition, or it may cause\nbad parameter to be silently missed.\n\nTo make it work correctly, we have to remove the ifdef CONFIG SMP surrounding\n__xchg_called_with_bad_pointer declaration. Thanks to Adrian Bunk for detecting\nthis.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nAcked-by: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nCc: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7b631c2de63b4475351258197409983c8189ed04",
      "tree": "915d5b3d1b7ba8f47e0f5abfba70aec94c106d9e",
      "parents": [
        "4b78fff6e736cae55dc3fb5570c7ef4037eca9b7"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:17 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:32 2008 -0800"
      },
      "message": "New cmpxchg_local (optimized for UP case) for m32r\n\nAdd __xchg_local, xchg_local (define), __cmpxchg_local_u32, __cmpxchg_local,\ncmpxchg_local(macro).\n\ncmpxchg_local and cmpxchg64_local will use the architecture specific\n__cmpxchg_local_u32 for 32 bits arguments, and use the generic\n__cmpxchg_local_generic for 8, 16 and 64 bits arguments.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nAcked-by: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4b78fff6e736cae55dc3fb5570c7ef4037eca9b7",
      "tree": "1ef5848902fd8222fb2280e48d19575a19aa8809",
      "parents": [
        "aebb77aef4b50a157bf0185de31d1aede3ca2312"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:16 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:32 2008 -0800"
      },
      "message": "Add cmpxchg_local, cmpxchg64 and cmpxchg64_local to ia64\n\nAdd the primitives cmpxchg_local, cmpxchg64 and cmpxchg64_local to ia64. They\nuse cmpxchg_acq as underlying macro, just like the already existing ia64\ncmpxchg().\n\nChangelog:\n\nia64 cmpxchg_local coding style fix\nQuoting Keith Owens:\n\nAs a matter of coding style, I prefer\n\n#define cmpxchg_local   cmpxchg\n#define cmpxchg64_local cmpxchg64\n\nWhich makes it absolutely clear that they are the same code.  With your\npatch, humans have to do a string compare of two defines to see if they\nare the same.\n\nNote cmpxchg is *not* a performance win vs interrupt disable / enable on IA64.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Keith Owens \u003ckaos@ocs.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "aebb77aef4b50a157bf0185de31d1aede3ca2312",
      "tree": "0f4b5f17120b93193d06dcf9f6ca270f2c06c5fc",
      "parents": [
        "14e0cb3c60b89c4a2512852ffc18601c72314a0f"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:15 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:32 2008 -0800"
      },
      "message": "Add cmpxchg_local to h8300\n\nUse the new generic cmpxchg_local (disables interrupt). Also use the generic\ncmpxchg as fallback if SMP is not set.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Yoshinori Sato \u003cysato@users.sourceforge.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "14e0cb3c60b89c4a2512852ffc18601c72314a0f",
      "tree": "59267c487c31f18036ac8c1a28a2250c3bd97f60",
      "parents": [
        "7732ba3abc5a53e7e1d93afd5a5a6ccf74f2ce53"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:14 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:32 2008 -0800"
      },
      "message": "Add cmpxchg_local to frv\n\nUse the new generic cmpxchg_local (disables interrupt) for 8, 16 and 64 bits\narguments. Use the 32 bits cmpxchg available on the architecture for 32 bits\narguments.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7732ba3abc5a53e7e1d93afd5a5a6ccf74f2ce53",
      "tree": "0dec1b2b4457d0db2ccd04eab6999c3b84c711f7",
      "parents": [
        "10b8827068377a11ed0e396248f7d02751fe5f17"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:14 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:31 2008 -0800"
      },
      "message": "Add cmpxchg_local to cris\n\nUse the new generic cmpxchg_local (disables interrupt). Also use the generic\ncmpxchg as fallback if SMP is not set.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Mikael Starvik \u003cstarvik@axis.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "10b8827068377a11ed0e396248f7d02751fe5f17",
      "tree": "2ca6e89cc47354ac2cec717e186ede7f24e0b8fd",
      "parents": [
        "5e86c11d3eb4662000f3ced7344352b2ca319d03"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:13 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:31 2008 -0800"
      },
      "message": "Add cmpxchg_local to blackfin, replace __cmpxchg by generic cmpxchg\n\nUse the new generic cmpxchg_local (disables interrupt). Also use the generic\ncmpxchg as fallback if SMP is not set since nobody seems to know why __cmpxchg\nhas been implemented in assembly in the first place thather than in plain C.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Bryan Wu \u003cbryan.wu@analog.com\u003e\nCc: Michael Frysinger \u003cmichael.frysinger@analog.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5e86c11d3eb4662000f3ced7344352b2ca319d03",
      "tree": "30332e5df3105622e2b5443aa346c739a89f37f6",
      "parents": [
        "176393d4232a89aaf8745b0726f4d212a20103f1"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:12 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:31 2008 -0800"
      },
      "message": "Add cmpxchg_local to avr32\n\nUse the new generic cmpxchg_local (disables interrupt) for 8, 16 and 64 bits\ncmpxchg_local. Use the __cmpxchg_u32 primitive for 32 bits cmpxchg_local.\n\nNote that cmpxchg only uses the __cmpxchg_u32 or __cmpxchg_u64 and will cause\na linker error if called with 8 or 16 bits argument.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nAcked-by: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "176393d4232a89aaf8745b0726f4d212a20103f1",
      "tree": "f5d64f19a7db6da5d694c209fa8ac2d6ce43dd29",
      "parents": [
        "32f49eab5e893007c0064f465c857ac7c4d40b77"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:11 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:31 2008 -0800"
      },
      "message": "Add cmpxchg_local to arm\n\nUse the new generic cmpxchg_local (disables interrupt). Also use the generic\ncmpxchg as fallback if SMP is not set.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "32f49eab5e893007c0064f465c857ac7c4d40b77",
      "tree": "dd3a69e196fee7311d61dda8c17dd62a451070b2",
      "parents": [
        "f9c4650bcfb4b21126525f73f10d635284e16056"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:10 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:31 2008 -0800"
      },
      "message": "Add cmpxchg64 and cmpxchg64_local to x86_64\n\nMake sure that at least cmpxchg64_local is available on all architectures to use\nfor unsigned long long values.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f9c4650bcfb4b21126525f73f10d635284e16056",
      "tree": "11927048b5ae34472043b894e9646d1e4635ae99",
      "parents": [
        "3b96a56d395a4dcf4c05c48d8f4e74b1f8bd073d"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:10 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:30 2008 -0800"
      },
      "message": "Add cmpxchg64 and cmpxchg64_local to powerpc\n\nMake sure that at least cmpxchg64_local is available on all architectures to use\nfor unsigned long long values.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nAcked-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3b96a56d395a4dcf4c05c48d8f4e74b1f8bd073d",
      "tree": "1c4e8cb7c5ea7e7af7dd8e4c07b429dffa4b9cc5",
      "parents": [
        "a259b2428b10c19b94e346bc69d5b3bf9bff488e"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:09 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:30 2008 -0800"
      },
      "message": "Add cmpxchg64 and cmpxchg64_local to mips\n\nMake sure that at least cmpxchg64_local is available on all architectures to use\nfor unsigned long long values.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a259b2428b10c19b94e346bc69d5b3bf9bff488e",
      "tree": "ceb0536890fc85e46b905239ffe44077be695b03",
      "parents": [
        "068fbad288a2c18b75b0425fb56d241f018a1cb5"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:08 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:30 2008 -0800"
      },
      "message": "Add cmpxchg64 and cmpxchg64_local to alpha\n\nMake sure that at least cmpxchg64_local is available on all architectures to use\nfor unsigned long long values.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "068fbad288a2c18b75b0425fb56d241f018a1cb5",
      "tree": "441674bb0658208fbc5f6eab96b8641ab7345caf",
      "parents": [
        "6e16d89bcd668a95eb22add24c02d80890232b66"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Feb 07 00:16:07 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:30 2008 -0800"
      },
      "message": "Add cmpxchg_local to asm-generic for per cpu atomic operations\n\nEmulates the cmpxchg_local by disabling interrupts around variable modification.\nThis is not reentrant wrt NMIs and MCEs. It is only protected against normal\ninterrupts, but this is enough for architectures without such interrupt sources\nor if used in a context where the data is not shared with such handlers.\n\nIt can be used as a fallback for architectures lacking a real cmpxchg\ninstruction.\n\nFor architectures that have a real cmpxchg but does not have NMIs or MCE,\ntesting which of the generic vs architecture specific cmpxchg is the fastest\nshould be done.\n\nasm-generic/cmpxchg.h defines a cmpxchg that uses cmpxchg_local. It is meant to\nbe used as a cmpxchg fallback for architectures that do not support SMP.\n\n* Patch series comments\n\nUsing cmpxchg_local shows a performance improvements of the fast path goes from\na 66% speedup on a Pentium 4 to a 14% speedup on AMD64.\n\nIn detail:\n\nTested-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nMeasurements on a Pentium4, 3GHz, Hyperthread.\nSLUB Performance testing\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n1. Kmalloc: Repeatedly allocate then free test\n\n* slub HEAD, test 1\nkmalloc(8) \u003d 201 cycles         kfree \u003d 351 cycles\nkmalloc(16) \u003d 198 cycles        kfree \u003d 359 cycles\nkmalloc(32) \u003d 200 cycles        kfree \u003d 381 cycles\nkmalloc(64) \u003d 224 cycles        kfree \u003d 394 cycles\nkmalloc(128) \u003d 285 cycles       kfree \u003d 424 cycles\nkmalloc(256) \u003d 411 cycles       kfree \u003d 546 cycles\nkmalloc(512) \u003d 480 cycles       kfree \u003d 619 cycles\nkmalloc(1024) \u003d 623 cycles      kfree \u003d 750 cycles\nkmalloc(2048) \u003d 686 cycles      kfree \u003d 811 cycles\nkmalloc(4096) \u003d 482 cycles      kfree \u003d 538 cycles\nkmalloc(8192) \u003d 680 cycles      kfree \u003d 734 cycles\nkmalloc(16384) \u003d 713 cycles     kfree \u003d 843 cycles\n\n* Slub HEAD, test 2\nkmalloc(8) \u003d 190 cycles         kfree \u003d 351 cycles\nkmalloc(16) \u003d 195 cycles        kfree \u003d 360 cycles\nkmalloc(32) \u003d 201 cycles        kfree \u003d 370 cycles\nkmalloc(64) \u003d 245 cycles        kfree \u003d 389 cycles\nkmalloc(128) \u003d 283 cycles       kfree \u003d 413 cycles\nkmalloc(256) \u003d 409 cycles       kfree \u003d 547 cycles\nkmalloc(512) \u003d 476 cycles       kfree \u003d 616 cycles\nkmalloc(1024) \u003d 628 cycles      kfree \u003d 753 cycles\nkmalloc(2048) \u003d 684 cycles      kfree \u003d 811 cycles\nkmalloc(4096) \u003d 480 cycles      kfree \u003d 539 cycles\nkmalloc(8192) \u003d 661 cycles      kfree \u003d 746 cycles\nkmalloc(16384) \u003d 741 cycles     kfree \u003d 856 cycles\n\n* cmpxchg_local Slub test\nkmalloc(8) \u003d 83 cycles          kfree \u003d 363 cycles\nkmalloc(16) \u003d 85 cycles         kfree \u003d 372 cycles\nkmalloc(32) \u003d 92 cycles         kfree \u003d 377 cycles\nkmalloc(64) \u003d 115 cycles        kfree \u003d 397 cycles\nkmalloc(128) \u003d 179 cycles       kfree \u003d 438 cycles\nkmalloc(256) \u003d 314 cycles       kfree \u003d 564 cycles\nkmalloc(512) \u003d 398 cycles       kfree \u003d 615 cycles\nkmalloc(1024) \u003d 573 cycles      kfree \u003d 745 cycles\nkmalloc(2048) \u003d 629 cycles      kfree \u003d 816 cycles\nkmalloc(4096) \u003d 473 cycles      kfree \u003d 548 cycles\nkmalloc(8192) \u003d 659 cycles      kfree \u003d 745 cycles\nkmalloc(16384) \u003d 724 cycles     kfree \u003d 843 cycles\n\n2. Kmalloc: alloc/free test\n\n* slub HEAD, test 1\nkmalloc(8)/kfree \u003d 322 cycles\nkmalloc(16)/kfree \u003d 318 cycles\nkmalloc(32)/kfree \u003d 318 cycles\nkmalloc(64)/kfree \u003d 325 cycles\nkmalloc(128)/kfree \u003d 318 cycles\nkmalloc(256)/kfree \u003d 328 cycles\nkmalloc(512)/kfree \u003d 328 cycles\nkmalloc(1024)/kfree \u003d 328 cycles\nkmalloc(2048)/kfree \u003d 328 cycles\nkmalloc(4096)/kfree \u003d 678 cycles\nkmalloc(8192)/kfree \u003d 1013 cycles\nkmalloc(16384)/kfree \u003d 1157 cycles\n\n* Slub HEAD, test 2\nkmalloc(8)/kfree \u003d 323 cycles\nkmalloc(16)/kfree \u003d 318 cycles\nkmalloc(32)/kfree \u003d 318 cycles\nkmalloc(64)/kfree \u003d 318 cycles\nkmalloc(128)/kfree \u003d 318 cycles\nkmalloc(256)/kfree \u003d 328 cycles\nkmalloc(512)/kfree \u003d 328 cycles\nkmalloc(1024)/kfree \u003d 328 cycles\nkmalloc(2048)/kfree \u003d 328 cycles\nkmalloc(4096)/kfree \u003d 648 cycles\nkmalloc(8192)/kfree \u003d 1009 cycles\nkmalloc(16384)/kfree \u003d 1105 cycles\n\n* cmpxchg_local Slub test\nkmalloc(8)/kfree \u003d 112 cycles\nkmalloc(16)/kfree \u003d 103 cycles\nkmalloc(32)/kfree \u003d 103 cycles\nkmalloc(64)/kfree \u003d 103 cycles\nkmalloc(128)/kfree \u003d 112 cycles\nkmalloc(256)/kfree \u003d 111 cycles\nkmalloc(512)/kfree \u003d 111 cycles\nkmalloc(1024)/kfree \u003d 111 cycles\nkmalloc(2048)/kfree \u003d 121 cycles\nkmalloc(4096)/kfree \u003d 650 cycles\nkmalloc(8192)/kfree \u003d 1042 cycles\nkmalloc(16384)/kfree \u003d 1149 cycles\n\nTested-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nMeasurements on a AMD64 2.0 GHz dual-core\n\nIn this test, we seem to remove 10 cycles from the kmalloc fast path.\nOn small allocations, it gives a 14% performance increase. kfree fast\npath also seems to have a 10 cycles improvement.\n\n1. Kmalloc: Repeatedly allocate then free test\n\n* cmpxchg_local slub\nkmalloc(8) \u003d 63 cycles      kfree \u003d 126 cycles\nkmalloc(16) \u003d 66 cycles     kfree \u003d 129 cycles\nkmalloc(32) \u003d 76 cycles     kfree \u003d 138 cycles\nkmalloc(64) \u003d 100 cycles    kfree \u003d 288 cycles\nkmalloc(128) \u003d 128 cycles   kfree \u003d 309 cycles\nkmalloc(256) \u003d 170 cycles   kfree \u003d 315 cycles\nkmalloc(512) \u003d 221 cycles   kfree \u003d 357 cycles\nkmalloc(1024) \u003d 324 cycles  kfree \u003d 393 cycles\nkmalloc(2048) \u003d 354 cycles  kfree \u003d 440 cycles\nkmalloc(4096) \u003d 394 cycles  kfree \u003d 330 cycles\nkmalloc(8192) \u003d 523 cycles  kfree \u003d 481 cycles\nkmalloc(16384) \u003d 643 cycles kfree \u003d 649 cycles\n\n* Base\nkmalloc(8) \u003d 74 cycles      kfree \u003d 113 cycles\nkmalloc(16) \u003d 76 cycles     kfree \u003d 116 cycles\nkmalloc(32) \u003d 85 cycles     kfree \u003d 133 cycles\nkmalloc(64) \u003d 111 cycles    kfree \u003d 279 cycles\nkmalloc(128) \u003d 138 cycles   kfree \u003d 294 cycles\nkmalloc(256) \u003d 181 cycles   kfree \u003d 304 cycles\nkmalloc(512) \u003d 237 cycles   kfree \u003d 327 cycles\nkmalloc(1024) \u003d 340 cycles  kfree \u003d 379 cycles\nkmalloc(2048) \u003d 378 cycles  kfree \u003d 433 cycles\nkmalloc(4096) \u003d 399 cycles  kfree \u003d 329 cycles\nkmalloc(8192) \u003d 528 cycles  kfree \u003d 624 cycles\nkmalloc(16384) \u003d 651 cycles kfree \u003d 737 cycles\n\n2. Kmalloc: alloc/free test\n\n* cmpxchg_local slub\nkmalloc(8)/kfree \u003d 96 cycles\nkmalloc(16)/kfree \u003d 97 cycles\nkmalloc(32)/kfree \u003d 97 cycles\nkmalloc(64)/kfree \u003d 97 cycles\nkmalloc(128)/kfree \u003d 97 cycles\nkmalloc(256)/kfree \u003d 105 cycles\nkmalloc(512)/kfree \u003d 108 cycles\nkmalloc(1024)/kfree \u003d 105 cycles\nkmalloc(2048)/kfree \u003d 107 cycles\nkmalloc(4096)/kfree \u003d 390 cycles\nkmalloc(8192)/kfree \u003d 626 cycles\nkmalloc(16384)/kfree \u003d 662 cycles\n\n* Base\nkmalloc(8)/kfree \u003d 116 cycles\nkmalloc(16)/kfree \u003d 116 cycles\nkmalloc(32)/kfree \u003d 116 cycles\nkmalloc(64)/kfree \u003d 116 cycles\nkmalloc(128)/kfree \u003d 116 cycles\nkmalloc(256)/kfree \u003d 126 cycles\nkmalloc(512)/kfree \u003d 126 cycles\nkmalloc(1024)/kfree \u003d 126 cycles\nkmalloc(2048)/kfree \u003d 126 cycles\nkmalloc(4096)/kfree \u003d 384 cycles\nkmalloc(8192)/kfree \u003d 749 cycles\nkmalloc(16384)/kfree \u003d 786 cycles\n\nTested-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nI can confirm Mathieus\u0027 measurement now:\n\nAthlon64:\n\nregular NUMA/discontig\n\n1. Kmalloc: Repeatedly allocate then free test\n10000 times kmalloc(8) -\u003e 79 cycles kfree -\u003e 92 cycles\n10000 times kmalloc(16) -\u003e 79 cycles kfree -\u003e 93 cycles\n10000 times kmalloc(32) -\u003e 88 cycles kfree -\u003e 95 cycles\n10000 times kmalloc(64) -\u003e 124 cycles kfree -\u003e 132 cycles\n10000 times kmalloc(128) -\u003e 157 cycles kfree -\u003e 247 cycles\n10000 times kmalloc(256) -\u003e 200 cycles kfree -\u003e 257 cycles\n10000 times kmalloc(512) -\u003e 250 cycles kfree -\u003e 277 cycles\n10000 times kmalloc(1024) -\u003e 337 cycles kfree -\u003e 314 cycles\n10000 times kmalloc(2048) -\u003e 365 cycles kfree -\u003e 330 cycles\n10000 times kmalloc(4096) -\u003e 352 cycles kfree -\u003e 240 cycles\n10000 times kmalloc(8192) -\u003e 456 cycles kfree -\u003e 340 cycles\n10000 times kmalloc(16384) -\u003e 646 cycles kfree -\u003e 471 cycles\n2. Kmalloc: alloc/free test\n10000 times kmalloc(8)/kfree -\u003e 124 cycles\n10000 times kmalloc(16)/kfree -\u003e 124 cycles\n10000 times kmalloc(32)/kfree -\u003e 124 cycles\n10000 times kmalloc(64)/kfree -\u003e 124 cycles\n10000 times kmalloc(128)/kfree -\u003e 124 cycles\n10000 times kmalloc(256)/kfree -\u003e 132 cycles\n10000 times kmalloc(512)/kfree -\u003e 132 cycles\n10000 times kmalloc(1024)/kfree -\u003e 132 cycles\n10000 times kmalloc(2048)/kfree -\u003e 132 cycles\n10000 times kmalloc(4096)/kfree -\u003e 319 cycles\n10000 times kmalloc(8192)/kfree -\u003e 486 cycles\n10000 times kmalloc(16384)/kfree -\u003e 539 cycles\n\ncmpxchg_local NUMA/discontig\n\n1. Kmalloc: Repeatedly allocate then free test\n10000 times kmalloc(8) -\u003e 55 cycles kfree -\u003e 90 cycles\n10000 times kmalloc(16) -\u003e 55 cycles kfree -\u003e 92 cycles\n10000 times kmalloc(32) -\u003e 70 cycles kfree -\u003e 91 cycles\n10000 times kmalloc(64) -\u003e 100 cycles kfree -\u003e 141 cycles\n10000 times kmalloc(128) -\u003e 128 cycles kfree -\u003e 233 cycles\n10000 times kmalloc(256) -\u003e 172 cycles kfree -\u003e 251 cycles\n10000 times kmalloc(512) -\u003e 225 cycles kfree -\u003e 275 cycles\n10000 times kmalloc(1024) -\u003e 325 cycles kfree -\u003e 311 cycles\n10000 times kmalloc(2048) -\u003e 346 cycles kfree -\u003e 330 cycles\n10000 times kmalloc(4096) -\u003e 351 cycles kfree -\u003e 238 cycles\n10000 times kmalloc(8192) -\u003e 450 cycles kfree -\u003e 342 cycles\n10000 times kmalloc(16384) -\u003e 630 cycles kfree -\u003e 546 cycles\n2. Kmalloc: alloc/free test\n10000 times kmalloc(8)/kfree -\u003e 81 cycles\n10000 times kmalloc(16)/kfree -\u003e 81 cycles\n10000 times kmalloc(32)/kfree -\u003e 81 cycles\n10000 times kmalloc(64)/kfree -\u003e 81 cycles\n10000 times kmalloc(128)/kfree -\u003e 81 cycles\n10000 times kmalloc(256)/kfree -\u003e 91 cycles\n10000 times kmalloc(512)/kfree -\u003e 90 cycles\n10000 times kmalloc(1024)/kfree -\u003e 91 cycles\n10000 times kmalloc(2048)/kfree -\u003e 90 cycles\n10000 times kmalloc(4096)/kfree -\u003e 318 cycles\n10000 times kmalloc(8192)/kfree -\u003e 483 cycles\n10000 times kmalloc(16384)/kfree -\u003e 536 cycles\n\nChangelog:\n- Ran though checkpatch.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "6e16d89bcd668a95eb22add24c02d80890232b66"
}
