)]}'
{
  "log": [
    {
      "commit": "53e86317e967b9a1b1b78d6a076547144454bce1",
      "tree": "87f38a002bc278769aa632d3a6eadddee1e44732",
      "parents": [
        "47afa7a5a8a8fb9e60cdb6a3bd612e07c37e9d90"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Mon Oct 13 10:44:33 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 09:51:44 2008 -0700"
      },
      "message": "tty: Fallout from tty-move-canon-specials\n\nToday\u0027s linux-next build (x86_64 allmodconfig) failed like this:\n\n/drivers/char/tty_ioctl.c: In function \u0027change_termios\u0027:\ndrivers/isdn/capi/capi.c:1234: error: implicit declaration of function \u0027n_tty_ioctl\u0027\ndrivers/isdn/gigaset/ser-gigaset.c: In function \u0027gigaset_tty_ioctl\u0027:\ndrivers/isdn/gigaset/ser-gigaset.c:648: error: implicit declaration of function \u0027n_tty_ioctl\u0027\n\nIntroduced by commit 686b5e4aea05a80e370dc931b7f4a8d03c80da54\n(\"tty-move-canon-specials\").  I added the following patch (which may not\nbe correct).\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4d5392cc4de3403d71b929f39f3bc659db029ad1",
      "tree": "42d7deba9115f39fb804beca674310c20e9cfb07",
      "parents": [
        "2cdc55751c33829f00510e0104562d0f8d8a9b85"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Mon Sep 22 19:04:54 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 22 19:04:54 2008 -0700"
      },
      "message": "drivers/isdn/capi/kcapi.c: Adjust error handling code involving capi_ctr_put\n\nAfter calling capi_ctr_get, error handling code should call capi_ctr_put.\n\nThe semantic match that finds this problem is as follows:\n(http://www.emn.fr/x-info/coccinelle/)\n\n// \u003csmpl\u003e\n@r@\nexpression x,E;\nstatement S;\nposition p1,p2,p3;\n@@\n\n(\nif ((x \u003d capi_ctr_get@p1(...)) \u003d\u003d NULL || ...) S\n|\nx \u003d capi_ctr_get@p1(...)\n... when !\u003d x\nif (x \u003d\u003d NULL || ...) S\n)\n\u003c...\nif@p3 (...) { ... when !\u003d capi_ctr_put(x)\n                  when !\u003d if (x) { ... capi_ctr_put(x); ...}\n    return@p2 ...;\n}\n...\u003e\n(\nreturn x;\n|\nreturn 0;\n|\nx \u003d E\n|\nE \u003d x\n|\ncapi_ctr_put(x)\n)\n\n@exists@\nposition r.p1,r.p2,r.p3;\nexpression x;\nint ret !\u003d 0;\nstatement S;\n@@\n\n* x \u003d capi_ctr_get@p1(...)\n  \u003c...\n* if@p3 (...)\n  S\n  ...\u003e\n* return@p2 \\(NULL\\|ret\\);\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "53baaaa9682c230410a057263d1ce2922f43ddc4",
      "tree": "f5cced5622130f780d76953b284a631c3d226488",
      "parents": [
        "f10140fbe5f97ecfeda986a12d0f1bad75642779",
        "3f9787046ea37a26170dc4439efa21f8d23a9978"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 22 13:13:47 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 22 13:13:47 2008 -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: (79 commits)\n  arm: bus_id -\u003e dev_name() and dev_set_name() conversions\n  sparc64: fix up bus_id changes in sparc core code\n  3c59x: handle pci_name() being const\n  MTD: handle pci_name() being const\n  HP iLO driver\n  sysdev: Convert the x86 mce tolerant sysdev attribute to generic attribute\n  sysdev: Add utility functions for simple int/ulong variable sysdev attributes\n  sysdev: Pass the attribute to the low level sysdev show/store function\n  driver core: Suppress sysfs warnings for device_rename().\n  kobject: Transmit return value of call_usermodehelper() to caller\n  sysfs-rules.txt: reword API stability statement\n  debugfs: Implement debugfs_remove_recursive()\n  HOWTO: change email addresses of James in HOWTO\n  always enable FW_LOADER unless EMBEDDED\u003dy\n  uio-howto.tmpl: use unique output names\n  uio-howto.tmpl: use standard copyright/legal markings\n  sysfs: don\u0027t call notify_change\n  sysdev: fix debugging statements in registration code.\n  kobject: should use kobject_put() in kset-example\n  kobject: reorder kobject to save space on 64 bit builds\n  ...\n"
    },
    {
      "commit": "9e98966c7bb94355689478bc84cc3e0c190f977e",
      "tree": "928aebbfee524a48aa94a3d3def5249c8846a79a",
      "parents": [
        "abbe629ae4011d2020047f41bea9f9e4b0ec4361"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Tue Jul 22 11:18:03 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 22 13:03:28 2008 -0700"
      },
      "message": "tty: rework break handling\n\nSome hardware needs to do break handling itself and may have partial\nsupport only. Make break_ctl return an error code. Add a tty driver flag\nso you can indicate driver hardware side break support.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "24d0b416f988fcdfa2615a25c7c33c21cc2a65a9",
      "tree": "9b50139a45768830152fdd91e12f36af6d675b40",
      "parents": [
        "c76d3d28c31a68f45d6b5acaa4813138dd7883b3"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed May 21 12:52:33 2008 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jul 21 21:54:43 2008 -0700"
      },
      "message": "device create: isdn: convert device_create to device_create_drvdata\n\ndevice_create() is race-prone, so use the race-free\ndevice_create_drvdata() instead as device_create() is going away.\n\nCc: Karsten Keil \u003ckkeil@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "a352def21a642133758b868c71bee12ab34ad5c5",
      "tree": "95d0f7229f9e4afccdc6fbbf11f7f5c6dd83b0fd",
      "parents": [
        "e1e5770bb63fb9d71619a68f52cb0ba4b2ae58a6"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Wed Jul 16 21:53:12 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 20 17:12:34 2008 -0700"
      },
      "message": "tty: Ldisc revamp\n\nMove the line disciplines towards a conventional -\u003eops arrangement.  For\nthe moment the actual \u0027tty_ldisc\u0027 struct in the tty is kept as part of\nthe tty struct but this can then be changed if it turns out that when it\nall settles down we want to refcount ldiscs separately to the tty.\n\nPull the ldisc code out of /proc and put it with our ldisc code.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2fceef397f9880b212a74c418290ce69e7ac00eb",
      "tree": "d9cc09ab992825ef7fede4a688103503e3caf655",
      "parents": [
        "feae1ef116ed381625d3731c5ae4f4ebcb3fa302",
        "bce7f793daec3e65ec5c5705d2457b81fe7b5725"
      ],
      "author": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Mon Jul 14 15:29:34 2008 -0600"
      },
      "committer": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Mon Jul 14 15:29:34 2008 -0600"
      },
      "message": "Merge commit \u0027v2.6.26\u0027 into bkl-removal\n"
    },
    {
      "commit": "a237f3bbaab28bb780201f15f6003cf3d2e81024",
      "tree": "ef5991cea90e678bf2476f168a31061d2f15803e",
      "parents": [
        "b0061a0ec4d10a69309d0371a01e8b99387009ef"
      ],
      "author": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Fri May 16 14:15:33 2008 -0600"
      },
      "committer": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Fri Jun 20 14:05:52 2008 -0600"
      },
      "message": "CAPI: BKL pushdown\n\nPut explicit lock_kernel() calls into capi_open()\n\nSigned-off-by: Jonathan Corbet \u003ccorbet@lwn.net\u003e\n"
    },
    {
      "commit": "066b2118976e6e7cc50eed39e2747c75343a23c4",
      "tree": "ecf0fc1da7278665b39c5f77438032dd18457c76",
      "parents": [
        "ffd8211fb18e1052b2d9eded629cc3c0b872d06a"
      ],
      "author": {
        "name": "Marcin Slusarz",
        "email": "marcin.slusarz@gmail.com",
        "time": "Wed May 14 23:30:06 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 14 23:30:06 2008 -0700"
      },
      "message": "isdn/capi: Return proper errnos on module init.\n\ncdebug_init() is called from kcapi_init() which is module\ninitialization function, so it must return negative values on errors.\n\nSigned-off-by: Marcin Slusarz \u003cmarcin.slusarz@gmail.com\u003e\nAcked-by: Karsten Keil \u003ckkeil@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f2545a75632d18d62aa287b9e5d207255cc8bffc",
      "tree": "21f93a2b8a9412fc636e0e8b2cb893294fb5d918",
      "parents": [
        "5d19f546e7b6f0976f957780f2687c55668f4495"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Wed Apr 30 00:54:09 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:46 2008 -0700"
      },
      "message": "isdn: switch to int put_char method\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nAcked-by: Karsten Keil \u003ckkeil@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": "ac41cfd19bf77424519b962f8205ede51fceaac6",
      "tree": "f0299767b2115dd076e01841ca5cbe3113ef7a02",
      "parents": [
        "a95609cb0283a23e519e607ff9fc2a4aa77e2532"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Tue Apr 29 01:02:30 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:22 2008 -0700"
      },
      "message": "isdn: use non-racy method for proc entries creation\n\nUse proc_create()/proc_create_data() to make sure that -\u003eproc_fops and -\u003edata\nbe setup before gluing PDE to main tree.\n\nAdd correct -\u003eowner to proc_fops to fix reading/module unloading race.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nAcked-by: Karsten Keil \u003ckkeil@suse.de\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "37772ac0fcc6728df47e6b0609766b7b77a8064b",
      "tree": "0491d2e80051800b8576265d62e48ce10d2c2ddf",
      "parents": [
        "c24e9b3fa3fdfca3834eba0bb217c8c197a43b7e"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@crashcourse.ca",
        "time": "Mon Apr 28 02:14:42 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:34 2008 -0700"
      },
      "message": "isdn: rename CONFIG_AVMB1_COMPAT to not look like a Kconfig variable\n\nSince CONFIG_AVMB1_COMPAT is not a Kconfig variable, move it out of the\nKconfig namespace.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@crashcourse.ca\u003e\nAcked-by: Karsten Keil \u003ckkeil@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": "c24e9b3fa3fdfca3834eba0bb217c8c197a43b7e",
      "tree": "1b86c5238426d9d09595466cb4fe393d218b8b4e",
      "parents": [
        "30d55e71a81b1f5a8136f191dc9f4c21f18e77e6"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@gmail.com",
        "time": "Mon Apr 28 02:14:41 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:34 2008 -0700"
      },
      "message": "capifs: fix memory leak on remount\n\ncapifs_remount may reach \u0027return\u0027 statement without freeing of memory\nallocated by kstrdup call\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Karsten Keil \u003ckkeil@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": "156f1ed640170d70c9fc8e5f6f797ea1f2a1653b",
      "tree": "4709685cf46fce1ef552ccbee6d30f5073f99216",
      "parents": [
        "dd58c0dd30ac761837b1d0d8cc434c7ec7b2df68"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Mon Apr 28 02:14:40 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:34 2008 -0700"
      },
      "message": "isdn: replace remaining __FUNCTION__ occurrences\n\n__FUNCTION__ is gcc-specific, use __func__\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nCc: Karsten Keil \u003ckkeil@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": "2f9e9b6db31d96fe4e8b519b8aab1ba172dd3ddf",
      "tree": "37a266621d7434479b359c1417a871e54289e173",
      "parents": [
        "50f8c370e77befe9121720bd7bdada2ac0d13915"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Mon Apr 28 02:14:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:33 2008 -0700"
      },
      "message": "capi: fix sparse warnings using integer as NULL pointer\n\ndrivers/isdn/capi/kcapi.c:829:30: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/kcapi.c:838:27: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/kcapi.c:954:17: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/kcapi.c:1007:37: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/kcapi.c:1009:33: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capiutil.c:453:24: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capilib.c:47:30: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capi.c:353:29: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capi.c:369:15: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capi.c:486:48: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capi.c:515:46: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capi.c:541:47: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capi.c:692:47: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capi.c:699:49: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capi.c:704:14: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capi.c:943:53: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capi.c:948:32: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capi.c:969:42: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capi.c:989:48: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capi.c:1026:69: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capi.c:1028:19: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capi.c:1061:20: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capi.c:1529:37: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capi.c:1531:33: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capidrv.c:338:15: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capidrv.c:758:32: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capidrv.c:880:40: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capidrv.c:407:15: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capidrv.c:429:49: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capidrv.c:407:15: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capidrv.c:444:49: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capidrv.c:429:49: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capidrv.c:429:49: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capidrv.c:429:49: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capidrv.c:429:49: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capidrv.c:429:49: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capidrv.c:1664:61: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capidrv.c:1969:37: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capidrv.c:2294:37: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capidrv.c:2297:33: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capidrv.c:2338:37: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capidrv.c:2341:33: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capifs.c:192:37: warning: Using plain integer as NULL pointer\ndrivers/isdn/capi/capifs.c:194:33: warning: Using plain integer as NULL pointer\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nCc: Karsten Keil \u003ckkeil@suse.de\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e55e212c083f0c51a7d4eccd1746b6dca40ffc41",
      "tree": "2e47635c26ab7e6773a89a686b43c3e022bdf785",
      "parents": [
        "552c3c6c565d08857df48e77e8ce2b223517c3ee"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Feb 08 04:21:40 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:40 2008 -0800"
      },
      "message": "mount options: fix capifs\n\nAdd a .show_options super operation to capifs.\n\nUse generic_show_options() and save the complete option string in\ncapifs_remount().\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nAcked-by: Karsten Keil \u003ckkeil@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": "df8dc74e8a383eaf2d9b44b80a71ec6f0e52b42e",
      "tree": "bc3799a43e8b94fa84b32e37b1c124d5e4868f50",
      "parents": [
        "556a169dab38b5100df6f4a45b655dddd3db94c1",
        "4a3ad20ccd8f4d2a0535cf98fa83f7b561ba59a9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 25 08:34:42 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 25 08:35:13 2008 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-2.6\n\nThis can be broken down into these major areas:\n - Documentation updates (language translations and fixes, as\n   well as kobject and kset documenatation updates.)\n - major kset/kobject/ktype rework and fixes.  This cleans up the\n   kset and kobject and ktype relationship and architecture,\n   making sense of things now, and good documenation and samples\n   are provided for others to use.  Also the attributes for\n   kobjects are much easier to handle now.  This cleaned up a LOT\n   of code all through the kernel, making kobjects easier to use\n   if you want to.\n - struct bus_type has been reworked to now handle the lifetime\n   rules properly, as the kobject is properly dynamic.\n - struct driver has also been reworked, and now the lifetime\n   issues are resolved.\n - the block subsystem has been converted to use struct device\n   now, and not \"raw\" kobjects.  This patch has been in the -mm\n   tree for over a year now, and finally all the issues are\n   worked out with it.  Older distros now properly work with new\n   kernels, and no userspace updates are needed at all.\n - nozomi driver is added.  This has also been in -mm for a long\n   time, and many people have asked for it to go in.  It is now\n   in good enough shape to do so.\n - lots of class_device conversions to use struct device instead.\n   The tree is almost all cleaned up now, only SCSI and IB is the\n   remaining code to fix up...\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-2.6: (196 commits)\n  Driver core: coding style fixes\n  Kobject: fix coding style issues in kobject c files\n  Kobject: fix coding style issues in kobject.h\n  Driver core: fix coding style issues in device.h\n  spi: use class iteration api\n  scsi: use class iteration api\n  rtc: use class iteration api\n  power supply : use class iteration api\n  ieee1394: use class iteration api\n  Driver Core: add class iteration api\n  Driver core: Cleanup get_device_parent() in device_add() and device_move()\n  UIO: constify function pointer tables\n  Driver Core: constify the name passed to platform_device_register_simple\n  driver core: fix build with SYSFS\u003dn\n  sysfs: make SYSFS_DEPRECATED depend on SYSFS\n  Driver core: use LIST_HEAD instead of call to INIT_LIST_HEAD in __init\n  kobject: add sample code for how to use ksets/ktypes/kobjects\n  kobject: add sample code for how to use kobjects in a simple manner.\n  kobject: update the kobject/kset documentation\n  kobject: remove old, outdated documentation.\n  ...\n"
    },
    {
      "commit": "eb36f4fc019835cecf0788907f6cab774508087b",
      "tree": "b834e3213c822735006c25f0c4f6e4ed6cafc181",
      "parents": [
        "49914084e797530d9baaf51df9eda77babc98fa8"
      ],
      "author": {
        "name": "Karsten Keil",
        "email": "kkeil@suse.de",
        "time": "Fri Jan 25 11:55:28 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 25 08:26:10 2008 -0800"
      },
      "message": "fix oops on rmmod capidrv\n\nFix overwriting the stack with the version string\n(it is currently 10 bytes + zero) when unloading the\ncapidrv module. Safeguard against overwriting it\nshould the version string grow in the future.\n\nShould fix Kernel Bug Tracker Bug 9696.\n\nSigned-off-by: Gerd v. Egidy \u003cgerd.von.egidy@intra2net.com\u003e\nAcked-by: Karsten Keil \u003ckkeil@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d78b03683a6f96645d265abdd5c556547dc76d70",
      "tree": "2d65c0201082075c0a0fa7d2ba4c2e002f03d0a1",
      "parents": [
        "dbc1272ed4a9ce45ecc50e7ea7d52e7413eb1a4f"
      ],
      "author": {
        "name": "Tony Jones",
        "email": "tonyj@suse.de",
        "time": "Tue Sep 25 02:03:03 2007 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:05 2008 -0800"
      },
      "message": "ISDN: Convert from class_device to device for ISDN capi\n\nSigned-off-by: Tony Jones \u003ctonyj@suse.de\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nAcked-by: Karsten Keil \u003ckkeil@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "b393243fe7b711eb18eafaaf469bdb39317adf5b",
      "tree": "bc0222c7ac1ff129d75a51d06acbee68d486fde0",
      "parents": [
        "2a397e82c7db18019e408f953dd58dc1963a328c"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Oct 25 23:02:14 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Oct 29 04:45:06 2007 -0400"
      },
      "message": "[ISDN] capidrv: address two longstanding warnings\n\n* change #warning to a code comment\n\n* add comment and special ifdef\u0027d 64-bit code for a situation where\n  we must store a pointer into a CAPI field \u0027Data\u0027, which is fixed by\n  the interface at 32 bits.\n\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\nAcked-by: Karsten Keil \u003ckkeil@suse.de\u003e\n"
    },
    {
      "commit": "e8a285b7b10029c3da7e9bbaa1659e7e08178912",
      "tree": "a97878e17221c2686e91dd8cfea2b03dbde7d855",
      "parents": [
        "b1b2e7cf4a9742f61d76fcb419b1fd13159876a5"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Tue Oct 16 01:27:52 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:10 2007 -0700"
      },
      "message": "isdn: guard against a potential NULL pointer dereference in old_capi_manufacturer()\n\nIn drivers/isdn/capi/kcapi.c::old_capi_manufacturer(), if the call to\nget_capi_ctr_by_nr(ldef.contr); in line 823 returns NULL, then we\u0027ll be\ndereferencing a NULL pointer in the very next line.\n\n(Found by Coverity checker as bug #402)\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nAcked-by: Karsten Keil \u003ckkeil@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": "b1b2e7cf4a9742f61d76fcb419b1fd13159876a5",
      "tree": "da6855dbf5d1216e53d7ab27b7a2b1cce6a36a1b",
      "parents": [
        "4e3dfacaa0b8e469f412ae776f222102042d7e24"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Tue Oct 16 01:27:51 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:10 2007 -0700"
      },
      "message": "fix possible NULL deref on low memory condition in capidrv.c::send_message()\n\nIf we fail to allocate an skb in\ndrivers/isdn/capi/capidrv.c::send_message(), then we\u0027ll end up\ndereferencing a NULL pointer.\nSince out of memory conditions are not unheard of, I believe it\nis better to print a error message and just return rather than\nbring down the whole kernel.\nSure, doing this may upset some application, but that\u0027s still\nbetter than crashing the whole system.\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nAcked-by: Karsten Keil \u003ckkeil@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": "5e6c20a93b700ba884a6bced498b2691e2dd821b",
      "tree": "87096998b673a19690a00e86d7dd0b47a7695913",
      "parents": [
        "8cd2aba2d3fc065069a0c305ddca1d9397ed9092"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Jul 17 04:04:22 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:06 2007 -0700"
      },
      "message": "isdn/capi warning fixes\n\ndrivers/isdn/capi/capi.c: In function \u0027handle_minor_send\u0027:\ndrivers/isdn/capi/capi.c:552: warning: cast from pointer to integer of different size\n\nOf course, the code here might actually be buggy, in which case this patch\nshould not be applied?\n\nAnswer:\n\n  No this field is ignored inside linux kernel.Yes this is ugly, but it\u0027s\n  the CAPI spec for all OS.\n\n  CAPI DATA_B3 Request/Indication CAPI Message has a mandatory field which\n  represent the 32 bit buffer address of the payload data.  In linux the\n  payload data do not use a sperate buffer, data follows directely after the\n  CAPI Message in the same skb and we use this assumption inside the drivers,\n  so we can ignore this field.\n\n  Inside the linux CAPI implemetation we never use this field, so it could\n  also have no value, but since random data in a message is bad as well (e.g.\n  displayed in CAPI traces) we set is to the most adequate value.\n\n  Outside the kernel the capi20 library sets the correct addresses (there is\n  an optional second field for 64 bit adresses for 64 bit systems, we do not\n  use here).\n\nAcked-by: Karsten Keil \u003ckkeil@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": "df19434cc268e207d1beb4dc7be3420888faef09",
      "tree": "b2640cfe4c321ca754dd1eba3938420f194c5279",
      "parents": [
        "cf4d5f1d50e44d36d459344da3c8f226b3933aeb"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@linux01.gwdg.de",
        "time": "Tue Jul 17 04:04:20 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:05 2007 -0700"
      },
      "message": "Use menuconfig objects: ISDN: CONFIG_ISDN_CAPI\n\nTransform \"depends on\" into a simpler if-endif block style dependency.\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@gmx.de\u003e\nCc: Karsten Keil \u003ckkeil@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": "2b7c30292af56e64feaecdbe97da57918927b730",
      "tree": "cf160a7dee6f18335b029ae775e4dc8dea5ec424",
      "parents": [
        "6acee02712d0592dcd6120bc54d77c47cd2f6059"
      ],
      "author": {
        "name": "Pavel Emelianov",
        "email": "xemul@sw.ru",
        "time": "Tue Jul 17 04:04:18 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:05 2007 -0700"
      },
      "message": "Make ISDN CAPI use seq_list_xxx helpers\n\nThe similar code exists here and is called capi_driver_get_idx().  Use generic\nhelpers now and remember to convert list_head to struct capi_driver in .show\ncallback.\n\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nAcked-by: Karsten Keil \u003ckkeil@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": "67837f232d6d55be99d6e0dec4ea9bb8112840cd",
      "tree": "031713a5ce68712d3df3bab5eafdb52fdd829d04",
      "parents": [
        "940408289842677cfe9e053a6c423bf3fb922560"
      ],
      "author": {
        "name": "Matthias Kaehlcke",
        "email": "matthias.kaehlcke@gmail.com",
        "time": "Tue Jul 17 04:04:16 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:05 2007 -0700"
      },
      "message": "Use mutex instead of semaphore in CAPI 2.0 driver\n\nThe CAPI 2.0 driver uses a semaphore as mutex.  Use the mutex API instead of\nthe (binary) semaphore.\n\nSigned-off-by: Matthias Kaehlcke \u003cmatthias.kaehlcke@gmail.com\u003e\nAcked-by: Karsten Keil \u003ckkeil@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": "a982ac06b069f6ee9ea1b64f4ce68cdf2e138742",
      "tree": "fb120a416db15d09722e8780b7a09d0da1a9b94e",
      "parents": [
        "148e423f909e14564d8af13239c5d060f7df273e"
      ],
      "author": {
        "name": "Matt LaPlante",
        "email": "kernel1@cyberdogtech.com",
        "time": "Wed May 09 07:35:06 2007 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed May 09 08:58:15 2007 +0200"
      },
      "message": "misc doc and kconfig typos\n\nFix various typos in kernel docs and Kconfigs, 2.6.21-rc4.\n\nSigned-off-by: Matt LaPlante \u003ckernel1@cyberdogtech.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "9ea6e5d8088096aeba29b6778c3d3d82fb495e9f",
      "tree": "e348ee1acd60db62dfb95de8b99a11de20ce3ce6",
      "parents": [
        "a7e27d5dd396419dc6d6288db6a6d86cf3a94ba5"
      ],
      "author": {
        "name": "Matthias Kaehlcke",
        "email": "matthias.kaehlcke@gmail.com",
        "time": "Tue May 08 00:32:43 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:17 2007 -0700"
      },
      "message": "use mutex instead of semaphore in CAPI 2.0 interface\n\nThe CAPI 2.0 interface uses a semaphore as mutex.  Use the mutex API instead\nof the (binary) semaphore.\n\nSigned-off-by: Matthias Kaehlcke \u003cmatthias.kaehlcke@gmail.com\u003e\nCc: Karsten Keil \u003ckkeil@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": "3a3a51d1f2efe10090cd779a66c4b3c8f57eaf9f",
      "tree": "f87e1158f8d3d578479e1ae1fc45cfa0e48978a2",
      "parents": [
        "1a1c9bb433af252767ee90d6394d287afa30cf8b"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue May 08 00:32:33 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:16 2007 -0700"
      },
      "message": "make drivers/isdn/capi/capiutil.c:cdebbuf_alloc() static\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-by: Karsten Keil \u003ckkeil@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": "e63340ae6b6205fef26b40a75673d1c9c0c8bb90",
      "tree": "8d3212705515edec73c3936bb9e23c71d34a7b41",
      "parents": [
        "04c9167f91e309c9c4ea982992aa08e83b2eb42e"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue May 08 00:28:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:07 2007 -0700"
      },
      "message": "header cleaning: don\u0027t include smp_lock.h when not used\n\nRemove includes of \u003clinux/smp_lock.h\u003e where it is not used/needed.\nSuggested by Al Viro.\n\nBuilds cleanly on x86_64, i386, alpha, ia64, powerpc, sparc,\nsparc64, and arm (all 59 defconfigs).\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": "17f0cd2f350b90b28301e27fe0e39f34bfe7e730",
      "tree": "6baba85d4f3b83398dc5a412b328bfcef1633548",
      "parents": [
        "34bbd704051c9d053d69e90569a3a2365f4c7b50"
      ],
      "author": {
        "name": "Karsten Keil",
        "email": "kkeil@suse.de",
        "time": "Wed Feb 28 20:13:50 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Mar 01 14:53:39 2007 -0800"
      },
      "message": "[PATCH] Fix buffer overflow and races in capi debug functions\n\nThe CAPI trace debug functions were using a fixed size buffer, which can be\noverflowed if wrong formatted CAPI messages were sent to the kernel capi\nlayer.  The code was also not protected against multiple callers.  This fix\nbug 8028.\n\nAdditionally the patch make the CAPI trace functions optional.\n\nSigned-off-by: Karsten Keil \u003ckkeil@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": "cd354f1ae75e6466a7e31b727faede57a1f89ca5",
      "tree": "09a2da1672465fefbc7fe06ff4e6084f1dd14c6b",
      "parents": [
        "3fc605a2aa38899c12180ca311f1eeb61a6d867e"
      ],
      "author": {
        "name": "Tim Schmielau",
        "email": "tim@physik3.uni-rostock.de",
        "time": "Wed Feb 14 00:33:14 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 14 08:09:54 2007 -0800"
      },
      "message": "[PATCH] remove many unneeded #includes of sched.h\n\nAfter Al Viro (finally) succeeded in removing the sched.h #include in module.h\nrecently, it makes sense again to remove other superfluous sched.h includes.\nThere are quite a lot of files which include it but don\u0027t actually need\nanything defined in there.  Presumably these includes were once needed for\nmacros that used to live in sched.h, but moved to other header files in the\ncourse of cleaning it up.\n\nTo ease the pain, this time I did not fiddle with any header files and only\nremoved #includes from .c-files, which tend to cause less trouble.\n\nCompile tested against 2.6.20-rc2 and 2.6.20-rc2-mm2 (with offsets) on alpha,\narm, i386, ia64, mips, powerpc, and x86_64 with allnoconfig, defconfig,\nallmodconfig, and allyesconfig as well as a few randconfigs on x86_64 and all\nconfigs in arch/arm/configs on arm.  I also checked that no new warnings were\nintroduced by the patch (actually, some warnings are removed that were emitted\nby unnecessarily included header files).\n\nSigned-off-by: Tim Schmielau \u003ctim@physik3.uni-rostock.de\u003e\nAcked-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2b8693c0617e972fc0b2fd1ebf8de97e15b656c3",
      "tree": "3eb7dfbc8d5e4031e4992bdd566e211f5ada71f3",
      "parents": [
        "5dfe4c964a0dd7bb3a1d64a4166835a153146207"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Mon Feb 12 00:55:32 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:45 2007 -0800"
      },
      "message": "[PATCH] mark struct file_operations const 3\n\nMany struct file_operations in the kernel can be \"const\".  Marking them const\nmoves these to the .rodata section, which avoids false sharing with potential\ndirty data.  In addition it\u0027ll catch accidental writes at compile time to\nthese shared resources.\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": "053b47ff249b9e0a634dae807f81465205e7c228",
      "tree": "220695a694f2be08c26a836435e4ba9f093b9af8",
      "parents": [
        "a871fe858c5437ff8798fbaef52b6a88110b64a1"
      ],
      "author": {
        "name": "Michael Buesch",
        "email": "mb@bu3sch.de",
        "time": "Mon Feb 12 00:53:26 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:35 2007 -0800"
      },
      "message": "[PATCH] Workaround CAPI subsystem locking issue\n\nI think the following patch should go into the kernel, until the ISDN/CAPI\nguys create the real fix for this issue.\n\nThe issue is a concurrency issue with some internal CAPI data structure\nwhich can crash the kernel.\n\nOn my FritzCard DSL with the AVM driver it crashes about once a day without\nthis workaround patch.  With this workaround patch it\u0027s rock-stable (at\nleast on UP, but I don\u0027t see why this shouldn\u0027t work on SMP as well.  But\nmaybe I\u0027m missing something.)\n\nThis workaround is kind of a sledgehammer which inserts a global lock to\nwrap around all the critical sections.  Of course, this is a scalability\nissue, if you have many ISDN/CAPI cards.  But it prevents a crash.  So I\nvote for this fix to get merged, until people come up with a better\nsolution.  Better have a stable kernel that\u0027s less scalable, than a\ncrashing and useless kernel.\n\nThis bug is in the kernel since 2.6.15 (at least).\n\nSigned-off-by: Michael Buesch \u003cmb@bu3sch.de\u003e\nCc: Kai Germaschewski \u003ckai.germaschewski@gmx.de\u003e\nCc: Karsten Keil \u003ckkeil@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": "fd863db937c0d30679d4bd5329653adb46b66627",
      "tree": "dd4bd40c998ee7718eca0d6139db32fb14451c87",
      "parents": [
        "fc238b3791447b93c69cd50a99dfcaad6162afba"
      ],
      "author": {
        "name": "Ahmed S. Darwish",
        "email": "darwish.07@gmail.com",
        "time": "Mon Feb 12 00:53:19 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:34 2007 -0800"
      },
      "message": "[PATCH] isdn/capi: use ARRAY_SIZE when appropriate\n\nSigned-off-by: Ahmed S. Darwish \u003cdarwish.07@gmail.com\u003e\nAcked-by: Karsten Keil \u003ckkeil@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": "5cbded585d129d0226cb48ac4202b253c781be26",
      "tree": "fb24edc194a57ee81a3bf8a4dd8a95030dd0ad22",
      "parents": [
        "0743b86800cf1dfbf96df4a438938127bbe4476c"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Wed Dec 13 00:35:56 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:58 2006 -0800"
      },
      "message": "[PATCH] getting rid of all casts of k[cmz]alloc() calls\n\nRun this:\n\n\t#!/bin/sh\n\tfor f in $(grep -Erl \"\\([^\\)]*\\) *k[cmz]alloc\" *) ; do\n\t  echo \"De-casting $f...\"\n\t  perl -pi -e \"s/ ?\u003d ?\\([^\\)]*\\) *(k[cmz]alloc) *\\(/ \u003d \\1\\(/\" $f\n\tdone\n\nAnd then go through and reinstate those cases where code is casting pointers\nto non-pointers.\n\nAnd then drop a few hunks which conflicted with outstanding work.\n\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e, Ian Molton \u003cspyro@f2s.com\u003e\nCc: Mikael Starvik \u003cstarvik@axis.com\u003e\nCc: Yoshinori Sato \u003cysato@users.sourceforge.jp\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Paul Fulghum \u003cpaulkf@microgate.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Karsten Keil \u003ckkeil@suse.de\u003e\nCc: Mauro Carvalho Chehab \u003cmchehab@infradead.org\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nCc: Ian Kent \u003craven@themaw.net\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nCc: Jaroslav Kysela \u003cperex@suse.cz\u003e\nCc: Takashi Iwai \u003ctiwai@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "41f96935b4c41daea2c4dbbf137960375cf764c1",
      "tree": "9af3af5e41f68baf063b5f929797c837169bb9df",
      "parents": [
        "0b2dd130a5a8774a30de1f94266f6b9a9892153c"
      ],
      "author": {
        "name": "Burman Yan",
        "email": "yan_952@hotmail.com",
        "time": "Fri Dec 08 02:39:35 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:29:01 2006 -0800"
      },
      "message": "[PATCH] isdn: replace kmalloc+memset with kzalloc\n\nAcked-by: Karsten Keil \u003ckkeil@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "606d099cdd1080bbb50ea50dc52d98252f8f10a1",
      "tree": "80d17450a5fb78effce3f4312f672c058658e004",
      "parents": [
        "edc6afc5496875a640bef0913604be7550c1795d"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Fri Dec 08 02:38:45 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:57 2006 -0800"
      },
      "message": "[PATCH] tty: switch to ktermios\n\nThis is the grungy swap all the occurrences in the right places patch that\ngoes with the updates.  At this point we have the same functionality as\nbefore (except that sgttyb() returns speeds not zero) and are ready to\nbegin turning new stuff on providing nobody reports lots of bugs\n\nIf you are a tty driver author converting an out of tree driver the only\nimpact should be termios-\u003ektermios name changes for the speed/property\nsetting functions from your upper layers.\n\nIf you are implementing your own TCGETS function before then your driver\nwas broken already and its about to get a whole lot more painful for you so\nplease fix it 8)\n\nAlso fill in c_ispeed/ospeed on init for most devices, although the current\ncode will do this for you anyway but I\u0027d like eventually to lose that extra\nparanoia\n\n[akpm@osdl.org: bluetooth fix]\n[mp3@de.ibm.com: sclp fix]\n[mp3@de.ibm.com: warning fix for tty3270]\n[hugh@veritas.com: fix tty_ioctl powerpc build]\n[jdike@addtoit.com: uml: fix -\u003eset_termios declaration]\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Martin Peschke \u003cmp3@de.ibm.com\u003e\nAcked-by: Peter Oberparleiter \u003coberpar@de.ibm.com\u003e\nCc: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4482dfad69d783d1df03ed3952838451a249985e",
      "tree": "f77b314ac1b83994107b2e7df4df795a8af001d9",
      "parents": [
        "b23463b9b94a00baf4cc3cf835c366cffff715c2"
      ],
      "author": {
        "name": "Josef Sipek",
        "email": "jsipek@fsl.cs.sunysb.edu",
        "time": "Fri Dec 08 02:37:13 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:46 2006 -0800"
      },
      "message": "[PATCH] struct path: convert isdn\n\nSigned-off-by: Josef Sipek \u003cjsipek@fsl.cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c4028958b6ecad064b1a6303a6a5906d4fe48d73",
      "tree": "1c4c89652c62a75da09f9b9442012007e4ac6250",
      "parents": [
        "65f27f38446e1976cc98fd3004b110fedcddd189"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 22 14:57:56 2006 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 22 14:57:56 2006 +0000"
      },
      "message": "WorkStruct: make allyesconfig\n\nFix up for make allyesconfig.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "7786ce192fc4917fb9b789dd823476ff8fd6cf66",
      "tree": "3ec803c1c77ff22bfe6076ea4d90a27f888b4fad",
      "parents": [
        "04518bfe8eac2e82b476fb2b0093527adc2bc791"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Oct 17 00:10:40 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 17 08:18:49 2006 -0700"
      },
      "message": "[PATCH] ISDN: check for userspace copy faults\n\nMost of the ISDN -\u003ereadstat() implementations needed to check\ncopy_to_user() and put_user() return values.\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: Karsten Keil \u003ckkeil@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b68e31d0ebbcc909d1941f9f230c9d062a3a13d3",
      "tree": "b32902e5de02081cbb9eca49d7bb0b444e2b4f23",
      "parents": [
        "ed97bd37efd8ff7398d3a7eedf4bcbf245f5dad3"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Mon Oct 02 02:17:18 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:14 2006 -0700"
      },
      "message": "[PATCH] const struct tty_operations\n\nAs part of an SMP cleanliness pass over UML, I consted a bunch of\nstructures in order to not have to document their locking.  One of these\nstructures was a struct tty_operations.  In order to const it in UML\nwithout introducing compiler complaints, the declaration of\ntty_set_operations needs to be changed, and then all of its callers need to\nbe fixed.\n\nThis patch declares all struct tty_operations in the tree as const.  In all\ncases, they are static and used only as input to tty_set_operations.  As an\nextra check, I ran an i386 allyesconfig build which produced no extra\nwarnings.\n\n53 drivers are affected.  I checked the history of a bunch of them, and in\nmost cases, there have been only a handful of maintenance changes in the\nlast six months.  serial_core.c was the busiest one that I looked at.\n\nSigned-off-by: Jeff Dike \u003cjdike@addtoit.com\u003e\nAcked-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ba52de123d454b57369f291348266d86f4b35070",
      "tree": "3973f3f3c853b5857b6b64a027cadd4fe954e3b9",
      "parents": [
        "577c4eb09d1034d0739e3135fd2cff50588024be"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 27 01:50:49 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:18 2006 -0700"
      },
      "message": "[PATCH] inode-diet: Eliminate i_blksize from the inode structure\n\nThis eliminates the i_blksize field from struct inode.  Filesystems that want\nto provide a per-inode st_blksize can do so by providing their own getattr\nroutine instead of using the generic_fillattr() function.\n\nNote that some filesystems were providing pretty much random (and incorrect)\nvalues for i_blksize.\n\n[bunk@stusta.de: cleanup]\n[akpm@osdl.org: generic_fillattr() fix]\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6ab3d5624e172c553004ecc862bfeac16d9d68b7",
      "tree": "6d98881fe91fd9583c109208d5c27131b93fa248",
      "parents": [
        "e02169b682bc448ccdc819dc8639ed34a23cedd8"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@wohnheim.fh-wedel.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "message": "Remove obsolete #include \u003clinux/config.h\u003e\n\nSigned-off-by: Jörn Engel \u003cjoern@wohnheim.fh-wedel.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "f4eaa37017a5a68f67ef86729508022c13fb8e6d",
      "tree": "7a2b03b575d77922c1e0bf1da7b74e87451462c6",
      "parents": [
        "264f48646e6829b4d00a0e058452578318e6fb15"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 21:15:16 2005 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 26 12:25:09 2006 -0700"
      },
      "message": "[PATCH] devfs: Remove the tty_driver devfs_name field as it\u0027s no longer needed\n\nAlso fixes all drivers that set this field.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "ff23eca3e8f613034e0d20ff86f6a89b62f5a14e",
      "tree": "826285f5daa660001d38cac6baaf34411fd40131",
      "parents": [
        "8ab5e4c15b53e147c08031a959d9f776823dbe73"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 21:15:16 2005 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 26 12:25:08 2006 -0700"
      },
      "message": "[PATCH] devfs: Remove the devfs_fs_kernel.h file from the tree\n\nAlso fixes up all files that #include it.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "8ab5e4c15b53e147c08031a959d9f776823dbe73",
      "tree": "b851d4c1fdbd396379279e4475f7f778a667a208",
      "parents": [
        "7c69ef79741910883d5543caafa06aca3ebadbd1"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 21:15:16 2005 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 26 12:25:07 2006 -0700"
      },
      "message": "[PATCH] devfs: Remove devfs_remove() function from the kernel tree\n\nRemoves the devfs_remove() function and all callers of it.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "7c69ef79741910883d5543caafa06aca3ebadbd1",
      "tree": "655d3f60abee0195d0aadb2c86ab04ccca89a307",
      "parents": [
        "1a715c5cf917326a285533d1116d725f5f2593c2"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 21:15:16 2005 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 26 12:25:07 2006 -0700"
      },
      "message": "[PATCH] devfs: Remove devfs_mk_cdev() function from the kernel tree\n\nRemoves the devfs_mk_cdev() function and all callers of it.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "6aa65472d18703064898eefb5eb58f7ecd0d8912",
      "tree": "d7085a9599febe317937dab77abddf857910f55b",
      "parents": [
        "e6f47f978bcd5413fff610613b18e9e0eab9bc1b"
      ],
      "author": {
        "name": "Michael Buesch",
        "email": "mb@bu3sch.de",
        "time": "Mon Jun 26 00:25:30 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:22 2006 -0700"
      },
      "message": "[PATCH] CAPI crash / race condition\n\nI am getting more or less reproducible crashes from the CAPI subsystem\nusing the fcdsl driver:\n\nUnable to handle kernel NULL pointer dereference at virtual address 00000010\n printing eip:\nc39bbca4\n*pde \u003d 00000000\nOops: 0000 [#1]\nModules linked in: netconsole capi capifs 3c59x mii fcdsl kernelcapi uhci_hcd usbcore ide_cd cdrom\nCPU:    0\nEIP:    0060:[\u003cc39bbca4\u003e]    Tainted: P      VLI\nEFLAGS: 00010202   (2.6.16.11 #3)\nEIP is at handle_minor_send+0x17a/0x241 [capi]\neax: c24abbc0   ebx: c0b4c980   ecx: 00000010   edx: 00000010\nesi: c1679140   edi: c2783016   ebp: 0000c28d   esp: c0327e24\nds: 007b   es: 007b   ss: 0068\nProcess swapper (pid: 0, threadinfo\u003dc0326000 task\u003dc02e1300)\nStack: \u003c0\u003e000005b4 c1679180 00000000 c28d0000 c1ce04e0 c2f69654 c221604e c1679140\n       c39bc19a 00000038 c20c0400 c075c560 c1f2f800 00000000 c01dc9b5 c1e96a40\n       c075c560 c2ed64c0 c1e96a40 c01dcd3b c2fb94e8 c075c560 c0327f00 c1e96a40\nCall Trace:\n [\u003cc39bc19a\u003e] capinc_tty_write+0xda/0xf3 [capi]\n [\u003cc01dc9b5\u003e] ppp_sync_push+0x52/0xfe\n [\u003cc01dcd3b\u003e] ppp_sync_send+0x1f5/0x204\n [\u003cc01d9bc1\u003e] ppp_push+0x3e/0x9c\n [\u003cc01dacd4\u003e] ppp_xmit_process+0x422/0x4cc\n [\u003cc01daf3f\u003e] ppp_start_xmit+0x1c1/0x1f6\n [\u003cc0213ea5\u003e] qdisc_restart+0xa7/0x135\n [\u003cc020b112\u003e] dev_queue_xmit+0xba/0x19e\n [\u003cc0223f69\u003e] ip_output+0x1eb/0x236\n [\u003cc0220907\u003e] ip_forward+0x1c1/0x21a\n [\u003cc021fa6c\u003e] ip_rcv+0x38e/0x3ea\n [\u003cc020b4c2\u003e] netif_receive_skb+0x166/0x195\n [\u003cc020b55e\u003e] process_backlog+0x6d/0xd2\n [\u003cc020a30f\u003e] net_rx_action+0x6a/0xff\n [\u003cc0112909\u003e] __do_softirq+0x35/0x7d\n [\u003cc0112973\u003e] do_softirq+0x22/0x26\n [\u003cc0103a9d\u003e] do_IRQ+0x1e/0x25\n [\u003cc010255a\u003e] common_interrupt+0x1a/0x20\n [\u003cc01013c5\u003e] default_idle+0x2b/0x53\n [\u003cc0101426\u003e] cpu_idle+0x39/0x4e\n [\u003cc0328386\u003e] start_kernel+0x20b/0x20d\nCode: c0 e8 b3 b6 77 fc 85 c0 75 10 68 d8 c8 9b c3 e8 82 3d 75 fc 8b 43 60 5a eb 50 8d 56 50 c7 00 00 00 00 00 66 89 68 04 eb 02 89\nca \u003c8b\u003e 0a 85 c9 75 f8 89 02 89 da ff 46 54 8b 46 10 e8 30 79 fd ff\n \u003c0\u003eKernel panic - not syncing: Fatal exception in interrupt\n\nThat oops took me to the \"ackqueue\" implementation in capi.c.  The crash\noccured in capincci_add_ack() (auto-inlined by the compiler).\n\nI read the code a bit and finally decided to replace the custom linked list\nimplementation (struct capiminor-\u003eackqueue) by a struct list_head.  That\ndid not solve the crash, but produced the following interresting oops:\n\nUnable to handle kernel paging request at virtual address 00200200\n printing eip:\nc39bb1f5\n*pde \u003d 00000000\nOops: 0002 [#1]\nModules linked in: netconsole capi capifs 3c59x mii fcdsl kernelcapi uhci_hcd usbcore ide_cd cdrom\nCPU:    0\nEIP:    0060:[\u003cc39bb1f5\u003e]    Tainted: P      VLI\nEFLAGS: 00010246   (2.6.16.11 #3)\nEIP is at capiminor_del_ack+0x18/0x49 [capi]\neax: 00200200   ebx: c18d41a0   ecx: c1385620   edx: 00100100\nesi: 0000d147   edi: 00001103   ebp: 0000d147   esp: c1093f3c\nds: 007b   es: 007b   ss: 0068\nProcess events/0 (pid: 3, threadinfo\u003dc1092000 task\u003dc1089030)\nStack: \u003c0\u003ec2a17580 c18d41a0 c39bbd16 00000038 c18d41e0 00000000 d147c640 c29e0b68\n       c29e0b90 00000212 c29e0b68 c39932b2 c29e0bb0 c10736a0 c0119ef0 c399326c\n       c10736a8 c10736a0 c10736b0 c0119f93 c011a06e 00000001 00000000 00000000\nCall Trace:\n [\u003cc39bbd16\u003e] handle_minor_send+0x1af/0x241 [capi]\n [\u003cc39932b2\u003e] recv_handler+0x46/0x5f [kernelcapi]\n [\u003cc0119ef0\u003e] run_workqueue+0x5e/0x8d\n [\u003cc399326c\u003e] recv_handler+0x0/0x5f [kernelcapi]\n [\u003cc0119f93\u003e] worker_thread+0x0/0x10b\n [\u003cc011a06e\u003e] worker_thread+0xdb/0x10b\n [\u003cc010c998\u003e] default_wake_function+0x0/0xc\n [\u003cc011c399\u003e] kthread+0x90/0xbc\n [\u003cc011c309\u003e] kthread+0x0/0xbc\n [\u003cc0100a65\u003e] kernel_thread_helper+0x5/0xb\nCode: 7e 02 89 ee 89 f0 5a f7 d0 c1 f8 1f 5b 21 f0 5e 5f 5d c3 56 53 8b 48 50 89 d6 89 c3 8b 11 eb 2f 66 39 71 08 75 25 8b 41 04 8b 11 \u003c89\u003e 10 89 42 04 c7 01 00 01 10 00 89 c8 c7 41 04 00 02 20 00 e8\n\nThe interresting part of it is the \"virtual address 00200200\", which is\nLIST_POISON2.  I thought about some race condition, but as this is an UP\nsystem, it leads to questions on how it can happen.  If we look at EFLAGS:\n00010202, we see that interrupts are enabled at the time of the crash\n(eflags \u0026 0x200).\n\nFinally, I don\u0027t understand all the capi code, but I think that\nhandle_minor_send() is racing somehow against capi_recv_message(), which\ncall both capiminor_del_ack().  So if an IRQ occurs in the middle of\ncapiminor_del_ack() and another instance of it is invoked, it leads to\nlinked list corruption.\n\nI came up with the following patch.  With this, I could not reproduce the\ncrash anymore.  Clearly, this is not the correct fix for the issue.  As this\nseems to be some locking issue, there might be more locking issues in that\ncode.  For example, doesn\u0027t the whole struct capiminor have to be locked\nsomehow?\n\nCc: Carsten Paeth \u003ccalle@calle.de\u003e\nCc: Kai Germaschewski \u003ckai.germaschewski@gmx.de\u003e\nCc: Karsten Keil \u003ckkeil@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "454e2398be9b9fa30433fccc548db34d19aa9958",
      "tree": "1f61cb0c3716a33b661cfc8977e9beeb480a322c",
      "parents": [
        "1ad5544098a69d7dc1fa508cbb17e13a7a952fd8"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jun 23 02:02:57 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:45 2006 -0700"
      },
      "message": "[PATCH] VFS: Permit filesystem to override root dentry on mount\n\nExtend the get_sb() filesystem operation to take an extra argument that\npermits the VFS to pass in the target vfsmount that defines the mountpoint.\n\nThe filesystem is then required to manually set the superblock and root dentry\npointers.  For most filesystems, this should be done with simple_set_mnt()\nwhich will set the superblock pointer and then set the root dentry to the\nsuperblock\u0027s s_root (as per the old default behaviour).\n\nThe get_sb() op now returns an integer as there\u0027s now no need to return the\nsuperblock pointer.\n\nThis patch permits a superblock to be implicitly shared amongst several mount\npoints, such as can be done with NFS to avoid potential inode aliasing.  In\nsuch a case, simple_set_mnt() would not be called, and instead the mnt_root\nand mnt_sb would be set directly.\n\nThe patch also makes the following changes:\n\n (*) the get_sb_*() convenience functions in the core kernel now take a vfsmount\n     pointer argument and return an integer, so most filesystems have to change\n     very little.\n\n (*) If one of the convenience function is not used, then get_sb() should\n     normally call simple_set_mnt() to instantiate the vfsmount. This will\n     always return 0, and so can be tail-called from get_sb().\n\n (*) generic_shutdown_super() now calls shrink_dcache_sb() to clean up the\n     dcache upon superblock destruction rather than shrink_dcache_anon().\n\n     This is required because the superblock may now have multiple trees that\n     aren\u0027t actually bound to s_root, but that still need to be cleaned up. The\n     currently called functions assume that the whole tree is rooted at s_root,\n     and that anonymous dentries are not the roots of trees which results in\n     dentries being left unculled.\n\n     However, with the way NFS superblock sharing are currently set to be\n     implemented, these assumptions are violated: the root of the filesystem is\n     simply a dummy dentry and inode (the real inode for \u0027/\u0027 may well be\n     inaccessible), and all the vfsmounts are rooted on anonymous[*] dentries\n     with child trees.\n\n     [*] Anonymous until discovered from another tree.\n\n (*) The documentation has been adjusted, including the additional bit of\n     changing ext2_* into foo_* in the documentation.\n\n[akpm@osdl.org: convert ipath_fs, do other stuff]\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Nathan Scott \u003cnathans@sgi.com\u003e\nCc: Roland Dreier \u003crolandd@cisco.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "90d5ede5985f3b172cc3ccd89bf8c52a209088a5",
      "tree": "3163c41681c1cf7d90a7c272c82378413198d16f",
      "parents": [
        "a5370553952a9a414860d878b67c49eff11313bd"
      ],
      "author": {
        "name": "Stefan Schweizer",
        "email": "genstef@gentoo.org",
        "time": "Mon May 15 09:43:52 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon May 15 11:20:54 2006 -0700"
      },
      "message": "[PATCH] Fix capi reload by unregistering the correct major\n\nI am having the bug FATAL: Error inserting capi ([..]/capi.ko): Device or\nresource busy when I try to reload capi after loading it.  in dmesg:\ncapi20: unable to get major 68\n\nFix the issue which is caused by setting the major to zero when registering\nthe chrdev succeeded.\n\n(akpm: this means that we can again not use `major\u003d0\u0027 (dynamic major\nallocation) for this driver).\n\nCc: Karsten Keil \u003ckkeil@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "99ac48f54a91d02140c497edc31dc57d4bc5c85d",
      "tree": "68719391694a6914191bdf73d2071875f7653f6f",
      "parents": [
        "ec1b9466cb4f6ae6d950bd67055d9410d1056d2a"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Tue Mar 28 01:56:41 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:05 2006 -0800"
      },
      "message": "[PATCH] mark f_ops const in the inode\n\nMark the f_ops members of inodes as const, as well as fix the\nripple-through this causes by places that copy this f_ops and then \"do\nstuff\" with it.\n\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6d9eac34104654aa129e365b8d48bbb8c957f186",
      "tree": "47b81aaebb9903df4bdaacad963ca4ee2bf04204",
      "parents": [
        "829d5f68ec59ff7c0fdd472132680df8e4b64f3e"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Tue Mar 28 01:56:19 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:02 2006 -0800"
      },
      "message": "[PATCH] capi: register_chrdev() fix\n\nIf the user specified `major\u003d0\u0027 (odd thing to do), capi.c will use dynamic\nallocation.  We need to pick up that major for subsequent unregister_chrdev().\n\nAcked-by: Karsten Keil \u003ckkeil@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9cdf18279d1f4a2d075ebe924d74e6e4547f6e1b",
      "tree": "38a5e7b45ea57535c472601a97785d1360b1e6ee",
      "parents": [
        "4f7a07b88726781e37c4c5f63db3a6ee3f8500d3"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Thu Mar 23 03:00:21 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:10 2006 -0800"
      },
      "message": "[PATCH] sem2mutex: kcapi.c\n\nSemaphore to mutex conversion.\n\nThe conversion was generated via scripts, and the result was validated\nautomatically via a script as well.\n\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Karsten Keil \u003ckkeil@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "33f0f88f1c51ae5c2d593d26960c760ea154c2e2",
      "tree": "f53a38cf49406863f079d74d0e8f91b276f7c1a9",
      "parents": [
        "6ed80991a2dce4afc113be35089c564d62fa1f11"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Mon Jan 09 20:54:13 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:01:59 2006 -0800"
      },
      "message": "[PATCH] TTY layer buffering revamp\n\nThe API and code have been through various bits of initial review by\nserial driver people but they definitely need to live somewhere for a\nwhile so the unconverted drivers can get knocked into shape, existing\ndrivers that have been updated can be better tuned and bugs whacked out.\n\nThis replaces the tty flip buffers with kmalloc objects in rings. In the\nnormal situation for an IRQ driven serial port at typical speeds the\nbehaviour is pretty much the same, two buffers end up allocated and the\nkernel cycles between them as before.\n\nWhen there are delays or at high speed we now behave far better as the\nbuffer pool can grow a bit rather than lose characters. This also means\nthat we can operate at higher speeds reliably.\n\nFor drivers that receive characters in blocks (DMA based, USB and\nespecially virtualisation) the layer allows a lot of driver specific\ncode that works around the tty layer with private secondary queues to be\nremoved. The IBM folks need this sort of layer, the smart serial port\npeople do, the virtualisers do (because a virtualised tty typically\noperates at infinite speed rather than emulating 9600 baud).\n\nFinally many drivers had invalid and unsafe attempts to avoid buffer\noverflows by directly invoking tty methods extracted out of the innards\nof work queue structs. These are no longer needed and all go away. That\nfixes various random hangs with serial ports on overflow.\n\nThe other change in here is to optimise the receive_room path that is\nused by some callers. It turns out that only one ldisc uses receive room\nexcept asa constant and it updates it far far less than the value is\nread. We thus make it a variable not a function call.\n\nI expect the code to contain bugs due to the size alone but I\u0027ll be\nwatching and squashing them and feeding out new patches as it goes.\n\nBecause the buffers now dynamically expand you should only run out of\nbuffering when the kernel runs out of memory for real.  That means a lot of\nthe horrible hacks high performance drivers used to do just aren\u0027t needed any\nmore.\n\nDescription:\n\ntty_insert_flip_char is an old API and continues to work as before, as does\ntty_flip_buffer_push() [this is why many drivers dont need modification].  It\ndoes now also return the number of chars inserted\n\nThere are also\n\ntty_buffer_request_room(tty, len)\n\nwhich asks for a buffer block of the length requested and returns the space\nfound.  This improves efficiency with hardware that knows how much to\ntransfer.\n\nand tty_insert_flip_string_flags(tty, str, flags, len)\n\nto insert a string of characters and flags\n\nFor a smart interface the usual code is\n\n    len \u003d tty_request_buffer_room(tty, amount_hardware_says);\n    tty_insert_flip_string(tty, buffer_from_card, len);\n\nMore description!\n\nAt the moment tty buffers are attached directly to the tty.  This is causing a\nlot of the problems related to tty layer locking, also problems at high speed\nand also with bursty data (such as occurs in virtualised environments)\n\nI\u0027m working on ripping out the flip buffers and replacing them with a pool of\ndynamically allocated buffers.  This allows both for old style \"byte I/O\"\ndevices and also helps virtualisation and smart devices where large blocks of\ndata suddenely materialise and need storing.\n\nSo far so good.  Lots of drivers reference tty-\u003eflip.*.  Several of them also\ncall directly and unsafely into function pointers it provides.  This will all\nbreak.  Most drivers can use tty_insert_flip_char which can be kept as an API\nbut others need more.\n\nAt the moment I\u0027ve added the following interfaces, if people think more will\nbe needed now is a good time to say\n\n int tty_buffer_request_room(tty, size)\n\nTry and ensure at least size bytes are available, returns actual room (may be\nzero).  At the moment it just uses the flipbuf space but that will change.\nRepeated calls without characters being added are not cumulative.  (ie if you\ncall it with 1, 1, 1, and then 4 you\u0027ll have four characters of space.  The\nother functions will also try and grow buffers in future but this will be a\nmore efficient way when you know block sizes.\n\n int tty_insert_flip_char(tty, ch, flag)\n\nAs before insert a character if there is room.  Now returns 1 for success, 0\nfor failure.\n\n int tty_insert_flip_string(tty, str, len)\n\nInsert a block of non error characters.  Returns the number inserted.\n\n int tty_prepare_flip_string(tty, strptr, len)\n\nAdjust the buffer to allow len characters to be added.  Returns a buffer\npointer in strptr and the length available.  This allows for hardware that\nneeds to use functions like insl or mencpy_fromio.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nCc: Paul Fulghum \u003cpaulkf@microgate.com\u003e\nSigned-off-by: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nSigned-off-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: John Hawkes \u003chawkes@sgi.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1b1dcc1b57a49136f118a0f16367256ff9994a69",
      "tree": "b0b36d4f41d28c9d6514fb309d33c1a084d6309b",
      "parents": [
        "794ee1baee1c26be40410233e6c20bceb2b03c08"
      ],
      "author": {
        "name": "Jes Sorensen",
        "email": "jes@sgi.com",
        "time": "Mon Jan 09 15:59:24 2006 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@hera.kernel.org",
        "time": "Mon Jan 09 15:59:24 2006 -0800"
      },
      "message": "[PATCH] mutex subsystem, semaphore to mutex: VFS, -\u003ei_sem\n\nThis patch converts the inode semaphore to a mutex. I have tested it on\nXFS and compiled as much as one can consider on an ia64. Anyway your\nluck with it might be different.\n\nModified-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n\n(finished the conversion)\n\nSigned-off-by: Jes Sorensen \u003cjes@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6e21bd9a30f1d7eab26ef8b9259376e5322d89e5",
      "tree": "dd63e6e19965f8ef72d452694407e820ecb0e8c1",
      "parents": [
        "0f59cc4a35dbbc45c972daad0f1b063380cd9ea4"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sun Jan 08 01:05:15 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:14:09 2006 -0800"
      },
      "message": "[PATCH] drivers/isdn/: add missing #includes\n\nEvery file should #include the headers containing the prototypes for its\nglobal functions.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Armin Schindler \u003carmin@melware.de\u003e\nCc: Karsten Keil \u003ckkeil@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4e57b6817880946a3a78d5d8cad1ace363f7e449",
      "tree": "b6b5f3f9e8e52cc55d98239a4992e72e983c8fa4",
      "parents": [
        "b0423a0d9cc836b2c3d796623cd19236bfedfe63"
      ],
      "author": {
        "name": "Tim Schmielau",
        "email": "tim@physik3.uni-rostock.de",
        "time": "Sun Oct 30 15:03:48 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:32 2005 -0800"
      },
      "message": "[PATCH] fix missing includes\n\nI recently picked up my older work to remove unnecessary #includes of\nsched.h, starting from a patch by Dave Jones to not include sched.h\nfrom module.h. This reduces the number of indirect includes of sched.h\nby ~300. Another ~400 pointless direct includes can be removed after\nthis disentangling (patch to follow later).\nHowever, quite a few indirect includes need to be fixed up for this.\n\nIn order to feed the patches through -mm with as little disturbance as\npossible, I\u0027ve split out the fixes I accumulated up to now (complete for\ni386 and x86_64, more archs to follow later) and post them before the real\npatch.  This way this large part of the patch is kept simple with only\nadding #includes, and all hunks are independent of each other.  So if any\nhunk rejects or gets in the way of other patches, just drop it.  My scripts\nwill pick it up again in the next round.\n\nSigned-off-by: Tim Schmielau \u003ctim@physik3.uni-rostock.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "53f4654272df7c51064825024340554b39c9efba",
      "tree": "e3e7b82a6bb0040ffbd267b250be2720704b98f2",
      "parents": [
        "51d172d5f3a193e4b8f76179b2e55d7a36b94117"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Oct 27 22:25:43 2005 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 28 09:52:52 2005 -0700"
      },
      "message": "[PATCH] Driver Core: fix up all callers of class_device_create()\n\nThe previous patch adding the ability to nest struct class_device\nchanged the paramaters to the call class_device_create().  This patch\nfixes up all in-kernel users of the function.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "820d220de400cfaaf846a2d8b5de93f9ea5a9b80",
      "tree": "1ae4d2b24483c41446d42b07f6ca120674c3fae0",
      "parents": [
        "8dbddf17824861f2298de093549e6493d9844835"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Sat Aug 27 13:47:06 2005 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Aug 27 10:11:40 2005 -0700"
      },
      "message": "[PATCH] Fix capifs bug in initialization error path.\n\nThis fixes a bug in the capifs initialization code, where the\nfilesystem is not unregistered if kern_mount() fails.\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Karsten Keil \u003ckkeil@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "56b2293595b2eb52cc2aa2baf92c6cfa8265f9d5",
      "tree": "5cbada5b35b1b87dfd75852c9397a2b14dfbb9d9",
      "parents": [
        "8874b414ffe037c39e73bb262ddf69653a13c0a4"
      ],
      "author": {
        "name": "gregkh@suse.de",
        "email": "gregkh@suse.de",
        "time": "Wed Mar 23 10:01:41 2005 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 15:15:09 2005 -0700"
      },
      "message": "[PATCH] class: convert drivers/* to use the new class api instead of class_simple\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "408b664a7d394a5e4315fbd14aca49b042cb2b08",
      "tree": "bd3ebe72229227962d157e46e61ed65b78d6e28b",
      "parents": [
        "c31403a1f5a761599df38bcc2d6ba94f24320c33"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sun May 01 08:59:29 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:59:29 2005 -0700"
      },
      "message": "[PATCH] make lots of things static\n\nAnother large rollup of various patches from Adrian which make things static\nwhere they were needlessly exported.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
