)]}'
{
  "log": [
    {
      "commit": "85f7f6c0edb8414053d788229c97d5ecff21efab",
      "tree": "214ed1f1ed2d026280ca46728948f59c0cb5f528",
      "parents": [
        "574b3725e327531c70361d1a10b8dc8dd2b93590"
      ],
      "author": {
        "name": "Jim Cromie",
        "email": "jim.cromie@gmail.com",
        "time": "Mon Dec 19 17:13:21 2011 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Jan 24 12:50:36 2012 -0800"
      },
      "message": "dynamic_debug: process multiple debug-queries on a line\n\nInsert ddebug_exec_queries() in place of ddebug_exec_query().  It\nsplits the query string on [;\\n], and calls ddebug_exec_query() on\neach.  All queries are processed independent of errors, allowing a\nquery to fail, for example when a module is not installed.  Empty\nlines and comments are skipped.  Errors are counted, and the last\nerror seen (negative) or the number of callsites found (0 or positive)\nis returned.  Return code checks are altered accordingly.\n\nWith this, multiple queries can be given in ddebug_query, allowing\nmore selective enabling of callsites.  As a side effect, a set of\ncommands can be batched in:\n\n\tcat cmd-file \u003e $DBGMT/dynamic_debug/control\n\nWe dont want a ddebug_query syntax error to kill the dynamic debug\nfacility, so dynamic_debug_init() zeros ddebug_exec_queries()\u0027s return\ncode after logging the appropriate message, so that ddebug tables are\npreserved and $DBGMT/dynamic_debug/control file is created.  This\nwould be appropriate even without accepting multiple queries.\n\nThis patch also alters ddebug_change() to return number of callsites\nmatched (which typically is the same as number of callsites changed).\nddebug_exec_query() also returns the number found, or a negative value\nif theres a parse error on the query.\n\nSplitting on [;\\n] prevents their use in format-specs, but selecting\ncallsites on punctuation is brittle anyway, meaningful and selective\nsubstrings are more typical.\n\nNote: splitting queries on \u0027;\u0027 before handling trailing #comments\nmeans that a \u0027;\u0027 also terminates a comment, and text after the \u0027;\u0027 is\ntreated as another query.  This trailing query will almost certainly\nresult in a parse error and thus have no effect other than the error\nmessage.  The double corner case with unexpected results is:\n\n     ddebug_query\u003d\"func foo +p # enable foo ; +p\"\n\nSigned-off-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "574b3725e327531c70361d1a10b8dc8dd2b93590",
      "tree": "a68938a8ef462426a34bb002ee697e2e6ce26df7",
      "parents": [
        "2b6783191da7211c88f98eb1a2bd2027bff36e30"
      ],
      "author": {
        "name": "Jim Cromie",
        "email": "jim.cromie@gmail.com",
        "time": "Mon Dec 19 17:13:16 2011 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Jan 24 12:50:36 2012 -0800"
      },
      "message": "dynamic_debug: factor vpr_info_dq out of ddebug_parse_query\n\nFactor pr_info(query) out of ddebug_parse_query, into vpr_info_dq(),\nfor reuse later.  Also change the printed labels: file, func to agree\nwith the query-spec keywords accepted in the control file.  Pass \"\"\nwhen string is null, to avoid \"(null)\" output from sprintf.  For\nformat print, use precision to skip last char, assuming its \u0027\\n\u0027, no\ngreat harm if not, its a debug msg.\n\nSigned-off-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "2b6783191da7211c88f98eb1a2bd2027bff36e30",
      "tree": "3227bbc5c9c187b6dbaa133a6f7e2e4364942594",
      "parents": [
        "7281491c594e7b8501eb5dfcf6cd3724f8a1b5b0"
      ],
      "author": {
        "name": "Jim Cromie",
        "email": "jim.cromie@gmail.com",
        "time": "Mon Dec 19 17:13:12 2011 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Jan 24 12:48:55 2012 -0800"
      },
      "message": "dynamic_debug: add trim_prefix() to provide source-root relative paths\n\ntrim_prefix(path) skips past the absolute source path root, and\nreturns the pointer to the relative path from there.  It is used to\nshorten the displayed path in $DBGMT/dynamic_debug/control via\nddebug_proc_show(), and in ddebug_change() to allow relative filenames\nto be used in applied queries.  For example:\n\n  ~# echo file kernel/freezer.c +p \u003e $DBGMT/dynamic_debug/control\n\n  kernel/freezer.c:128 [freezer]cancel_freezing p \"  clean up: %s\\012\"\n\ntrim_prefix(path) insures common prefix before trimming it, so\nout-of-tree module paths are shown as full absolute paths.\n\nSigned-off-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "7281491c594e7b8501eb5dfcf6cd3724f8a1b5b0",
      "tree": "7f99ca473ffc79baf0cb96b6dfb33de831af494f",
      "parents": [
        "8bd6026e88cb2eb1e60ee40c7a1a0786b2db6623"
      ],
      "author": {
        "name": "Jim Cromie",
        "email": "jim.cromie@gmail.com",
        "time": "Mon Dec 19 17:13:07 2011 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Jan 24 12:48:55 2012 -0800"
      },
      "message": "dynamic_debug: enlarge command/query write buffer\n\nCurrent query write buffer is 256 bytes, on stack.  In comparison, the\nddebug_query boot-arg is 1024.  Allocate the buffer off heap, and\nenlarge it to 4096 bytes, big enough for ~100 queries (at 40 bytes\neach), and error out if not.  This makes it play nicely with large\nquery sets (to be added later).  The buffer should be enough for most\nuses, and others should probably be split into subsets.\n\n[jbaron@redhat.com: changed USER_BUF_PAGE from 4095 -\u003e 4096 ]\nSigned-off-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "8bd6026e88cb2eb1e60ee40c7a1a0786b2db6623",
      "tree": "ba8a4a4bab38500b8e6434a1a880755a2a867fc6",
      "parents": [
        "e703ddae383abb24b1c7f363cb0df7e78a44ea45"
      ],
      "author": {
        "name": "Jim Cromie",
        "email": "jim.cromie@gmail.com",
        "time": "Mon Dec 19 17:13:03 2011 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Jan 24 12:48:54 2012 -0800"
      },
      "message": "dynamic_debug: chop off comments in ddebug_tokenize\n\nIf a token begins with #, the remainder of query string is a comment,\nso drop it.  Doing it here avoids \u0027#\u0027 in quoted strings.\n\nSigned-off-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "b5b78f83854af15e04c63fdbc6efed9355afbe8f",
      "tree": "c0f3a85ec25beace9288e6cc9d07723ffeb989fe",
      "parents": [
        "820874c75ea0d3a9c22d69d6eaad42a279d6756c"
      ],
      "author": {
        "name": "Jim Cromie",
        "email": "jim.cromie@gmail.com",
        "time": "Mon Dec 19 17:12:54 2011 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Jan 24 12:48:54 2012 -0800"
      },
      "message": "dynamic_debug: early return if _ddebug table is empty\n\nIf _ddebug table is empty (in a CONFIG_DYNAMIC_DEBUG build this\nshouldn\u0027t happen), then warn (error?) and return early.  This skips\nempty table scan and parsing of setup-string, including the pr_info\ncall noting the parse.  By inspection, copy return-code handling from\n1st ddebug_add_module() callsite to 2nd.\n\nSigned-off-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "820874c75ea0d3a9c22d69d6eaad42a279d6756c",
      "tree": "96cc2880f8bccb0d6d76e6eb518a2cfd533f50e4",
      "parents": [
        "5ca7d2a6c5e4f24dfe39e8383c6d32e61d95d16a"
      ],
      "author": {
        "name": "Jim Cromie",
        "email": "jim.cromie@gmail.com",
        "time": "Mon Dec 19 17:12:49 2011 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Jan 24 12:48:53 2012 -0800"
      },
      "message": "dynamic_debug: tighten up error checking on debug queries\n\nIssue error when a match-spec is given multiple times in a rule.\nPrevious code kept last one, but was silent about it.  Docs imply only\none is allowed by saying match-specs are ANDed together, given that\nmodule M cannot match both A and B.  Also error when last_line \u003c 1st_line.\n\nSigned-off-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "5ca7d2a6c5e4f24dfe39e8383c6d32e61d95d16a",
      "tree": "9825251f6cd4a7027e8235a73d6a6c8654a6afed",
      "parents": [
        "d6a238d25014d0ff918410d73e2a6300bca5d1f1"
      ],
      "author": {
        "name": "Jim Cromie",
        "email": "jim.cromie@gmail.com",
        "time": "Mon Dec 19 17:12:44 2011 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Jan 24 12:48:52 2012 -0800"
      },
      "message": "dynamic_debug: describe_flags with \u0027\u003d[pmflt_]*\u0027\n\nChange describe_flags() to emit \u0027\u003d[pmflt_]+\u0027 for current callsite\nflags, or just \u0027\u003d_\u0027 when they\u0027re disabled.  Having \u0027\u003d\u0027 in output\nallows a more selective grep expression; in contrast \u0027-\u0027 may appear\nin filenames, line-ranges, and format-strings.  \u0027\u003d\u0027 also has better\nmnemonics, saying; \"the current setting is equal to \u003cflags\u003e\".\n\nThis allows grep \"\u003d_\" \u003cdbgfs\u003e/dynamic_debug/control to see disabled\ncallsites while avoiding the many occurrences of \" \u003d \" seen in format\nstrings.\n\nEnlarge flagsbufs to handle additional flag char, and alter\nddebug_parse_flags() to allow flags\u003d0, so that user can turn off all\ndebug flags via:\n\n  ~# echo \u003d_ \u003e \u003cdbgfs\u003e/dynamic_debug/control\n\nSigned-off-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "d6a238d25014d0ff918410d73e2a6300bca5d1f1",
      "tree": "c7abb490f1ff36b0336ca6d8206e4a772bd4ff2f",
      "parents": [
        "ae27f86a21eb9a9e005f06b126eb88662ba4f940"
      ],
      "author": {
        "name": "Jim Cromie",
        "email": "jim.cromie@gmail.com",
        "time": "Mon Dec 19 17:12:39 2011 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Jan 24 12:46:46 2012 -0800"
      },
      "message": "dynamic_debug: drop explicit !\u003dNULL checks\n\nConvert \u0027if (x !\u003dNULL)\u0027 checks into \u0027if (x)\u0027.\n\nSigned-off-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "ae27f86a21eb9a9e005f06b126eb88662ba4f940",
      "tree": "365183b662741c4ec797792faca06fa5b963b8a8",
      "parents": [
        "bc757f6f5bf4e9251bbc1a3419c94ffe9fd3e2ee"
      ],
      "author": {
        "name": "Jim Cromie",
        "email": "jim.cromie@gmail.com",
        "time": "Mon Dec 19 17:12:34 2011 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Jan 24 12:46:45 2012 -0800"
      },
      "message": "dynamic_debug: pr_err() call should not depend upon verbosity\n\nIssue keyword/parsing errors even w/o verbose set;\nuncover otherwize mysterious non-functionality.\n\nSigned-off-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "bc757f6f5bf4e9251bbc1a3419c94ffe9fd3e2ee",
      "tree": "593f673d80d7cf6981b346dc5d5ac2e6ba5d5c9a",
      "parents": [
        "74df138d508eb35e8b929e165e5403cfbb46a0c5"
      ],
      "author": {
        "name": "Jim Cromie",
        "email": "jim.cromie@gmail.com",
        "time": "Mon Dec 19 17:12:29 2011 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Jan 24 12:46:45 2012 -0800"
      },
      "message": "dynamic_debug: replace strcpy with strlcpy, in ddebug_setup_query()\n\nReplace strcpy with strlcpy, and add define for the size constant.\n\n[jbaron@redhat.com: Use DDEBUG_STRING_SIZE for overflow check]\nSigned-off-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "74df138d508eb35e8b929e165e5403cfbb46a0c5",
      "tree": "6d1951d2c53e39be5b0e0ebe4edcecc785634a52",
      "parents": [
        "b558c96ffa53f4b3dd52b774e4fb7a52982ab52b"
      ],
      "author": {
        "name": "Jim Cromie",
        "email": "jim.cromie@gmail.com",
        "time": "Mon Dec 19 17:12:24 2011 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Jan 24 12:46:45 2012 -0800"
      },
      "message": "dynamic_debug: change verbosity at runtime\n\nAllow changing dynamic_debug verbosity at run-time, to ease debugging\nof ddebug queries as you add them, improving usability.\n\nat boot time: dynamic_debug.verbose\u003d1\nat runtime:\nroot@voyage:~# echo 1 \u003e /sys/module/dynamic_debug/parameters/verbose\n\nSigned-off-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "87e6f968339bcdda56b39572c7e63331192296a0",
      "tree": "f6e6b4afd8fa9d94540d844927e41f3c01a79f7d",
      "parents": [
        "07100be7e0495ff39237d48886bca7396c873db7"
      ],
      "author": {
        "name": "Jim Cromie",
        "email": "jim.cromie@gmail.com",
        "time": "Mon Dec 19 17:11:13 2011 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Jan 24 12:46:44 2012 -0800"
      },
      "message": "dynamic_debug: drop enabled field from struct _ddebug, use _DPRINTK_FLAGS_PRINT\n\nCurrently any enabled dynamic-debug flag on a pr_debug callsite will\nenable printing, even if _DPRINTK_FLAGS_PRINT is off.  Checking print\nflag directly allows \"-p\" to disable callsites without fussing with\nother flags, so the following disables everything, without altering\nflags user may have set:\n\n\techo -p \u003e $DBGFS/dynamic_debug/control\n\nSigned-off-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "07100be7e0495ff39237d48886bca7396c873db7",
      "tree": "a4348be0f28063e0f1a986aa3efe60f8bc00f09f",
      "parents": [
        "524b6c5b39b931311dfe5a2f5abae2f5c9731676"
      ],
      "author": {
        "name": "Jim Cromie",
        "email": "jim.cromie@gmail.com",
        "time": "Mon Dec 19 17:11:09 2011 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Jan 24 12:46:43 2012 -0800"
      },
      "message": "dynamic_debug: fix whitespace complaints from scripts/cleanfile\n\nStyle cleanups.\n\nSigned-off-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "2d03423b2319cc854adeb28a03f65de5b5e0ab63",
      "tree": "20d9ddb661f3247f5dfaa6da8212123ed14a24c4",
      "parents": [
        "59e52534172d845ebffb0d7e85fc56fb7b857051",
        "2bbcb8788311a40714b585fc11b51da6ffa2ab92"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 25 12:13:59 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 25 12:13:59 2011 +0200"
      },
      "message": "Merge branch \u0027driver-core-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core\n\n* \u0027driver-core-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (38 commits)\n  mm: memory hotplug: Check if pages are correctly reserved on a per-section basis\n  Revert \"memory hotplug: Correct page reservation checking\"\n  Update email address for stable patch submission\n  dynamic_debug: fix undefined reference to `__netdev_printk\u0027\n  dynamic_debug: use a single printk() to emit messages\n  dynamic_debug: remove num_enabled accounting\n  dynamic_debug: consolidate repetitive struct _ddebug descriptor definitions\n  uio: Support physical addresses \u003e32 bits on 32-bit systems\n  sysfs: add unsigned long cast to prevent compile warning\n  drivers: base: print rejected matches with DEBUG_DRIVER\n  memory hotplug: Correct page reservation checking\n  memory hotplug: Refuse to add unaligned memory regions\n  remove the messy code file Documentation/zh_CN/SubmitChecklist\n  ARM: mxc: convert device creation to use platform_device_register_full\n  new helper to create platform devices with dma mask\n  docs/driver-model: Update device class docs\n  docs/driver-model: Document device.groups\n  kobj_uevent: Ignore if some listeners cannot handle message\n  dynamic_debug: make netif_dbg() call __netdev_printk()\n  dynamic_debug: make netdev_dbg() call __netdev_printk()\n  ...\n"
    },
    {
      "commit": "0feefd97861f9b38accf09a12f8d323f2705e917",
      "tree": "ae126a479effdf41d3995d82a8939c36d4511491",
      "parents": [
        "431625dac14de7152235f2f9934d70a9b0f9df83"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Tue Oct 04 14:13:22 2011 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Oct 18 11:22:01 2011 -0700"
      },
      "message": "dynamic_debug: fix undefined reference to `__netdev_printk\u0027\n\nDynamic debug recently added support for netdev_printk.  It uses\n__netdev_printk() to support this functionality.  However, when CONFIG_NET\nis not set, we get the following error:\n\nlib/built-in.o: In function `__dynamic_netdev_dbg\u0027:\n(.text+0x9fda): undefined reference to `__netdev_printk\u0027\n\nFix this by making the call to netdev_printk() contingent upon CONFIG_NET.\n We could have fixed this by defining netdev_printk() to a \u0027no-op\u0027 in the\n!CONFIG_NET case.  However, this is not consistent with how the networking\nlayer uses netdev_printk.  For example, CONFIG_NET is not set,\nnetdev_printk() does not have a \u0027no-op\u0027 definition defined.\n\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nAcked-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@google.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "431625dac14de7152235f2f9934d70a9b0f9df83",
      "tree": "8c08388a455e5fba84596f90942c756765967b47",
      "parents": [
        "bd22c01e845ad22a89ae25005b38d28e6690c27a"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Tue Oct 04 14:13:19 2011 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Oct 18 11:22:00 2011 -0700"
      },
      "message": "dynamic_debug: use a single printk() to emit messages\n\nWe were using KERN_CONT to combine messages with their prefix.  However,\nKERN_CONT is not smp safe, in the sense that it can interleave messages.\nThis interleaving can result in printks coming out at the wrong loglevel.\nWith the high frequency of printks that dynamic debug can produce this is\nnot desirable.\n\nSo make dynamic_emit_prefix() fill a char buf[64] instead of doing a\nprintk directly.  If we enable printing out of function, module, line, or\npid info, they are placed in this 64 byte buffer.  In my testing 64 bytes\nwas enough size to fulfill all requests.  Even if it\u0027s not, we can match\nup the printk itself to see where it\u0027s from, so to me this is no big deal.\n\n[akpm@linux-foundation.org: convert dangerous macro to C]\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@google.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "bd22c01e845ad22a89ae25005b38d28e6690c27a",
      "tree": "8bb242d3df9492277be2e94e91afe8af77086c02",
      "parents": [
        "07613b0b5ef8570033aa806d1731dce599862223"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Tue Oct 04 14:13:17 2011 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Oct 18 11:22:00 2011 -0700"
      },
      "message": "dynamic_debug: remove num_enabled accounting\n\nThe num_enabled accounting isn\u0027t actually used anywhere - remove them.\n\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@google.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "c9bab38f70414918d414a1672d908f6447880075",
      "tree": "e5ddefa8ea95dab9dcff2714a4fa1d0553cc5761",
      "parents": [
        "699324871fcc3650f2023c5e36cb119a92d7894b"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Mon Aug 01 22:50:19 2011 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Sep 15 14:57:05 2011 +0200"
      },
      "message": "Remove unneeded version.h include from lib/\n\nThis patch removes an unneeded include of linux/version.h from\nlib/dynamic_debug.c - identified by \u0027make versioncheck\u0027.\nThis is the only file in lib/ with this issue.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "ffa10cb47a94c9b456c83301c8047e2a898dd409",
      "tree": "dd0fb674235c51d54fd80540420c23002795048e",
      "parents": [
        "ac0ac38f68be73b92dc390ceace50a0d143d76ae"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Thu Aug 11 14:36:48 2011 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Aug 22 18:23:06 2011 -0700"
      },
      "message": "dynamic_debug: make netdev_dbg() call __netdev_printk()\n\nPreviously, if dynamic debug was enabled netdev_dbg() was using\ndynamic_dev_dbg() to print out the underlying msg. Fix this by making\nsure netdev_dbg() uses __netdev_printk().\n\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "4ad275e5cb576fa4e3e12597cb81eed0d500416d",
      "tree": "4f7ac61db1914a8e5c9e8063aca806e137897fc8",
      "parents": [
        "5b2ebce4821c66dd33d15d076ee264b4eb86fea3"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Thu Aug 11 14:36:33 2011 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Aug 22 18:23:05 2011 -0700"
      },
      "message": "dynamic_debug: Convert printks to pr_\u003clevel\u003e\n\nAdd pr_fmt(fmt) with __func__.\nConverts \"ddebug:\" prefix to \"dynamic_debug:\".\n\nMost likely the if (verbose) outputs could\nalso be converted from pr_info to pr_debug.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "5b2ebce4821c66dd33d15d076ee264b4eb86fea3",
      "tree": "4d5aeb3c6a78a1ddf4cf7a59faca3d67be859180",
      "parents": [
        "6c2140ee0ebf91258f93d3019922b5f520a18d88"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Thu Aug 11 14:36:29 2011 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Aug 22 18:23:04 2011 -0700"
      },
      "message": "dynamic_debug: Remove uses of KERN_CONT in dynamic_emit_prefix\n\nMultiple printks with KERN_CONT can be interleaved by\nother printks.  Reduce the likelihood of that interleaving\nby consolidating multiple calls to printk.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "6c2140ee0ebf91258f93d3019922b5f520a18d88",
      "tree": "69355a873ffa0632e192fafea92158d5259738c5",
      "parents": [
        "cbc4663552ee476f57933920d782222d94878e7e"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Thu Aug 11 14:36:25 2011 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Aug 22 18:23:04 2011 -0700"
      },
      "message": "dynamic_debug: Consolidate prefix output to single routine\n\nAdding dynamic_dev_dbg duplicated prefix output.\nConsolidate that output to a single routine.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "cbc4663552ee476f57933920d782222d94878e7e",
      "tree": "7fa60ec28e53114d239137b7cea65c66da15040c",
      "parents": [
        "25b8a88c10770e8c3f14bf2e222691dc6e79de78"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Thu Aug 11 14:36:21 2011 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Aug 22 18:23:04 2011 -0700"
      },
      "message": "dynamic_debug: Add __dynamic_dev_dbg\n\nUnlike dynamic_pr_debug, dynamic uses of dev_dbg can not\ncurrently add task_pid/KBUILD_MODNAME/__func__/__LINE__\nto selected debug output.\n\nAdd a new function similar to dynamic_pr_debug to\noptionally emit these prefixes.\n\nCc: Aloisio Almeida \u003caloisio.almeida@openbossa.org\u003e\nNoticed-by: Aloisio Almeida \u003caloisio.almeida@openbossa.org\u003e\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "e8d9792aa514e49bf618713987c393d93babc2c5",
      "tree": "f348c8f70a62f05a4ccb56830f18862c2f12e161",
      "parents": [
        "c47dda7d179dde17697c3f839f150fecaf6770cb"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Feb 03 15:59:58 2011 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Feb 03 15:59:58 2011 -0800"
      },
      "message": "dynamic_debug: add #include \u003clinux/sched.h\u003e\n\nThis fixes a build breakage caused by\n8ba6ebf583f12da32036fc0f003ab4043e54692e \"Dynamic debug: Add more flags\"\n\nCc: Bart Van Assche \u003cbvanassche@acm.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "8ba6ebf583f12da32036fc0f003ab4043e54692e",
      "tree": "8fdd980d30fea50722b28fb5d782236174b2d188",
      "parents": [
        "9b99b7f84ea520d2ecaf816bde247a1ad07e454e"
      ],
      "author": {
        "name": "Bart Van Assche",
        "email": "bvanassche@acm.org",
        "time": "Sun Jan 23 17:17:24 2011 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Feb 03 15:39:16 2011 -0800"
      },
      "message": "Dynamic debug: Add more flags\n\nAdd flags that allow the user to specify via debugfs whether or not the\nmodule name, function name, line number and/or thread ID have to be\nincluded in the printed message.\n\nSigned-off-by: Bart Van Assche \u003cbvanassche@acm.org\u003e\nCc: Greg Banks \u003cgnb@fmeh.org\u003e\nCc: Konrad Rzeszutek Wilk \u003ckonrad@darnok.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "2d75af2f2a7a6103a6d539a492fe81deacabde44",
      "tree": "283f6f7acc28936e25656502e77e10909fde7d6f",
      "parents": [
        "870915e047a2da695be118d32dd5a900f0c3e933"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Fri Jan 07 13:36:58 2011 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Jan 07 23:36:59 2011 -0500"
      },
      "message": "dynamic debug: Fix build issue with older gcc\n\nOn older gcc (3.3) dynamic debug fails to compile:\n\ninclude/net/inet_connection_sock.h: In function `inet_csk_reset_xmit_timer\u0027:\ninclude/net/inet_connection_sock.h:236: error: duplicate label declaration `do_printk\u0027\ninclude/net/inet_connection_sock.h:219: error: this is a previous declaration\ninclude/net/inet_connection_sock.h:236: error: duplicate label declaration `out\u0027\ninclude/net/inet_connection_sock.h:219: error: this is a previous declaration\ninclude/net/inet_connection_sock.h:236: error: duplicate label `do_printk\u0027\ninclude/net/inet_connection_sock.h:236: error: duplicate label `out\u0027\n\nFix, by reverting the usage of JUMP_LABEL() in dynamic debug for now.\n\nCc: \u003cstable@kernel.org\u003e\nReported-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nTested-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "b9da0571050c09863e59f94d0b8594a290d61b88",
      "tree": "3632c4fee768db9a27a5c872bd42133692e2f3d0",
      "parents": [
        "f8cae0f03f75adb54b1d48ddbc90f84a1f5de186",
        "5abd935661e01289ba143c3b2c1ba300c65bcc5f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 19:36:42 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 19:36:42 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (31 commits)\n  driver core: Display error codes when class suspend fails\n  Driver core: Add section count to memory_block struct\n  Driver core: Add mutex for adding/removing memory blocks\n  Driver core: Move find_memory_block routine\n  hpilo: Despecificate driver from iLO generation\n  driver core: Convert link_mem_sections to use find_memory_block_hinted.\n  driver core: Introduce find_memory_block_hinted which utilizes kset_find_obj_hinted.\n  kobject: Introduce kset_find_obj_hinted.\n  driver core: fix build for CONFIG_BLOCK not enabled\n  driver-core: base: change to new flag variable\n  sysfs: only access bin file vm_ops with the active lock\n  sysfs: Fail bin file mmap if vma close is implemented.\n  FW_LOADER: fix kconfig dependency warning on HOTPLUG\n  uio: Statically allocate uio_class and use class .dev_attrs.\n  uio: Support 2^MINOR_BITS minors\n  uio: Cleanup irq handling.\n  uio: Don\u0027t clear driver data\n  uio: Fix lack of locking in init_uio_class\n  SYSFS: Allow boot time switching between deprecated and modern sysfs layout\n  driver core: remove CONFIG_SYSFS_DEPRECATED_V2 but keep it for block devices\n  ...\n"
    },
    {
      "commit": "6a5c083de2f5fbf89a4b0a251be2c2205434d7ea",
      "tree": "72f738d63e35749da1d79f534494cff10e644208",
      "parents": [
        "a648ec05bb950fae2f35d0490ddd6cf15010af72"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Fri Aug 06 16:11:03 2010 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 22 10:16:42 2010 -0700"
      },
      "message": "Dynamic Debug: Initialize dynamic debug earlier via arch_initcall\n\nHaving the ddebug_query\u003d boot parameter it makes sense to set up\ndynamic debug as soon as possible.\n\nI expect sysfs files cannot be set up via an arch_initcall, because\nthis one is even before fs_initcall. Therefore I splitted the\ndynamic_debug_init function into an early one and a later one providing\n/sys/../dynamic_debug/control file.\n\nPossibly dynamic_debug can be initialized even earlier, not sure whether\nthis still makes sense then. I picked up arch_initcall as it covers\nquite a lot already.\n\nDynamic debug needs to allocate memory, therefore it\u0027s not easily possible to\nset it up even before the command line gets parsed.\nTherefore the boot param query string is stored in a temp string which is\napplied when dynamic debug gets set up.\n\nThis has been tested with ddebug_query\u003d\"file ec.c +p\"\nand I could retrieve pr_debug() messages early at boot during ACPI setup:\nACPI: EC: Look up EC in DSDT\nACPI: EC: ---\u003e status \u003d 0x08\nACPI: EC: transaction start\nACPI: EC: \u003c--- command \u003d 0x80\nACPI: EC: ~~~\u003e interrupt\nACPI: EC: ---\u003e status \u003d 0x08\nACPI: EC: \u003c--- data \u003d 0xa4\n...\nACPI: Interpreter enabled\nACPI: (supports S0 S3 S4 S5)\nACPI: Using IOAPIC for interrupt routing\nACPI: EC: ---\u003e status \u003d 0x00\nACPI: EC: transaction start\nACPI: EC: \u003c--- command \u003d 0x80\n\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nAcked-by: jbaron@redhat.com\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCC: linux-acpi@vger.kernel.org\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "a648ec05bb950fae2f35d0490ddd6cf15010af72",
      "tree": "cde3ca36db486e51d85c31619bf67f8d60215179",
      "parents": [
        "fd89cfb8718753459fcea3fe6103d19de5e86c9b"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Fri Aug 06 16:11:02 2010 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 22 10:16:42 2010 -0700"
      },
      "message": "Dynamic Debug: Introduce ddebug_query\u003d boot parameter\n\nDynamic debug lacks the ability to enable debug messages at boot time.\nOne could patch initramfs or service startup scripts to write to\n/sys/../dynamic_debug/control, but this sucks.\n\nThis patch makes it possible to pass a query in the same format one can\nwrite to /sys/../dynamic_debug/control via boot param.\nWhen dynamic debug gets initialized, this query will automatically be\napplied.\n\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nAcked-by: jbaron@redhat.com\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "fd89cfb8718753459fcea3fe6103d19de5e86c9b",
      "tree": "8e05f06fc4954d55b75ec8c8dfeacce3c198f264",
      "parents": [
        "f6f94e2ab1b33f0082ac22d71f66385a60d8157f"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Fri Aug 06 16:11:01 2010 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 22 10:16:42 2010 -0700"
      },
      "message": "Dynamic Debug: Split out query string parsing/setup from proc_write\n\nThe parsing and applying of dynamic debug strings is not only useful for\n/sys/../dynamic_debug/control write access, but can also be used for\nboot parameter parsing.\nThe boot parameter is introduced in a follow up patch.\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nAcked-by: jbaron@redhat.com\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "3b6e901f839f42afb40f614418df82c08b01320a",
      "tree": "04056f3347b926e9623c225acd496e39b9d1b85a",
      "parents": [
        "d580ff8699e8811a9af37e9de4dea375401bdeec"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Oct 14 21:10:38 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 19:58:56 2010 +0200"
      },
      "message": "jump_label: Use more consistent naming\n\nNow that there\u0027s still only a few users around, rename things to make\nthem more consistent.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20101014203625.448565169@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "52159d98be6f26c48f5e02c7ab3c9848a85979b5",
      "tree": "29ba759acd0a9fd82b796b9e965dab5ed9d30ce6",
      "parents": [
        "8f7b50c514206211cc282a4247f7b12f18dee674"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Fri Sep 17 11:09:17 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Sep 22 16:31:19 2010 -0400"
      },
      "message": "jump label: Convert dynamic debug to use jump labels\n\nConvert the \u0027dynamic debug\u0027 infrastructure to use jump labels.\n\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nLKML-Reference: \u003cb77627358cea3e27d7be4386f45f66219afb8452.1284733808.git.jbaron@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "ff49d74ad383f54041378144ca1a229ee9aeaa59",
      "tree": "6f37335e313c9a680db8d4e4ce00d17aa11a099b",
      "parents": [
        "e3668dd83ba5958429984286efbc3055be5344c4"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Sat Jul 03 13:07:35 2010 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 04 20:17:22 2010 -0700"
      },
      "message": "module: initialize module dynamic debug later\n\nWe should initialize the module dynamic debug datastructures\nonly after determining that the module is not loaded yet. This\nfixes a bug that introduced in 2.6.35-rc2, where when a trying\nto load a module twice, we also load it\u0027s dynamic printing data\ntwice which causes all sorts of nasty issues. Also handle\nthe dynamic debug cleanup later on failure.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e (removed a #ifdef)\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ea46c8f774f295c45fac48101d54be347d3d453b",
      "tree": "6a0bc2476e82be68b66cad2b77075e4f36beb1ea",
      "parents": [
        "0fa05599009ed36304d490064888d0252d656add"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Mon May 24 14:33:21 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:05 2010 -0700"
      },
      "message": "dynamic_debug: small cleanup in ddebug_proc_write()\n\nThis doesn\u0027t change behavior at all.  In the original code, if nwords was\nzero then ddebug_parse_query() would return -EINVAL, now we just do it\nearlier.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nAcked-by: Jason Baron \u003cjbaron@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": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "e7d2860b690d4f3bed6824757c540579638e3d1e",
      "tree": "84268ee28893256fd6a6a7e1d4474f61dbee74e7",
      "parents": [
        "84c95c9acf088c99d8793d78036b67faa5d0b851"
      ],
      "author": {
        "name": "André Goddard Rosa",
        "email": "andre.goddard@gmail.com",
        "time": "Mon Dec 14 18:01:06 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 15 08:53:32 2009 -0800"
      },
      "message": "tree-wide: convert open calls to remove spaces to skip_spaces() lib function\n\nMakes use of skip_spaces() defined in lib/string.c for removing leading\nspaces from strings all over the tree.\n\nIt decreases lib.a code size by 47 bytes and reuses the function tree-wide:\n   text    data     bss     dec     hex filename\n  64688     584     592   65864   10148 (TOTALS-BEFORE)\n  64641     584     592   65817   10119 (TOTALS-AFTER)\n\nAlso, while at it, if we see (*str \u0026\u0026 isspace(*str)), we can be sure to\nremove the first condition (*str) as the second one (isspace(*str)) also\nevaluates to 0 whenever *str \u003d\u003d 0, making it redundant. In other words,\n\"a char equals zero is never a space\".\n\nJulia Lawall tried the semantic patch (http://coccinelle.lip6.fr) below,\nand found occurrences of this pattern on 3 more files:\n    drivers/leds/led-class.c\n    drivers/leds/ledtrig-timer.c\n    drivers/video/output.c\n\n@@\nexpression str;\n@@\n\n( // ignore skip_spaces cases\nwhile (*str \u0026\u0026  isspace(*str)) { \\(str++;\\|++str;\\) }\n|\n- *str \u0026\u0026\nisspace(*str)\n)\n\nSigned-off-by: André Goddard Rosa \u003candre.goddard@gmail.com\u003e\nCc: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nCc: Samuel Ortiz \u003csamuel@sortiz.org\u003e\nCc: Patrick McHardy \u003ckaber@trash.net\u003e\nCc: Takashi Iwai \u003ctiwai@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": "4df7b3e0370ab6161ea2f258f51dd7c43bef2bda",
      "tree": "e6726f1ec3edb3f66071faa0591f32e864de8f52",
      "parents": [
        "3b4418c67a70278964b063b5e1f56dcb3d0a41f3"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Wed Jul 15 20:29:07 2009 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Jul 28 13:45:22 2009 -0700"
      },
      "message": "Dynamic debug: fix typo: -/-\u003e\n\nThe member was intended, not the local variable.\n\nSigned-off-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "9898abb3d23311fa227a7f46bf4e40fd2954057f",
      "tree": "f32e6f1b0422e491bf3db276f6f62467e4a21928",
      "parents": [
        "86151fdf38b3795f292b39defbff39d2684b9c8c"
      ],
      "author": {
        "name": "Greg Banks",
        "email": "gnb@melbourne.sgi.com",
        "time": "Fri Feb 06 12:54:26 2009 +1100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Mar 24 16:38:27 2009 -0700"
      },
      "message": "Dynamic debug: allow simple quoting of words\n\nAllow simple quoting of words in the dynamic debug control language.\n\nThis allows more natural specification when using the control language\nto match against printk formats, e.g\n\n#echo -n \u0027format \"Setting node for non-present cpu\" +p\u0027 \u003e\n\t/mnt/debugfs/dynamic_debug/control\n\ninstead of\n\n#echo -n \u0027format Setting\\040node\\040for\\040non-present\\040cpu +p\u0027 \u003e\n\t/mnt/debugfs/dynamic_debug/control\n\nAdjust the dynamic debug documention to describe that and provide a\nnew example.  Adjust the existing examples in the documentation to\nreflect the current whitespace escaping behaviour when reading the\ncontrol file.  Fix some minor documentation trailing whitespace.\n\nSigned-off-by: Greg Banks \u003cgnb@melbourne.sgi.com\u003e\nAcked-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "e9d376f0fa66bd630fe27403669c6ae6c22a868f",
      "tree": "6eadef32eb421647ae98d88341b9aceb259aaf22",
      "parents": [
        "095160aee954688a9bad225952c4bee546541e19"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Thu Feb 05 11:51:38 2009 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Mar 24 16:38:26 2009 -0700"
      },
      "message": "dynamic debug: combine dprintk and dynamic printk\n\nThis patch combines Greg Bank\u0027s dprintk() work with the existing dynamic\nprintk patchset, we are now calling it \u0027dynamic debug\u0027.\n\nThe new feature of this patchset is a richer /debugfs control file interface,\n(an example output from my system is at the bottom), which allows fined grained\ncontrol over the the debug output. The output can be controlled by function,\nfile, module, format string, and line number.\n\nfor example, enabled all debug messages in module \u0027nf_conntrack\u0027:\n\necho -n \u0027module nf_conntrack +p\u0027 \u003e /mnt/debugfs/dynamic_debug/control\n\nto disable them:\n\necho -n \u0027module nf_conntrack -p\u0027 \u003e /mnt/debugfs/dynamic_debug/control\n\nA further explanation can be found in the documentation patch.\n\nSigned-off-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    }
  ]
}
