)]}'
{
  "log": [
    {
      "commit": "26b31c1908e02a316edfba08080373342e662c14",
      "tree": "d9140d82ccc9ed3faa2062549d0e7471da9c9b29",
      "parents": [
        "4a296e07c3a410c09b9155da4c2fa84a07964f38"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Mon Apr 28 02:14:29 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:32 2008 -0700"
      },
      "message": "kprobes: add (un)register_jprobes for batch registration\n\nIntroduce unregister_/register_jprobes() for jprobe batch registration.\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Jim Keniston \u003cjkenisto@us.ibm.com\u003e\nCc: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nCc: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: \"Frank Ch. Eigler\" \u003cfche@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": "4a296e07c3a410c09b9155da4c2fa84a07964f38",
      "tree": "d6070555a2ddf026a7c8534689b425c0e931dcfe",
      "parents": [
        "9861668f747895608cea425f8457989d8dd2edf2"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Mon Apr 28 02:14:29 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:32 2008 -0700"
      },
      "message": "kprobes: add (un)register_kretprobes for batch registration\n\nIntroduce unregister_/register_kretprobes() for kretprobe batch registration.\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Jim Keniston \u003cjkenisto@us.ibm.com\u003e\nCc: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nCc: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: \"Frank Ch. Eigler\" \u003cfche@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": "9861668f747895608cea425f8457989d8dd2edf2",
      "tree": "db5dad352826407afb549a8cfa44d4c66823af15",
      "parents": [
        "99602572812442d47403d85f376ad51298dd82a6"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Mon Apr 28 02:14:28 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:32 2008 -0700"
      },
      "message": "kprobes: add (un)register_kprobes for batch registration\n\nIntroduce unregister_/register_kprobes() for kprobe batch registration.  This\ncan reduce waiting time for synchronized_sched() when a lot of probes have to\nbe unregistered at once.\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Jim Keniston \u003cjkenisto@us.ibm.com\u003e\nCc: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nCc: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: \"Frank Ch. Eigler\" \u003cfche@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": "99602572812442d47403d85f376ad51298dd82a6",
      "tree": "204948267936e9a3f1c430d970c9a68f1583b55d",
      "parents": [
        "3d8d996e0ca5b4093203d3f050b0f70b5c949ae8"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Mon Apr 28 02:14:27 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:32 2008 -0700"
      },
      "message": "list.h: add list_is_singular()\n\nAdd list_is_singular() to check a list has just one entry.\n\nlist_is_singular() is useful to check whether a list_head which have been\ntemporarily allocated for listing objects can be released or not.\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3d8d996e0ca5b4093203d3f050b0f70b5c949ae8",
      "tree": "2b19d3a47bf723c3bf6ff7c8a0d90078feaee08c",
      "parents": [
        "0341a4d0fdd2a0a3d9e2bb3a9afef9f8292c8502"
      ],
      "author": {
        "name": "Srinivasa Ds",
        "email": "srinivasa@in.ibm.com",
        "time": "Mon Apr 28 02:14:26 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:32 2008 -0700"
      },
      "message": "kprobes: prevent probing of preempt_schedule()\n\nProhibit users from probing preempt_schedule().  One way of prohibiting the\nuser from probing functions is by marking such functions with __kprobes.  But\nthis method doesn\u0027t work for those functions, which are already marked to\ndifferent section like preempt_schedule() (belongs to __sched section).  So we\nuse blacklist approach to refuse user from probing these functions.\n\nIn blacklist approach we populate the blacklisted function\u0027s starting address\nand its size in kprobe_blacklist structure.  Then we verify the user specified\naddress against start and end of the blacklisted function.  So any attempt to\nregister probe on blacklisted functions will be rejected.\n\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Srinivasa DS \u003csrinivasa@in.ibm.com\u003e\nSigned-off-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nSigned-off-by: Jim Keniston \u003cjkenisto@us.ibm.com\u003e\nCc: Dave Hansen \u003chaveblue@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": "0341a4d0fdd2a0a3d9e2bb3a9afef9f8292c8502",
      "tree": "e073b06ad0d0e4a7d3aaed487db0655feadb31bb",
      "parents": [
        "f7440b0ecdeb3a04d07c546d02d29700d2a574b7"
      ],
      "author": {
        "name": "Karl Dahlke",
        "email": "eklhad@comcast.net",
        "time": "Mon Apr 28 02:14:25 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:32 2008 -0700"
      },
      "message": "VT notifier extension for accessibility\n\nSome accessibility modules need to be able to catch the output on the\nconsole before the VT interpretation, and possibly swallow it.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Samuel Thibault \u003csamuel.thibault@ens-lyon.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f7440b0ecdeb3a04d07c546d02d29700d2a574b7",
      "tree": "7974d2f9df0ca299710ad77ab2325492093fab3a",
      "parents": [
        "61711f8fd8180e458cfb6846bcf4fc636a95f3db"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@crashcourse.ca",
        "time": "Mon Apr 28 02:14:24 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:32 2008 -0700"
      },
      "message": "mfd: use shorter set_current_state()\n\nSince this routine declares a separate \"tsk\" pointer for no other reason than\nto call set_task_state(), get rid of it and just invoke set_current_state().\n\nSigned-off-by: Robert P. J. Day \u003crpjday@crashcourse.ca\u003e\nCc: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nCc: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nCc: Nicolas Pitre \u003cnico@cam.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "61711f8fd8180e458cfb6846bcf4fc636a95f3db",
      "tree": "d5c0a40de101622accdacfdbb18a183239596ca7",
      "parents": [
        "5d9f3f6b7c4c9fe1706006f24f964e7c0fa49fb7"
      ],
      "author": {
        "name": "Magnus Damm",
        "email": "magnus.damm@gmail.com",
        "time": "Mon Apr 28 02:14:22 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:32 2008 -0700"
      },
      "message": "sm501: add uart support\n\nThis patch extends the sm501 mfd with 8250 uart support. We\u0027re currently\ndoing this in the board specific r2d-1 code already, but it would be nice to\ndo move things into the mfd since it\u0027s more chip specific than board specific.\n\nSigned-off-by: Magnus Damm \u003cdamm@igel.co.jp\u003e\nCc: Ben Dooks \u003cben-linux@fluff.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5d9f3f6b7c4c9fe1706006f24f964e7c0fa49fb7",
      "tree": "d0cd42d5c5acbfa99f5f100d563a04d5a065a361",
      "parents": [
        "06719814780da741e7acf587367a86c3965c03a2"
      ],
      "author": {
        "name": "Andrea Paterniani",
        "email": "a.paterniani@swapp-eng.it",
        "time": "Mon Apr 28 02:14:21 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:31 2008 -0700"
      },
      "message": "spi: spi_imx updates\n\nUpdates to the i.MX SPI controller driver:\n\n 1) Some comments changed and/or added.\n\n 2) End of transfers is now managed on TXFIFO empty interrupt after the\n    last write to TXFIFO.  This speeds interrupt execution by removing\n    the wait for TXFIFO to become empty.  On TXFIFO empty interrupt the\n    handler needs only to poll for the end of the ongoing transaction\n    (SPI_CONTROL_XCH) to close the transfer.\n     (2.1) Write only transfers are closed flushing RXFIFO.\n     (2.2) Read transfers are closed reading trailing bytes from RXFIFO.\n     (2.3) Read transfers where RXFIFO overrun occurred are closed by\n           flushing RXFIFO and aborting the message.\n\n 3) Fifos are now flushed via SPI disable after the end of ongoing\n    transaction.\n\nSigned-off-by: Andrea Paterniani \u003ca.paterniani@swapp-eng.it\u003e\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "06719814780da741e7acf587367a86c3965c03a2",
      "tree": "a6d8aabc4b3068c3679630f318a1706044c195b1",
      "parents": [
        "b687d2a8f8d46921ac5e80bf77967688afce68e2"
      ],
      "author": {
        "name": "Atsushi Nemoto",
        "email": "anemo@mba.ocn.ne.jp",
        "time": "Mon Apr 28 02:14:19 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:31 2008 -0700"
      },
      "message": "atmel_spi: support zero length transfer\n\nA spi transfer with zero length is not invalid.  For example, such\ntransfer (len \u003d\u003d 0 \u0026\u0026 delay_usecs !\u003d 0) can be used to achieve delay\nbefore first CLK edge after chipselect assertion.\n\nSigned-off-by: Atsushi Nemoto \u003canemo@mba.ocn.ne.jp\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b687d2a8f8d46921ac5e80bf77967688afce68e2",
      "tree": "c8f75152f6f20fd12e8128c7396b1d600691e063",
      "parents": [
        "31a16294261a897ab7f59a5c26e4935a851fd410"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Mon Apr 28 02:14:19 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:31 2008 -0700"
      },
      "message": "spi: replace remaining __FUNCTION__ occurrences\n\n__FUNCTION__ is gcc-specific, use __func__\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nAcked-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "31a16294261a897ab7f59a5c26e4935a851fd410",
      "tree": "dc2ba43fad17fe572c36befd6d9d05ec26af8e40",
      "parents": [
        "cf43369d55a30a0d8f9ef4700c798c72dbd3afb7"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Mon Apr 28 02:14:18 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:31 2008 -0700"
      },
      "message": "documentation: move spidev_fdx example to its own source file\n\nMove sample source code to its own source file so that it can be used\neasier and build-tested/check/maintained by anyone.\n\n(Makefile changes are in a separate patch for all of Documentation/.)\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nAcked-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cf43369d55a30a0d8f9ef4700c798c72dbd3afb7",
      "tree": "cd380715706ad6d7462663a0ac6360604581f4f4",
      "parents": [
        "79d8c7a8c888a7c2ab9dd4249495b24575b3f9a6"
      ],
      "author": {
        "name": "David Brownell",
        "email": "david-b@pacbell.net",
        "time": "Mon Apr 28 02:14:17 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:31 2008 -0700"
      },
      "message": "spi: pxa2xx_spi \"sparse\" fixes\n\nVarious cleanups to pxa2xx_spi suggested by \"sparse\": make sure that\nregister addresess are \"void __iomem *\", and make a few functions properly\nstatic.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: Ned Forrester \u003cnforrester@whoi.edu\u003e\nCc: Stephen Street \u003cstephen@streetfiresound.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "79d8c7a8c888a7c2ab9dd4249495b24575b3f9a6",
      "tree": "ef553a449ca150af5ccdbd0693d56305f7dbf938",
      "parents": [
        "608dfddd845da5ab6accef70154c8910529699f7"
      ],
      "author": {
        "name": "Alessandro Guido",
        "email": "alessandro.guido@gmail.com",
        "time": "Mon Apr 28 02:14:16 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:31 2008 -0700"
      },
      "message": "spi: use menuconfig for CONFIG_SPI\n\nSigned-off-by: Alessandro Guido \u003calessandro.guido@gmail.com\u003e\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "608dfddd845da5ab6accef70154c8910529699f7",
      "tree": "6480216e8248d79f2e69d3edd4658a99eaf0be13",
      "parents": [
        "7ae9392c0a3bc01562361bb21e23dfb2e5c81c5a"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Mon Apr 28 02:14:15 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:31 2008 -0700"
      },
      "message": "oprofile: change cpu_buffer from array to per_cpu variable\n\nChange cpu_buffer from array to per_cpu variable in oprofile functions.\n\n[akpm@linux-foundation.org: coding-style fixes]\nCc: Philippe Elie \u003cphil.el@wanadoo.fr\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7ae9392c0a3bc01562361bb21e23dfb2e5c81c5a",
      "tree": "96affc937131086ee823d328f1b8c06b167350e2",
      "parents": [
        "d83fd8a26769c75d51a6b05d8dcb3e36302dd8ba"
      ],
      "author": {
        "name": "Thomas Petazzoni",
        "email": "thomas.petazzoni@free-electrons.com",
        "time": "Mon Apr 28 02:14:14 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:30 2008 -0700"
      },
      "message": "x86: configurable DMI scanning code\n\nTurn CONFIG_DMI into a selectable option if EMBEDDED is defined, in\norder to be able to remove the DMI table scanning code if it\u0027s not\nneeded, and then reduce the kernel code size.\n\nWith CONFIG_DMI (i.e before) :\n\n   text    data     bss     dec     hex filename\n1076076  128656   98304 1303036  13e1fc vmlinux\n\nWithout CONFIG_DMI (i.e after) :\n\n   text    data     bss     dec     hex filename\n1068092  126308   98304 1292704  13b9a0 vmlinux\n\nResult:\n\n   text    data     bss     dec     hex filename\n  -7984   -2348       0  -10332   -285c vmlinux\n\nThe new option appears in \"Processor type and features\", only when\nCONFIG_EMBEDDED is defined.\n\nThis patch is part of the Linux Tiny project, and is based on previous work\ndone by Matt Mackall \u003cmpm@selenic.com\u003e.\n\nSigned-off-by: Thomas Petazzoni \u003cthomas.petazzoni@free-electrons.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d83fd8a26769c75d51a6b05d8dcb3e36302dd8ba",
      "tree": "69a00ebf477a24ea1be96d982eaf84c714da9359",
      "parents": [
        "6e10efefaae45989f2f143bacfef75af55068378"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Mon Apr 28 02:14:13 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:30 2008 -0700"
      },
      "message": "drivers/acpi/thermal.c: fix build with CONFIG_DMI\u003dn\n\ndrivers/acpi/thermal.c: In function \u0027acpi_thermal_init\u0027:\ndrivers/acpi/thermal.c:1794: error: \u0027thermal_dmi_table\u0027 undeclared (first use in this function)\ndrivers/acpi/thermal.c:1794: error: (Each undeclared identifier is reported only once\ndrivers/acpi/thermal.c:1794: error: for each function it appears in.)\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6e10efefaae45989f2f143bacfef75af55068378",
      "tree": "ef5a43b2c5b1b65eae760745c4a1a3efca60d58f",
      "parents": [
        "d1ec61e6686c3c137aae33a11518b8e629e9c179"
      ],
      "author": {
        "name": "Michael Trimarchi",
        "email": "trimarchimichael@yahoo.it",
        "time": "Mon Apr 28 02:14:11 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:30 2008 -0700"
      },
      "message": "atmel_serial: remove duplicated macro definition\n\nAfter commit 39d4c922b596633da86878b1a5cc881785b8e5fa (atmel_serial: fix\nuart/console concurrent access) the UART_GET_TCR macro got redefined. This\npatch removes the duplicated definition.\n\nSigned-off-by: michael trimarchi \u003ctrimarchimichael@evidence.eu.com\u003e\nAcked-by: 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": "d1ec61e6686c3c137aae33a11518b8e629e9c179",
      "tree": "d598fc737c43b4514a4ca30ecfbafac0f970030e",
      "parents": [
        "01c194d9278efc15d4785ff205643e9c0bdcef53"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Mon Apr 28 02:14:10 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:30 2008 -0700"
      },
      "message": "serial: use time_before, time_before_eq, etc\n\nThe functions time_before, time_before_eq, time_after, and time_after_eq\nare more robust for comparing jiffies against other values.\n\nA simplified version of the semantic patch making this change is as follows:\n(http://www.emn.fr/x-info/coccinelle/)\n\n// \u003csmpl\u003e\n@ change_compare_np @\nexpression E;\n@@\n\n(\n- jiffies \u003c\u003d E\n+ time_before_eq(jiffies,E)\n|\n- jiffies \u003e\u003d E\n+ time_after_eq(jiffies,E)\n|\n- jiffies \u003c E\n+ time_before(jiffies,E)\n|\n- jiffies \u003e E\n+ time_after(jiffies,E)\n)\n\n@ include depends on change_compare_np @\n@@\n\n#include \u003clinux/jiffies.h\u003e\n\n@ no_include depends on !include \u0026\u0026 change_compare_np @\n@@\n\n  #include \u003clinux/...\u003e\n+ #include \u003clinux/jiffies.h\u003e\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "01c194d9278efc15d4785ff205643e9c0bdcef53",
      "tree": "dc2aa404a4cb480f58fbc503bcf5826a3a03f597",
      "parents": [
        "fc3f341b5a1a3f26ec8ed74a38234db7d0d1bae1"
      ],
      "author": {
        "name": "Alex Williamson",
        "email": "alex.williamson@hp.com",
        "time": "Mon Apr 28 02:14:09 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:30 2008 -0700"
      },
      "message": "serial 8250: tighten test for using backup timer\n\nThomas Koeller had reported an issue where a device that had been making use\nof the UART_BUG_TXEN code in the 8250 driver was mistakenly being caught by\nthe backup timer test, causing the device to work improperly.\n\nTo fix this, tighten the test requirements to enable the backup timer\nworkaround.\n\nThe backup timer is really meant to catch UARTs that don\u0027t re-assert the THRE\ninterrupt.  The expectation is that they do initially assert THRE.  This patch\nclarifies the test.\n\nSigned-off-by: Alex Williamson \u003calex.williamson@hp.com\u003e\nCc: Thomas Koeller \u003cthomas@koeller.dyndns.org\u003e\nCc: Russell King \u003crmk@arm.linux.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": "fc3f341b5a1a3f26ec8ed74a38234db7d0d1bae1",
      "tree": "d7c0bc678f4b83ddf66bb9b9501d72a02a39fa11",
      "parents": [
        "baac58955d6933571f29126a1a95299b421faef7"
      ],
      "author": {
        "name": "Yoichi Yuasa",
        "email": "yoichi_yuasa@tripeaks.co.jp",
        "time": "Mon Apr 28 02:14:08 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:30 2008 -0700"
      },
      "message": "serial: add VR41xx SIU setup for serial console\n\nAdd VR41xx SIU setup for serial console.\n\nSigned-off-by: Yoichi Yuasa \u003cyoichi_yuasa@tripeaks.co.jp\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": "baac58955d6933571f29126a1a95299b421faef7",
      "tree": "4642e9326cc8a6254ec7bc190cf9696ceee8c2dd",
      "parents": [
        "eb424fd21c0931e998156225f2a0910167c3e16c"
      ],
      "author": {
        "name": "Yoichi Yuasa",
        "email": "yoichi_yuasa@tripeaks.co.jp",
        "time": "Mon Apr 28 02:14:08 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:30 2008 -0700"
      },
      "message": "serial: add vr41xx_siu_early_setup() for serial console\n\nAdd vr41xx_siu_early_setup() for serial console.\n\nSigned-off-by: Yoichi Yuasa \u003cyoichi_yuasa@tripeaks.co.jp\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": "eb424fd21c0931e998156225f2a0910167c3e16c",
      "tree": "39a49e87d0dfaa75b0f02b6f64c49beba9f079b6",
      "parents": [
        "e991a2bd4fa0b2f475b67dfe8f33e8ecbdcbb40b"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Mon Apr 28 02:14:07 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:30 2008 -0700"
      },
      "message": "uart_get_baud_rate: stop mangling termios\n\nRussell King noticed this one: We have to avoid replacing B0 when we pick a\nbaud rate for a \"hung up\" port.  Ugly but the proper fix is in the tty layer\nand means changing the tty\u003c-\u003eserial interfaces so we will defer that for now.\n\n[akpm@linux-foundation.org: fix uninitialised var]\nSigned-off-by: Alan Cox \u003calan@redhat.com\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": "e991a2bd4fa0b2f475b67dfe8f33e8ecbdcbb40b",
      "tree": "9fc9dab71bc47d38e31fc2e55247b928bfa516d5",
      "parents": [
        "ce9f9f73af0338a680d66288cbf0efe4b900e78b"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Mon Apr 28 02:14:06 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:29 2008 -0700"
      },
      "message": "Fix tty speed handling on 8250\n\nWe try and write the correct speed back but the serial midlayer already\nmangles the speed on us and that means if we request B0 we report back B9600\nwhen we should not.  For now we\u0027ll hack around this in the drivers and serial\ncode, pending a better long term solution.\n\nSigned-off-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": "ce9f9f73af0338a680d66288cbf0efe4b900e78b",
      "tree": "afe570de87736c72014c1a618bbad81e07f89957",
      "parents": [
        "0fab6de09c71a976e5d765e1ff548b14be385153"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Mon Apr 28 02:14:05 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:29 2008 -0700"
      },
      "message": "char: make functions static in synclinkmp.c\n\nAll were forward declared with static.\n\nFixes sparse warnings:\ndrivers/char/synclinkmp.c:1476:5: warning: symbol \u0027read_proc\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:2027:5: warning: symbol \u0027bh_action\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:2058:6: warning: symbol \u0027bh_handler\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:2103:6: warning: symbol \u0027bh_receive\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:2112:6: warning: symbol \u0027bh_transmit\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:2124:6: warning: symbol \u0027bh_status\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:2136:6: warning: symbol \u0027isr_timer\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:2162:6: warning: symbol \u0027isr_rxint\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:2221:6: warning: symbol \u0027isr_rxrdy\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:2351:6: warning: symbol \u0027isr_txint\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:2379:6: warning: symbol \u0027isr_txrdy\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:2410:6: warning: symbol \u0027isr_rxdmaok\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:2427:6: warning: symbol \u0027isr_rxdmaerror\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:2445:6: warning: symbol \u0027isr_txdmaok\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:2463:6: warning: symbol \u0027isr_txdmaerror\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:2480:6: warning: symbol \u0027isr_io_pin\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:3420:5: warning: symbol \u0027alloc_dma_bufs\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:3494:5: warning: symbol \u0027alloc_buf_list\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:3553:5: warning: symbol \u0027alloc_frame_bufs\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:3570:6: warning: symbol \u0027free_dma_bufs\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:3580:5: warning: symbol \u0027alloc_tmp_rx_buf\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:3588:6: warning: symbol \u0027free_tmp_rx_buf\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:3594:5: warning: symbol \u0027claim_resources\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:3681:6: warning: symbol \u0027release_resources\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:3737:6: warning: symbol \u0027add_device\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:3860:6: warning: symbol \u0027device_init\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:4054:6: warning: symbol \u0027enable_loopback\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:4101:6: warning: symbol \u0027set_rate\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:4147:6: warning: symbol \u0027rx_stop\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:4168:6: warning: symbol \u0027rx_start\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:4225:6: warning: symbol \u0027tx_start\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:4295:6: warning: symbol \u0027tx_stop\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:4322:6: warning: symbol \u0027tx_load_fifo\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:4371:6: warning: symbol \u0027reset_port\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:4395:6: warning: symbol \u0027reset_adapter\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:4407:6: warning: symbol \u0027async_mode\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:4546:6: warning: symbol \u0027hdlc_mode\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:4748:6: warning: symbol \u0027tx_set_idle\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:4768:6: warning: symbol \u0027get_signals\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:4797:6: warning: symbol \u0027set_signals\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:4826:6: warning: symbol \u0027rx_reset_buffers\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:4837:6: warning: symbol \u0027rx_free_frame_buffers\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:4865:5: warning: symbol \u0027rx_get_frame\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:5040:6: warning: symbol \u0027tx_load_dma_buffer\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:5080:5: warning: symbol \u0027register_test\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:5119:5: warning: symbol \u0027irq_test\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:5211:5: warning: symbol \u0027init_adapter\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:5270:5: warning: symbol \u0027loopback_test\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:5335:5: warning: symbol \u0027adapter_test\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:5397:5: warning: symbol \u0027memory_test\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:5449:6: warning: symbol \u0027load_pci_memory\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:5468:6: warning: symbol \u0027trace_block\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:5503:6: warning: symbol \u0027tx_timeout\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:5530:6: warning: symbol \u0027status_timeout\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:5581:15: warning: symbol \u0027read_reg\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:5586:6: warning: symbol \u0027write_reg\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:5592:5: warning: symbol \u0027read_reg16\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:5598:6: warning: symbol \u0027write_reg16\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:5604:15: warning: symbol \u0027read_status_reg\u0027 was not declared. Should it be static?\ndrivers/char/synclinkmp.c:5610:6: warning: symbol \u0027write_control_reg\u0027 was not declared. Should it be static?\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nCc: Paul Fulghum \u003cpaulkf@microgate.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0fab6de09c71a976e5d765e1ff548b14be385153",
      "tree": "74782032b89218366fc999f570c01e7d6a105be6",
      "parents": [
        "7a63ce5a1f2fde5ae737f059e2714e441447120c"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Apr 28 02:14:02 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:29 2008 -0700"
      },
      "message": "synclink drivers bool conversion\n\nRemove more TRUE/FALSE defines and uses\nRemove \u003d\u003d TRUE tests\nConvert BOOLEAN to bool\nConvert int to bool where appropriate\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nAcked-by: Paul Fulghum \u003cpaulkf@microgate.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7a63ce5a1f2fde5ae737f059e2714e441447120c",
      "tree": "3741a3fdc74eeba3d1ad5e255fcfaafbec0b935d",
      "parents": [
        "eee3754f5e45bd27e001ea41823bdbcdd0d192d4"
      ],
      "author": {
        "name": "Sam Ravnborg",
        "email": "sam@ravnborg.org",
        "time": "Mon Apr 28 02:14:02 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:29 2008 -0700"
      },
      "message": "serial: silence section mismatch warnings in 8250_pci\n\nFix following warnings:\nWARNING: drivers/serial/built-in.o(.data+0x5b8): Section mismatch in reference from the variable pci_serial_quirks to the function .devexit.text:pci_ite887x_exit()\nWARNING: drivers/serial/built-in.o(.data+0x5e0): Section mismatch in reference from the variable pci_serial_quirks to the function .devexit.text:pci_plx9050_exit()\nWARNING: drivers/serial/built-in.o(.data+0x608): Section mismatch in reference from the variable pci_serial_quirks to the function .devexit.text:pci_plx9050_exit()\nWARNING: drivers/serial/built-in.o(.data+0x658): Section mismatch in reference from the variable pci_serial_quirks to the function .devexit.text:pci_plx9050_exit()\nWARNING: drivers/serial/built-in.o(.data+0x680): Section mismatch in reference from the variable pci_serial_quirks to the function .devexit.text:pci_plx9050_exit()\nWARNING: drivers/serial/built-in.o(.data+0x6a8): Section mismatch in reference from the variable pci_serial_quirks to the function .devexit.text:pci_plx9050_exit()\nWARNING: drivers/serial/built-in.o(.data+0x6d0): Section mismatch in reference from the variable pci_serial_quirks to the function .devexit.text:sbs_exit()\nWARNING: drivers/serial/built-in.o(.data+0x6f8): Section mismatch in reference from the variable pci_serial_quirks to the function .devexit.text:sbs_exit()\nWARNING: drivers/serial/built-in.o(.data+0x720): Section mismatch in reference from the variable pci_serial_quirks to the function .devexit.text:sbs_exit()\nWARNING: drivers/serial/built-in.o(.data+0x748): Section mismatch in reference from the variable pci_serial_quirks to the function .devexit.text:sbs_exit()\n\npci_serial_quirks contains a number of function pointers where the referenced\nfunction is annotated __devexit.  This is OK so we annotate pci_serial_quirks\nwith __refdata to ignore the __devexit references\n\nSigned-off-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Russell King \u003crmk+kernel@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": "eee3754f5e45bd27e001ea41823bdbcdd0d192d4",
      "tree": "2e8d4d184842fd0fb93b27e1faccede453544c45",
      "parents": [
        "305787e44ebc21d87ab4d4949da5b97d4252aa9b"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Mon Apr 28 02:14:01 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:29 2008 -0700"
      },
      "message": "ncpfs: fix sparse warning in ncpsign_kernel.c\n\nWe\u0027re casting anyway, might as well cast to the correct sign.\nSpecific to i386 (ifdef __i386__)\n\nfs/ncpfs/ncpsign_kernel.c:58:23: warning: incorrect type in initializer (different signedness)\nfs/ncpfs/ncpsign_kernel.c:58:23:    expected unsigned int *data2\nfs/ncpfs/ncpsign_kernel.c:58:23:    got int *\u003cnoident\u003e\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nAcked-by: Petr Vandrovec \u003cVANDROVE@vc.cvut.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "305787e44ebc21d87ab4d4949da5b97d4252aa9b",
      "tree": "47e905126fa2bd76f0992ba22d87d368a0e5eb94",
      "parents": [
        "cdf8803768db6f652d498628fe1421a23c025253"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Mon Apr 28 02:14:00 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:29 2008 -0700"
      },
      "message": "ncpfs: fix sparse warnings in ioctl.c\n\nIn both cases, these inode variables arebeing used to test the\nserver\u0027s root inode against NULL.  Change them to s_inode.\nfs/ncpfs/ioctl.c:391:18: warning: symbol \u0027inode\u0027 shadows an earlier one\nfs/ncpfs/ioctl.c:264:28: originally declared here\nfs/ncpfs/ioctl.c:441:17: warning: symbol \u0027inode\u0027 shadows an earlier one\nfs/ncpfs/ioctl.c:264:28: originally declared here\n\nIn this case, we are about to return anyway, just reuse result.\nfs/ncpfs/ioctl.c:521:8: warning: symbol \u0027result\u0027 shadows an earlier one\nfs/ncpfs/ioctl.c:268:6: originally declared here\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nAcked-by: Petr Vandrovec \u003cVANDROVE@vc.cvut.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cdf8803768db6f652d498628fe1421a23c025253",
      "tree": "284315ddbecc55e6212c0afd6a9aced8313fe6f7",
      "parents": [
        "5dc62b1b6408396d5f6c13ed585adc87b2e296f9"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Mon Apr 28 02:13:59 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:29 2008 -0700"
      },
      "message": "ncpfs: add prototypes to ncp_fs.h\n\nRemoves some externs from C files, noticed from the sparse warnings:\nfs/ncpfs/dir.c:90:26: warning: symbol \u0027ncp_root_dentry_operations\u0027 was not declared. Should it be static?\nfs/ncpfs/symlink.c:107:5: warning: symbol \u0027ncp_symlink\u0027 was not declared. Should it be static?\nfs/ncpfs/symlink.c:101:39: warning: symbol \u0027ncp_symlink_aops\u0027 was not declared. Should it be static?\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nAcked-by: Petr Vandrovec \u003cVANDROVE@vc.cvut.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5dc62b1b6408396d5f6c13ed585adc87b2e296f9",
      "tree": "b211ab58c7be2be27d797e23587c1b7e3146ed32",
      "parents": [
        "4415d8a5aaec2008833e1c474b38627c0bc738ca"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "wangcong@zeuux.org",
        "time": "Mon Apr 28 02:13:58 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:29 2008 -0700"
      },
      "message": "uml: clean up arch/um/drivers/ubd_kern.c\n\nMake some global functions and variables static.\n\nAnd remove some useless declarations for local functions, since we just need\nto move their definitions ahead.\n\n[jdike@addtoit.com: checkpatch cleanups]\nSigned-off-by: WANG Cong \u003cwangcong@zeuux.org\u003e\nSigned-off-by: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4415d8a5aaec2008833e1c474b38627c0bc738ca",
      "tree": "ec6c96b7fe46b43f96bf0248ad95420cb7424d07",
      "parents": [
        "074a0db8e17ae271736148809c5f9d47dec2d993"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Mon Apr 28 02:13:57 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:28 2008 -0700"
      },
      "message": "arch/um/os-Linux/sys-i386/task_size.c: improve a bit\n\nImprove this code a bit: check sigaction\u0027s return value and remove a useless\nfflush().\n\nAcked-by: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: WANG Cong \u003cwangcong@zeuux.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "074a0db8e17ae271736148809c5f9d47dec2d993",
      "tree": "3aef3ea6d19bd5fe3859030decab60f39d8c3fb2",
      "parents": [
        "1605ec044300d0fd5d27fd0b6879ee14b104aebd"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Mon Apr 28 02:13:57 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:28 2008 -0700"
      },
      "message": "uml: make several things static\n\nMake several things static, because they no longer need to be global.\n\nAcked-by: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: WANG Cong \u003cwangcong@zeuux.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1605ec044300d0fd5d27fd0b6879ee14b104aebd",
      "tree": "ffb1944ae6508d7aa954c9d46548b3e9aafee3b6",
      "parents": [
        "02d324b15dfa31b3b1025fb5abda08a8ee23ce84"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Mon Apr 28 02:13:56 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:28 2008 -0700"
      },
      "message": "uml: make three functions static\n\nMake the following three functions static, since they don\u0027t need to be global.\n\narch/um/drivers/mcast_kern.c::mcast_setup()\narch/um/drivers/mconsole_user.c::mconsole_reply_v0()\narch/um/drivers/port_user.c::port_pre_exec()\n\nAcked-by: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: WANG Cong \u003cwangcong@zeuux.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "02d324b15dfa31b3b1025fb5abda08a8ee23ce84",
      "tree": "ae7d99f10fe1b6f04da75367c80ff8a676a7eb69",
      "parents": [
        "3af7cb7bbcf0872b749a32bb48a7bc11f33bcd8c"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Mon Apr 28 02:13:56 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:28 2008 -0700"
      },
      "message": "uml: remove a useless function\n\narch/um/drivers/chan_kern.c::chan_out_fd() is not used by anyone.  Remove it.\n\nAcked-by: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: WANG Cong \u003cwangcong@zeuux.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3af7cb7bbcf0872b749a32bb48a7bc11f33bcd8c",
      "tree": "66e147f0c29e673bdcfb31a2c22939047a4c51f9",
      "parents": [
        "626c59f5edb284027bfe25cc15e7de2f532090b5"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Mon Apr 28 02:13:55 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:28 2008 -0700"
      },
      "message": "uml: make a function static\n\narch/um/drivers/chan_kern.c::open_chan() can become static.\n\nAcked-by: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: WANG Cong \u003cwangcong@zeuux.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "626c59f5edb284027bfe25cc15e7de2f532090b5",
      "tree": "bcc981233e1f44dcb68566f3e63732b6125ad050",
      "parents": [
        "3595726ac349ca9682703535e9a999c4f08c2d80"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Mon Apr 28 02:13:53 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:28 2008 -0700"
      },
      "message": "arch/um/os-Linux/start_up.c: various improvements.\n\n - lets ptrace_child become void\n - adds checking for the return value of change_sig\n - moves errors info into stderr instead of stdout.\n\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: WANG Cong \u003cwangcong@zeuux.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3595726ac349ca9682703535e9a999c4f08c2d80",
      "tree": "93bebf15d63b7c9b0a71191ac95f5caa562fb116",
      "parents": [
        "3af9c5bed1b8f284f3d7d479c77adf60ad059e91"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Mon Apr 28 02:13:53 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:28 2008 -0700"
      },
      "message": "uml: replace remaining __FUNCTION__ occurrences\n\n__FUNCTION__ is gcc-specific, use __func__\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3af9c5bed1b8f284f3d7d479c77adf60ad059e91",
      "tree": "664894cd5bafda0899c50545953a4db534424d98",
      "parents": [
        "16a26ef5ad31b59c521bd9becccaee84c0157326"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Mon Apr 28 02:13:52 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:28 2008 -0700"
      },
      "message": "arch/um/kernel/um_arch.c: some small improvements\n\nMake some small improvements for arch/um/kernel/um_arch.c.\n\nSigned-off-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nAcked-by: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "16a26ef5ad31b59c521bd9becccaee84c0157326",
      "tree": "6650f06644b525bb0420ed68c4998172f8dd3b57",
      "parents": [
        "5fd284fd976232dbd0d0dc94e07c91e50e2898b2"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Apr 28 02:13:51 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:28 2008 -0700"
      },
      "message": "cris: add constfy to pgd_offset()\n\nadd constfy to pgd_offset() for avoid following warnings.\n\n  CC      mm/pagewalk.o\nmm/pagewalk.c: In function \u0027walk_page_range\u0027:\nmm/pagewalk.c:111: warning: passing argument 1 of \u0027pgd_offset\u0027 discards qualifiers from p\\\nointer target type\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: \"Vegard Nossum\" \u003cvegard.nossum@gmail.com\u003e\nCc: Mikael Starvik \u003cstarvik@axis.com\u003e\nCc: Jesper Nilsson \u003cjesper.nilsson@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": "5fd284fd976232dbd0d0dc94e07c91e50e2898b2",
      "tree": "39507ea9dbc8459abf76a7271b2eacbe97f5e7f4",
      "parents": [
        "032c17e8afa150412810ffc19913ecd5eb531d57"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@saeurebad.de",
        "time": "Mon Apr 28 02:13:51 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:28 2008 -0700"
      },
      "message": "cris: remove redundant display of free swap space in show_mem()\n\nshow_mem() has no need to print the amount of free swap space manually because\nshow_free_areas() does this already and is called by the former.\n\nThe two outputs only differ in text formatting:\n\n  printk(\"Free swap  \u003d %lukB\\n\", ...);\n  printk(\"Free swap:       %6ldkB\\n\", ...);\n\nSigned-off-by: Johannes Weiner \u003channes@saeurebad.de\u003e\nCc: Mikael Starvik \u003cmikael.starvik@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": "032c17e8afa150412810ffc19913ecd5eb531d57",
      "tree": "64169680149f0d8a9ff01eeeeaa2efd151e9968c",
      "parents": [
        "f85e7cdc3fd0db65ef1442476b82ced0f01c5c19"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Mon Apr 28 02:13:50 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:28 2008 -0700"
      },
      "message": "crisv10: prepare for BKL push down\n\nJust the modem bits this time\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nCc: Mikael Starvik \u003cmikael.starvik@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": "f85e7cdc3fd0db65ef1442476b82ced0f01c5c19",
      "tree": "866f0adcf99b25207b8f649d75002a114ba1cdee",
      "parents": [
        "6feef6e5f23d5a3d8a614ab8ea392dfa54c7365c"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Mon Apr 28 02:13:49 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:27 2008 -0700"
      },
      "message": "m68k: replace remaining __FUNCTION__ occurrences\n\n__FUNCTION__ is gcc-specific, use __func__\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Roman Zippel \u003czippel@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": "6feef6e5f23d5a3d8a614ab8ea392dfa54c7365c",
      "tree": "ed21e12ae07620a2976fd09b26a53920f2ffb67a",
      "parents": [
        "ed6b9b97f42c091630335bfb71a2931e6f86388b"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@saeurebad.de",
        "time": "Mon Apr 28 02:13:48 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:27 2008 -0700"
      },
      "message": "m68k: remove redundant display of free swap space in show_mem()\n\nshow_mem() has no need to print the amount of free swap space manually because\nshow_free_areas() does this already and is called by the former.\n\nThe two outputs only differ in text formatting:\n\n  printk(\"Free swap  \u003d %lukB\\n\", ...);\n  printk(\"Free swap:       %6ldkB\\n\", ...);\n\nSigned-off-by: Johannes Weiner \u003channes@saeurebad.de\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": "ed6b9b97f42c091630335bfb71a2931e6f86388b",
      "tree": "1c003a652308955da0677f8d05b6ad110f5dee48",
      "parents": [
        "037f436f525dac36c9f5fd5c5054518a63debb3e"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Mon Apr 28 02:13:48 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:27 2008 -0700"
      },
      "message": "alpha: teach the compiler that BUG doesn\u0027t return\n\nFix things like this:\n\nsecurity/selinux/netnode.c: In function \u0027sel_netnode_find\u0027:\nsecurity/selinux/netnode.c:126: warning: \u0027idx\u0027 may be used uninitialized in this function\nsecurity/selinux/netnode.c: In function \u0027sel_netnode_sid\u0027:\nsecurity/selinux/netnode.c:225: warning: \u0027ret\u0027 may be used uninitialized in this function\nsecurity/selinux/netnode.c:168: warning: \u0027idx\u0027 may be used uninitialized in this function\n\ndue to code correctly not expecting BUG() to return.\n\nFor some reason this reduces the object code size for that particular file.\n\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "037f436f525dac36c9f5fd5c5054518a63debb3e",
      "tree": "142ca318b163cb3058882a68a405526b19856d1a",
      "parents": [
        "95d193a90335b4e39dd1f750f1fc1672339ff487"
      ],
      "author": {
        "name": "S.Caglar Onur",
        "email": "caglar@pardus.org.tr",
        "time": "Mon Apr 28 02:13:47 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:27 2008 -0700"
      },
      "message": "arch/alpha/kernel/traps.c: use time_* macros\n\nThe functions time_before, time_before_eq, time_after, and time_after_eq are\nmore robust for comparing jiffies against other values.\n\nSo implement usage of the time_after() macro, defined in linux/jiffies.h,\nwhich deals with wrapping correctly\n\n[akpm@linux-foundation.org: fix warning]\nSigned-off-by: S.Caglar Onur \u003ccaglar@pardus.org.tr\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": "95d193a90335b4e39dd1f750f1fc1672339ff487",
      "tree": "13a82fc9b253b4fef79665a2921fecb277b03a61",
      "parents": [
        "bbb8d343affd21850849fa4d41bf91c7527a3d04"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Mon Apr 28 02:13:46 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:27 2008 -0700"
      },
      "message": "alpha: replace __inline with inline\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\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": "bbb8d343affd21850849fa4d41bf91c7527a3d04",
      "tree": "8d958286b21228673677668e09ed185602568eee",
      "parents": [
        "b901d40c970e6db319fe1f8d84db2b9684b6c9bf"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Mon Apr 28 02:13:46 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:27 2008 -0700"
      },
      "message": "alpha: remove remaining __FUNCTION__ occurrences\n\n__FUNCTION__ is gcc-specific, use __func__\n\nThe change in pci-iommu,c should be safe as arena has not been assigned\nwhen we get to this point.\n\nSome were within #if 0 blocks, have changed them and left the blocks\nas they appear to be debugging infrastructure.\n\nA #define FN __FUNCTION__ was removed and occurances of FN were replaced\nwith __func__ as well.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b901d40c970e6db319fe1f8d84db2b9684b6c9bf",
      "tree": "caa02eae1eb20eafca3af9d3bd3524be5ad82c16",
      "parents": [
        "1236cc3cf8c69bd316c940b2e94f91b3795f97fe"
      ],
      "author": {
        "name": "Jim Meyering",
        "email": "jim@meyering.net",
        "time": "Mon Apr 28 02:13:44 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:27 2008 -0700"
      },
      "message": "alpha: handle kcalloc failure\n\narch/alpha/kernel/module.c (module_frob_arch_sections): Handle kcalloc failure.\n\nSigned-off-by: Jim Meyering \u003cmeyering@redhat.com\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": "1236cc3cf8c69bd316c940b2e94f91b3795f97fe",
      "tree": "c33374ffa89d34f901d91888851970071700c38d",
      "parents": [
        "30aa4faf62b2dd9b239ae06ca7a85f1d36d7ef25"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Mon Apr 28 02:13:43 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:27 2008 -0700"
      },
      "message": "smack: use cap_task_prctl\n\nWith the introduction of per-process securebits, the capabilities-related\nprctl callbacks were moved into cap_task_prctl().  Have smack use\ncap_task_prctl() so that PR_SET_KEEPCAPS is defined.\n\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "30aa4faf62b2dd9b239ae06ca7a85f1d36d7ef25",
      "tree": "37eb2c4fa1195f668d1d3a16653bdc93da5f5e6b",
      "parents": [
        "55d00ccfb336b4f85a476a24e18c17b2eaff919e"
      ],
      "author": {
        "name": "Casey Schaufler",
        "email": "casey@schaufler-ca.com",
        "time": "Mon Apr 28 02:13:43 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:27 2008 -0700"
      },
      "message": "smack: make smk_cipso_doi() and smk_unlbl_ambient()\n\nThe functions smk_cipso_doi and smk_unlbl_ambient are not used outside\nsmackfs.c and should hence be static.\n\nSigned-off-by: Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "55d00ccfb336b4f85a476a24e18c17b2eaff919e",
      "tree": "5be259b88f5cfe17206ad20dcb11929dd4a40781",
      "parents": [
        "c60264c494a119cd3a716a22edc0137b11de6d1e"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Mon Apr 28 02:13:42 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:27 2008 -0700"
      },
      "message": "root_plug: use cap_task_prctl\n\nWith the introduction of per-process securebits, the capabilities-related\nprctl callbacks were moved into cap_task_prctl().  Have root_plug use\ncap_task_prctl() so that PR_SET_KEEPCAPS is defined.\n\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@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": "c60264c494a119cd3a716a22edc0137b11de6d1e",
      "tree": "db985b1529a6a136a7f439a9a557bcb80278e471",
      "parents": [
        "3898b1b4ebff8dcfbcf1807e0661585e06c9a91c"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Mon Apr 28 02:13:41 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:27 2008 -0700"
      },
      "message": "smack: fix integer as NULL pointer warning in smack_lsm.c\n\nsecurity/smack/smack_lsm.c:1257:16: warning: Using plain integer as NULL pointer\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nAcked-by: Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3898b1b4ebff8dcfbcf1807e0661585e06c9a91c",
      "tree": "69a338864dfe654f68064a599c5d0da460df34ac",
      "parents": [
        "4016a1390d07f15b267eecb20e76a48fd5c524ef"
      ],
      "author": {
        "name": "Andrew G. Morgan",
        "email": "morgan@kernel.org",
        "time": "Mon Apr 28 02:13:40 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:26 2008 -0700"
      },
      "message": "capabilities: implement per-process securebits\n\nFilesystem capability support makes it possible to do away with (set)uid-0\nbased privilege and use capabilities instead.  That is, with filesystem\nsupport for capabilities but without this present patch, it is (conceptually)\npossible to manage a system with capabilities alone and never need to obtain\nprivilege via (set)uid-0.\n\nOf course, conceptually isn\u0027t quite the same as currently possible since few\nuser applications, certainly not enough to run a viable system, are currently\nprepared to leverage capabilities to exercise privilege.  Further, many\napplications exist that may never get upgraded in this way, and the kernel\nwill continue to want to support their setuid-0 base privilege needs.\n\nWhere pure-capability applications evolve and replace setuid-0 binaries, it is\ndesirable that there be a mechanisms by which they can contain their\nprivilege.  In addition to leveraging the per-process bounding and inheritable\nsets, this should include suppressing the privilege of the uid-0 superuser\nfrom the process\u0027 tree of children.\n\nThe feature added by this patch can be leveraged to suppress the privilege\nassociated with (set)uid-0.  This suppression requires CAP_SETPCAP to\ninitiate, and only immediately affects the \u0027current\u0027 process (it is inherited\nthrough fork()/exec()).  This reimplementation differs significantly from the\nhistorical support for securebits which was system-wide, unwieldy and which\nhas ultimately withered to a dead relic in the source of the modern kernel.\n\nWith this patch applied a process, that is capable(CAP_SETPCAP), can now drop\nall legacy privilege (through uid\u003d0) for itself and all subsequently\nfork()\u0027d/exec()\u0027d children with:\n\n  prctl(PR_SET_SECUREBITS, 0x2f);\n\nThis patch represents a no-op unless CONFIG_SECURITY_FILE_CAPABILITIES is\nenabled at configure time.\n\n[akpm@linux-foundation.org: fix uninitialised var warning]\n[serue@us.ibm.com: capabilities: use cap_task_prctl when !CONFIG_SECURITY]\nSigned-off-by: Andrew G. Morgan \u003cmorgan@kernel.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nCc: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nCc: Paul Moore \u003cpaul.moore@hp.com\u003e\nSigned-off-by: Serge E. Hallyn \u003cserue@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": "4016a1390d07f15b267eecb20e76a48fd5c524ef",
      "tree": "ae9ce9bd7d2fd784a396893c4d4b2a79b2d7342d",
      "parents": [
        "468fd62ed9090ccbe872489df5d0d099510df4b5"
      ],
      "author": {
        "name": "Michael Hennerich",
        "email": "Michael.Hennerich@analog.com",
        "time": "Mon Apr 28 02:13:38 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:26 2008 -0700"
      },
      "message": "mm/nommu.c: return 0 from kobjsize with invalid objects\n\nDon\u0027t perform kobjsize operations on objects the kernel doesn\u0027t manage.\n\nOn Blackfin, drivers can get dma coherent memory by calling a function\ndma_alloc_coherent(). We do this in nommu by configuring a chunk of uncached\nmemory at the top of memory.\n\nSince we don\u0027t want the kernel to use the uncached memory, we lie to the\nkernel, and tell it that it\u0027s max memory is between 0, and the start of the\nuncached dma coherent section.\n\nthis all works well, until this memory gets exposed into userspace (with a\nframe buffer), when you look at the process\u0027s maps, it shows the framebuf:\n\nroot:/proc\u003e cat maps\n[snip]\n03f0ef00-03f34700 rw-p 00000000 1f:00 192        /dev/fb0\nroot:/proc\u003e\n\nThis is outside the \"normal\" range for the kernel. When the kernel tries to\nfind the size of this object (when you run ps), it dies in nommu.c in\nkobjsize.\n\nBUG_ON(page-\u003eindex \u003e\u003d MAX_ORDER);\n\nsince the page we are referring to is outside what the kernel thinks is it\u0027s\nmax valid memory.\n\nroot:~\u003e while [ 1 ]; ps \u003e /dev/null; done\nkernel BUG at mm/nommu.c:119!\nKernel panic - not syncing: BUG!\n\nWe fixed this by adding a check to reject out of range object pointers as it\nalready does that for NULL pointers.\n\nSigned-off-by: Michael Hennerich \u003cMichael.Hennerich@analog.com\u003e\nSigned-off-by: Robin Getz \u003crgetz@blackfin.uclinux.org\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "468fd62ed9090ccbe872489df5d0d099510df4b5",
      "tree": "017ab340cac72bf86423f181f085e7bc39fd70ea",
      "parents": [
        "8cece85ec744bdc7ea0fc2d33f65b3f031c28468"
      ],
      "author": {
        "name": "Dimitri Sivanich",
        "email": "sivanich@sgi.com",
        "time": "Mon Apr 28 02:13:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:26 2008 -0700"
      },
      "message": "vmstats: add cond_resched() to refresh_cpu_vm_stats()\n\nWe\u0027ve found that it can take quite a bit of time (100\u0027s of usec) to get\nthrough the zone loop in refresh_cpu_vm_stats().\n\nAdding a cond_resched() to allow other threads to run in the non-preemptive\ncase.\n\nSigned-off-by: Dimitri Sivanich \u003csivanich@sgi.com\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8cece85ec744bdc7ea0fc2d33f65b3f031c28468",
      "tree": "f11f84a37cf53f4db78d12b6372b7fe105ddccf5",
      "parents": [
        "2309f9e6fe3f1de661eab9613f7903ab4420c753"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Mon Apr 28 02:13:36 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:26 2008 -0700"
      },
      "message": "mm: fix broken gfp_zone with __GFP_THISNODE\n\nThis hack, \"base \u003d MAX_NR_ZONES\", at __GFP_THISNODE was used for old\nzonliests.\n\nNow, new zonelist[] have a list for __GFP_THISNODE and this hack is incorrect.\nShould be removed.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2309f9e6fe3f1de661eab9613f7903ab4420c753",
      "tree": "283c26f2cd9f42bd63e7b514278aafe7c53a4dc0",
      "parents": [
        "97d87c9710bc6c5f2585fb9dc58f5bedbe996f10"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@ucw.cz",
        "time": "Mon Apr 28 02:13:35 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:26 2008 -0700"
      },
      "message": "mm/page_alloc.c: remove hand-coded get_order()\n\nRemove hand-coded get_order() from page_alloc.c.\n\nSigned-off-by: Pavel Machek \u003cpavel@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "97d87c9710bc6c5f2585fb9dc58f5bedbe996f10",
      "tree": "60d6b2adc950c55330504fc472464339328d7ef7",
      "parents": [
        "0c0a4a517a31e05efb38304668198a873bfec6ca"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Apr 28 02:13:35 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:26 2008 -0700"
      },
      "message": "oom_kill: remove unused parameter in badness()\n\nIn commit 4c4a22148909e4c003562ea7ffe0a06e26919e3c, we moved the\nmemcontroller-related code from badness() to select_bad_process(), so the\nparameter \u0027mem\u0027 in badness() is unused now.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0c0a4a517a31e05efb38304668198a873bfec6ca",
      "tree": "3d02fe9dbf160cd5d328c1e2cf4b40ce37426c5f",
      "parents": [
        "86f6dae1377523689bd8468fed2f2dd180fc0560"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Mon Apr 28 02:13:34 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:26 2008 -0700"
      },
      "message": "memory hotplug: free memmaps allocated by bootmem\n\nThis patch is to free memmaps which is allocated by bootmem.\n\nFreeing usemap is not necessary.  The pages of usemap may be necessary for\nother sections.\n\nIf removing section is last section on the node, its section is the final user\nof usemap page.  (usemaps are allocated on its section by previous patch.) But\nit shouldn\u0027t be freed too, because the section must be logical offline state\nwhich all pages are isolated against page allocater.  If it is freed, page\nalloctor may use it which will be removed physically soon.  It will be\ndisaster.  So, this patch keeps it as it is.\n\nSigned-off-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nCc: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nCc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "86f6dae1377523689bd8468fed2f2dd180fc0560",
      "tree": "90c4495ae947627d610f13c8a185fd16358bc14e",
      "parents": [
        "e70260aabea3af2a84b951e75166dcebe689b88e"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Mon Apr 28 02:13:33 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:25 2008 -0700"
      },
      "message": "memory hotplug: allocate usemap on the section with pgdat\n\nUsemaps are allocated on the section which has pgdat by this.\n\nBecause usemap size is very small, many other sections usemaps are allocated\non only one page.  If a section has usemap, it can\u0027t be removed until removing\nother sections.  This dependency is not desirable for memory removing.\n\nPgdat has similar feature.  When a section has pgdat area, it must be the last\nsection for removing on the node.  So, if section A has pgdat and section B\nhas usemap for section A, Both sections can\u0027t be removed due to dependency\neach other.\n\nTo solve this issue, this patch collects usemap on same section with pgdat.\nIf other sections doesn\u0027t have any dependency, this section will be able to be\nremoved finally.\n\nSigned-off-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nCc: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nCc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e70260aabea3af2a84b951e75166dcebe689b88e",
      "tree": "196dc5f2804f9f5496f51954330a036e3a2762d8",
      "parents": [
        "9d99217a02a06a7cc83f065b73e976970970c58c"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Mon Apr 28 02:13:32 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:25 2008 -0700"
      },
      "message": "memory hotplug: make alloc_bootmem_section()\n\nalloc_bootmem_section() can allocate specified section\u0027s area.  This is used\nfor usemap to keep same section with pgdat by later patch.\n\nSigned-off-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nCc: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nCc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9d99217a02a06a7cc83f065b73e976970970c58c",
      "tree": "14d270c37701f9ae621c9cd8b076e207ee86e5d0",
      "parents": [
        "04753278769f3b6c3b79a080edb52f21d83bf6e2"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Mon Apr 28 02:13:32 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:25 2008 -0700"
      },
      "message": "memory hotplug: align memmap to page size\n\nTo free memmap easier, this patch aligns it to page size.  Bootmem allocater\nmay mix some objects in one pages.  It\u0027s not good for freeing memmap of memory\nhot-remove.\n\nSigned-off-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nCc: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nCc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "04753278769f3b6c3b79a080edb52f21d83bf6e2",
      "tree": "0dff4088b44016b6d04930b2fc09419412821aa2",
      "parents": [
        "7f2e9525ba55b1c42ad6c4a5a59d7eb7bdd9be72"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Mon Apr 28 02:13:31 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:25 2008 -0700"
      },
      "message": "memory hotplug: register section/node id to free\n\nThis patch set is to free pages which is allocated by bootmem for\nmemory-hotremove.  Some structures of memory management are allocated by\nbootmem.  ex) memmap, etc.\n\nTo remove memory physically, some of them must be freed according to\ncircumstance.  This patch set makes basis to free those pages, and free\nmemmaps.\n\nBasic my idea is using remain members of struct page to remember information\nof users of bootmem (section number or node id).  When the section is\nremoving, kernel can confirm it.  By this information, some issues can be\nsolved.\n\n  1) When the memmap of removing section is allocated on other\n     section by bootmem, it should/can be free.\n  2) When the memmap of removing section is allocated on the\n     same section, it shouldn\u0027t be freed. Because the section has to be\n     logical memory offlined already and all pages must be isolated against\n     page allocater. If it is freed, page allocator may use it which will\n     be removed physically soon.\n  3) When removing section has other section\u0027s memmap,\n     kernel will be able to show easily which section should be removed\n     before it for user. (Not implemented yet)\n  4) When the above case 2), the page isolation will be able to check and skip\n     memmap\u0027s page when logical memory offline (offline_pages()).\n     Current page isolation code fails in this case because this page is\n     just reserved page and it can\u0027t distinguish this pages can be\n     removed or not. But, it will be able to do by this patch.\n     (Not implemented yet.)\n  5) The node information like pgdat has similar issues. But, this\n     will be able to be solved too by this.\n     (Not implemented yet, but, remembering node id in the pages.)\n\nFortunately, current bootmem allocator just keeps PageReserved flags,\nand doesn\u0027t use any other members of page struct. The users of\nbootmem doesn\u0027t use them too.\n\nThis patch:\n\nThis is to register information which is node or section\u0027s id.  Kernel can\ndistinguish which node/section uses the pages allcated by bootmem.  This is\nbasis for hot-remove sections or nodes.\n\nSigned-off-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nCc: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nCc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7f2e9525ba55b1c42ad6c4a5a59d7eb7bdd9be72",
      "tree": "10792496f50b4b0fed8a2c356a8819ae8f9ce47f",
      "parents": [
        "8fe627ec5b7c47b1654dff50536d9709863295a3"
      ],
      "author": {
        "name": "Gerald Schaefer",
        "email": "gerald.schaefer@de.ibm.com",
        "time": "Mon Apr 28 02:13:29 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:25 2008 -0700"
      },
      "message": "hugetlbfs: common code update for s390\n\nHuge ptes have a special type on s390 and cannot be handled with the standard\npte functions in certain cases, e.g.  because of a different location of the\ninvalid bit.  This patch adds some new architecture- specific functions to\nhugetlb common code, as a prerequisite for the s390 large page support.\n\nThis won\u0027t affect other architectures in functionality, but I need to add some\nnew dummy inline functions to the headers.\n\nAcked-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Gerald Schaefer \u003cgerald.schaefer@de.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\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": "8fe627ec5b7c47b1654dff50536d9709863295a3",
      "tree": "78511553eb4111224e89ef02a9436d0db382694b",
      "parents": [
        "6d779079bfd1196e077bb1d0a906c37ae770b102"
      ],
      "author": {
        "name": "Gerald Schaefer",
        "email": "gerald.schaefer@de.ibm.com",
        "time": "Mon Apr 28 02:13:28 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:25 2008 -0700"
      },
      "message": "hugetlbfs: add missing TLB flush to hugetlb_cow()\n\nA cow break on a hugetlbfs page with page_count \u003e 1 will set a new pte with\nset_huge_pte_at(), w/o any tlb flush operation.  The old pte will remain in\nthe tlb and subsequent write access to the page will result in a page fault\nloop, for as long as it may take until the tlb is flushed from somewhere else.\n This patch introduces an architecture-specific huge_ptep_clear_flush()\nfunction, which is called before the the set_huge_pte_at() in hugetlb_cow().\n\nATTENTION: This is just a nop on all architectures for now, the s390\nimplementation will come with our large page patch later.  Other architectures\nshould define their own huge_ptep_clear_flush() if needed.\n\nAcked-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Gerald Schaefer \u003cgerald.schaefer@de.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\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": "6d779079bfd1196e077bb1d0a906c37ae770b102",
      "tree": "880b17a8c5d4badb548773928868606826899c68",
      "parents": [
        "71fe804b6d56d6a7aed680e096901434cef6a2c3"
      ],
      "author": {
        "name": "Gerald Schaefer",
        "email": "gerald.schaefer@de.ibm.com",
        "time": "Mon Apr 28 02:13:27 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:25 2008 -0700"
      },
      "message": "hugetlbfs: architecture header cleanup\n\nThis patch moves all architecture functions for hugetlb to architecture header\nfiles (include/asm-foo/hugetlb.h) and converts all macros to inline functions.\n It also removes (!) ARCH_HAS_HUGEPAGE_ONLY_RANGE,\nARCH_HAS_HUGETLB_FREE_PGD_RANGE, ARCH_HAS_PREPARE_HUGEPAGE_RANGE,\nARCH_HAS_SETCLEAR_HUGE_PTE and ARCH_HAS_HUGETLB_PREFAULT_HOOK.\n\nGetting rid of the ARCH_HAS_xxx #ifdef and macro fugliness should increase\nreadability and maintainability, at the price of some code duplication.  An\nasm-generic common part would have reduced the loc, but we would end up with\nnew ARCH_HAS_xxx defines eventually.\n\nAcked-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Gerald Schaefer \u003cgerald.schaefer@de.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\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": "71fe804b6d56d6a7aed680e096901434cef6a2c3",
      "tree": "3dd437e09fe6ee57644c72c79e08c562d4bb6389",
      "parents": [
        "3f226aa1cbc006f9d90f22084f519ad2a1286cd8"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "lee.schermerhorn@hp.com",
        "time": "Mon Apr 28 02:13:26 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:25 2008 -0700"
      },
      "message": "mempolicy: use struct mempolicy pointer in shmem_sb_info\n\nThis patch replaces the mempolicy mode, mode_flags, and nodemask in the\nshmem_sb_info struct with a struct mempolicy pointer, initialized to NULL.\nThis removes dependency on the details of mempolicy from shmem.c and hugetlbfs\ninode.c and simplifies the interfaces.\n\nmpol_parse_str() in mempolicy.c is changed to return, via a pointer to a\npointer arg, a struct mempolicy pointer on success.  For MPOL_DEFAULT, the\nreturned pointer is NULL.  Further, mpol_parse_str() now takes a \u0027no_context\u0027\nargument that causes the input nodemask to be stored in the w.user_nodemask of\nthe created mempolicy for use when the mempolicy is installed in a tmpfs inode\nshared policy tree.  At that time, any cpuset contextualization is applied to\nthe original input nodemask.  This preserves the previous behavior where the\ninput nodemask was stored in the superblock.  We can think of the returned\nmempolicy as \"context free\".\n\nBecause mpol_parse_str() is now calling mpol_new(), we can remove from\nmpol_to_str() the semantic checks that mpol_new() already performs.\n\nAdd \u0027no_context\u0027 parameter to mpol_to_str() to specify that it should format\nthe nodemask in w.user_nodemask for \u0027bind\u0027 and \u0027interleave\u0027 policies.\n\nChange mpol_shared_policy_init() to take a pointer to a \"context free\" struct\nmempolicy and to create a new, \"contextualized\" mempolicy using the mode,\nmode_flags and user_nodemask from the input mempolicy.\n\n  Note: we know that the mempolicy passed to mpol_to_str() or\n  mpol_shared_policy_init() from a tmpfs superblock is \"context free\".  This\n  is currently the only instance thereof.  However, if we found more uses for\n  this concept, and introduced any ambiguity as to whether a mempolicy was\n  context free or not, we could add another internal mode flag to identify\n  context free mempolicies.  Then, we could remove the \u0027no_context\u0027 argument\n  from mpol_to_str().\n\nAdded shmem_get_sbmpol() to return a reference counted superblock mempolicy,\nif one exists, to pass to mpol_shared_policy_init().  We must add the\nreference under the sb stat_lock to prevent races with replacement of the mpol\nby remount.  This reference is removed in mpol_shared_policy_init().\n\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: another build fix]\n[akpm@linux-foundation.org: yet another build fix]\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\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": "3f226aa1cbc006f9d90f22084f519ad2a1286cd8",
      "tree": "e54a87abb19f9dea184f4c17c4c8532d3d715de8",
      "parents": [
        "095f1fc4ebf36c64fddf9b6db29b1ab5517378e6"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "lee.schermerhorn@hp.com",
        "time": "Mon Apr 28 02:13:24 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:25 2008 -0700"
      },
      "message": "mempolicy: support mpol\u003dlocal tmpfs mount option\n\nFor tmpfs/shmem shared policies, MPOL_DEFAULT is not necessarily equivalent to\n\"local allocation\".  Because shared policies are at the same \"scope\" level\n[see Documentation/vm/numa_memory_policy.txt], as vma policies MPOL_DEFAULT\nmeans \"fall back to current task policy\".\n\nThis patch extends the memory policy string parsing function to display\n\"local\" for MPOL_PREFERRED + MPOL_F_LOCAL.  This allows one to specify local\nallocation as the default policy for shared memory areas via the tmpfs mpol\nmount option, regardless of the current task\u0027s policy.\n\nAlso, \"local\" is now displayed for this policy.  This patch allows us to\naccept the same input format as the display.\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\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": "095f1fc4ebf36c64fddf9b6db29b1ab5517378e6",
      "tree": "39aae9d5b05d8501d1794e92c6115331c0a40848",
      "parents": [
        "2291990ab36b4b2d8a81b1f92e7a046e51632a60"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "lee.schermerhorn@hp.com",
        "time": "Mon Apr 28 02:13:23 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:24 2008 -0700"
      },
      "message": "mempolicy: rework shmem mpol parsing and display\n\nmm/shmem.c currently contains functions to parse and display memory policy\nstrings for the tmpfs \u0027mpol\u0027 mount option.  Move this to mm/mempolicy.c with\nthe rest of the mempolicy support.  With subsequent patches, we\u0027ll be able to\nremove knowledge of the details [mode, flags, policy, ...] completely from\nshmem.c\n\n1) replace shmem_parse_mpol() in mm/shmem.c with mpol_parse_str() in\n   mm/mempolicy.c.  Rework to use the policy_types[] array [used by\n   mpol_to_str()] to look up mode by name.\n\n2) use mpol_to_str() to format policy for shmem_show_mpol().  mpol_to_str()\n   expects a pointer to a struct mempolicy, so temporarily construct one.\n   This will be replaced with a reference to a struct mempolicy in the tmpfs\n   superblock in a subsequent patch.\n\n   NOTE 1: I changed mpol_to_str() to use a colon \u0027:\u0027 rather than an equal\n   sign \u0027\u003d\u0027 as the nodemask delimiter to match mpol_parse_str() and the\n   tmpfs/shmem mpol mount option formatting that now uses mpol_to_str().  This\n   is a user visible change to numa_maps, but then the addition of the mode\n   flags already changed the display.  It makes sense to me to have the mounts\n   and numa_maps display the policy in the same format.  However, if anyone\n   objects strongly, I can pass the desired nodemask delimeter as an arg to\n   mpol_to_str().\n\n   Note 2: Like show_numa_map(), I don\u0027t check the return code from\n   mpol_to_str().  I do use a longer buffer than the one provided by\n   show_numa_map(), which seems to have sufficed so far.\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\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": "2291990ab36b4b2d8a81b1f92e7a046e51632a60",
      "tree": "b5b6b8ca9c92bc3c84cd7e7aefb5010d3793db4d",
      "parents": [
        "fc36b8d3d819047eb4d23ca079fb4d3af20ff076"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "lee.schermerhorn@hp.com",
        "time": "Mon Apr 28 02:13:22 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:24 2008 -0700"
      },
      "message": "mempolicy: clean-up mpol-to-str() mempolicy formatting\n\nmpol-to-str() formats memory policies into printable strings.  Currently this\nis only used to display \"numa_maps\".  A subsequent patch will use\nmpol_to_str() for formatting tmpfs [shmem] mpol mount options, allowing us to\nremove essentially duplicate code in mm/shmem.c.  This patch cleans up\nmpol_to_str() generally and in preparation for that patch.\n\n1) show_numa_maps() is not checking the return code from mpol_to_str().\n   There\u0027s not a lot we can do in this context if mpol_to_str() did return the\n   error [insufficient space in buffer].  Proposed \"solution\": just check,\n   under DEBUG_VM, that callers are providing sufficient buffer space for the\n   policy, flags, and a few nodes.  This way, we\u0027ll get some display.\n   show_numa_maps() is providing a 50-byte buffer, so it won\u0027t trip this\n   check.  50-bytes should be sufficient unless one has a large number of\n   nodes in a very sparse nodemask.\n\n2) The display of the new mode flags [\"static\" \u0026 \"relative\"] was set up to\n   display multiple flags, separated by a \"bar\" \u0027|\u0027.  However, this support is\n   incomplete--e.g., need_bar was never incremented; and currently, these two\n   flags are mutually exclusive.  So remove the \"bar\" support, for now, and\n   only display one flag.\n\n3) Use snprint() to format flags, so as not to overflow the buffer.  Not\n   that it\u0027s ever happed, AFAIK.\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\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": "fc36b8d3d819047eb4d23ca079fb4d3af20ff076",
      "tree": "65ee215a6bdca1e8d4ac4b57525445d7d1829c1d",
      "parents": [
        "53f2556b6792ed99fde965f5e061749edd455623"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "lee.schermerhorn@hp.com",
        "time": "Mon Apr 28 02:13:21 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:24 2008 -0700"
      },
      "message": "mempolicy: use MPOL_F_LOCAL to Indicate Preferred Local Policy\n\nNow that we\u0027re using \"preferred local\" policy for system default, we need to\nmake this as fast as possible.  Because of the variable size of the mempolicy\nstructure [based on size of nodemasks], the preferred_node may be in a\ndifferent cacheline from the mode.  This can result in accessing an extra\ncacheline in the normal case of system default policy.  Suspect this is the\ncause of an observed 2-3% slowdown in page fault testing relative to kernel\nwithout this patch series.\n\nTo alleviate this, use an internal mode flag, MPOL_F_LOCAL in the mempolicy\nflags member which is guaranteed [?] to be in the same cacheline as the mode\nitself.\n\nVerified that reworked mempolicy now performs slightly better on 25-rc8-mm1\nfor both anon and shmem segments with system default and vma [preferred local]\npolicy.\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\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": "53f2556b6792ed99fde965f5e061749edd455623",
      "tree": "82a679e33bc8c305297cbe4655be0dac24728907",
      "parents": [
        "bea904d54d6faa92400f10c8ea3d3828b8e1eb93"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "lee.schermerhorn@hp.com",
        "time": "Mon Apr 28 02:13:20 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:24 2008 -0700"
      },
      "message": "mempolicy: mPOL_PREFERRED cleanups for \"local allocation\"\n\nHere are a couple of \"cleanups\" for MPOL_PREFERRED behavior when\nv.preferred_node \u003c 0 -- i.e., \"local allocation\":\n\n1)  [do_]get_mempolicy() calls the now renamed get_policy_nodemask()\n    to fetch the nodemask associated with a policy.  Currently,\n    get_policy_nodemask() returns the set of nodes with memory, when\n    the policy \u0027mode\u0027 is \u0027PREFERRED, and the preferred_node is \u003c 0.\n    Change to return an empty nodemask, as this is what was specified\n    to achieve \"local allocation\".\n\n2)  When a task is moved into a [new] cpuset, mpol_rebind_policy() is\n    called to adjust any task and vma policy nodes to be valid in the\n    new cpuset.  However, when the policy is MPOL_PREFERRED, and the\n    preferred_node is \u003c0, no rebind is necessary.  The \"local allocation\"\n    indication is valid in any cpuset.  Existing code will \"do the right\n    thing\" because node_remap() will just return the argument node when\n    it is outside of the valid range of node ids.  However, I think it is\n    clearer and cleaner to skip the remap explicitly in this case.\n\n3)  mpol_to_str() produces a printable, \"human readable\" string from a\n    struct mempolicy.  For MPOL_PREFERRED with preferred_node \u003c0,  show\n    \"local\", as this indicates local allocation, as the task migrates\n    among nodes.  Note that this matches the usage of \"local allocation\"\n    in libnuma() and numactl.  Without this change, I believe that node_set()\n    [via set_bit()] will set bit 31, resulting in a misleading display.\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\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": "bea904d54d6faa92400f10c8ea3d3828b8e1eb93",
      "tree": "24966dd4dabadb4bb32aa1e00fae2c2168661229",
      "parents": [
        "52cd3b074050dd664380b5e8cfc85d4a6ed8ad48"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "lee.schermerhorn@hp.com",
        "time": "Mon Apr 28 02:13:18 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:24 2008 -0700"
      },
      "message": "mempolicy: use MPOL_PREFERRED for system-wide default policy\n\nCurrently, when one specifies MPOL_DEFAULT via a NUMA memory policy API\n[set_mempolicy(), mbind() and internal versions], the kernel simply installs a\nNULL struct mempolicy pointer in the appropriate context: task policy, vma\npolicy, or shared policy.  This causes any use of that policy to \"fall back\"\nto the next most specific policy scope.\n\nThe only use of MPOL_DEFAULT to mean \"local allocation\" is in the system\ndefault policy.  This requires extra checks/cases for MPOL_DEFAULT in many\nmempolicy.c functions.\n\nThere is another, \"preferred\" way to specify local allocation via the APIs.\nThat is using the MPOL_PREFERRED policy mode with an empty nodemask.\nInternally, the empty nodemask gets converted to a preferred_node id of \u0027-1\u0027.\nAll internal usage of MPOL_PREFERRED will convert the \u0027-1\u0027 to the id of the\nnode local to the cpu where the allocation occurs.\n\nSystem default policy, except during boot, is hard-coded to \"local\nallocation\".  By using the MPOL_PREFERRED mode with a negative value of\npreferred node for system default policy, MPOL_DEFAULT will never occur in the\n\u0027policy\u0027 member of a struct mempolicy.  Thus, we can remove all checks for\nMPOL_DEFAULT when converting policy to a node id/zonelist in the allocation\npaths.\n\nIn slab_node() return local node id when policy pointer is NULL.  No need to\nset a pol value to take the switch default.  Replace switch default with\nBUG()--i.e., shouldn\u0027t happen.\n\nWith this patch MPOL_DEFAULT is only used in the APIs, including internal\ncalls to do_set_mempolicy() and in the display of policy in\n/proc/\u003cpid\u003e/numa_maps.  It always means \"fall back\" to the the next most\nspecific policy scope.  This simplifies the description of memory policies\nquite a bit, with no visible change in behavior.\n\nget_mempolicy() continues to return MPOL_DEFAULT and an empty nodemask when\nthe requested policy [task or vma/shared] is NULL.  These are the values one\nwould supply via set_mempolicy() or mbind() to achieve that condition--default\nbehavior.\n\nThis patch updates Documentation to reflect this change.\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\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": "52cd3b074050dd664380b5e8cfc85d4a6ed8ad48",
      "tree": "fcfcf55c0e81376ea34919fab26e29bedd7f3b88",
      "parents": [
        "a6020ed759404372e8be2b276e85e51735472cc9"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "lee.schermerhorn@hp.com",
        "time": "Mon Apr 28 02:13:16 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:24 2008 -0700"
      },
      "message": "mempolicy: rework mempolicy Reference Counting [yet again]\n\nAfter further discussion with Christoph Lameter, it has become clear that my\nearlier attempts to clean up the mempolicy reference counting were a bit of\noverkill in some areas, resulting in superflous ref/unref in what are usually\nfast paths.  In other areas, further inspection reveals that I botched the\nunref for interleave policies.\n\nA separate patch, suitable for upstream/stable trees, fixes up the known\nerrors in the previous attempt to fix reference counting.\n\nThis patch reworks the memory policy referencing counting and, one hopes,\nsimplifies the code.  Maybe I\u0027ll get it right this time.\n\nSee the update to the numa_memory_policy.txt document for a discussion of\nmemory policy reference counting that motivates this patch.\n\nSummary:\n\nLookup of mempolicy, based on (vma, address) need only add a reference for\nshared policy, and we need only unref the policy when finished for shared\npolicies.  So, this patch backs out all of the unneeded extra reference\ncounting added by my previous attempt.  It then unrefs only shared policies\nwhen we\u0027re finished with them, using the mpol_cond_put() [conditional put]\nhelper function introduced by this patch.\n\nNote that shmem_swapin() calls read_swap_cache_async() with a dummy vma\ncontaining just the policy.  read_swap_cache_async() can call alloc_page_vma()\nmultiple times, so we can\u0027t let alloc_page_vma() unref the shared policy in\nthis case.  To avoid this, we make a copy of any non-null shared policy and\nremove the MPOL_F_SHARED flag from the copy.  This copy occurs before reading\na page [or multiple pages] from swap, so the overhead should not be an issue\nhere.\n\nI introduced a new static inline function \"mpol_cond_copy()\" to copy the\nshared policy to an on-stack policy and remove the flags that would require a\nconditional free.  The current implementation of mpol_cond_copy() assumes that\nthe struct mempolicy contains no pointers to dynamically allocated structures\nthat must be duplicated or reference counted during copy.\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\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": "a6020ed759404372e8be2b276e85e51735472cc9",
      "tree": "1fb0a346909dcc9d3b916671001af87b17931ddd",
      "parents": [
        "aab0b1029f0843756b68e0ed3ca983685bf43ed6"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "lee.schermerhorn@hp.com",
        "time": "Mon Apr 28 02:13:14 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:24 2008 -0700"
      },
      "message": "mempolicy: document {set|get}_policy() vm_ops APIs\n\nDocument mempolicy return value reference semantics assumed by the rest of the\nmempolicy code for the set_ and get_policy vm_ops in \u003clinux/mm.h\u003e--where the\nprototypes are defined--to inform any future mempolicy vm_op writers what the\nrest of the subsystem expects of them.\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\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": "aab0b1029f0843756b68e0ed3ca983685bf43ed6",
      "tree": "95a0546c908a1c7a3bf1353f433ff1464faf68db",
      "parents": [
        "45c4745af381851b0406d8e4db99e62e265691c2"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "lee.schermerhorn@hp.com",
        "time": "Mon Apr 28 02:13:13 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:24 2008 -0700"
      },
      "message": "mempolicy: mark shared policies for unref\n\nAs part of yet another rework of mempolicy reference counting, we want to be\nable to identify shared policies efficiently, because they have an extra ref\ntaken on lookup that needs to be removed when we\u0027re finished using the policy.\n\n  Note:  the extra ref is required because the policies are\n  shared between tasks/processes and can be changed/freed\n  by one task while another task is using them--e.g., for\n  page allocation.\n\nBuilding on David Rientjes mempolicy \"mode flags\" enhancement, this patch\nindicates a \"shared\" policy by setting a new MPOL_F_SHARED flag in the flags\nmember of the struct mempolicy added by David.  MPOL_F_SHARED, and any future\n\"internal mode flags\" are reserved from bit zero up, as they will never be\npassed in the upper bits of the mode argument of a mempolicy API.\n\nI set the MPOL_F_SHARED flag when the policy is installed in the shared policy\nrb-tree.  Don\u0027t need/want to clear the flag when removing from the tree as the\nmempolicy is freed [unref\u0027d] internally to the sp_delete() function.  However,\na task could hold another reference on this mempolicy from a prior lookup.  We\nneed the MPOL_F_SHARED flag to stay put so that any tasks holding a ref will\nunref, eventually freeing, the mempolicy.\n\nA later patch in this series will introduce a function to conditionally unref\n[mpol_free] a policy.  The MPOL_F_SHARED flag is one reason [currently the\nonly reason] to unref/free a policy via the conditional free.\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\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": "45c4745af381851b0406d8e4db99e62e265691c2",
      "tree": "d93f6f7b3d7eb3773aaa80444c56baff99e670d6",
      "parents": [
        "ae4d8c16aa22775f5731677abb8a82f03cec877e"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "lee.schermerhorn@hp.com",
        "time": "Mon Apr 28 02:13:12 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:24 2008 -0700"
      },
      "message": "mempolicy: rename struct mempolicy \u0027policy\u0027 member to \u0027mode\u0027\n\nThe terms \u0027policy\u0027 and \u0027mode\u0027 are both used in various places to describe the\nsemantics of the value stored in the \u0027policy\u0027 member of struct mempolicy.\nFurthermore, the term \u0027policy\u0027 is used to refer to that member, to the entire\nstruct mempolicy and to the more abstract concept of the tuple consisting of a\n\"mode\" and an optional node or set of nodes.  Recently, we have added \"mode\nflags\" that are passed in the upper bits of the \u0027mode\u0027 [or sometimes,\n\u0027policy\u0027] member of the numa APIs.\n\nI\u0027d like to resolve this confusion, which perhaps only exists in my mind, by\nrenaming the \u0027policy\u0027 member to \u0027mode\u0027 throughout, and fixing up the\nDocumentation.  Man pages will be updated separately.\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\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": "ae4d8c16aa22775f5731677abb8a82f03cec877e",
      "tree": "2d34c6fd334b51cc5f3265cd4ec26db758639b5c",
      "parents": [
        "f4e53d910b7dde2685b177f1e7c3e3e0b4a42f7b"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "lee.schermerhorn@hp.com",
        "time": "Mon Apr 28 02:13:11 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:24 2008 -0700"
      },
      "message": "mempolicy: fixup Fallback for Default Shmem Policy\n\nget_vma_policy() is not handling fallback to task policy correctly when the\nget_policy() vm_op returns NULL.  The NULL overwrites the \u0027pol\u0027 variable that\nwas holding the fallback task mempolicy.  So, it was falling back directly to\nsystem default policy.\n\nFix get_vma_policy() to use only non-NULL policy returned from the vma\nget_policy op.\n\nshm_get_policy() was falling back to current task\u0027s mempolicy if the \"backing\nfile system\" [tmpfs vs hugetlbfs] does not support the get_policy vm_op and\nthe vma policy is null.  This is incorrect for show_numa_maps() which is\nlikely querying the numa_maps of some task other than current.  Remove this\nfallback.\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\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": "f4e53d910b7dde2685b177f1e7c3e3e0b4a42f7b",
      "tree": "db4db3abbc0b63de88dabd13e9359ca86973935c",
      "parents": [
        "846a16bf0fc80dc95a414ffce465e3cbf9680247"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "lee.schermerhorn@hp.com",
        "time": "Mon Apr 28 02:13:10 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:23 2008 -0700"
      },
      "message": "mempolicy: write lock mmap_sem while changing task mempolicy\n\nA read of /proc/\u003cpid\u003e/numa_maps holds the target task\u0027s mmap_sem for read\nwhile examining each vma\u0027s mempolicy.  A vma\u0027s mempolicy can fall back to the\ntask\u0027s policy.  However, the task could be changing it\u0027s task policy and free\nthe one that the show_numa_maps() is examining.\n\nTo prevent this, grab the mmap_sem for write when updating task mempolicy.\nPointed out to me by Christoph Lameter and extracted and reworked from\nChristoph\u0027s alternative mempol reference counting patch.\n\nThis is analogous to the way that do_mbind() and do_get_mempolicy() prevent\nraces between task\u0027s sharing an mm_struct [a.k.a.  threads] setting and\nquerying a mempolicy for a particular address.\n\nNote: this is necessary, but not sufficient, to allow us to stop taking an\nextra reference on \"other task\u0027s mempolicy\" in get_vma_policy.  Subsequent\npatches will complete this update, allowing us to simplify the tests for\nwhether we need to unref a mempolicy at various points in the code.\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\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": "846a16bf0fc80dc95a414ffce465e3cbf9680247",
      "tree": "45e03061c5e3d8242bf470509771926f37177415",
      "parents": [
        "f0be3d32b05d3fea2fcdbbb81a39dac2a7163169"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "lee.schermerhorn@hp.com",
        "time": "Mon Apr 28 02:13:09 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:23 2008 -0700"
      },
      "message": "mempolicy: rename mpol_copy to mpol_dup\n\nThis patch renames mpol_copy() to mpol_dup() because, well, that\u0027s what it\ndoes.  Like, e.g., strdup() for strings, mpol_dup() takes a pointer to an\nexisting mempolicy, allocates a new one and copies the contents.\n\nIn a later patch, I want to use the name mpol_copy() to copy the contents from\none mempolicy to another like, e.g., strcpy() does for strings.\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\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": "f0be3d32b05d3fea2fcdbbb81a39dac2a7163169",
      "tree": "5794ce6a8befbce82cd3e44ff15fbf3bb5f2f3bf",
      "parents": [
        "3b1163006332302117b1b2acf226d4014ff46525"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "lee.schermerhorn@hp.com",
        "time": "Mon Apr 28 02:13:08 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:23 2008 -0700"
      },
      "message": "mempolicy: rename mpol_free to mpol_put\n\nThis is a change that was requested some time ago by Mel Gorman.  Makes sense\nto me, so here it is.\n\nNote: I retain the name \"mpol_free_shared_policy()\" because it actually does\nfree the shared_policy, which is NOT a reference counted object.  However, ...\n\nThe mempolicy object[s] referenced by the shared_policy are reference counted,\nso mpol_put() is used to release the reference held by the shared_policy.  The\nmempolicy might not be freed at this time, because some task attached to the\nshared object associated with the shared policy may be in the process of\nallocating a page based on the mempolicy.  In that case, the task performing\nthe allocation will hold a reference on the mempolicy, obtained via\nmpol_shared_policy_lookup().  The mempolicy will be freed when all tasks\nholding such a reference have called mpol_put() for the mempolicy.\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\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": "3b1163006332302117b1b2acf226d4014ff46525",
      "tree": "c9e43179620cfe612ce57795cb0b1e1ceb2c9d1b",
      "parents": [
        "122c7a59055c77434118d7dd4dff4b625d4a2c15"
      ],
      "author": {
        "name": "Adam Litke",
        "email": "agl@us.ibm.com",
        "time": "Mon Apr 28 02:13:06 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:23 2008 -0700"
      },
      "message": "Subject: [PATCH] hugetlb: vmstat events for huge page allocations\n\nAllocating huge pages directly from the buddy allocator is not guaranteed to\nsucceed.  Success depends on several factors (such as the amount of physical\nmemory available and the level of fragmentation).  With the addition of\ndynamic hugetlb pool resizing, allocations can occur much more frequently.\nFor these reasons it is desirable to keep track of huge page allocation\nsuccesses and failures.\n\nAdd two new vmstat entries to track huge page allocations that succeed and\nfail.  The presence of the two entries is contingent upon CONFIG_HUGETLB_PAGE\nbeing enabled.\n\n[akpm@linux-foundation.org: reduced ifdeffery]\nSigned-off-by: Adam Litke \u003cagl@us.ibm.com\u003e\nSigned-off-by: Eric Munson \u003cebmunson@us.ibm.com\u003e\nTested-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "122c7a59055c77434118d7dd4dff4b625d4a2c15",
      "tree": "a17bffce4d5c9574553fdfa075197c0a7b081fbd",
      "parents": [
        "a08cb629f546d1cecebe955392197f226e58dbe1"
      ],
      "author": {
        "name": "Ken\u0027ichi Ohmichi",
        "email": "oomichi@mxs.nes.nec.co.jp",
        "time": "Mon Apr 28 02:13:04 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:23 2008 -0700"
      },
      "message": "vmcoreinfo: add page flags values\n\nAdd some values of page flags to the vmcoreinfo data.\n\nThe vmcoreinfo data has the minimum debugging information only for dump\nfiltering.  makedumpfile (dump filtering command) gets it to distinguish\nunnecessary pages, and makedumpfile creates a small dumpfile.\n\nAn old makedumpfile (v1.2.4 or before) had assumed some values of page flags\ninternally, and this implementation could not follow the change of these\nvalues.  For example, Christoph Lameter is changing these values by the\nfollwing patch: http://lkml.org/lkml/2008/2/29/463\n\nSo a new makedumpfile (v1.2.5) came to need these values and I created this\npatch to let the kernel output them.\n\nSigned-off-by: Ken\u0027ichi Ohmichi \u003coomichi@mxs.nes.nec.co.jp\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Vivek Goyal \u003cvgoyal@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": "a08cb629f546d1cecebe955392197f226e58dbe1",
      "tree": "1cbab3071f6d35a0f58abc0ad3b05641ed41df6b",
      "parents": [
        "70688e4dd1647f0ceb502bbd5964fa344c5eb411"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Apr 28 02:13:03 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:23 2008 -0700"
      },
      "message": "s390: implement pte special bit\n\nConvert XIP to support non-struct page backed memory, using VM_MIXEDMAP for\nthe user mappings.\n\nThis requires the get_xip_page API to be changed to an address based one.\nImprove the API layering a little bit too, while we\u0027re here.\n\nThis is required in order to support XIP filesystems on memory that isn\u0027t\nbacked with struct page (but memory with struct page is still supported too).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Jared Hulbert \u003cjaredeh@gmail.com\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": "70688e4dd1647f0ceb502bbd5964fa344c5eb411",
      "tree": "e0bd8c3b4b6050c067a453d800c2e87948d1abaf",
      "parents": [
        "30afcb4bd2762fa4b87b17ada9500aa46dc10b1b"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Apr 28 02:13:02 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:23 2008 -0700"
      },
      "message": "xip: support non-struct page backed memory\n\nConvert XIP to support non-struct page backed memory, using VM_MIXEDMAP for\nthe user mappings.\n\nThis requires the get_xip_page API to be changed to an address based one.\nImprove the API layering a little bit too, while we\u0027re here.\n\nThis is required in order to support XIP filesystems on memory that isn\u0027t\nbacked with struct page (but memory with struct page is still supported too).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Jared Hulbert \u003cjaredeh@gmail.com\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": "30afcb4bd2762fa4b87b17ada9500aa46dc10b1b",
      "tree": "0920f491a37683a8784c146270b98f82a7e0aa2c",
      "parents": [
        "423bad600443c590f34ed7ce357591f76f48f137"
      ],
      "author": {
        "name": "Jared Hulbert",
        "email": "jaredeh@gmail.com",
        "time": "Mon Apr 28 02:13:02 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:23 2008 -0700"
      },
      "message": "return pfn from direct_access, for XIP\n\nAlter the block device -\u003edirect_access() API to work with the new\nget_xip_mem() API (that requires both kaddr and pfn are returned).\n\nSome architectures will not do the right thing in their virt_to_page() for use\nby XIP (to translate from the kernel virtual address returned by\ndirect_access(), to a user mappable pfn in XIP\u0027s page fault handler.\n\nHowever, we can\u0027t switch it to just return the pfn and not the kaddr, because\nwe have no good way to get a kva from a pfn, and XIP requires the kva for its\nread(2) and write(2) handlers.  So we have to return both.\n\nSigned-off-by: Jared Hulbert \u003cjaredeh@gmail.com\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: linux-mm@kvack.org\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "423bad600443c590f34ed7ce357591f76f48f137",
      "tree": "79487f811bf1097f2592c4d20f688d1b1ec41e25",
      "parents": [
        "7e675137a8e1a4d45822746456dd389b65745bf6"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Apr 28 02:13:01 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:23 2008 -0700"
      },
      "message": "mm: add vm_insert_mixed\n\nvm_insert_mixed will insert either a raw pfn or a refcounted struct page into\nthe page tables, depending on whether vm_normal_page() will return the page or\nnot.  With the introduction of the new pte bit, this is now a too tricky for\ndrivers to be doing themselves.\n\nfilemap_xip uses this in a subsequent patch.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Jared Hulbert \u003cjaredeh@gmail.com\u003e\nCc: Carsten Otte \u003ccotte@de.ibm.com\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": "7e675137a8e1a4d45822746456dd389b65745bf6",
      "tree": "5df01d23ea1b6b212d18f2136ff82913fcbe7718",
      "parents": [
        "b379d790197cdf8a95fb67507d75a24ac0a1678d"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Apr 28 02:13:00 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:23 2008 -0700"
      },
      "message": "mm: introduce pte_special pte bit\n\ns390 for one, cannot implement VM_MIXEDMAP with pfn_valid, due to their memory\nmodel (which is more dynamic than most).  Instead, they had proposed to\nimplement it with an additional path through vm_normal_page(), using a bit in\nthe pte to determine whether or not the page should be refcounted:\n\nvm_normal_page()\n{\n\t...\n        if (unlikely(vma-\u003evm_flags \u0026 (VM_PFNMAP|VM_MIXEDMAP))) {\n                if (vma-\u003evm_flags \u0026 VM_MIXEDMAP) {\n#ifdef s390\n\t\t\tif (!mixedmap_refcount_pte(pte))\n\t\t\t\treturn NULL;\n#else\n                        if (!pfn_valid(pfn))\n                                return NULL;\n#endif\n                        goto out;\n                }\n\t...\n}\n\nThis is fine, however if we are allowed to use a bit in the pte to determine\nrefcountedness, we can use that to _completely_ replace all the vma based\nschemes.  So instead of adding more cases to the already complex vma-based\nscheme, we can have a clearly seperate and simple pte-based scheme (and get\nslightly better code generation in the process):\n\nvm_normal_page()\n{\n#ifdef s390\n\tif (!mixedmap_refcount_pte(pte))\n\t\treturn NULL;\n\treturn pte_page(pte);\n#else\n\t...\n#endif\n}\n\nAnd finally, we may rather make this concept usable by any architecture rather\nthan making it s390 only, so implement a new type of pte state for this.\nUnfortunately the old vma based code must stay, because some architectures may\nnot be able to spare pte bits.  This makes vm_normal_page a little bit more\nugly than we would like, but the 2 cases are clearly seperate.\n\nSo introduce a pte_special pte state, and use it in mm/memory.c.  It is\ncurrently a noop for all architectures, so this doesn\u0027t actually result in any\ncompiled code changes to mm/memory.o.\n\nBTW:\nI haven\u0027t put vm_normal_page() into arch code as-per an earlier suggestion.\nThe reason is that, regardless of where vm_normal_page is actually\nimplemented, the *abstraction* is still exactly the same. Also, while it\ndepends on whether the architecture has pte_special or not, that is the\nonly two possible cases, and it really isn\u0027t an arch specific function --\nthe role of the arch code should be to provide primitive functions and\naccessors with which to build the core code; pte_special does that. We do\nnot want architectures to know or care about vm_normal_page itself, and\nwe definitely don\u0027t want them being able to invent something new there\nout of sight of mm/ code. If we made vm_normal_page an arch function, then\nwe have to make vm_insert_mixed (next patch) an arch function too. So I\ndon\u0027t think moving it to arch code fundamentally improves any abstractions,\nwhile it does practically make the code more difficult to follow, for both\nmm and arch developers, and easier to misuse.\n\n[akpm@linux-foundation.org: build fix]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Jared Hulbert \u003cjaredeh@gmail.com\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": "b379d790197cdf8a95fb67507d75a24ac0a1678d",
      "tree": "8ea36c9a0766aca3cfd69cd33aa8a5d2ca8dd2d4",
      "parents": [
        "214e471ff99064726b2d8af3aa0e24a73c775531"
      ],
      "author": {
        "name": "Jared Hulbert",
        "email": "jaredeh@gmail.com",
        "time": "Mon Apr 28 02:12:58 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:22 2008 -0700"
      },
      "message": "mm: introduce VM_MIXEDMAP\n\nThis series introduces some important infrastructure work.  The overall result\nis that:\n\n1. We now support XIP backed filesystems using memory that have no\n   struct page allocated to them. And patches 6 and 7 actually implement\n   this for s390.\n\n   This is pretty important in a number of cases. As far as I understand,\n   in the case of virtualisation (eg. s390), each guest may mount a\n   readonly copy of the same filesystem (eg. the distro). Currently,\n   guests need to allocate struct pages for this image. So if you have\n   100 guests, you already need to allocate more memory for the struct\n   pages than the size of the image. I think. (Carsten?)\n\n   For other (eg. embedded) systems, you may have a very large non-\n   volatile filesystem. If you have to have struct pages for this, then\n   your RAM consumption will go up proportionally to fs size. Even\n   though it is just a small proportion, the RAM can be much more costly\n   eg in terms of power, so every KB less that Linux uses makes it more\n   attractive to a lot of these guys.\n\n2. VM_MIXEDMAP allows us to support mappings where you actually do want\n   to refcount _some_ pages in the mapping, but not others, and support\n   COW on arbitrary (non-linear) mappings. Jared needs this for his NVRAM\n   filesystem in progress. Future iterations of this filesystem will\n   most likely want to migrate pages between pagecache and XIP backing,\n   which is where the requirement for mixed (some refcounted, some not)\n   comes from.\n\n3. pte_special also has a peripheral usage that I need for my lockless\n   get_user_pages patch. That was shown to speed up \"oltp\" on db2 by\n   10% on a 2 socket system, which is kind of significant because they\n   scrounge for months to try to find 0.1% improvement on these\n   workloads. I\u0027m hoping we might finally be faster than AIX on\n   pSeries with this :). My reference to lockless get_user_pages is not\n   meant to justify this patchset (which doesn\u0027t include lockless gup),\n   but just to show that pte_special is not some s390 specific thing that\n   should be hidden in arch code or xip code: I definitely want to use it\n   on at least x86 and powerpc as well.\n\nThis patch:\n\nIntroduce a new type of mapping, VM_MIXEDMAP.  This is unlike VM_PFNMAP in\nthat it can support COW mappings of arbitrary ranges including ranges without\nstruct page *and* ranges with a struct page that we actually want to refcount\n(PFNMAP can only support COW in those cases where the un-COW-ed translations\nare mapped linearly in the virtual address, and can only support non\nrefcounted ranges).\n\nVM_MIXEDMAP achieves this by refcounting all pfn_valid pages, and not\nrefcounting !pfn_valid pages (which is not an option for VM_PFNMAP, because it\nneeds to avoid refcounting pfn_valid pages eg.  for /dev/mem mappings).\n\nSigned-off-by: Jared Hulbert \u003cjaredeh@gmail.com\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Jared Hulbert \u003cjaredeh@gmail.com\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": "214e471ff99064726b2d8af3aa0e24a73c775531",
      "tree": "a78674e56c27db43490cac0ef7c121e845051b62",
      "parents": [
        "e20b8cca760ed2a6abcfe37ef56f2306790db648"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Mon Apr 28 02:12:55 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:22 2008 -0700"
      },
      "message": "smaps: account swap entries\n\nShow the amount of swap for each vma.  This can be used to see where all the\nswap goes.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e20b8cca760ed2a6abcfe37ef56f2306790db648",
      "tree": "85e5610364f73da193ee781be61710fddfbe045f",
      "parents": [
        "97965478a66fbdf0f4ad5e4ecc4828f0cb548a45"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Apr 28 02:12:55 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:22 2008 -0700"
      },
      "message": "PAGEFLAGS_EXTENDED and separate page flags for Head and Tail\n\nHaving separate page flags for the head and the tail of a compound page allows\nthe compiler to use bitops instead of operations on a word to check for a tail\npage.  That is f.e.  important for virt_to_head_page() which is used in\nvarious critical code paths (kfree for example):\n\nCode for PageTail(page)\n\nBefore:\n\n mov    (%rdi),%rdx\t\tpage-\u003eflags\n mov    %rdx,%rax\t\t3 bytes\n and    $0x12000,%eax\t\t5 bytes\n cmp    $0x12000,%rax\t\t6 bytes\n je     897 \u003ckfree+0xa7\u003e\n\nAfter:\n\n mov    (%rdi),%rax\n test   $0x40,%ah\t\t\t(3 bytes)\n jne    887 \u003ckfree+0x97\u003e\n\nSo we go from 14 bytes to 3 bytes and from 3 instructions to one.  From the\nuse of 2 registers we go to none.\n\nWe can only use page flags for this if we have page flags available.  This\npatch introduces CONFIG_PAGEFLAGS_EXTENDED that is set if pageflags are not\nscarce due to SPARSEMEM using page flags for its sectionid on 32 bit NUMA\nplatforms.\n\nAdditional page flag definitions can be added to the CONFIG_PAGEFLAGS_EXTENDED\nsection in page-flags.h if the functionality depends on PAGEFLAGS_EXTENDED or\nif more page flag overlapping tricks are used for the !PAGEFLAGS_EXTENDED\nfallback (the upcoming virtual compound patch may hook in here and Rik\u0027s/Lee\u0027s\nadditional page flags to solve the reclaim issues could also be added there\n[hint...  hint...  where are these patchsets?]).\n\nAvoiding the overlaying of Pg_reclaim also clears the way for possible use of\ncompound pages for the pagecache or on the LRU.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.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": "97965478a66fbdf0f4ad5e4ecc4828f0cb548a45",
      "tree": "a60bb6c46acdc35d16b2e48f5c13248fc009b35e",
      "parents": [
        "ec7cade8c1a3d1ace69b35cc843b181818578dce"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Apr 28 02:12:54 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:22 2008 -0700"
      },
      "message": "mm: Get rid of __ZONE_COUNT\n\nIt was used to compensate because MAX_NR_ZONES was not available to the\n#ifdefs.  Export MAX_NR_ZONES via the new mechanism and get rid of\n__ZONE_COUNT.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ec7cade8c1a3d1ace69b35cc843b181818578dce",
      "tree": "32ab77ff6b58cb55834e729fa020eb91ef9940f0",
      "parents": [
        "602c4d112f9abf43af4b882b4a6f5505ed5c51b7"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Apr 28 02:12:53 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:22 2008 -0700"
      },
      "message": "page flags: add PAGEFLAGS_FALSE for flags that are always false\n\nTurns out that there are a number of times that a flag is simply always\nreturning 0.  Define a macro for that.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "602c4d112f9abf43af4b882b4a6f5505ed5c51b7",
      "tree": "8c2cdb82fbf4c67899a3cab0ea0f2d3e2a3ffdfe",
      "parents": [
        "0a128b2b1a5e8ebce0260e3345812ee70daccc7f"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Apr 28 02:12:52 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:22 2008 -0700"
      },
      "message": "page flags: handle PG_uncached like all other flags\n\nRemove the special setup for PG_uncached and simply make it part of the enum.\nThe page flag will only be allocated when the kernel build includes the\nuncached allocator.\n\nAcked-by: Dean Nelson \u003cdcn@sgi.com\u003e\nCc: Jes Sorensen \u003cjes@trained-monkey.org\u003e\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0a128b2b1a5e8ebce0260e3345812ee70daccc7f",
      "tree": "a2ce711ea77ef4677cad4f613112b8d7b88b7e28",
      "parents": [
        "d60cd46bbdc5a79d9a177e40009f960e44f0e334"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Apr 28 02:12:52 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:22 2008 -0700"
      },
      "message": "pageflags: eliminate PG_xxx aliases\n\nRemove aliases of PG_xxx.  We can easily drop those now and alias by\nspecifying the PG_xxx flag in the macro that generates the functions.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d60cd46bbdc5a79d9a177e40009f960e44f0e334",
      "tree": "50bf8f927746dfd4a00583706646c405eec129eb",
      "parents": [
        "6a1e7f777f613bf0df99c7772fa2123d01ce2f7d"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Apr 28 02:12:51 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:22 2008 -0700"
      },
      "message": "pageflags: use proper page flag functions in Xen\n\nXen uses bitops to manipulate page flags.  Make it use proper page flag\nfunctions.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6a1e7f777f613bf0df99c7772fa2123d01ce2f7d",
      "tree": "144629e467c8dcb7b5c8d23adc2538047bfa5b08",
      "parents": [
        "f94a62e910840b3552c7adb7c57e0f8b3b345f6e"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Apr 28 02:12:50 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:22 2008 -0700"
      },
      "message": "pageflags: convert to the use of new macros\n\nReplace explicit definitions of page flags through the use of macros.\nSignificantly reduces the size of the definitions and removes a lot of\nopportunity for errors.  Additonal page flags can typically be generated with\na single line.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f94a62e910840b3552c7adb7c57e0f8b3b345f6e",
      "tree": "31444cdd24e640beea706d9b9f8da97f3a5c1639",
      "parents": [
        "9223b4190fa1297a59f292f3419fc0285321d0ea"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Apr 28 02:12:49 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:22 2008 -0700"
      },
      "message": "pageflags: introduce macros to generate page flag functions\n\nIntroduce a set of macros that generate functions to handle page flags.\n\nA page flag function group typically starts with either\n\n\tSETPAGEFLAG(\u003cpart of function name\u003e,\u003cpart of PG_ flagname\u003e)\n\nto create a set of page flag operations that are atomic. Or\n\n\t__SETPAGEFLAG(\u003cpart of function name\u003e,\u003cpart of PG_ flagname)\n\nto create a set of page flag operations that are not atomic.\n\nThen additional operations can be added using the following macros\n\nTESTSCFLAG\t\tCreate additional atomic test-and-set and\n\t\t\ttest-and-clear functions\n\nTESTSETFLAG\t\tCreate additional test and set function\nTESTCLEARFLAG\t\tCreate additional test and clear function\nSETPAGEFLAG\t\tCreate additional atomic set function\nCLEARPAGEFLAG\t\tCreate additional atomic clear function\n__TESTPAGEFLAG\t\tCreate additional non atomic set function\n__SETPAGEFLAG\t\tCreate additional non atomic clear function\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9223b4190fa1297a59f292f3419fc0285321d0ea",
      "tree": "c6fbbc6b4c35916232e95686194eea1bd9de7377",
      "parents": [
        "e26831814998cee8e6d9f0a9854cb46c516f5547"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Apr 28 02:12:48 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:21 2008 -0700"
      },
      "message": "pageflags: get rid of FLAGS_RESERVED\n\nNR_PAGEFLAGS specifies the number of page flags we are using.  From that we\ncan calculate the number of bits leftover that can be used for zone, node (and\nmaybe the sections id).  There is no need anymore for FLAGS_RESERVED if we use\nNR_PAGEFLAGS.\n\nUse the new methods to make NR_PAGEFLAGS available via the preprocessor.\nNR_PAGEFLAGS is used to calculate field boundaries in the page flags fields.\nThese field widths have to be available to the preprocessor.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "e26831814998cee8e6d9f0a9854cb46c516f5547"
}
