)]}'
{
  "log": [
    {
      "commit": "c2bacfc44f4b8d03dbaad5d2dca2fb4161e81975",
      "tree": "ec48e95a98c6a180406c9ed8c3051354b335e31a",
      "parents": [
        "ee9ef6b778fbe1cacbec4fcd18a93f322ff93354"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue Jan 06 14:41:40 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:19 2009 -0800"
      },
      "message": "dmi: fix kernel-doc notation\n\nAdd missing kernel-doc notation:\n\ndrivers/firmware/dmi_scan.c:475: No description found for parameter \u0027str\u0027\ndrivers/firmware/dmi_scan.c:592: No description found for parameter \u0027f\u0027\ndrivers/firmware/dmi_scan.c:592: No description found for parameter \u0027str\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ee9ef6b778fbe1cacbec4fcd18a93f322ff93354",
      "tree": "819a6ae3e8b348253ae7861738b1ba971b163c6f",
      "parents": [
        "87113e806a9ee48c6c989513ef3e9c1d31e06ac4"
      ],
      "author": {
        "name": "Qinghuang Feng",
        "email": "qhfeng.kernel@gmail.com",
        "time": "Tue Jan 06 14:41:39 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:19 2009 -0800"
      },
      "message": "fs/ncpfs/getopt.c: cleanup keneldoc\n\nThere are no argument named @flag in ncp_getopt(), remove it.\n\nSigned-off-by: Qinghuang Feng \u003cqhfeng.kernel@gmail.com\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: 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": "87113e806a9ee48c6c989513ef3e9c1d31e06ac4",
      "tree": "178fd57438b77ffa7e5d953018401aca7e2c7e29",
      "parents": [
        "5cf0cc4e670b8da2231a3375db87ec3b6cb84432"
      ],
      "author": {
        "name": "Qinghuang Feng",
        "email": "qhfeng.kernel@gmail.com",
        "time": "Tue Jan 06 14:41:38 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:19 2009 -0800"
      },
      "message": "fs/binfmt_misc.c: add terminating newline to /proc/sys/fs/binfmt_misc/status\n\nThe following is what it looks like before patching.\nIt is not much readable.\n\nuser@ubuntu:/proc/sys/fs/binfmt_misc$ cat status\nenableduser@ubuntu:/proc/sys/fs/binfmt_misc$\n\nSigned-off-by: Qinghuang Feng \u003cqhfeng.kernel@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5cf0cc4e670b8da2231a3375db87ec3b6cb84432",
      "tree": "8545da4f0b0313f24ffa9ef7f862660fe5345d4e",
      "parents": [
        "29041b4b1a3d68192eef7613703669f5c7b01d0c"
      ],
      "author": {
        "name": "Hiroshi Shimamoto",
        "email": "h-shimamoto@ct.jp.nec.com",
        "time": "Tue Jan 06 14:41:38 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:19 2009 -0800"
      },
      "message": "binfmts.h: include list.h\n\nlinux_binfmt uses list_head, so list.h is needed.\n\n[akpm@linux-foundation.org: fix `make headerscheck\u0027]\nSigned-off-by: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "29041b4b1a3d68192eef7613703669f5c7b01d0c",
      "tree": "bdc31df5dc6f075a9fbbf35d9ccf933e25288af3",
      "parents": [
        "85e0e5ad1ef8cebd010bbd7047418a47ca9c5ead"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Tue Jan 06 14:41:37 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:18 2009 -0800"
      },
      "message": "ibmpex: add endian annotation to extract_data() helper\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nCc: \"Darrick J. Wong\" \u003cdjwong@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": "85e0e5ad1ef8cebd010bbd7047418a47ca9c5ead",
      "tree": "a194b08fe94a7da1db4436c74732ab34e47e2bdf",
      "parents": [
        "44ea9c809db6cd373448e77c4be424b534f2051f"
      ],
      "author": {
        "name": "Henrik Rydberg",
        "email": "rydberg@euromail.se",
        "time": "Tue Jan 06 14:41:36 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:18 2009 -0800"
      },
      "message": "hwmon: applesmc: Add support for MacBook Air 2\n\nAdd temperature sensor support for MacBook Air 2.\n\nSigned-off-by: Henrik Rydberg \u003crydberg@euromail.se\u003e\nCc: Nicolas Boichat \u003cnicolas@boichat.ch\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "44ea9c809db6cd373448e77c4be424b534f2051f",
      "tree": "c6da991aec04d7c78edfff70df0b7fd4d6c88c6e",
      "parents": [
        "89fac11cb3e7c5860c425dba14845c09ccede39d"
      ],
      "author": {
        "name": "Nicolas Palix",
        "email": "npalix@diku.dk",
        "time": "Tue Jan 06 14:41:35 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:18 2009 -0800"
      },
      "message": "drivers/macintosh: Add missing of_node_put in therm_adt746x.c\n\nof_node_put is needed before discarding a value received from\nof_find_node_by_name, eg in error handling code or when the device node is\nno longer used.\n\nThe semantic match that catches the bug is as follows:\n(http://www.emn.fr/x-info/coccinelle/)\n\n// \u003csmpl\u003e\n@r exists@\nlocal idexpression struct device_node *n;\nposition p1, p2;\nstruct device_node *n1;\nstatement S;\nidentifier f;\nexpression E;\nexpression *ptr !\u003d NULL;\n@@\n\nn@p1 \u003d of_find_node_by_name(...)\n...\nif (!n) S\n... when !\u003d of_node_put(n)\n    when !\u003d n1 \u003d f(n,...)\n    when !\u003d E \u003d n\n    when any\n    when strict\n(\n  return \\(0\\|\u003c+...n...+\u003e\\|ptr\\);\n|\nreturn@p2 ...;\n|\n  of_node_put(n);\n|\n  n1 \u003d f(n,...)\n|\n  E \u003d n\n)\n\n@script:python@\np1 \u003c\u003c r.p1;\np2 \u003c\u003c r.p2;\n@@\n\nprint \"* file: %s of_find_node_by_name %s return %s\" % (p1[0].file,p1[0].line,p2[0].line)\n// \u003c/smpl\u003e\n\nSigned-off-by: Nicolas Palix \u003cnpalix@diku.dk\u003e\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nAcked-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "89fac11cb3e7c5860c425dba14845c09ccede39d",
      "tree": "1c5d66ce88efaeb2461c250f43036faa620f6bf7",
      "parents": [
        "2f22d5dff6f95d777c4cb217b99bfdf1fe306128"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Tue Jan 06 14:41:34 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:18 2009 -0800"
      },
      "message": "adt7470: make automatic fan control really work\n\nIt turns out that the adt7470\u0027s automatic fan control algorithm only works\nwhen the temperature sensors get updated.  This in turn happens only when\nsomeone tells the chip to read its temperature sensors.  Regrettably, this\nmeans that we have to drive the chip periodically.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nCc: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2f22d5dff6f95d777c4cb217b99bfdf1fe306128",
      "tree": "202dd8881df451ceba4be0aa43169049fa58a9eb",
      "parents": [
        "2e75a4b7ae0dd4bf7b34e41c2c3be7ac23b8f1cc"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Tue Jan 06 14:41:33 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:18 2009 -0800"
      },
      "message": "adt7470: observe the number of temperature sensors to shorten update time\n\nThe adt7470 driver currently assumes that 1s is the proper time to wait to\nread all temperature sensors.  However, the correct time is 200ms *\nnumber_of_sensors.  This patch sets the default time to provide for 10\nsensors and then lowers it based on the number of sensor inputs that have\nnozero values.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nCc: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2e75a4b7ae0dd4bf7b34e41c2c3be7ac23b8f1cc",
      "tree": "3adaaa6a78b2d11b7648a93956c10a0968abd09c",
      "parents": [
        "8f8c1fb0c829278b889588da211a5a557518b06c"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Tue Jan 06 14:41:32 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:18 2009 -0800"
      },
      "message": "adt7470: fix pwm at a certain level during temperature sensor scan\n\nIn the small window that it takes to read the temperature sensors, the pwm\noutputs momentarily drop to 0.  This causes a noticeable hiccup in fan\nspeed, which is slightly annoying.  The solution is to manually program\nthe pwm output with whatever the automatic value is and then shift the\nfans to manual control while reading temperatures.  Once that is done, put\nthe fans back to whatever mode of control was there before.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nCc: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8f8c1fb0c829278b889588da211a5a557518b06c",
      "tree": "551ad7728438ec885de76db4c7c776f88589a219",
      "parents": [
        "57b9c6d9c5074a06fda770a7f009d655593e0e29"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Tue Jan 06 14:41:31 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:18 2009 -0800"
      },
      "message": "adt74{62, 70, 73}: Use DIV_ROUND_CLOSEST for rounded division\n\nModify some hwmon drivers to use DIV_ROUND_CLOSEST instead of bloating\nsource with (naughty) macros.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nCc: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "57b9c6d9c5074a06fda770a7f009d655593e0e29",
      "tree": "401b77bf8141f50c0c41095cbeda44f136fe8ce4",
      "parents": [
        "21caa13c02d67f755fad50370996c489c34a9b15"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@canonical.com",
        "time": "Tue Jan 06 14:41:30 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:17 2009 -0800"
      },
      "message": "checkpatch: version: 0.26\n\nSigned-off-by: Andy Whitcroft \u003capw@canonical.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "21caa13c02d67f755fad50370996c489c34a9b15",
      "tree": "adc788fef2b0eedcdd4fa35c6b321644979e499a",
      "parents": [
        "2b6db5cb65cb1276a7aa363a6e7335b0a8a68393"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@canonical.com",
        "time": "Tue Jan 06 14:41:30 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:17 2009 -0800"
      },
      "message": "checkpatch: fix the perlcritic errors\n\nClean up checkpatch using perlcritic.\n\nSigned-off-by: Andy Whitcroft \u003capw@canonical.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2b6db5cb65cb1276a7aa363a6e7335b0a8a68393",
      "tree": "289e1048f76a56c551ef57aeb4adf54d4f9a3172",
      "parents": [
        "b53c8e104ed071c47ada2adce194625ab03d9f3d"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@canonical.com",
        "time": "Tue Jan 06 14:41:29 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:17 2009 -0800"
      },
      "message": "checkpatch: struct file_operations should normally be const\n\nIn the general use case struct file_operations should be a const object.\nCheck for and warn where it is not.  As suggested by Steven and Ingo.\n\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andy Whitcroft \u003capw@canonical.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b53c8e104ed071c47ada2adce194625ab03d9f3d",
      "tree": "52354de0c3b69be0cf5d0eb85510f82b74eb807a",
      "parents": [
        "2d1bafd799ee0442979e6ce4145d58b69d3cade2"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@canonical.com",
        "time": "Tue Jan 06 14:41:29 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:17 2009 -0800"
      },
      "message": "checkpatch: ensure we actually detect if assignments split across lines\n\nWhen checking for assignments within if conditionals we check the whole of\nthe condition, but the match is performed using a line constrained regular\nexpression.  This means we can miss split conditionals or those on the\nsecond line.  Allow the check to span lines.\n\nSigned-off-by: Andy Whitcroft \u003capw@canonical.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2d1bafd799ee0442979e6ce4145d58b69d3cade2",
      "tree": "83002f1bac78f652032aa00d81233fe75cbac175",
      "parents": [
        "4635f4fbaf51555509c747eed02a7e7a580ae1e1"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@canonical.com",
        "time": "Tue Jan 06 14:41:28 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:17 2009 -0800"
      },
      "message": "checkpatch: do not report nr_static as a static declaration\n\nEnsure we do not report identifiers containing the word static as static\ndeclarations.  For example this should not be reported as an unecessary\nassignement of 0:\n\n\tlong nr_static \u003d 0;\n\nSigned-off-by: Andy Whitcroft \u003capw@canonical.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4635f4fbaf51555509c747eed02a7e7a580ae1e1",
      "tree": "d3d9d3d26b1c7d302c1200110c5d51b5340183f6",
      "parents": [
        "8b1b33786b06a222cf3430b1bf942a3681532104"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@canonical.com",
        "time": "Tue Jan 06 14:41:27 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:17 2009 -0800"
      },
      "message": "checkpatch: track #ifdef/#else/#endif when tracking blocks\n\nWhen picking up a complete statement or block for analysis we cannot\nsimply track open/close/etc parenthesis we must take into account\npreprocessor section boundaries.\n\nSigned-off-by: Andy Whitcroft \u003capw@canonical.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8b1b33786b06a222cf3430b1bf942a3681532104",
      "tree": "dcacb222ddc7320f67a30c93440a09b5bf2a0c76",
      "parents": [
        "8054576dca7e76dd1f58c525af3309cfc9c74454"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@canonical.com",
        "time": "Tue Jan 06 14:41:27 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:17 2009 -0800"
      },
      "message": "checkpatch: fix continuation detection when handling spacing on operators\n\nWe are miscategorising a continuation fragment following an operator\nwhich may lead to us thinking that there is a space after it when there is\nnot.  Fix this up.\n\nSigned-off-by: Andy Whitcroft \u003capw@canonical.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8054576dca7e76dd1f58c525af3309cfc9c74454",
      "tree": "f603d38b1ecbfaae5953dc32e0f9dae0b8c1bad6",
      "parents": [
        "080ba929651a32f1840751d2b862e64c8ee1f0c6"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@canonical.com",
        "time": "Tue Jan 06 14:41:26 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:17 2009 -0800"
      },
      "message": "checkpatch: loosen spacing on typedef function checks\n\nLoosen spacing checks to correctly detect this valid use of a typedef:\n\n\ttypedef struct rcu_data *(*get_data_func)(int);\n\nSigned-off-by: Andy Whitcroft \u003capw@canonical.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "080ba929651a32f1840751d2b862e64c8ee1f0c6",
      "tree": "a600273e6449d16d6256c66ea58ca060b22e8e6e",
      "parents": [
        "86f9d059c6bc548f6337f01117897a4c823cb4ee"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Tue Jan 06 14:41:25 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:16 2009 -0800"
      },
      "message": "checkpatch: try to catch missing VMLINUX_SYMBOL() in vmlinux.lds.h\n\nSeems like every other release we have someone who updates vmlinux.lds.h\nand adds C-visible symbols without VMLINUX_SYMBOL() around them.  So start\nchecking the file and reject assignments which have plain symbols on\neither side.\n\n[apw@canonical.com: soften the check, add tests]\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andy Whitcroft \u003capw@canonical.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "86f9d059c6bc548f6337f01117897a4c823cb4ee",
      "tree": "f7861404c3e84268a890f1cc3517bebaaa5bc49b",
      "parents": [
        "1e85572697b348b1a126520349a29654f2ae6a12"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@canonical.com",
        "time": "Tue Jan 06 14:41:24 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:16 2009 -0800"
      },
      "message": "checkpatch: allow parentheses on return for comparisons\n\nIt seems to be a common idiom to include braces on conditionals in all\ncontexts including return.  Allow this exception to the return is not a\nfunction checks.  Reported by Kay Sievers.\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Andy Whitcroft \u003capw@canonical.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1e85572697b348b1a126520349a29654f2ae6a12",
      "tree": "1ce7febee025caa781c586090983718fde900c56",
      "parents": [
        "2a5a2c25224e26c5ee491af0dc5d39e4a16f619c"
      ],
      "author": {
        "name": "Wolfram Sang",
        "email": "w.sang@pengutronix.de",
        "time": "Tue Jan 06 14:41:24 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:16 2009 -0800"
      },
      "message": "checkpatch: Add warning for p0-patches\n\nSome people work internally with -p0-patches which has the danger that one\nforgets to convert them to -p1 before mainlining.  Bitten myself and seen\np0-patches in mailing lists occasionally, this patch adds a warning to\ncheckpatch.pl in case a patch is -p0.  If you really want, you can fool\nthis check to generate false positives, this is why it just spits a\nwarning.  Making the check 100% proof is trickier than it looks, so let\u0027s\nstart with a version which catches the cases of real use.\n\n[apw@canonical.com: update message language, handle null prefix, add tests]\nSigned-off-by: Wolfram Sang \u003cw.sang@pengutronix.de\u003e\nSigned-off-by: Andy Whitcroft \u003capw@canonical.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2a5a2c25224e26c5ee491af0dc5d39e4a16f619c",
      "tree": "958c4148a5db522cdc6ed8614332e0074cd53e39",
      "parents": [
        "b0e0b4325375a360d33bace203e19471a9f9e067"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@canonical.com",
        "time": "Tue Jan 06 14:41:23 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:16 2009 -0800"
      },
      "message": "checkpatch: update copyrights\n\nSigned-off-by: Andy Whitcroft \u003capw@canonical.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b0e0b4325375a360d33bace203e19471a9f9e067",
      "tree": "baa99400e0f8bb557b2ea81e58bd2af626fc7818",
      "parents": [
        "50a7dcfb5062a5d9a0dcb28943a1e0cd5f0f60c2"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Tue Jan 06 14:41:22 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:16 2009 -0800"
      },
      "message": "checkpatch: update MAINTAINERS entry\n\nUpdate my email address to my new work address.  Also, as per our recent\nemail conversation remove Randy and Joel from the maintainers list.\nFinally add LKML so that emails are recorded somewhere.\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nCc: Joel Schopp \u003cjschopp@austin.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": "50a7dcfb5062a5d9a0dcb28943a1e0cd5f0f60c2",
      "tree": "ced4023c0e9cc5c72e1fc986fe8496d4337bdc7c",
      "parents": [
        "65863862ba112bf4d06d5ebc142b9d746d1ee955"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Tue Jan 06 14:41:21 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:16 2009 -0800"
      },
      "message": "checkpatch: version: 0.25\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "65863862ba112bf4d06d5ebc142b9d746d1ee955",
      "tree": "923755463967ded1f6f6d0e5a09cb92a628ac005",
      "parents": [
        "fae17daed7312bae708df0cce7e93971308698b5"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Tue Jan 06 14:41:21 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:16 2009 -0800"
      },
      "message": "checkpatch: dissallow spaces between stars in pointer types\n\nDisallow spaces within multiple pointer stars (*) in both casts and\ndefinitions.  Both of these would now be reported:\n\n\t(char * *)\n\tchar * *foo;\n\nAlso now consistently detects and reports the attributes within these\nstructures making the error report itself clearer.\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fae17daed7312bae708df0cce7e93971308698b5",
      "tree": "c31028127007a5481dfec1b90a90f072e3517a89",
      "parents": [
        "8e761b04a34288a3b0b29c0f49cdf157d7db8863"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Tue Jan 06 14:41:20 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:15 2009 -0800"
      },
      "message": "checkpatch: comment ends inside strings is most likely not an open comment\n\nWhen we are detecting whether a comment is open when we start a hunk we\ncheck for the first comment edge in the hunk and assume its inverse.\nHowever if the hunk contains something like below, then we will assume\nthat a comment was open.  Update this heuristic to see if the comment edge\nis obviously within double quotes and ignore it if so:\n\n\tfoo(\" */);\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8e761b04a34288a3b0b29c0f49cdf157d7db8863",
      "tree": "70aa571d291926c33327acffa4923d0124cd9b12",
      "parents": [
        "5fe3af119bed58d240e2097fe76f322ab51902d7"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Tue Jan 06 14:41:19 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:15 2009 -0800"
      },
      "message": "checkpatch: detect multiple bitfield declarations\n\nDetect the colons (:) which make up secondary bitfield declarations and\napply binary colon checks.  For example the following is common idiom:\n\n\tint foo:1,\n\t    bar:1;\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5fe3af119bed58d240e2097fe76f322ab51902d7",
      "tree": "6b0c8b5f9bf1fc78d0c3f1208da641031a51df4b",
      "parents": [
        "383099fd636deacf698b91b4c96d0d6d01e6dc79"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Tue Jan 06 14:41:18 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:15 2009 -0800"
      },
      "message": "checkpatch: __weak is an official attribute\n\nAdd __weak as an official attribute.  This tends to be used in a location\nwhere the automated attribute detector misses it.\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "383099fd636deacf698b91b4c96d0d6d01e6dc79",
      "tree": "d7cbbc220794407a160863ce12f54e06244e95d6",
      "parents": [
        "83242e0c239aaa33e757584605f788ac1eca2f0f"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Tue Jan 06 14:41:18 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:15 2009 -0800"
      },
      "message": "checkpatch: structure member assignments are not complex\n\nEnsure we do not trigger the complex macros checks on structure member\nassignment, for example:\n\n\t#define foo .bar \u003d 10\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "83242e0c239aaa33e757584605f788ac1eca2f0f",
      "tree": "fa114470eebf1bb00dc97ad6a0620a5f5cc4d308",
      "parents": [
        "721c1cb60e0546d2e71b9aa50426c94e69c6521a"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Tue Jan 06 14:41:17 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:15 2009 -0800"
      },
      "message": "checkpatch: widen implied comment detection to allow multiple stars\n\nSome people use double star \u0027**\u0027 as a comment continuation, and start\ncomments with complete lines of stars.  Widen the implied comment\ndetection to pick these up.\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "721c1cb60e0546d2e71b9aa50426c94e69c6521a",
      "tree": "69c767f29569545e1ec8e950fce4b4a03ae970fe",
      "parents": [
        "691d77b6b85c20e4166bafd12bd0131b28f95a16"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Tue Jan 06 14:41:16 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:15 2009 -0800"
      },
      "message": "checkpatch: comment detection may miss an implied comment on the last hunk\n\nWhen detecting implied comments from leading stars we may incorrectly\nthink we have detected an edge one way or the other when we have not if we\ndrop off the end of the last hunk.  Fix this up.\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "691d77b6b85c20e4166bafd12bd0131b28f95a16",
      "tree": "b7c8950fadd6d3cf3a949d3977597cd0388544e8",
      "parents": [
        "94e2959e7a6a4ef0969932c30349ce6f4469a3cf"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Tue Jan 06 14:41:16 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:15 2009 -0800"
      },
      "message": "checkpatch: add checks for in_atomic()\n\nin_atomic() is not for driver use so report any such use as an ERROR.\nAlso in_atomic() is often used to determine if we may sleep, but it is not\nreliable in this use model therefore strongly discourage its use.\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "94e2959e7a6a4ef0969932c30349ce6f4469a3cf",
      "tree": "fbab454d5b5696ee3cdc8c0050548ec71a9bdefc",
      "parents": [
        "8c3659347efb43857b2c2d7bc63a9c7d68d1a608"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue Jan 06 14:41:15 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:14 2009 -0800"
      },
      "message": "fs: fix function param name in kernel-doc\n\nFix function parameter name in kernel-doc:\n\nWarning(linux-2.6.28-git5//fs/block_dev.c:1272): No description found for parameter \u0027pathname\u0027\nWarning(linux-2.6.28-git5//fs/block_dev.c:1272): Excess function parameter \u0027path\u0027 description in \u0027lookup_bdev\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8c3659347efb43857b2c2d7bc63a9c7d68d1a608",
      "tree": "0cfb3b77dea6f07d8a26e5805c9465860e942388",
      "parents": [
        "208b95ce3afbc2f4ef0a84b8cfdd7a8b94d17a5a"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Tue Jan 06 14:41:14 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:14 2009 -0800"
      },
      "message": "include/linux/interrupt.h: do not include linux/irqnr.h twice\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "208b95ce3afbc2f4ef0a84b8cfdd7a8b94d17a5a",
      "tree": "cdf7a550b2e98e14f27feac5d898dd51edd5336c",
      "parents": [
        "0bc02f3fa433a98631a932e77c4b1f873da35aee"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue Jan 06 14:41:13 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:14 2009 -0800"
      },
      "message": "sysrq: more explicit, less terse help messages\n\nEliminate sysrq terse help mode; make sysrq help messages more meaningful\n(more explicit/verbose).  Make the sysrq action letter clearer by listing\nit explicitly in more sysrq help messages (when it is not simple/clear).\n\nThe SysRq help message now looks like this:\n\nSysRq : HELP : loglevel(0-9) reBoot terminate-all-tasks(E) memory-full-oom-kill(F) kill-all-tasks(I) saK show-backtrace-all-active-cpus(L) show-memory-usage(M) nice-all-RT-tasks(N) powerOff show-registers(P) show-all-timers(Q) unRaw Sync show-task-states(T) Unmount show-blocked-tasks(W)\n\nAddresses http://bugs.debian.org/cgi-bin/bugreport.cgi?bug\u003d330403.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: \u003cjidanni@jidanni.org\u003e\nCc: \u003c330403@bugs.debian.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0bc02f3fa433a98631a932e77c4b1f873da35aee",
      "tree": "2b502015c319f70681f294cd070bdd6bf8e308ad",
      "parents": [
        "67faaada1ebcccf29745346f1d7cb5392f46500a"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue Jan 06 14:41:13 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:14 2009 -0800"
      },
      "message": "fs/inode: fix kernel-doc notation\n\nFix kernel-doc notation:\n\nWarning(linux-2.6.28-git3//fs/inode.c:120): No description found for parameter \u0027sb\u0027\nWarning(linux-2.6.28-git3//fs/inode.c:120): No description found for parameter \u0027inode\u0027\nWarning(linux-2.6.28-git3//fs/inode.c:588): No description found for parameter \u0027sb\u0027\nWarning(linux-2.6.28-git3//fs/inode.c:588): No description found for parameter \u0027inode\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "67faaada1ebcccf29745346f1d7cb5392f46500a",
      "tree": "49ba8503e0d06724c0ce7af6ed1ceb7ffda881b6",
      "parents": [
        "350eaf791bebccb9ad5999351f3e328319545f03"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "geert@linux-m68k.org",
        "time": "Tue Jan 06 14:41:12 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:14 2009 -0800"
      },
      "message": "Remove obsolete CONFIG_RESOURCES_64BIT\n\ncommit 8308c54d7e312f7a03e2ce2057d0837e6fe3843f (\"generic: redefine\nresource_size_t as phys_addr_t\") made CONFIG_RESOURCES_64BIT obsolete, but\ndidn\u0027t remove it. Remove it.\n\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\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": "350eaf791bebccb9ad5999351f3e328319545f03",
      "tree": "7a9b18b1c2ab34cf62ae5862fbf1cc629ed383fa",
      "parents": [
        "26e5438e4b77f04a51870f9415ffed68004fac1d"
      ],
      "author": {
        "name": "Tetsuo Handa",
        "email": "penguin-kernel@i-love.sakura.ne.jp",
        "time": "Tue Jan 06 14:41:11 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:14 2009 -0800"
      },
      "message": "do_coredump(): check return from argv_split()\n\ndo_coredump() accesses helper_argv[0] without checking helper_argv !\u003d\nNULL.  This can happen if page allocation failed.\n\nSigned-off-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "26e5438e4b77f04a51870f9415ffed68004fac1d",
      "tree": "a41fae9e95464c33835e55d6c5ff3ff5e3969193",
      "parents": [
        "d2e3192b6e372a441c18bc8cb32f89ef38f105b7"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jan 06 14:41:10 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:14 2009 -0800"
      },
      "message": "profile: don\u0027t include \u003casm/ptrace.h\u003e twice.\n\nCurrently, kernel/profile.c include \u003casm/ptrace.h\u003e twice.  It can be\nremoved.\n\nSigned-off-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": "d2e3192b6e372a441c18bc8cb32f89ef38f105b7",
      "tree": "0ce1dd9500635be23c86be2334ad4a902f427177",
      "parents": [
        "ca8a5bd28226d62c045e0e55b42b9d10b146c205"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "time": "Tue Jan 06 14:41:10 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:14 2009 -0800"
      },
      "message": "init/main.c: mark late_time_init as __initdata\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ca8a5bd28226d62c045e0e55b42b9d10b146c205",
      "tree": "ba770bf72dc0558c7009b7440a8c7a79abe45fa2",
      "parents": [
        "8c4018884a49eb2c6c7ca90804f331b12983561c"
      ],
      "author": {
        "name": "Gerd Hoffmann",
        "email": "kraxel@redhat.com",
        "time": "Tue Jan 06 14:41:09 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:13 2009 -0800"
      },
      "message": "add missing accounting calls to compat_sys_{readv,writev}\n\nSigned-off-by: Gerd Hoffmann \u003ckraxel@redhat.com\u003e\nCc: Jay Lan \u003cjlan@engr.sgi.com\u003e\nCc: Balbir Singh \u003cbalbir@in.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": "8c4018884a49eb2c6c7ca90804f331b12983561c",
      "tree": "5a9b972e76c340db5feebda40d9643611a1b84d2",
      "parents": [
        "ba84be2338d3a2b6020d39279335bb06fcd332e1"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@gmail.com",
        "time": "Tue Jan 06 14:41:08 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:13 2009 -0800"
      },
      "message": "fs: fix name overwrite in __register_chrdev_region()\n\nIt\u0027s possible to register a chrdev with a name size exactly the same as\nwas allocated in structure.  It seems it was not intended behaviour.\n\nAt least chrdev_show does not like it.\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ba84be2338d3a2b6020d39279335bb06fcd332e1",
      "tree": "ea41e8d58b208332945808380f9643a8267f7ad5",
      "parents": [
        "08adefd4791772d8b3fe23cc9d2554123e21dfa3"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Tue Jan 06 14:41:07 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:13 2009 -0800"
      },
      "message": "remove linux/hardirq.h from asm-generic/local.h\n\nWhile looking at reducing the amount of architecture namespace pollution\nin the generic kernel, I found that asm/irq.h is included in the vast\nmajority of compilations on ARM (around 650 files.)\n\nSince asm/irq.h includes a sub-architecture include file on ARM, this\ncauses a negative impact on the ccache\u0027s ability to re-use the build\nresults from other sub-architectures, so we have a desire to reduce the\ndependencies on asm/irq.h.\n\nIt turns out that a major cause of this is the needless include of\nlinux/hardirq.h into asm-generic/local.h.  The patch below removes this\ninclude, resulting in some 250 to 300 files (around half) of the kernel\nthen omitting asm/irq.h.\n\nMy test builds still succeed, provided two ARM files are fixed\n(arch/arm/kernel/traps.c and arch/arm/mm/fault.c) - so there may be\nnegative impacts for this on other architectures.\n\nNote that x86 does not include asm/irq.h nor linux/hardirq.h in its\nasm/local.h, so this patch can be viewed as bringing the generic version\ninto line with the x86 version.\n\n[kosaki.motohiro@jp.fujitsu.com: add #include \u003clinux/irqflags.h\u003e to acpi/processor_idle.c]\n[adobriyan@gmail.com: fix sparc64]\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "08adefd4791772d8b3fe23cc9d2554123e21dfa3",
      "tree": "5fcc85c50c21636b742cdb9517caef06b0ce151a",
      "parents": [
        "bfa0b1c3ca802bd9813987e861d932ddc1c8cf50"
      ],
      "author": {
        "name": "Brent Casavant",
        "email": "bcasavan@sgi.com",
        "time": "Tue Jan 06 14:41:06 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:13 2009 -0800"
      },
      "message": "ioc4: automatically load sgiioc4 subordinate module\n\nModify ioc4 to always load the sgiioc4 IDE module if the board carrying\nthe IOC4 hardware actually implements the IDE interface (not all boards\nbring this functionality off the IOC4 chip).  A drive hosted on the IDE\ninterface may contain the root filesystem, and sgiioc4 doesn\u0027t load\nautomatically as ioc4 owns the PCI device ID, not sgiioc4.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Michael Reed \u003cmdr@sgi.com\u003e\nSigned-off-by: Brent Casavant \u003cbcasavan@sgi.com\u003e\nCc: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bfa0b1c3ca802bd9813987e861d932ddc1c8cf50",
      "tree": "71dfe33fd9ffbba2efb95c42f189061de5cafe11",
      "parents": [
        "179f7ebff6be45738c6e2fa68c8d2cc5c2c6308e"
      ],
      "author": {
        "name": "Dmitry Eremin-Solenikov",
        "email": "dbaryshkov@gmail.com",
        "time": "Tue Jan 06 14:41:05 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:13 2009 -0800"
      },
      "message": "Dmitry has been renamed\n\nMy surname has changed due to marriage. Change MAINTAINERS entry\nand add .mailmap entry to reflect that.\n\nSigned-off-by: Dmitry Eremin-Solenikov \u003cdbaryshkov@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "179f7ebff6be45738c6e2fa68c8d2cc5c2c6308e",
      "tree": "3d48b5f825cfa29f5b39656503c5157872454e9f",
      "parents": [
        "e3d5a27d5862b6425d0879272e24abecf7245105"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Tue Jan 06 14:41:04 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:13 2009 -0800"
      },
      "message": "percpu_counter: FBC_BATCH should be a variable\n\nFor NR_CPUS \u003e\u003d 16 values, FBC_BATCH is 2*NR_CPUS\n\nConsidering more and more distros are using high NR_CPUS values, it makes\nsense to use a more sensible value for FBC_BATCH, and get rid of NR_CPUS.\n\nA sensible value is 2*num_online_cpus(), with a minimum value of 32 (This\nminimum value helps branch prediction in __percpu_counter_add())\n\nWe already have a hotcpu notifier, so we can adjust FBC_BATCH dynamically.\n\nWe rename FBC_BATCH to percpu_counter_batch since its not a constant\nanymore.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: 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": "e3d5a27d5862b6425d0879272e24abecf7245105",
      "tree": "c8a873e926d4768ae2ecac50c46c5121c8472876",
      "parents": [
        "af9379c7121d5543722c00bbd1adf7dcaa0b6448"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Tue Jan 06 14:41:02 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:13 2009 -0800"
      },
      "message": "Allow times and time system calls to return small negative values\n\nAt the moment, the times() system call will appear to fail for a period\nshortly after boot, while the value it want to return is between -4095 and\n-1.  The same thing will also happen for the time() system call on 32-bit\nplatforms some time in 2106 or so.\n\nOn some platforms, such as x86, this is unavoidable because of the system\ncall ABI, but other platforms such as powerpc have a separate error\nindication from the return value, so system calls can in fact return small\nnegative values without indicating an error.  On those platforms,\nforce_successful_syscall_return() provides a way to indicate that the\nsystem call return value should not be treated as an error even if it is\nin the range which would normally be taken as a negative error number.\n\nThis adds a force_successful_syscall_return() call to the time() and\ntimes() system calls plus their 32-bit compat versions, so that they don\u0027t\nerroneously indicate an error on those platforms whose system call ABI has\na separate error indication.  This will not affect anything on other\nplatforms.\n\nJoakim Tjernlund added the fix for time() and the compat versions of\ntime() and times(), after I did the fix for times().\n\nSigned-off-by: Joakim Tjernlund \u003cJoakim.Tjernlund@transmode.se\u003e\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "af9379c7121d5543722c00bbd1adf7dcaa0b6448",
      "tree": "798ddf46cd7b3edbec70d8b1af5f064d1db83532",
      "parents": [
        "5f820f648c92a5ecc771a96b3c29aa6e90013bba"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Tue Jan 06 14:41:01 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:13 2009 -0800"
      },
      "message": "documentation: when to BUG(), and when to not BUG()\n\nProvide some basic advice about when to use BUG()/BUG_ON(): never, unless\nthere\u0027s really no better option.\n\nThis matches my understanding of the standard policy ...  which seems not\nto be written down so far, outside of LKML messages that I haven\u0027t\nbookmarked.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: Hans Verkuil \u003chverkuil@xs4all.nl\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5f820f648c92a5ecc771a96b3c29aa6e90013bba",
      "tree": "0445b45fa33072d37b32c6ef592a4d0c102e05cc",
      "parents": [
        "67ec7d3ab779ad9001ef57a6b4cfdf80ac9f9acc"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Jan 06 14:40:59 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:12 2009 -0800"
      },
      "message": "poll: allow f_op-\u003epoll to sleep\n\nf_op-\u003epoll is the only vfs operation which is not allowed to sleep.  It\u0027s\nbecause poll and select implementation used task state to synchronize\nagainst wake ups, which doesn\u0027t have to be the case anymore as wait/wake\ninterface can now use custom wake up functions.  The non-sleep restriction\ncan be a bit tricky because -\u003epoll is not called from an atomic context\nand the result of accidentally sleeping in -\u003epoll only shows up as\ntemporary busy looping when the timing is right or rather wrong.\n\nThis patch converts poll/select to use custom wake up function and use\nseparate triggered variable to synchronize against wake up events.  The\nonly added overhead is an extra function call during wake up and\nnegligible.\n\nThis patch removes the one non-sleep exception from vfs locking rules and\nis beneficial to userland filesystem implementations like FUSE, 9p or\npeculiar fs like spufs as it\u0027s very difficult for those to implement\nnon-sleeping poll method.\n\nWhile at it, make the following cosmetic changes to make poll.h and\nselect.c checkpatch friendly.\n\n* s/type * symbol/type *symbol/\t\t   : three places in poll.h\n* remove blank line before EXPORT_SYMBOL() : two places in select.c\n\nOleg: spotted missing barrier in poll_schedule_timeout()\nDavide: spotted missing write barrier in pollwake()\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\nCc: Ron Minnich \u003crminnich@sandia.gov\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Brad Boyer \u003cflar@allandria.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Mauro Carvalho Chehab \u003cmchehab@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Oleg Nesterov \u003coleg@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": "67ec7d3ab779ad9001ef57a6b4cfdf80ac9f9acc",
      "tree": "ee2d6963324c64bb2122f6d5d584063b77a0b4d4",
      "parents": [
        "5aea50b5c76b07f2b6bda3426dba998156eaf6d0"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue Jan 06 14:40:57 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:12 2009 -0800"
      },
      "message": "fs: use menuconfig to control the Misc. filesystems menu\n\nHave one option to control Miscellaneous filesystems.  This makes it easy\nto disable all of them at one time.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5aea50b5c76b07f2b6bda3426dba998156eaf6d0",
      "tree": "20e522f88586e8c0835893e9236dded9fc6d87f2",
      "parents": [
        "d6624f996ae539344e8d748cce1117ae7af06fbf"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Tue Jan 06 14:40:57 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:12 2009 -0800"
      },
      "message": "scripts: script from kerneloops.org to pretty print oops dumps\n\nWe\u0027re struggling all the time to figure out where the code came from that\noopsed..  The script below (a adaption from a script used by\nkerneloops.org) can help developers quite a bit, at least for non-module\ncases.\n\nIt works and looks like this:\n\n[/home/arjan/linux]$ dmesg | perl scripts/markup_oops.pl vmlinux\n {\n \tstruct agp_memory *memory;\n\n \tmemory \u003d agp_allocate_memory(agp_bridge, pg_count, type);\n c055c10f:\t89 c2                \tmov    %eax,%edx\n \tif (memory \u003d\u003d NULL)\n c055c111:\t74 19                \tje     c055c12c \u003cagp_allocate_memory_wrap+0x30\u003e\n /* This function must only be called when current_controller !\u003d NULL */\n static void agp_insert_into_pool(struct agp_memory * temp)\n {\n \tstruct agp_memory *prev;\n\n \tprev \u003d agp_fe.current_controller-\u003epool;\n c055c113:\ta1 ec dc 8f c0       \tmov    0xc08fdcec,%eax\n*c055c118:\t8b 40 10             \tmov    0x10(%eax),%eax     \u003c----- faulting instruction\n\n \tif (prev !\u003d NULL) {\n c055c11b:\t85 c0                \ttest   %eax,%eax\n c055c11d:\t74 05                \tje     c055c124 \u003cagp_allocate_memory_wrap+0x28\u003e\n \t\tprev-\u003eprev \u003d temp;\n c055c11f:\t89 50 04             \tmov    %edx,0x4(%eax)\n \t\ttemp-\u003enext \u003d prev;\n c055c122:\t89 02                \tmov    %eax,(%edx)\n \t}\n \tagp_fe.current_controller-\u003epool \u003d temp;\n c055c124:\ta1 ec dc 8f c0       \tmov    0xc08fdcec,%eax\n c055c129:\t89 50 10             \tmov    %edx,0x10(%eax)\n \tif (memory \u003d\u003d NULL)\n \t\treturn NULL;\n\n \tagp_insert_into_pool(memory);\n\nso in this case, we faulted while dereferencing agp_fe.current_controller\npointer, and we get to see exactly which function and line it affects...\nPersonally I find this very useful, and I can see value for having this\nscript in the kernel for more-than-just-me to use.\n\nCaveats:\n* It only works for oopses not-in-modules\n* It only works nicely for kernels compiled with CONFIG_DEBUG_INFO\n* It\u0027s not very fast.\n* It only works on x86\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d6624f996ae539344e8d748cce1117ae7af06fbf",
      "tree": "0ad5d6f26fdac9a7d75c0bbce12e74ae2d1edeba",
      "parents": [
        "e899aa823ad74860a17b541b0ad38f513728923d"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Tue Jan 06 14:40:54 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:12 2009 -0800"
      },
      "message": "oops: increment the oops UUID every time we oops\n\n... because we do want repeated same-oops to be seen by automated\ntools like kerneloops.org\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e899aa823ad74860a17b541b0ad38f513728923d",
      "tree": "019c4a1b7baafe9967aa50cc49e809c11d39f944",
      "parents": [
        "ff083c8372f6312bb3a8c7f7b748920aeeb210c9"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@suse.cz",
        "time": "Tue Jan 06 14:40:53 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:12 2009 -0800"
      },
      "message": "strict_strto* is not strict enough\n\nIt decodes \"\\n\" as 0, which is bad, because stray echo into backlight\nwill turn your backlight off, etc...\n\nSigned-off-by: Pavel Machek \u003cpavel@suse.cz\u003e\nCc: Yi Yang \u003cyi.y.yang@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ff083c8372f6312bb3a8c7f7b748920aeeb210c9",
      "tree": "b80de8ca8693b251972526f5a076f1eab3c1407b",
      "parents": [
        "7ec7fb394298c212c30e063c57e0aa895efe9439"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Tue Jan 06 14:40:53 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:12 2009 -0800"
      },
      "message": "autodetect_raid: add missing __init marking\n\nThe function autodetect_raid is only used by __init functions, and it refers\nto __initdata, so it needs __init markings.  Fixes this error:\nThe function autodetect_raid() references\nthe variable __initdata raid_noautodetect.\nThis is often because autodetect_raid lacks a __initdata\nannotation or the annotation of raid_noautodetect is wrong.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7ec7fb394298c212c30e063c57e0aa895efe9439",
      "tree": "f2aa6cf2ff5d66595d5acb7d985bb157f67c6b29",
      "parents": [
        "9fe06081ef145d6582c39e18203b5fffe6f3abc2"
      ],
      "author": {
        "name": "Qinghuang Feng",
        "email": "qhfeng.kernel@gmail.com",
        "time": "Tue Jan 06 14:40:52 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:12 2009 -0800"
      },
      "message": "samples: mark {static|__init|__exit} for {init|exit} functions\n\nNone of these (init|exit) functions is called from other functions which\nis outside the kernel module mechanism or kernel itself, so mark them as\n{static|__init|__exit}.\n\nSigned-off-by: Qinghuang Feng \u003cqhfeng.kernel@gmail.com\u003e\nCc: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\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": "9fe06081ef145d6582c39e18203b5fffe6f3abc2",
      "tree": "290e0e6019f0aad96041340ce9b89bb8edf23840",
      "parents": [
        "30079677428ae1349d5063b96f677270dfd54309"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Tue Jan 06 14:40:51 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:12 2009 -0800"
      },
      "message": "Create a DIV_ROUND_CLOSEST macro to do division with rounding\n\nCreate a helper macro to divide two numbers and round the result to the\nnearest whole number.  This is a helper macro for hwmon drivers that want\nto convert incoming sysfs values per standard hwmon practice, though the\nmacro itself can be used by anyone.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@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": "30079677428ae1349d5063b96f677270dfd54309",
      "tree": "f6a49c279b19fe2de541a4d9732c46fd26783e27",
      "parents": [
        "8cef7d57a4a47ef7166acde05eea0bc4f723691c"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Tue Jan 06 14:40:50 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:11 2009 -0800"
      },
      "message": "lib: proportions.c trivial sparse lock annotation\n\nSuppresses sparse warning:\nlib/proportions.c:159:16: warning: context imbalance in \u0027prop_get_global\u0027: wrong count at exit\nlib/proportions.c:159:16:    context \u0027RCU\u0027: wanted 0, got 1\nlib/proportions.c:164:2: warning: context imbalance in \u0027prop_put_global\u0027: unexpected unlock\nlib/proportions.c:164:2:    context \u0027RCU\u0027: wanted 0, got -1\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8cef7d57a4a47ef7166acde05eea0bc4f723691c",
      "tree": "1ec446c6734e2fcd5cf0c98274a0183cc6290f9d",
      "parents": [
        "40bc1f2dbc29ab88176a650e51f2246526105093"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Tue Jan 06 14:40:50 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:11 2009 -0800"
      },
      "message": "lib: radix_tree.c make percpu variable static\n\nradix_tree_preloads is unused outside of this file, make it static.\n\nNoticed by sparse:\nlib/radix-tree.c:84:1: warning: symbol \u0027per_cpu__radix_tree_preloads\u0027 was not declared. Should it be static?\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "40bc1f2dbc29ab88176a650e51f2246526105093",
      "tree": "0c9fd0f1a3430118214b06acfdb61bb80bb4fa7d",
      "parents": [
        "60348802e9cb137ee86590c3e4c57c1ec2e8fc69"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Tue Jan 06 14:40:49 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:11 2009 -0800"
      },
      "message": "lib: fix sparse shadowed variable warning\n\npos is always set before being used, no need to declare a\nsecond one inside the if() block.\n\nlib/prio_heap.c:34:7: warning: symbol \u0027pos\u0027 shadows an earlier one\nlib/prio_heap.c:30:6: originally declared here\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "60348802e9cb137ee86590c3e4c57c1ec2e8fc69",
      "tree": "0c8fb3de7410898643f992081650a307f17dea28",
      "parents": [
        "f1883f86dea84fe47a71a39fc1afccc005915ed8"
      ],
      "author": {
        "name": "Zhaolei",
        "email": "zhaolei@cn.fujitsu.com",
        "time": "Tue Jan 06 14:40:46 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:11 2009 -0800"
      },
      "message": "fork.c: cleanup for copy_sighand()\n\nCheck CLONE_SIGHAND only is enough, because combination of CLONE_THREAD and\nCLONE_SIGHAND is already done in copy_process().\n\nImpact: cleanup, no functionality changed\n\nSigned-off-by: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@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": "f1883f86dea84fe47a71a39fc1afccc005915ed8",
      "tree": "357c50d2eb44e9e62c39c0c1025bae7b2b6eba67",
      "parents": [
        "eaccbfa564e48c87626594511f42dc8c0ad2daae"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Jan 06 14:40:45 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:11 2009 -0800"
      },
      "message": "Remove remaining unwinder code\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Gabor Gombas \u003cgombasg@sztaki.hu\u003e\nCc: Jan Beulich \u003cjbeulich@novell.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e,\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "eaccbfa564e48c87626594511f42dc8c0ad2daae",
      "tree": "9a23430bf4f82d4f3d26c9314d0149b14d0fab70",
      "parents": [
        "bca1033b092a6fab2ed00036e8a7f6e2df5d99a2"
      ],
      "author": {
        "name": "Luiz Fernando N. Capitulino",
        "email": "lcapitulino@mandriva.com.br",
        "time": "Tue Jan 06 14:40:44 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:11 2009 -0800"
      },
      "message": "fs/exec.c:__bprm_mm_init(): clean up error handling\n\nUntangle the error unwinding in this function, saving a test of local\nvariable `vma\u0027.\n\nSigned-off-by: Luiz Fernando N. Capitulino \u003clcapitulino@mandriva.com.br\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bca1033b092a6fab2ed00036e8a7f6e2df5d99a2",
      "tree": "94f2d1124aefe1a383b0cf3d1ca8e983406304e0",
      "parents": [
        "b61312d353da1871778711040464b10f5cd904df"
      ],
      "author": {
        "name": "Marton Balint",
        "email": "cus@fazekas.hu",
        "time": "Tue Jan 06 14:40:43 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:11 2009 -0800"
      },
      "message": "do_mounts: add device info to mount message\n\nIn the past, I used the root\u003d...  command line parameter to specify the\nroot filesystem to the kernel.  Now it seems that specifying it is not\nnecessary.  The kernel detects the root filesystem even if the kernel\ncommand line is empty.  My root fs is on a raid1 device by the way, and I\nam not using initrd for the boot process.\n\nIf the kernel detects the root filesystem somehow, I think it should print\nout the result of this detection, otherwise I will not know which device\nhas the root filesystem.  Or is there an easy way to get this information\non a running system?  I had a quick look at the /proc and /sys\nfilesystems, but haven\u0027t found anything useful there.\n\nSigned-off-by: Marton Balint \u003ccus@fazekas.hu\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b61312d353da1871778711040464b10f5cd904df",
      "tree": "affc5f594a89a654a13dd2fe0f196c4f96764b86",
      "parents": [
        "f41ced8f108cc80f16509b907cd7ac93944459bc"
      ],
      "author": {
        "name": "Viktor Rosendahl",
        "email": "viktor.rosendahl@nokia.com",
        "time": "Tue Jan 06 14:40:42 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:11 2009 -0800"
      },
      "message": "oops handling: ensure that any oops is flushed to the mtdoops console\n\nThis used to work unpatched with older kernels, during the development\nphase of mtdoops.  Before commit e3e8a75d2acfc61ebf25524666a0a2c6abb0620c\na space was printed with console_loglevel set to 15, which probably\nflushed the oops message as a side effect.\n\nThis is another patch from the Nokia N810 kernel.\n\nSigned-off-by: Viktor Rosendahl \u003cviktor.rosendahl@nokia.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f41ced8f108cc80f16509b907cd7ac93944459bc",
      "tree": "e2428887e43f26f373523be3d9ded4427a2c331f",
      "parents": [
        "bdbeed75b288443ea14208eafaac3941f385f2ae"
      ],
      "author": {
        "name": "Laurent Pinchart",
        "email": "laurent.pinchart@skynet.be",
        "time": "Tue Jan 06 14:40:40 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:11 2009 -0800"
      },
      "message": "Check fops_get() return value\n\nSeveral subsystem open handlers dereference the fops_get() return value\nwithout checking it for nullness.  This opens a race condition between the\nopen handler and module unloading.\n\nA module can be marked as being unloaded (MODULE_STATE_GOING) before its\nexit function is called and gets the chance to unregister the driver.\nDuring that window open handlers can still be called, and fops_get() will\nfail in try_module_get() and return a NULL pointer.\n\nThis change checks the fops_get() return value and returns -ENODEV if NULL.\n\nReported-by: Alan Jenkins \u003calan-jenkins@tuffmail.co.uk\u003e\nSigned-off-by: Laurent Pinchart \u003claurent.pinchart@skynet.be\u003e\nAcked-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Dave Airlie \u003cairlied@linux.ie\u003e\nAcked-by: Mauro Carvalho Chehab \u003cmchehab@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bdbeed75b288443ea14208eafaac3941f385f2ae",
      "tree": "0be768ee4d1b064af120655109da93e4095f6774",
      "parents": [
        "ea435467500612636f8f4fb639ff6e76b2496e4b"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Tue Jan 06 14:40:39 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:10 2009 -0800"
      },
      "message": "pci: use pci_ioremap_bar() in drivers/misc\n\nUse the newly introduced pci_ioremap_bar() function in drivers/misc.\npci_ioremap_bar() just takes a pci device and a bar number, with the goal\nof making it really hard to get wrong, while also having a central place\nto stick sanity checks.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ea435467500612636f8f4fb639ff6e76b2496e4b",
      "tree": "fdf5cb7ca3834f0a4120fb3cce5a631dd2769f26",
      "parents": [
        "f99ebf0a86de13f77bc4ee349de96db9f2f67f2e"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Tue Jan 06 14:40:39 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:10 2009 -0800"
      },
      "message": "atomic_t: unify all arch definitions\n\nThe atomic_t type cannot currently be used in some header files because it\nwould create an include loop with asm/atomic.h.  Move the type definition\nto linux/types.h to break the loop.\n\nSigned-off-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\nCc: Huang Ying \u003cying.huang@intel.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f99ebf0a86de13f77bc4ee349de96db9f2f67f2e",
      "tree": "1f286cd9cd4d69638b4b3cc5d2ed48a6e566ce98",
      "parents": [
        "91f47662dfaa5b459aebe13284c6c38db27350dc"
      ],
      "author": {
        "name": "Rakib Mullick",
        "email": "rakib.mullick@gmail.com",
        "time": "Tue Jan 06 14:40:38 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:10 2009 -0800"
      },
      "message": "init: properly placing noinline keyword\n\ncheckpatch warns about \u0027static void noinline\u0027.  It wants `static noinline\nvoid\u0027.\n\nBoth are permissible, but the kernel consistently uses `static inline\u0027 and\n`static noinline\u0027, and consistency is good.  Hence let\u0027s keep the\ncheckpatch warning and fix up this code site.\n\n[akpm@linux-foundation.org: rewrote changelog]\nSigned-off-by: Md.Rakib H. Mullick \u003crakib.mullick@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "91f47662dfaa5b459aebe13284c6c38db27350dc",
      "tree": "f2ab72a8be3219b1233e9c63e87f235219df3053",
      "parents": [
        "73ce02e96fe34a983199a9855b2ae738f960a6ee"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@gmail.com",
        "time": "Tue Jan 06 14:40:33 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:10 2009 -0800"
      },
      "message": "mm: hugetlb: remove redundant `if\u0027 operation\n\nAt this point we already know that \u0027addr\u0027 is not NULL so get rid of\nredundant \u0027if\u0027.  Probably gcc eliminate it by optimization pass.\n\n[akpm@linux-foundation.org: use __weak, too]\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "73ce02e96fe34a983199a9855b2ae738f960a6ee",
      "tree": "06dbbc2c38d55f8eacab09c55a68c736156b9540",
      "parents": [
        "594fe1a044325bb0a1a49ca7d086e3df4f1df59a"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jan 06 14:40:33 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:10 2009 -0800"
      },
      "message": "mm: stop kswapd\u0027s infinite loop at high order allocation\n\nWassim Dagash reported following kswapd infinite loop problem.\n\n  kswapd runs in some infinite loop trying to swap until order 10 of zone\n  highmem is OK.... kswapd will continue to try to balance order 10 of zone\n  highmem forever (or until someone release a very large chunk of highmem).\n\nFor non order-0 allocations, the system may never be balanced due to\nfragmentation but kswapd should not infinitely loop as a result.\n\nInstead, recheck all watermarks at order-0 as they are the most important.\nIf watermarks are ok, kswapd will go back to sleep.\n\n[akpm@linux-foundation.org: fix comment]\nReported-by: wassim dagash \u003cwassim.dagash@gmail.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "594fe1a044325bb0a1a49ca7d086e3df4f1df59a",
      "tree": "db3ed12346af4357d154637baad4fb224fbde639",
      "parents": [
        "dcd4a049b9751828c516c59709f3fdf50436df85"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Tue Jan 06 14:40:32 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:10 2009 -0800"
      },
      "message": "bootmem: print request details before BUG_ON(them)\n\nMoving the request details print-out before the sanity checks that\nmight panic() enables us to analyse invalid requests without having\naccess to the line information of the stack dump.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dcd4a049b9751828c516c59709f3fdf50436df85",
      "tree": "126fe11368da94f0c2e11ed586a870fa1b02f0a6",
      "parents": [
        "084f71ae5ceeb16734d8ac47559d3c718456a865"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Tue Jan 06 14:40:31 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:10 2009 -0800"
      },
      "message": "mm: check for no mmaps in exit_mmap()\n\nWhen dup_mmap() ooms we can end up with mm-\u003emmap \u003d\u003d NULL.  The error\npath does mmput() and unmap_vmas() gets a NULL vma which it\ndereferences.\n\nIn exit_mmap() there is nothing to do at all for this case, we can\ncancel the callpath right there.\n\n[akpm@linux-foundation.org: add sorely-needed comment]\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReported-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "084f71ae5ceeb16734d8ac47559d3c718456a865",
      "tree": "65970a2e1873135d4b71d5a19b83b3f427835857",
      "parents": [
        "9f572e3f96b8a2ef70dcb881e64c7b9c10057d98"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jan 06 14:40:30 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:10 2009 -0800"
      },
      "message": "mm: kill page_queue_congested()\n\npage_queue_congested() was introduced in 2002, but it was never used\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9f572e3f96b8a2ef70dcb881e64c7b9c10057d98",
      "tree": "26accc06afbe7149d2aed6930cc50c5e865d6d28",
      "parents": [
        "901608d9045146aec6f14a7777ea4b1501c379f0"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jan 06 14:40:29 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:10 2009 -0800"
      },
      "message": "mm: remove CONFIG_OUT_OF_LINE_PFN_TO_PAGE\n\nNo architectures use CONFIG_OUT_OF_LINE_PFN_TO_PAGE - it can be removed.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@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": "901608d9045146aec6f14a7777ea4b1501c379f0",
      "tree": "0155189f48479b920855dedccba6829363376d4d",
      "parents": [
        "67d58ac47d25f7e2a105248a4aea6113131ab874"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Jan 06 14:40:29 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:09 2009 -0800"
      },
      "message": "mm: introduce get_mm_hiwater_xxx(), fix taskstats-\u003ehiwater_xxx accounting\n\nxacct_add_tsk() relies on do_exit()-\u003eupdate_hiwater_xxx() and uses\nmm-\u003ehiwater_xxx directly, this leads to 2 problems:\n\n- taskstats_user_cmd() can call fill_pid()-\u003exacct_add_tsk() at any\n  moment before the task exits, so we should check the current values of\n  rss/vm anyway.\n\n- do_exit()-\u003eupdate_hiwater_xxx() calls are racy.  An exiting thread can\n  be preempted right before mm-\u003ehiwater_xxx \u003d new_val, and another thread\n  can use A_LOT of memory and exit in between.  When the first thread\n  resumes it can be the last thread in the thread group, in that case we\n  report the wrong hiwater_xxx values which do not take A_LOT into\n  account.\n\nIntroduce get_mm_hiwater_rss() and get_mm_hiwater_vm() helpers and change\nxacct_add_tsk() to use them.  The first helper will also be used by\nrusage-\u003eru_maxrss accounting.\n\nKill do_exit()-\u003eupdate_hiwater_xxx() calls.  Unless we are going to\ndecrease rss/vm there is no point to update mm-\u003ehiwater_xxx, and nobody\ncan look at this mm_struct when exit_mmap() actually unmaps the memory.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Hugh Dickins \u003chugh@veritas.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.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": "67d58ac47d25f7e2a105248a4aea6113131ab874",
      "tree": "5bf9440696b72ec0962d352c6d60b81929b79602",
      "parents": [
        "856bf4d717feb8c55d4e2f817b71ebb70cfbc67b"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Jan 06 14:40:28 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:09 2009 -0800"
      },
      "message": "mm: pagecache gfp flags fix\n\nFrustratingly, gfp_t is really divided into two classes of flags.  One are\nthe context dependent ones (can we sleep?  can we enter filesystem?  block\nsubsystem?  should we use some extra reserves, etc.).  The other ones are\nthe type of memory required and depend on how the algorithm is implemented\nrather than the point at which the memory is allocated (highmem?  dma\nmemory?  etc).\n\nSome of the functions which allocate a page and add it to page cache take\na gfp_t, but sometimes those functions or their callers aren\u0027t really\ndoing the right thing: when allocating pagecache page, the memory type\nshould be mapping_gfp_mask(mapping).  When allocating radix tree nodes,\nthe memory type should be kernel mapped (not highmem) memory.  The gfp_t\nargument should only really be needed for context dependent options.\n\nThis patch doesn\u0027t really solve that tangle in a nice way, but it does\nattempt to fix a couple of bugs.\n\n- find_or_create_page changes its radix-tree allocation to only include\n  the main context dependent flags in order so the pagecache page may be\n  allocated from arbitrary types of memory without affecting the\n  radix-tree.  In practice, slab allocations don\u0027t come from highmem\n  anyway, and radix-tree only uses slab allocations.  So there isn\u0027t a\n  practical change (unless some fs uses GFP_DMA for pages).\n\n- grab_cache_page_nowait() is changed to allocate radix-tree nodes with\n  GFP_NOFS, because it is not supposed to reenter the filesystem.  This\n  bug could cause lock recursion if a filesystem is not expecting the\n  function to reenter the fs (as-per documentation).\n\nFilesystems should be careful about exactly what semantics they want and\nwhat they get when fiddling with gfp_t masks to allocate pagecache.  One\nshould be as liberal as possible with the type of memory that can be used,\nand same for the the context specific flags.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@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": "856bf4d717feb8c55d4e2f817b71ebb70cfbc67b",
      "tree": "f44790d9b8f42223955d1866645103ac5f9c68a3",
      "parents": [
        "38f21977663126fef53f5585e7f1653d8ebe55c4"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Jan 06 14:40:26 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:09 2009 -0800"
      },
      "message": "fs: sys_sync fix\n\ns_syncing livelock avoidance was breaking data integrity guarantee of\nsys_sync, by allowing sys_sync to skip writing or waiting for superblocks\nif there is a concurrent sys_sync happening.\n\nThis livelock avoidance is much less important now that we don\u0027t have the\nget_super_to_sync() call after every sb that we sync.  This was replaced\nby __put_super_and_need_restart.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@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": "38f21977663126fef53f5585e7f1653d8ebe55c4",
      "tree": "be5ee7a264fea0d9f4b2d109b7e08b7a1ec794c9",
      "parents": [
        "4f5a99d64c17470a784a6c68064207d82e3e74a5"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Jan 06 14:40:25 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:09 2009 -0800"
      },
      "message": "fs: sync_sb_inodes fix\n\nFix data integrity semantics required by sys_sync, by iterating over all\ninodes and waiting for any writeback pages after the initial writeout.\nComments explain the exact problem.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@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": "4f5a99d64c17470a784a6c68064207d82e3e74a5",
      "tree": "2a3e0f0c3990bb8dbda2cdaa506a64180e5cbff2",
      "parents": [
        "e8ea1759138d4279869f52bfb7dca8f02f8ccfe5"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Jan 06 14:40:25 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:09 2009 -0800"
      },
      "message": "fs: remove WB_SYNC_HOLD\n\nRemove WB_SYNC_HOLD.  The primary motiviation is the design of my\nanti-starvation code for fsync.  It requires taking an inode lock over the\nsync operation, so we could run into lock ordering problems with multiple\ninodes.  It is possible to take a single global lock to solve the ordering\nproblem, but then that would prevent a future nice implementation of \"sync\nmultiple inodes\" based on lock order via inode address.\n\nSeems like a backward step to remove this, but actually it is busted\nanyway: we can\u0027t use the inode lists for data integrity wait: an inode can\nbe taken off the dirty lists but still be under writeback.  In order to\nsatisfy data integrity semantics, we should wait for it to finish\nwriteback, but if we only search the dirty lists, we\u0027ll miss it.\n\nIt would be possible to have a \"writeback\" list, for sys_sync, I suppose.\nBut why complicate things by prematurely optimise?  For unmounting, we\ncould avoid the \"livelock avoidance\" code, which would be easier, but\nagain premature IMO.\n\nFixing the existing data integrity problem will come next.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@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": "e8ea1759138d4279869f52bfb7dca8f02f8ccfe5",
      "tree": "2e59ef400c9b79af6eeb80024c3923e21c915a8a",
      "parents": [
        "48b47c561e41525061b5bc0cfd67d6367fd11dc4"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Jan 06 14:40:23 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:09 2009 -0800"
      },
      "message": "UBIFS: do not use WB_SYNC_HOLD\n\nWB_SYNC_HOLD is going to be zapped so we should not use it. Use\n%WB_SYNC_NONE instead. Here is what akpm said:\n\n\"I think I\u0027ll just switch that to WB_SYNC_NONE.  The `wait\u003d\u003d0\u0027 mode is\njust an advisory thing to help the fs shove lots of data into the\nqueues.  If some gets missed then it\u0027ll be picked up on the second\n-\u003esync_fs call, with wait\u003d\u003d1.\"\n\nThanks to Randy Dunlap for catching this.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "48b47c561e41525061b5bc0cfd67d6367fd11dc4",
      "tree": "ae99a8cb55b4d2716847521953db4bddd66b8e8b",
      "parents": [
        "48aae42556e5ea1ba0d8ddab25352706577af2ed"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Jan 06 14:40:22 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:09 2009 -0800"
      },
      "message": "mm: direct IO starvation improvement\n\nDirect IO can invalidate and sync a lot of pagecache pages in the mapping.\n A 4K direct IO will actually try to sync and/or invalidate the pagecache\nof the entire file, for example (which might be many GB or TB large).\n\nImprove this by doing range syncs.  Also, memory no longer has to be\nunmapped to catch the dirty bits for syncing, as dirty bits would remain\ncoherent due to dirty mmap accounting.\n\nThis fixes the immediate DM deadlocks when doing direct IO reads to block\ndevice with a mounted filesystem, if only by papering over the problem\nsomewhat rather than addressing the fsync starvation cases.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nReviewed-by: Jeff Moyer \u003cjmoyer@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": "48aae42556e5ea1ba0d8ddab25352706577af2ed",
      "tree": "6a016f91627ce717f5f68f27f47a5771dc7058f8",
      "parents": [
        "853ac43ab194f5051b27a55060215d696dc9480d"
      ],
      "author": {
        "name": "ZhenwenXu",
        "email": "helight.xu@gmail.com",
        "time": "Tue Jan 06 14:40:21 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:08 2009 -0800"
      },
      "message": "mm/mmap.c: fix coding style\n\nFix a little of the coding style in mm/mmap.c\n\n[akpm@linux-foundation.org: cleanup]\nSigned-off-by: ZhenwenXu \u003chelight.xu@gmail.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "853ac43ab194f5051b27a55060215d696dc9480d",
      "tree": "1f60fd49d516b7b242781a77446993b1dfb5bb66",
      "parents": [
        "69e9930993cfd70d82c8d9dd96fc3a88854d06fc"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Tue Jan 06 14:40:20 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:08 2009 -0800"
      },
      "message": "shmem: unify regular and tiny shmem\n\ntiny-shmem shares most of its 130 lines of code with shmem and tends to\nbreak when particular bits of shmem get modified.  Unifying saves code and\nmakes keeping these two in sync much easier.\n\nbefore:\n  14367\t    392\t     24\t  14783\t   39bf\tmm/shmem.o\n    396      72       8     476\t    1dc\tmm/tiny-shmem.o\n\nafter:\n  14367\t    392\t     24\t  14783\t   39bf\tmm/shmem.o\n    412\t     72       8     492\t    1ec\tmm/shmem.o tiny\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nAcked-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "69e9930993cfd70d82c8d9dd96fc3a88854d06fc",
      "tree": "2467f8e1fdb745f4ca5e94acf0aba09c74063125",
      "parents": [
        "4779280d1ea4d361af13ae77ba55217fbcd16d4c"
      ],
      "author": {
        "name": "Franck Bui-Huu",
        "email": "fbuihuu@gmail.com",
        "time": "Tue Jan 06 14:40:19 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:08 2009 -0800"
      },
      "message": "block_write_begin(): remove useless goto\n\nSigned-off-by: Franck Bui-Huu \u003cfbuihuu@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4779280d1ea4d361af13ae77ba55217fbcd16d4c",
      "tree": "1abb35d85f2280aebb9cd565cc223d14b8731203",
      "parents": [
        "91bf189c3a766927694ce9de7d545e96b23f20fc"
      ],
      "author": {
        "name": "Ying Han",
        "email": "yinghan@google.com",
        "time": "Tue Jan 06 14:40:18 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:08 2009 -0800"
      },
      "message": "mm: make get_user_pages() interruptible\n\nThe initial implementation of checking TIF_MEMDIE covers the cases of OOM\nkilling.  If the process has been OOM killed, the TIF_MEMDIE is set and it\nreturn immediately.  This patch includes:\n\n1.  add the case that the SIGKILL is sent by user processes.  The\n   process can try to get_user_pages() unlimited memory even if a user\n   process has sent a SIGKILL to it(maybe a monitor find the process\n   exceed its memory limit and try to kill it).  In the old\n   implementation, the SIGKILL won\u0027t be handled until the get_user_pages()\n   returns.\n\n2.  change the return value to be ERESTARTSYS.  It makes no sense to\n   return ENOMEM if the get_user_pages returned by getting a SIGKILL\n   signal.  Considering the general convention for a system call\n   interrupted by a signal is ERESTARTNOSYS, so the current return value\n   is consistant to that.\n\nLee:\n\nAn unfortunate side effect of \"make-get_user_pages-interruptible\" is that\nit prevents a SIGKILL\u0027d task from munlock-ing pages that it had mlocked,\nresulting in freeing of mlocked pages.  Freeing of mlocked pages, in\nitself, is not so bad.  We just count them now--altho\u0027 I had hoped to\nremove this stat and add PG_MLOCKED to the free pages flags check.\n\nHowever, consider pages in shared libraries mapped by more than one task\nthat a task mlocked--e.g., via mlockall().  If the task that mlocked the\npages exits via SIGKILL, these pages would be left mlocked and\nunevictable.\n\nProposed fix:\n\nAdd another GUP flag to ignore sigkill when calling get_user_pages from\nmunlock()--similar to Kosaki Motohiro\u0027s \u0027IGNORE_VMA_PERMISSIONS flag for\nthe same purpose.  We are not actually allocating memory in this case,\nwhich \"make-get_user_pages-interruptible\" intends to avoid.  We\u0027re just\nmunlocking pages that are already resident and mapped, and we\u0027re reusing\nget_user_pages() to access those pages.\n\n??  Maybe we should combine \u0027IGNORE_VMA_PERMISSIONS and \u0027_IGNORE_SIGKILL\ninto a single flag: GUP_FLAGS_MUNLOCK ???\n\n[Lee.Schermerhorn@hp.com: ignore sigkill in get_user_pages during munlock]\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Ying Han \u003cyinghan@google.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Rohit Seth \u003crohitseth@google.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "91bf189c3a766927694ce9de7d545e96b23f20fc",
      "tree": "c9b289cffce3bf7606b8c166b446d3a2185463b0",
      "parents": [
        "b555749aac87d7c2637f153e44bd77c7fdf4c65b"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Tue Jan 06 14:40:14 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:08 2009 -0800"
      },
      "message": "hugetlb: unsigned ret cannot be negative\n\nunsigned long ret cannot be negative, but ret can get -EFAULT.\n\nSigned-off-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nCc: Ken Chen \u003ckenchen@google.com\u003e\nCc: Nick Piggin \u003cnpiggin@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": "b555749aac87d7c2637f153e44bd77c7fdf4c65b",
      "tree": "b65a437fd70795eac749f5dcf327151d458ec742",
      "parents": [
        "1e9e63650d6cb88e6d6d2ca6cc3ee276c26de4a3"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Jan 06 14:40:13 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:08 2009 -0800"
      },
      "message": "vmscan: shrink_active_list(): reduce lru_lock hold time\n\nThese three statements manipulate local variables and do not need the lock\ncoverage.\n\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1e9e63650d6cb88e6d6d2ca6cc3ee276c26de4a3",
      "tree": "2fd95051128ef2ebfaad421ee919dab9e25459b2",
      "parents": [
        "d936cf9b39b06c8d2e0d7fb5e7b4f176e18dec69"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:40:13 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:08 2009 -0800"
      },
      "message": "badpage: KERN_ALERT BUG instead of KERN_EMERG\n\nbad_page() and rmap Eeek messages have said KERN_EMERG for a few years,\nwhich I\u0027ve followed in print_bad_pte().  These are serious system errors,\non a par with BUGs, but they\u0027re not quite emergencies, and we do our best\nto carry on: say KERN_ALERT \"BUG: \" like the x86 oops does.\n\nAnd remove the \"Trying to fix it up, but a reboot is needed\" line: it\u0027s\nnot untrue, but I hope the KERN_ALERT \"BUG: \" conveys as much.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@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": "d936cf9b39b06c8d2e0d7fb5e7b4f176e18dec69",
      "tree": "db691451bc77e90b980b62674519731c6ece72db",
      "parents": [
        "edc315fd222497ae4f4b959a9e31ada1e68a4755"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:40:12 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:07 2009 -0800"
      },
      "message": "badpage: ratelimit print_bad_pte and bad_page\n\nprint_bad_pte() and bad_page() might each need ratelimiting - especially\nfor their dump_stacks, almost never of interest, yet not quite\ndispensible.  Correlating corruption across neighbouring entries can be\nvery helpful, so allow a burst of 60 reports before keeping quiet for the\nremainder of that minute (or allow a steady drip of one report per\nsecond).\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@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": "edc315fd222497ae4f4b959a9e31ada1e68a4755",
      "tree": "aaf1a6b015368c52097ed0c362a24bf18e40897f",
      "parents": [
        "2509ef26db4699a5d9fa876e90ddfc107afcab84"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:40:11 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:07 2009 -0800"
      },
      "message": "badpage: remove vma from page_remove_rmap\n\nRemove page_remove_rmap()\u0027s vma arg, which was only for the Eeek message.\nAnd remove the BUG_ON(page_mapcount(page) \u003d\u003d 0) from CONFIG_DEBUG_VM\u0027s\npage_dup_rmap(): we\u0027re trying to be more resilient about that than BUGs.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@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": "2509ef26db4699a5d9fa876e90ddfc107afcab84",
      "tree": "09e65185142c60b5d766d8b75f3cbc8a65de6a39",
      "parents": [
        "22b31eec63e5f2e219a3ee15f456897272bc73e8"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:40:10 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:07 2009 -0800"
      },
      "message": "badpage: zap print_bad_pte on swap and file\n\nComplete zap_pte_range()\u0027s coverage of bad pagetable entries by calling\nprint_bad_pte() on a pte_file in a linear vma and on a bad swap entry.\nThat needs free_swap_and_cache() to tell it, which will also have shown\none of those \"swap_free\" errors (but with much less information).\n\nSimilar checks in fork\u0027s copy_one_pte()?  No, that would be more noisy\nthan helpful: we\u0027ll see them when parent and child exec or exit.\n\nWhere do_nonlinear_fault() calls print_bad_pte(): omit !VM_CAN_NONLINEAR\ncase, that could only be a bug in sys_remap_file_pages(), not a bad pte.\nVM_FAULT_OOM rather than VM_FAULT_SIGBUS?  Well, okay, that is consistent\nwith what happens if do_swap_page() operates a bad swap entry; but don\u0027t\nwe have patches to be more careful about killing when VM_FAULT_OOM?\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@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": "22b31eec63e5f2e219a3ee15f456897272bc73e8",
      "tree": "906e4975a0e2cdef15ef071b4890e3b28e36cf39",
      "parents": [
        "3dc147414ccad81dc33edb80774b1fed12a38c08"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:40:09 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:07 2009 -0800"
      },
      "message": "badpage: vm_normal_page use print_bad_pte\n\nprint_bad_pte() is so far being called only when zap_pte_range() finds\nnegative page_mapcount, or there\u0027s a fault on a pte_file where it does not\nbelong.  That\u0027s weak coverage when we suspect pagetable corruption.\n\nOriginally, it was called when vm_normal_page() found an invalid pfn: but\npfn_valid is expensive on some architectures and configurations, so 2.6.24\nput that under CONFIG_DEBUG_VM (which doesn\u0027t help in the field), then\n2.6.26 replaced it by a VM_BUG_ON (likewise).\n\nReinstate the print_bad_pte() in vm_normal_page(), but use a cheaper test\nthan pfn_valid(): memmap_init_zone() (used in bootup and hotplug) keep a\n__read_mostly note of the highest_memmap_pfn, vm_normal_page() then check\npfn against that.  We could call this pfn_plausible() or pfn_sane(), but I\ndoubt we\u0027ll need it elsewhere: of course it\u0027s not reliable, but gives much\nstronger pagetable validation on many boxes.\n\nAlso use print_bad_pte() when the pte_special bit is found outside a\nVM_PFNMAP or VM_MIXEDMAP area, instead of VM_BUG_ON.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@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": "3dc147414ccad81dc33edb80774b1fed12a38c08",
      "tree": "bdcfd37fa47d6617490fa276ddfcc5a6ab0c731b",
      "parents": [
        "8cc3b39221b0ecbd83a338948a8396df097fc656"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:40:08 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:07 2009 -0800"
      },
      "message": "badpage: replace page_remove_rmap Eeek and BUG\n\nNow that bad pages are kept out of circulation, there is no need for the\ninfamous page_remove_rmap() BUG() - once that page is freed, its negative\nmapcount will issue a \"Bad page state\" message and the page won\u0027t be\nfreed.  Removing the BUG() allows more info, on subsequent pages, to be\ngathered.\n\nWe do have more info about the page at this point than bad_page() can know\n- notably, what the pmd is, which might pinpoint something like low 64kB\ncorruption - but page_remove_rmap() isn\u0027t given the address to find that.\n\nIn practice, there is only one call to page_remove_rmap() which has ever\nreported anything, that from zap_pte_range() (usually on exit, sometimes\non munmap).  It has all the info, so remove page_remove_rmap()\u0027s \"Eeek\"\nmessage and leave it all to zap_pte_range().\n\nmm/memory.c already has a hardly used print_bad_pte() function, showing\nsome of the appropriate info: extend it to show what we want for the rmap\ncase: pte info, page info (when there is a page) and vma info to compare.\nzap_pte_range() already knows the pmd, but print_bad_pte() is easier to\nuse if it works that out for itself.\n\nSome of this info is also shown in bad_page()\u0027s \"Bad page state\" message.\nKeep them separate, but adjust them to match each other as far as\npossible.  Say \"Bad page map\" in print_bad_pte(), and add a TAINT_BAD_PAGE\nthere too.\n\nprint_bad_pte() show current-\u003ecomm unconditionally (though it should get\nrepeated in the usually irrelevant stack trace): sorry, I misled Nick\nPiggin to make it conditional on vm_mm \u003d\u003d current-\u003emm, but current-\u003emm is\nalready NULL in the exit case.  Usually current-\u003ecomm is good, though\nexceptionally it may not be that of the mm (when \"swapoff\" for example).\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@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": "8cc3b39221b0ecbd83a338948a8396df097fc656",
      "tree": "8a8617590f6bc9842c28a0fc4e5e5fbc93e95780",
      "parents": [
        "79f4b7bf393e67bbffec807cc68caaefc72b82ee"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:40:06 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:07 2009 -0800"
      },
      "message": "badpage: keep any bad page out of circulation\n\nUntil now the bad_page() checkers have special-cased PageReserved, keeping\nthose pages out of circulation thereafter.  Now extend the special case to\nall: we want to keep ANY page with bad state out of circulation - the\n\"free\" page may well be in use by something.\n\nLeave the bad state of those pages untouched, for examination by\ndebuggers; except for PageBuddy - leaving that set would risk bringing the\npage back.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@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": "79f4b7bf393e67bbffec807cc68caaefc72b82ee",
      "tree": "5bee7c12fe49e63e38d74afc6bbd2933906ecb9b",
      "parents": [
        "0f64415d42760379753e6088787ce3fd3e069509"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:40:05 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:07 2009 -0800"
      },
      "message": "badpage: simplify page_alloc flag check+clear\n\nSimplify the PAGE_FLAGS checking and clearing when freeing and allocating\na page: check the same flags as before when freeing, clear ALL the flags\n(unless PageReserved) when freeing, check ALL flags off when allocating.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@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": "0f64415d42760379753e6088787ce3fd3e069509",
      "tree": "85c9d3be88e56fb2d62558689744dbdd386cc745",
      "parents": [
        "09f445e7f5107c91be12ed386350de6cd055e0a4"
      ],
      "author": {
        "name": "Dmitri Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Tue Jan 06 14:40:04 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:06 2009 -0800"
      },
      "message": "fs: truncate blocks outside i_size after O_DIRECT write error\n\nIn case of error extending write may have instantiated a few blocks\noutside i_size.  We need to trim these blocks.  We have to do it\n*regardless* to blocksize.  At least ext2, ext3 and reiserfs interpret\n(i_size \u003c biggest block) condition as error.  Fsck will complain about\nwrong i_size.  Then fsck will fix the error by changing i_size according\nto the biggest block.  This is bad because this blocks contain garbage\nfrom previous write attempt.  And result in data corruption.\n\n####TESTCASE_BEGIN\n$touch /mnt/test/BIG_FILE\n## at this moment /mnt/test/BIG_FILE size and blocks equal to zero\nopen(\"/mnt/test/BIG_FILE\", O_WRONLY|O_CREAT|O_DIRECT, 0666) \u003d 3\nwrite(3, \"aaaaaaaaaaaa\"..., 104857600) \u003d -1 ENOSPC (No space left on device)\n## size and block sould\u0027t be changed because write op failed.\n$stat /mnt/test/BIG_FILE\nFile: `/mnt/test/BIG_FILE\u0027\nSize: 0 Blocks: 110896 IO Block: 1024 regular empty file\n\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c^^^^^^^^^^^^^^^^^^^^^^^^^^^^^file size is less than biggest block idx\nDevice: fe07h/65031d Inode: 14 Links: 1\nAccess: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)\nAccess: 2007-01-24 20:03:38.000000000 +0300\nModify: 2007-01-24 20:03:38.000000000 +0300\nChange: 2007-01-24 20:03:39.000000000 +0300\n\n#fsck.ext3 -f /dev/VG/test\ne2fsck 1.39 (29-May-2006)\nPass 1: Checking inodes, blocks, and sizes\nInode 14, i_size is 0, should be 56556544. Fix\u003cy\u003e? yes\nPass 2: Checking directory structure\n....\n#####TESTCASE_ENDdiff --git a/fs/direct-io.c b/fs/direct-io.c\nindex af0558d..4e88bea 100644\n\n[akpm@linux-foundation.org: use i_size_read()]\nSigned-off-by: Dmitri Monakhov \u003cdmonakhov@openvz.org\u003e\nCc: Zach Brown \u003czach.brown@oracle.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "09f445e7f5107c91be12ed386350de6cd055e0a4",
      "tree": "4a1114bb896f51e18efbdc05d57ec358abc5aced",
      "parents": [
        "01dbe5c9b1004dab045cb7f38428258ca9cddc02"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jan 06 14:40:03 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:06 2009 -0800"
      },
      "message": "mm: kill zone_is_near_oom()\n\nzone_is_near_oom() is unused.\n\nSigned-off-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": "01dbe5c9b1004dab045cb7f38428258ca9cddc02",
      "tree": "526bba2afd30a7a58e47597f0ab9255a37a21d55",
      "parents": [
        "a79311c14eae4bb946a97af25f3e1b17d625985d"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jan 06 14:40:02 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:06 2009 -0800"
      },
      "message": "vmscan: improve reclaim throughput to bail out patch\n\nThe vmscan bail out patch move nr_reclaimed variable to struct\nscan_control.  Unfortunately, indirect access can easily happen cache\nmiss.\n\nif heavy memory pressure happend, that\u0027s ok.\ncache miss already plenty. it is not observable.\n\nbut, if memory pressure is lite, performance degression is obserbable.\n\nI compared following three pattern (it was mesured 10 times each)\n\nhackbench 125 process 3000\nhackbench 130 process 3000\nhackbench 135 process 3000\n\n            2.6.28-rc6                       bail-out\n\n\t125\t130\t135\t\t125\t130\t135\n      \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\t71.866\t75.86\t81.274\t\t93.414\t73.254\t193.382\n\t74.145\t78.295\t77.27\t\t74.897\t75.021\t80.17\n\t70.305\t77.643\t75.855\t\t70.134\t77.571\t79.896\n\t74.288\t73.986\t75.955\t\t77.222\t78.48\t80.619\n\t72.029\t79.947\t78.312\t\t75.128\t82.172\t79.708\n\t71.499\t77.615\t77.042\t\t74.177\t76.532\t77.306\n\t76.188\t74.471\t83.562\t\t73.839\t72.43\t79.833\n\t73.236\t75.606\t78.743\t\t76.001\t76.557\t82.726\n\t69.427\t77.271\t76.691\t\t76.236\t79.371\t103.189\n\t72.473\t76.978\t80.643\t\t69.128\t78.932\t75.736\n\navg\t72.545\t76.767\t78.534\t\t76.017\t77.03\t93.256\nstd\t1.89\t1.71\t2.41\t\t6.29\t2.79\t34.16\nmin\t69.427\t73.986\t75.855\t\t69.128\t72.43\t75.736\nmax\t76.188\t79.947\t83.562\t\t93.414\t82.172\t193.382\n\nabout 4-5% degression.\n\nThen, this patch introduces a temporary local variable.\n\nresult:\n\n            2.6.28-rc6                       this patch\n\nnum\t125\t130\t135\t\t125\t130\t135\n      \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\t71.866\t75.86\t81.274\t\t67.302\t68.269\t77.161\n\t74.145\t78.295\t77.27   \t72.616\t72.712\t79.06\n\t70.305\t77.643\t75.855  \t72.475\t75.712\t77.735\n\t74.288\t73.986\t75.955  \t69.229\t73.062\t78.814\n\t72.029\t79.947\t78.312  \t71.551\t74.392\t78.564\n\t71.499\t77.615\t77.042  \t69.227\t74.31\t78.837\n\t76.188\t74.471\t83.562  \t70.759\t75.256\t76.6\n\t73.236\t75.606\t78.743  \t69.966\t76.001\t78.464\n\t69.427\t77.271\t76.691  \t69.068\t75.218\t80.321\n\t72.473\t76.978\t80.643  \t72.057\t77.151\t79.068\n\navg\t72.545\t76.767\t78.534 \t\t70.425\t74.2083\t78.462\nstd \t1.89\t1.71\t2.41    \t1.66\t2.34\t1.00\nmin \t69.427\t73.986\t75.855  \t67.302\t68.269\t76.6\nmax \t76.188\t79.947\t83.562  \t72.616\t77.151\t80.321\n\nOK. the degression is disappeared.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a79311c14eae4bb946a97af25f3e1b17d625985d",
      "tree": "f12391481dfd7a1c3ffcff75bd04d3a88957d16c",
      "parents": [
        "ebdd4aea8d736e3b5ce27ab0a26860c9fded341b"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Tue Jan 06 14:40:01 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:06 2009 -0800"
      },
      "message": "vmscan: bail out of direct reclaim after swap_cluster_max pages\n\nWhen the VM is under pressure, it can happen that several direct reclaim\nprocesses are in the pageout code simultaneously.  It also happens that\nthe reclaiming processes run into mostly referenced, mapped and dirty\npages in the first round.\n\nThis results in multiple direct reclaim processes having a lower\npageout priority, which corresponds to a higher target of pages to\nscan.\n\nThis in turn can result in each direct reclaim process freeing\nmany pages.  Together, they can end up freeing way too many pages.\n\nThis kicks useful data out of memory (in some cases more than half\nof all memory is swapped out).  It also impacts performance by\nkeeping tasks stuck in the pageout code for too long.\n\nA 30% improvement in hackbench has been observed with this patch.\n\nThe fix is relatively simple: in shrink_zone() we can check how many\npages we have already freed, direct reclaim tasks break out of the\nscanning loop if they have already freed enough pages and have reached\na lower priority level.\n\nWe do not break out of shrink_zone() when priority \u003d\u003d DEF_PRIORITY,\nto ensure that equal pressure is applied to every zone in the common\ncase.\n\nHowever, in order to do this we do need to know how many pages we already\nfreed, so move nr_reclaimed into scan_control.\n\nakpm: a historical interlude...\n\nWe tried this in 2004:\n\n:commit e468e46a9bea3297011d5918663ce6d19094cf87\n:Author: akpm \u003cakpm\u003e\n:Date:   Thu Jun 24 15:53:52 2004 +0000\n:\n:[PATCH] vmscan.c: dont reclaim too many pages\n:\n:    The shrink_zone() logic can, under some circumstances, cause far too many\n:    pages to be reclaimed.  Say, we\u0027re scanning at high priority and suddenly hit\n:    a large number of reclaimable pages on the LRU.\n:    Change things so we bale out when SWAP_CLUSTER_MAX pages have been reclaimed.\n\nAnd we reverted it in 2006:\n\n:commit 210fe530305ee50cd889fe9250168228b2994f32\n:Author: Andrew Morton \u003cakpm@osdl.org\u003e\n:Date:   Fri Jan 6 00:11:14 2006 -0800\n:\n:    [PATCH] vmscan: balancing fix\n:\n:    Revert a patch which went into 2.6.8-rc1.  The changelog for that patch was:\n:\n:      The shrink_zone() logic can, under some circumstances, cause far too many\n:      pages to be reclaimed.  Say, we\u0027re scanning at high priority and suddenly\n:      hit a large number of reclaimable pages on the LRU.\n:\n:      Change things so we bale out when SWAP_CLUSTER_MAX pages have been\n:      reclaimed.\n:\n:    Problem is, this change caused significant imbalance in inter-zone scan\n:    balancing by truncating scans of larger zones.\n:\n:    Suppose, for example, ZONE_HIGHMEM is 10x the size of ZONE_NORMAL.  The zone\n:    balancing algorithm would require that if we\u0027re scanning 100 pages of\n:    ZONE_HIGHMEM, we should scan 10 pages of ZONE_NORMAL.  But this logic will\n:    cause the scanning of ZONE_HIGHMEM to bale out after only 32 pages are\n:    reclaimed.  Thus effectively causing smaller zones to be scanned relatively\n:    harder than large ones.\n:\n:    Now I need to remember what the workload was which caused me to write this\n:    patch originally, then fix it up in a different way...\n\nAnd we haven\u0027t demonstrated that whatever problem caused that reversion is\nnot being reintroduced by this change in 2008.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\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"
    }
  ],
  "next": "ebdd4aea8d736e3b5ce27ab0a26860c9fded341b"
}
