)]}'
{
  "log": [
    {
      "commit": "6332178d91ca1a9dbd99bd97cabbcf965d178e9f",
      "tree": "d98af2cbc7ff0e9e4d00b6cc8c79b05ca7815a5f",
      "parents": [
        "908a7a16b852ffd618a9127be8d62432182d81b4",
        "739840d529eb7505d3cbfe9d468bf1440c9a8e27"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 23 17:56:23 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 23 17:56:23 2008 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\n\tdrivers/net/ppp_generic.c\n"
    },
    {
      "commit": "1b08534e562dae7b084326f8aa8cc12a4c1b6593",
      "tree": "9fcc3093d7002015d334a28b0b0e21527ed5dcf7",
      "parents": [
        "3298a7388c00227e736d1037328788073c80c7b4"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yjwei@cn.fujitsu.com",
        "time": "Thu Dec 18 19:35:10 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 18 19:35:10 2008 -0800"
      },
      "message": "net: Fix module refcount leak in kernel_accept()\n\nThe kernel_accept() does not hold the module refcount of newsock-\u003eops-\u003eowner,\nso we need __module_get(newsock-\u003eops-\u003eowner) code after call kernel_accept()\nby hand.\nIn sunrpc, the module refcount is missing to hold. So this cause kernel panic.\n\nUsed following script to reproduct:\n\nwhile [ 1 ];\ndo\n    mount -t nfs4 192.168.0.19:/ /mnt\n    touch /mnt/file\n    umount /mnt\n    lsmod | grep ipv6\ndone\n\nThis patch fixed the problem by add __module_get(newsock-\u003eops-\u003eowner) to\nkernel_accept(). So we do not need to used __module_get(newsock-\u003eops-\u003eowner)\nin every place when used kernel_accept().\n\nSigned-off-by: Wei Yongjun \u003cyjwei@cn.fujitsu.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "037322abe6141e32e1b1dea86a9405d52c99be5d",
      "tree": "f223a6e44f8243cef4d937ad4091af55e21424b7",
      "parents": [
        "0eae1b98cf3022715b5a6ea5f1ac6b0bd7ac4edd"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Sun Dec 14 23:18:00 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 14 23:18:00 2008 -0800"
      },
      "message": "bt/rfcomm/tty: join error paths\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e19caae7177fcc732ae1b47135e39f577352adb2",
      "tree": "f212c02bd6888bc6c4a30db6ab3278f365a6fccc",
      "parents": [
        "bcb09dc276e706ed6f22813ba774797125f3da0a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 09 01:04:27 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 09 01:04:27 2008 -0800"
      },
      "message": "bluetooth: Fix unused var warning properly in rfcomm_sock_ioctl().\n\nAs Stephen Rothwell points out, we don\u0027t want \u0027sock\u0027 here but\nrather we really do want \u0027sk\u0027.\n\nThis local var is protected by all sorts of bluetooth debugging\nkconfig vars, but BT_DBG() is just a straight pr_debug() call\nwhich is unconditional.\n\npr_debug() evaluates it\u0027s args only if either DEBUG or\nCONFIG_DYNAMIC_PRINTK_DEBUG is defined.\n\nSolving this inside of the BT_DBG() macro is non-trivial since\nit\u0027s varargs.  And these ifdefs are ugly.\n\nSo, just mark this \u0027sk\u0027 thing __maybe_unused and kill the ifdefs.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6cf1a0f856bcb5423bfb4121b2dfeaa3ba7b1ff2",
      "tree": "cc1ea9def5bfbe95a91add565f04b0fd4f08685f",
      "parents": [
        "e42130039c85826567d4e4864f2c7492578576cb"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 09 00:01:53 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 09 00:01:53 2008 -0800"
      },
      "message": "bluetooth: Fix rfcomm_sock_ioctl() build failure with debugging enabled.\n\nIt\u0027s \u0027sock\u0027 not \u0027sk\u0027.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9a5df92374d65e2886b92e98dd7d873c533a83ff",
      "tree": "0e45cc166ce12c42cb7a94cac2dd82e255552120",
      "parents": [
        "2e792995e4cb425422dc379c3618447c462756a8"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Nov 30 12:17:29 2008 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Nov 30 12:17:29 2008 +0100"
      },
      "message": "Bluetooth: Fix RFCOMM release oops when device is still in use\n\nIt turns out that the following sequence of actions will reproduce the\noops:\n\n  1. Create a new RFCOMM device (using RFCOMMCREATEDEV ioctl)\n  2. (Try to) open the device\n  3. Release the RFCOMM device (using RFCOMMRELEASEDEV ioctl)\n\nAt this point, the \"/dev/rfcomm*\" device is still in use, but it is gone\nfrom the internal list, so the device id can be reused.\n\n  4. Create a new RFCOMM device with the same device id as before\n\nAnd now kobject will complain that the TTY already exists.\n\n(See http://lkml.org/lkml/2008/7/13/89 for a reproducible test-case.)\n\nThis patch attempts to correct this by only removing the device from the\ninternal list of devices at the final unregister stage, so that the id\nwon\u0027t get reused until the device has been completely destructed.\n\nThis should be safe as the RFCOMM_TTY_RELEASED bit will be set for the\ndevice and prevent the device from being reopened after it has been\nreleased.\n\nBased on a report from Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "a418b893a6af11ae73c762ed5b76c1bad6dc19d8",
      "tree": "a24f9192988e4d55077d77420b90dc3cfd647a06",
      "parents": [
        "5ddd4a60683f819982b7bd3d1aee972f931c11a3"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Nov 30 12:17:28 2008 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Nov 30 12:17:28 2008 +0100"
      },
      "message": "Bluetooth: Enable per-module dynamic debug messages\n\nWith the introduction of CONFIG_DYNAMIC_PRINTK_DEBUG it is possible to\nallow debugging without having to recompile the kernel. This patch turns\nall BT_DBG() calls into pr_debug() to support dynamic debug messages.\n\nAs a side effect all CONFIG_BT_*_DEBUG statements are now removed and\nsome broken debug entries have been fixed.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "45555c0ed436b8b06eeaa5c524a3377e6d24fb45",
      "tree": "b339a04dbcb47cfaf3c3a489624b7b404e229be5",
      "parents": [
        "ff0db0490a2eb6db4f03870987c5c8e3dd81e747"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 25 16:59:21 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 16:59:21 2008 -0800"
      },
      "message": "bluetooth: fix warning in net/bluetooth/rfcomm/sock.c\n\nfix this warning:\n\n  net/bluetooth/rfcomm/sock.c: In function ‘rfcomm_sock_ioctl’:\n  net/bluetooth/rfcomm/sock.c:795: warning: unused variable ‘sk’\n\nperhaps BT_DEBUG() should be improved to do printf format checking\ninstead of the #ifdef, but that looks quite intrusive: each bluetooth\n.c file undefines the macro.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "63fbd24e5102eecfc9d049ed7f4be7f9a25f814f",
      "tree": "9ead3c67300ce8bcdbe26d02ba264e84baea930a",
      "parents": [
        "90855d7b725d764d6d70503bcc1b494cf10ddc98"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Aug 18 13:23:53 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Aug 18 13:23:53 2008 +0200"
      },
      "message": "[Bluetooth] Consolidate maintainers information\n\nThe Bluetooth entries for the MAINTAINERS file are a little bit too\nmuch. Consolidate them into two entries. One for Bluetooth drivers and\nanother one for the Bluetooth subsystem.\n\nAlso the MODULE_AUTHOR should indicate the current maintainer of the\nmodule and actually not the original author. Fix all Bluetooth modules\nto provide current maintainer information.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "db6d8c7a4027b48d797b369a53f8470aaeed7063",
      "tree": "e140c104a89abc2154e1f41a7db8ebecbb6fa0b4",
      "parents": [
        "3a533374283aea50eab3976d8a6d30532175f009",
        "fb65a7c091529bfffb1262515252c0d0f6241c5c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 20 17:43:29 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 20 17:43:29 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (1232 commits)\n  iucv: Fix bad merging.\n  net_sched: Add size table for qdiscs\n  net_sched: Add accessor function for packet length for qdiscs\n  net_sched: Add qdisc_enqueue wrapper\n  highmem: Export totalhigh_pages.\n  ipv6 mcast: Omit redundant address family checks in ip6_mc_source().\n  net: Use standard structures for generic socket address structures.\n  ipv6 netns: Make several \"global\" sysctl variables namespace aware.\n  netns: Use net_eq() to compare net-namespaces for optimization.\n  ipv6: remove unused macros from net/ipv6.h\n  ipv6: remove unused parameter from ip6_ra_control\n  tcp: fix kernel panic with listening_get_next\n  tcp: Remove redundant checks when setting eff_sacks\n  tcp: options clean up\n  tcp: Fix MD5 signatures for non-linear skbs\n  sctp: Update sctp global memory limit allocations.\n  sctp: remove unnecessary byteshifting, calculate directly in big-endian\n  sctp: Allow only 1 listening socket with SO_REUSEADDR\n  sctp: Do not leak memory on multiple listen() calls\n  sctp: Support ipv6only AF_INET6 sockets.\n  ...\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": "407d819cf0fd54c6fc1138a509225696aecafd15",
      "tree": "b653a5c8c09f7c316f5f98947be262e27a4ca33a",
      "parents": [
        "7abbcd6a4c8d6179121f2915a761b1133bf1cd99",
        "b1235d79611e78a07629b4cbe53291c9cffd1834"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 19 00:30:39 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 19 00:30:39 2008 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/holtmann/bluetooth-2.6\n"
    },
    {
      "commit": "a0c22f226502be6eab37a1d9bf6fb0fadf551376",
      "tree": "fe0237624038290fc0d84ce5ee97a65c49b56818",
      "parents": [
        "8b6b3da765af9600b5edd8e3e84a20523e975884"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:52 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:52 2008 +0200"
      },
      "message": "[Bluetooth] Move pending packets from RFCOMM socket to TTY\n\nWhen an incoming RFCOMM socket connection gets converted into a TTY,\nit can happen that packets are lost. This mainly happens with the\nHandsfree profile where the remote side starts sending data right\naway. The problem is that these packets are in the socket receive\nqueue. So when creating the TTY make sure to copy all pending packets\nfrom the socket receive queue to a private queue inside the TTY.\n\nTo make this actually work, the flow control on the newly created TTY\nwill be disabled and only enabled again when the TTY is opened by an\napplication. And right before that, the pending packets will be put\ninto the TTY flip buffer.\n\nSigned-off-by: Denis Kenzior \u003cdenis.kenzior@trolltech.com\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "8b6b3da765af9600b5edd8e3e84a20523e975884",
      "tree": "16c1ccc6c02ea8fd89043e7ed1934a9cd1d9b6be",
      "parents": [
        "ca37bdd53b5af06d00e792f2415b93206aa2a541"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:52 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:52 2008 +0200"
      },
      "message": "[Bluetooth] Store remote modem status for RFCOMM TTY\n\nWhen switching a RFCOMM socket to a TTY, the remote modem status might\nbe needed later. Currently it is lost since the original configuration\nis done via the socket interface. So store the modem status and reply\nit when the socket has been converted to a TTY.\n\nSigned-off-by: Denis Kenzior \u003cdenis.kenzior@trolltech.com\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "ca37bdd53b5af06d00e792f2415b93206aa2a541",
      "tree": "02e030b02e650e0508243f43f130291e74c194de",
      "parents": [
        "78c6a1744fafc3a396f85c1970eb78839b55af74"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:52 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:52 2008 +0200"
      },
      "message": "[Bluetooth] Use non-canonical TTY by default for RFCOMM\n\nWhile the RFCOMM TTY emulation can act like a real serial port, in\nreality it is not used like this. So to not mess up stupid applications,\nuse the non-canonical mode by default.\n\nSigned-off-by: Denis Kenzior \u003cdenis.kenzior@trolltech.com\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "3241ad820dbb172021e0268b5611031991431626",
      "tree": "628c3fbdc88f9de6c996358ebcb551176da38f1f",
      "parents": [
        "40be492fe4fab829951681860c2bb26fa1d5fe4a"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:50 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:50 2008 +0200"
      },
      "message": "[Bluetooth] Add timestamp support to L2CAP, RFCOMM and SCO\n\nEnable the common timestamp functionality that the network subsystem\nprovides for L2CAP, RFCOMM and SCO sockets. It is possible to either\nuse SO_TIMESTAMP or the IOCTLs to retrieve the timestamp of the\ncurrent packet.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "40be492fe4fab829951681860c2bb26fa1d5fe4a",
      "tree": "41b576692c2206c9a51e689f54170076ec95bc3a",
      "parents": [
        "f8558555f31e177e2644f3c8116801c3e5c29974"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:50 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:50 2008 +0200"
      },
      "message": "[Bluetooth] Export details about authentication requirements\n\nWith the Simple Pairing support, the authentication requirements are\nan explicit setting during the bonding process. Track and enforce the\nrequirements and allow higher layers like L2CAP and RFCOMM to increase\nthem if needed.\n\nThis patch introduces a new IOCTL that allows to query the current\nauthentication requirements. It is also possible to detect Simple\nPairing support in the kernel this way.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "9719f8afce34d3d04e884873a8a5e3483e30974c",
      "tree": "aee26f7df7e2d92aa54d4b9da88c4ff5987191dd",
      "parents": [
        "77db1980565626471a980f0d2d17299e4bd5e7a5"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:45 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:45 2008 +0200"
      },
      "message": "[Bluetooth] Disconnect when encryption gets disabled\n\nThe Bluetooth specification allows to enable or disable the encryption\nof an ACL link at any time by either the peer or the remote device. If\na L2CAP or RFCOMM connection requested an encrypted link, they will now\ndisconnect that link if the encryption gets disabled. Higher protocols\nthat don\u0027t care about encryption (like SDP) are not affected.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "77db1980565626471a980f0d2d17299e4bd5e7a5",
      "tree": "93b71744c82fd3479d3c91033b871032de03049b",
      "parents": [
        "79d554a6976a295aa9212172b218f29ca71c3b3d"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:45 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:45 2008 +0200"
      },
      "message": "[Bluetooth] Enforce security for outgoing RFCOMM connections\n\nRecent tests with various Bluetooth headsets have shown that some of\nthem don\u0027t enforce authentication and encryption when connecting. All\nof them leave it up to the host stack to enforce it. Non of them should\nallow unencrypted connections, but that is how it is. So in case the\nlink mode settings require authentication and/or encryption it will now\nalso be enforced on outgoing RFCOMM connections. Previously this was\nonly done for incoming connections.\n\nThis support has a small drawback from a protocol level point of view\nsince the host stack can\u0027t really tell with 100% certainty if a remote\nside is already authenticated or not. So if both sides are configured\nto enforce authentication it will be requested twice. Most Bluetooth\nchips are caching this information and thus no extra authentication\nprocedure has to be triggered over-the-air, but it can happen.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "0b040829952d84bf2a62526f0e24b624e0699447",
      "tree": "b2e836e7e64343f19b949e50099bbe2ea554ec30",
      "parents": [
        "573bf470e693f73a6ac437b17a64a10902ba54bf"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Tue Jun 10 22:46:50 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 11 21:00:38 2008 -0700"
      },
      "message": "net: remove CVS keywords\n\nThis patch removes CVS keywords that weren\u0027t updated for a long time\nfrom comments.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "537d59af73d894750cff14f90fe2b6d77fbab15b",
      "tree": "bff5d6efbffbf6685cac5698efe7e3192e391047",
      "parents": [
        "c3b25b32e8bef526cca748e1ba023c6bdd705a99"
      ],
      "author": {
        "name": "Dave Young",
        "email": "hidave.darkstar@gmail.com",
        "time": "Sun Jun 01 23:50:52 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 03 14:27:17 2008 -0700"
      },
      "message": "bluetooth: rfcomm_dev_state_change deadlock fix\n\nThere\u0027s logic in __rfcomm_dlc_close:\n\trfcomm_dlc_lock(d);\n\td-\u003estate \u003d BT_CLOSED;\n\td-\u003estate_changed(d, err);\n\trfcomm_dlc_unlock(d);\n\nIn rfcomm_dev_state_change, it\u0027s possible that rfcomm_dev_put try to\ntake the dlc lock, then we will deadlock.\n\nHere fixed it by unlock dlc before rfcomm_dev_get in\nrfcomm_dev_state_change.\n\nwhy not unlock just before rfcomm_dev_put? it\u0027s because there\u0027s\nanother problem.  rfcomm_dev_get/rfcomm_dev_del will take\nrfcomm_dev_lock, but in rfcomm_dev_add the lock order is :\nrfcomm_dev_lock --\u003e dlc lock\n\nso I unlock dlc before the taken of rfcomm_dev_lock.\n\nActually it\u0027s a regression caused by commit\n1905f6c736cb618e07eca0c96e60e3c024023428 (\"bluetooth :\n__rfcomm_dlc_close lock fix\"), the dlc state_change could be two\ncallbacks : rfcomm_sk_state_change and rfcomm_dev_state_change. I\nmissed the rfcomm_sk_state_change that time.\n\nThanks Arjan van de Ven \u003carjan@linux.intel.com\u003e for the effort in\ncommit 4c8411f8c115def968820a4df6658ccfd55d7f1a (\"bluetooth: fix\nlocking bug in the rfcomm socket cleanup handling\") but he missed the\nrfcomm_dev_state_change lock issue.\n\nSigned-off-by: Dave Young \u003chidave.darkstar@gmail.com\u003e\nAcked-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4c8411f8c115def968820a4df6658ccfd55d7f1a",
      "tree": "4a2d592d9b41fabbd184ddaa7d2839f87f0a5ac9",
      "parents": [
        "825de27d9e40b3117b29a79d412b7a4b78c5d815"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Thu May 29 01:32:47 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 29 01:32:47 2008 -0700"
      },
      "message": "bluetooth: fix locking bug in the rfcomm socket cleanup handling\n\nin net/bluetooth/rfcomm/sock.c, rfcomm_sk_state_change() does the\nfollowing operation:\n\n        if (parent \u0026\u0026 sock_flag(sk, SOCK_ZAPPED)) {\n                /* We have to drop DLC lock here, otherwise\n                 * rfcomm_sock_destruct() will dead lock. */\n                rfcomm_dlc_unlock(d);\n                rfcomm_sock_kill(sk);\n                rfcomm_dlc_lock(d);\n        }\n}\n\nwhich is fine, since rfcomm_sock_kill() will call sk_free() which will call\nrfcomm_sock_destruct() which takes the rfcomm_dlc_lock()... so far so good.\n\nHOWEVER, this assumes that the rfcomm_sk_state_change() function always gets\ncalled with the rfcomm_dlc_lock() taken. This is the case for all but one\ncase, and in that case where we don\u0027t have the lock, we do a double unlock\nfollowed by an attempt to take the lock, which due to underflow isn\u0027t\ngoing anywhere fast.\n\nThis patch fixes this by moving the stragling case inside the lock, like\nthe other usages of the same call are doing in this code.\n\nThis was found with the help of the www.kerneloops.org project, where this\ndeadlock was observed 51 times at this point in time:\nhttp://www.kerneloops.org/search.php?search\u003drfcomm_sock_destruct\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nAcked-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e1ec1b8ccdf0df6000faa8c2d985ca5f94157e5a",
      "tree": "4e1ca325dde22f1ac21c9da0be509e87e922e604",
      "parents": [
        "c0f39322c335412339dec16ebfd2a05ceba5ebcf",
        "802fb176d8c635ae42da31b80841c26e8c7338a0"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 02 22:35:23 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 02 22:35:23 2008 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\n\tdrivers/net/s2io.c\n"
    },
    {
      "commit": "1905f6c736cb618e07eca0c96e60e3c024023428",
      "tree": "321a987569bf380fe1960879d03dd5e98fab92cc",
      "parents": [
        "68845cb2c82275efd7390026bba70c320ca6ef86"
      ],
      "author": {
        "name": "Dave Young",
        "email": "hidave.darkstar@gmail.com",
        "time": "Tue Apr 01 23:59:06 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 01 23:59:06 2008 -0700"
      },
      "message": "bluetooth : __rfcomm_dlc_close lock fix\n\nLockdep warning will be trigged while rfcomm connection closing.\n\nThe locks taken in rfcomm_dev_add:\nrfcomm_dev_lock --\u003e d-\u003elock\n\nIn __rfcomm_dlc_close:\nd-\u003elock --\u003e rfcomm_dev_lock (in rfcomm_dev_state_change)\n\nThere\u0027s two way to fix it, one is in rfcomm_dev_add we first locking\nd-\u003elock then the rfcomm_dev_lock\n\nThe other (in this patch), remove the locking of d-\u003elock for\nrfcomm_dev_state_change because just locking \"d-\u003estate \u003d BT_CLOSED;\"\nis enough.\n\n[  295.002046] \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[  295.002046] [ INFO: possible circular locking dependency detected ]\n[  295.002046] 2.6.25-rc7 #1\n[  295.002046] -------------------------------------------------------\n[  295.002046] krfcommd/2705 is trying to acquire lock:\n[  295.002046]  (rfcomm_dev_lock){-.--}, at: [\u003cf89a090a\u003e] rfcomm_dev_state_change+0x6a/0xd0 [rfcomm]\n[  295.002046] \n[  295.002046] but task is already holding lock:\n[  295.002046]  (\u0026d-\u003elock){--..}, at: [\u003cf899c533\u003e] __rfcomm_dlc_close+0x43/0xd0 [rfcomm]\n[  295.002046] \n[  295.002046] which lock already depends on the new lock.\n[  295.002046] \n[  295.002046] \n[  295.002046] the existing dependency chain (in reverse order) is:\n[  295.002046] \n[  295.002046] -\u003e #1 (\u0026d-\u003elock){--..}:\n[  295.002046]        [\u003cc0149b23\u003e] check_prev_add+0xd3/0x200\n[  295.002046]        [\u003cc0149ce5\u003e] check_prevs_add+0x95/0xe0\n[  295.002046]        [\u003cc0149f6f\u003e] validate_chain+0x23f/0x320\n[  295.002046]        [\u003cc014b7b1\u003e] __lock_acquire+0x1c1/0x760\n[  295.002046]        [\u003cc014c349\u003e] lock_acquire+0x79/0xb0\n[  295.002046]        [\u003cc03d6b99\u003e] _spin_lock+0x39/0x80\n[  295.002046]        [\u003cf89a01c0\u003e] rfcomm_dev_add+0x240/0x360 [rfcomm]\n[  295.002046]        [\u003cf89a047e\u003e] rfcomm_create_dev+0x6e/0xe0 [rfcomm]\n[  295.002046]        [\u003cf89a0823\u003e] rfcomm_dev_ioctl+0x33/0x60 [rfcomm]\n[  295.002046]        [\u003cf899facc\u003e] rfcomm_sock_ioctl+0x2c/0x50 [rfcomm]\n[  295.002046]        [\u003cc0363d38\u003e] sock_ioctl+0x118/0x240\n[  295.002046]        [\u003cc0194196\u003e] vfs_ioctl+0x76/0x90\n[  295.002046]        [\u003cc0194446\u003e] do_vfs_ioctl+0x56/0x140\n[  295.002046]        [\u003cc0194569\u003e] sys_ioctl+0x39/0x60\n[  295.002046]        [\u003cc0104faa\u003e] syscall_call+0x7/0xb\n[  295.002046]        [\u003cffffffff\u003e] 0xffffffff\n[  295.002046] \n[  295.002046] -\u003e #0 (rfcomm_dev_lock){-.--}:\n[  295.002046]        [\u003cc0149a84\u003e] check_prev_add+0x34/0x200\n[  295.002046]        [\u003cc0149ce5\u003e] check_prevs_add+0x95/0xe0\n[  295.002046]        [\u003cc0149f6f\u003e] validate_chain+0x23f/0x320\n[  295.002046]        [\u003cc014b7b1\u003e] __lock_acquire+0x1c1/0x760\n[  295.002046]        [\u003cc014c349\u003e] lock_acquire+0x79/0xb0\n[  295.002046]        [\u003cc03d6639\u003e] _read_lock+0x39/0x80\n[  295.002046]        [\u003cf89a090a\u003e] rfcomm_dev_state_change+0x6a/0xd0 [rfcomm]\n[  295.002046]        [\u003cf899c548\u003e] __rfcomm_dlc_close+0x58/0xd0 [rfcomm]\n[  295.002046]        [\u003cf899d44f\u003e] rfcomm_recv_ua+0x6f/0x120 [rfcomm]\n[  295.002046]        [\u003cf899e061\u003e] rfcomm_recv_frame+0x171/0x1e0 [rfcomm]\n[  295.002046]        [\u003cf899e357\u003e] rfcomm_run+0xe7/0x550 [rfcomm]\n[  295.002046]        [\u003cc013c18c\u003e] kthread+0x5c/0xa0\n[  295.002046]        [\u003cc0105c07\u003e] kernel_thread_helper+0x7/0x10\n[  295.002046]        [\u003cffffffff\u003e] 0xffffffff\n[  295.002046] \n[  295.002046] other info that might help us debug this:\n[  295.002046] \n[  295.002046] 2 locks held by krfcommd/2705:\n[  295.002046]  #0:  (rfcomm_mutex){--..}, at: [\u003cf899e2eb\u003e] rfcomm_run+0x7b/0x550 [rfcomm]\n[  295.002046]  #1:  (\u0026d-\u003elock){--..}, at: [\u003cf899c533\u003e] __rfcomm_dlc_close+0x43/0xd0 [rfcomm]\n[  295.002046] \n[  295.002046] stack backtrace:\n[  295.002046] Pid: 2705, comm: krfcommd Not tainted 2.6.25-rc7 #1\n[  295.002046]  [\u003cc0128a38\u003e] ? printk+0x18/0x20\n[  295.002046]  [\u003cc014927f\u003e] print_circular_bug_tail+0x6f/0x80\n[  295.002046]  [\u003cc0149a84\u003e] check_prev_add+0x34/0x200\n[  295.002046]  [\u003cc0149ce5\u003e] check_prevs_add+0x95/0xe0\n[  295.002046]  [\u003cc0149f6f\u003e] validate_chain+0x23f/0x320\n[  295.002046]  [\u003cc014b7b1\u003e] __lock_acquire+0x1c1/0x760\n[  295.002046]  [\u003cc014c349\u003e] lock_acquire+0x79/0xb0\n[  295.002046]  [\u003cf89a090a\u003e] ? rfcomm_dev_state_change+0x6a/0xd0 [rfcomm]\n[  295.002046]  [\u003cc03d6639\u003e] _read_lock+0x39/0x80\n[  295.002046]  [\u003cf89a090a\u003e] ? rfcomm_dev_state_change+0x6a/0xd0 [rfcomm]\n[  295.002046]  [\u003cf89a090a\u003e] rfcomm_dev_state_change+0x6a/0xd0 [rfcomm]\n[  295.002046]  [\u003cf899c548\u003e] __rfcomm_dlc_close+0x58/0xd0 [rfcomm]\n[  295.002046]  [\u003cf899d44f\u003e] rfcomm_recv_ua+0x6f/0x120 [rfcomm]\n[  295.002046]  [\u003cf899e061\u003e] rfcomm_recv_frame+0x171/0x1e0 [rfcomm]\n[  295.002046]  [\u003cc014abd9\u003e] ? trace_hardirqs_on+0xb9/0x130\n[  295.002046]  [\u003cc03d6e89\u003e] ? _spin_unlock_irqrestore+0x39/0x70\n[  295.002046]  [\u003cf899e357\u003e] rfcomm_run+0xe7/0x550 [rfcomm]\n[  295.002046]  [\u003cc03d4559\u003e] ? __sched_text_start+0x229/0x4c0\n[  295.002046]  [\u003cc0120000\u003e] ? cpu_avg_load_per_task+0x20/0x30\n[  295.002046]  [\u003cf899e270\u003e] ? rfcomm_run+0x0/0x550 [rfcomm]\n[  295.002046]  [\u003cc013c18c\u003e] kthread+0x5c/0xa0\n[  295.002046]  [\u003cc013c130\u003e] ? kthread+0x0/0xa0\n[  295.002046]  [\u003cc0105c07\u003e] kernel_thread_helper+0x7/0x10\n[  295.002046]  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: Dave Young \u003chidave.darkstar@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d5fb2962c6157495e1365e4f30568ed3830d35a7",
      "tree": "952baad67a821bf47b46f7cd4d748e0fa3144e90",
      "parents": [
        "293a3839304cac32e58929db0c23e00a509fbfc5"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@crashcourse.ca",
        "time": "Fri Mar 28 16:17:38 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 28 16:17:38 2008 -0700"
      },
      "message": "bluetooth: replace deprecated RW_LOCK_UNLOCKED macros\n\nThe older RW_LOCK_UNLOCKED macros defeat lockdep state tracing so\nreplace them with the newer __RW_LOCK_UNLOCKED macros.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@crashcourse.ca\u003e\nAcked-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3b1e0a655f8eba44ab1ee2a1068d169ccfb853b9",
      "tree": "09edb35f32ebcfb1b4dad904425128a110ef16ee",
      "parents": [
        "c346dca10840a874240c78efe3f39acf4312a1f2"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Wed Mar 26 02:26:21 2008 +0900"
      },
      "committer": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Wed Mar 26 04:39:55 2008 +0900"
      },
      "message": "[NET] NETNS: Omit sock-\u003esk_net without CONFIG_NET_NS.\n\nIntroduce per-sock inlines: sock_net(), sock_net_set()\nand per-inet_timewait_sock inlines: twsk_net(), twsk_net_set().\nWithout CONFIG_NET_NS, no namespace other than \u0026init_net exists.\nLet\u0027s explicitly define them to help compiler optimizations.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\n"
    },
    {
      "commit": "b5606c2d4447e80b1d72406af4e78af1eda611d4",
      "tree": "ebdaa1a0aae4279b84af82651c16a8777f76bfe4",
      "parents": [
        "fbf6bfca76d50abef478ba902b8597ecbadfd390"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Feb 13 15:03:16 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 13 16:21:18 2008 -0800"
      },
      "message": "remove final fastcall users\n\nfastcall always expands to empty, remove it.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "93d807401ced2320d0d1e56bf9de099bba5c0424",
      "tree": "8d9a471779124e7dea089ec59933b20d4c7480f4",
      "parents": [
        "6e46c8cb3cbfa7bafe78d43a3d57750605a2dfa3"
      ],
      "author": {
        "name": "Dave Young",
        "email": "hidave.darkstar@gmail.com",
        "time": "Tue Feb 05 03:12:06 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 05 03:12:06 2008 -0800"
      },
      "message": "bluetooth rfcomm tty: destroy before tty_close()\n\nrfcomm dev could be deleted in tty_hangup, so we must not call\nrfcomm_dev_del again to prevent from destroying rfcomm dev before tty\nclose.\n\nSigned-off-by: Dave Young \u003chidave.darkstar@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b24b8a247ff65c01b252025926fe564209fae4fc",
      "tree": "8a9e0ea1e24b4733d8b9433d41877659505e9da4",
      "parents": [
        "a92aa318b4b369091fd80433c80e62838db8bc1c"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Jan 23 21:20:07 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:53:35 2008 -0800"
      },
      "message": "[NET]: Convert init_timer into setup_timer\n\nMany-many code in the kernel initialized the timer-\u003efunction\nand  timer-\u003edata together with calling init_timer(timer). There\nis already a helper for this. Use it for networking code.\n\nThe patch is HUGE, but makes the code 130 lines shorter\n(98 insertions(+), 228 deletions(-)).\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "acea6852f32b8805e166d885ed7e9f0c7cd10d41",
      "tree": "515aefb6f5346d417933a6b8958d1052cea51f6a",
      "parents": [
        "667984d9e481e43a930a478c588dced98cb61fea"
      ],
      "author": {
        "name": "Dave Young",
        "email": "hidave.darkstar@gmail.com",
        "time": "Mon Jan 21 22:35:21 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 23 03:11:39 2008 -0800"
      },
      "message": "[BLUETOOTH]: Move children of connection device to NULL before connection down.\n\nThe rfcomm tty device will possibly retain even when conn is down, and\nsysfs doesn\u0027t support zombie device moving, so this patch move the tty\ndevice before conn device is destroyed.\n\nFor the bug refered please see :\nhttp://lkml.org/lkml/2007/12/28/87\n\nSigned-off-by: Dave Young \u003chidave.darkstar@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f951375d470c1a20d92c34377991197e6bf17990",
      "tree": "c479a1b80c14072a9486214f034078ab6f524471",
      "parents": [
        "ecd2ebdea350c40e73c00d400d74c8a09c072082"
      ],
      "author": {
        "name": "Dave Young",
        "email": "hidave.darkstar@gmail.com",
        "time": "Thu Jan 10 22:22:52 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 10 22:22:52 2008 -0800"
      },
      "message": "[BLUETOOTH]: rfcomm tty BUG_ON() code fix\n\n1) In tty.c the BUG_ON at line 115 will never be called, because the the\n   before list_del_init in this same function.\n\t115          BUG_ON(!list_empty(\u0026dev-\u003elist));\n   So move the list_del_init to rfcomm_dev_del \n\n2) The rfcomm_dev_del could be called from diffrent path\n   (rfcomm_tty_hangup/rfcomm_dev_state_change/rfcomm_release_dev),\n\n   So add another BUG_ON when the rfcomm_dev_del is called more than\n   one time.\n\nSigned-off-by: Dave Young \u003chidave.darkstar@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6257ff2177ff02d7f260a7a501876aa41cb9a9f6",
      "tree": "9d9f80ccf16f3d4ef062e896f62974c5496193ad",
      "parents": [
        "154adbc8469ff21fbf5c958446ee92dbaab01be1"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Nov 01 00:39:31 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 01 00:39:31 2007 -0700"
      },
      "message": "[NET]: Forget the zero_it argument of sk_alloc()\n\nFinally, the zero_it argument can be completely removed from\nthe callers and from the function prototype.\n\nBesides, fix the checkpatch.pl warnings about using the\nassignments inside if-s.\n\nThis patch is rather big, and it is a part of the previous one.\nI splitted it wishing to make the patches more readable. Hope \nthis particular split helped.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a524eccc7307b1d6e79f03fed79f9f34c016ce56",
      "tree": "ecf52ff4aa025cf860d92af3efede469585d5788",
      "parents": [
        "2cb3377a295aade1f2e192d4bea948b2196fb162"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Oct 20 21:37:20 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Oct 22 02:59:49 2007 -0700"
      },
      "message": "[Bluetooth] Convert RFCOMM to use kthread API\n\nThis patch does the full kthread conversion for the RFCOMM protocol. It\nmakes the code slightly simpler and more maintainable.\n\nBased on a patch from Christoph Hellwig \u003chch@lst.de\u003e\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "dae6a0f6636d05bcb28ece1f3630b23ed2d66e18",
      "tree": "8ff4443b7ec8bf8e8aa391079832fce61f033368",
      "parents": [
        "6792b5ec8d9e723e4689fd5b16cfa52603985f43"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Oct 20 14:52:38 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Oct 22 02:59:47 2007 -0700"
      },
      "message": "[Bluetooth] Add address and channel attribute to RFCOMM TTY device\n\nExport the remote device address and channel of RFCOMM TTY device\nvia sysfs attributes. This allows udev to create better naming rules\nfor configured RFCOMM devices.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "1b8d7ae42d02e483ad94035cca851e4f7fbecb40",
      "tree": "81f8cc0ee49ef99cc67dfed3dc7b7ecb510abf8b",
      "parents": [
        "457c4cbc5a3dde259d2a1f15d5f9785290397267"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Oct 08 23:24:22 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:49:07 2007 -0700"
      },
      "message": "[NET]: Make socket creation namespace safe.\n\nThis patch passes in the namespace a new socket should be created in\nand has the socket code do the appropriate reference counting.  By\nvirtue of this all socket create methods are touched.  In addition\nthe socket create methods are modified so that they will fail if\nyou attempt to create a socket in a non-default network namespace.\n\nFailing if we attempt to create a socket outside of the default\nnetwork namespace ensures that as we incrementally make the network stack\nnetwork namespace aware we will not export functionality that someone\nhas not audited and made certain is network namespace safe.\nAllowing us to partially enable network namespaces before all of the\nexotic protocols are supported.\n\nAny protocol layers I have missed will fail to compile because I now\npass an extra parameter into the socket creation code.\n\n[ Integrated AF_IUCV build fixes from Andrew Morton... -DaveM ]\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "09c7d8293a2d1317d16ef4ddb9f6dd2553d0694e",
      "tree": "a459a511a60427dd75796be371b4d1b99214acec",
      "parents": [
        "566cfd8f0e049a0647f94714f913e2a975dc464f"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Jul 26 00:12:25 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 31 02:28:05 2007 -0700"
      },
      "message": "[IRDA]: Fix rfcomm use-after-free\n\nAdrian Bunk wrote:\n\u003e Commit 8de0a15483b357d0f0b821330ec84d1660cadc4e added the following\n\u003e use-after-free in net/bluetooth/rfcomm/tty.c:\n\u003e\n\u003e \u003c--  snip  --\u003e\n\u003e\n\u003e ...\n\u003e static int rfcomm_dev_add(struct rfcomm_dev_req *req, struct rfcomm_dlc *dlc)\n\u003e {\n\u003e ...\n\u003e         if (IS_ERR(dev-\u003etty_dev)) {\n\u003e                 list_del(\u0026dev-\u003elist);\n\u003e                 kfree(dev);\n\u003e                 return PTR_ERR(dev-\u003etty_dev);\n\u003e         }\n\u003e ...\n\u003e\n\u003e \u003c--  snip  --\u003e\n\u003e\n\u003e Spotted by the Coverity checker.\n\nreally good catch. I fully overlooked that one. The attached patch\nshould fix it.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "831441862956fffa17b9801db37e6ea1650b0f69",
      "tree": "b0334921341f8f1734bdd3243de76d676329d21c",
      "parents": [
        "787d2214c19bcc9b6ac48af0ce098277a801eded"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jul 17 04:03:35 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:02 2007 -0700"
      },
      "message": "Freezer: make kernel threads nonfreezable by default\n\nCurrently, the freezer treats all tasks as freezable, except for the kernel\nthreads that explicitly set the PF_NOFREEZE flag for themselves.  This\napproach is problematic, since it requires every kernel thread to either\nset PF_NOFREEZE explicitly, or call try_to_freeze(), even if it doesn\u0027t\ncare for the freezing of tasks at all.\n\nIt seems better to only require the kernel threads that want to or need to\nbe frozen to use some freezer-related code and to remove any\nfreezer-related code from the other (nonfreezable) kernel threads, which is\ndone in this patch.\n\nThe patch causes all kernel threads to be nonfreezable by default (ie.  to\nhave PF_NOFREEZE set by default) and introduces the set_freezable()\nfunction that should be called by the freezable kernel threads in order to\nunset PF_NOFREEZE.  It also makes all of the currently freezable kernel\nthreads call set_freezable(), so it shouldn\u0027t cause any (intentional)\nchange of behaviour to appear.  Additionally, it updates documentation to\ndescribe the freezing of tasks more accurately.\n\n[akpm@linux-foundation.org: build fixes]\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Nigel Cunningham \u003cnigel@nigel.suspend2.net\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8de0a15483b357d0f0b821330ec84d1660cadc4e",
      "tree": "b53fe490c95066dfc95f58d52b26e3f1f75ecdba",
      "parents": [
        "84950cf0ba02fd6a5defe2511bc41f9aa2237632"
      ],
      "author": {
        "name": "Ville Tervo",
        "email": "ville.tervo@nokia.com",
        "time": "Wed Jul 11 09:23:41 2007 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Jul 11 07:06:51 2007 +0200"
      },
      "message": "[Bluetooth] Keep rfcomm_dev on the list until it is freed\n\nThis patch changes the RFCOMM TTY release process so that the TTY is kept\non the list until it is really freed. A new device flag is used to keep\ntrack of released TTYs.\n\nSigned-off-by: Ville Tervo \u003cville.tervo@nokia.com\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "84950cf0ba02fd6a5defe2511bc41f9aa2237632",
      "tree": "e6c6d6b243d8c8d5bafdaa9d2054458409b17c82",
      "parents": [
        "924f0e4a06419fa1996425d1d2512030e43acbba"
      ],
      "author": {
        "name": "Mikko Rapeli",
        "email": "mikko.rapeli@iki.fi",
        "time": "Wed Jul 11 09:18:15 2007 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Jul 11 07:01:26 2007 +0200"
      },
      "message": "[Bluetooth] Hangup TTY before releasing rfcomm_dev\n\nThe core problem is that RFCOMM socket layer ioctl can release\nrfcomm_dev struct while RFCOMM TTY layer is still actively using\nit. Calling tty_vhangup() is needed for a synchronous hangup before\nrfcomm_dev is freed.\n\nAddresses the oops at http://bugzilla.kernel.org/show_bug.cgi?id\u003d7509\n\nAcked-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "9cf5b0ea3a7f1432c61029f7aaf4b8b338628884",
      "tree": "df659b3fe371301a6dba33782451655a09e9c25b",
      "parents": [
        "77f2a45fa1ba33147fd6cc8ae546188504a822cd"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat May 05 00:36:13 2007 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat May 05 00:36:13 2007 +0200"
      },
      "message": "[Bluetooth] Disconnect L2CAP connection after last RFCOMM DLC\n\nThe RFCOMM specification says that the device closing the last DLC on\na particular session is responsible for closing the multiplexer by\nclosing the corresponding L2CAP channel.\n\nSigned-off-by: Ville Tervo \u003cville.tervo@nokia.com\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "77f2a45fa1ba33147fd6cc8ae546188504a822cd",
      "tree": "c714c55fde74c5dd82b031b8ac605121a2b3f5b7",
      "parents": [
        "48db9ca4f2ac9f39eb90ccb12ad3ca7b645a552c"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat May 05 00:36:10 2007 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat May 05 00:36:10 2007 +0200"
      },
      "message": "[Bluetooth] Check that device is in rfcomm_dev_list before deleting\n\nIf RFCOMM_RELEASE_ONHUP flag is on and rfcomm_release_dev is called\nbefore connection is closed, rfcomm_dev is deleted twice from the\nrfcomm_dev_list and refcount is messed up. This patch adds a check\nbefore deleting device that the device actually is listed.\n\nSigned-off-by: Ville Tervo \u003cville.tervo@nokia.com\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "48db9ca4f2ac9f39eb90ccb12ad3ca7b645a552c",
      "tree": "5e821efe2a51e60d0c195ee87b5782a36bcad15a",
      "parents": [
        "53c1d4b0b22243c093ded25aaa01c8ff8ab6e6b3"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat May 05 00:36:06 2007 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat May 05 00:36:06 2007 +0200"
      },
      "message": "[Bluetooth] Use in-kernel sockets API\n\nThe kernel provides a new convenient way to access the sockets API for\nin-kernel users. It is a good idea to actually use it.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "74da9d88bf5ffd31aed61a0b19519684ad744ded",
      "tree": "601509eaf04f387578ddc72015c0d7c62709e72a",
      "parents": [
        "9198d2220d29b87ac3a05a3b791c50bb8a014d63"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Thu Apr 26 01:41:01 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 26 01:41:01 2007 -0700"
      },
      "message": "[BLUETOOTH] rfcomm_worker(): fix wakeup race\n\nSet TASK_INTERRUPTIBLE prior to testing the flag to avoid missed wakeups.\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "27a884dc3cb63b93c2b3b643f5b31eed5f8a4d26",
      "tree": "5a267e40f9b94014be38dad5de0a52b6628834e0",
      "parents": [
        "be8bd86321fa7f06359d866ef61fb4d2f3e9dce9"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Thu Apr 19 20:29:13 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:26:28 2007 -0700"
      },
      "message": "[SK_BUFF]: Convert skb-\u003etail to sk_buff_data_t\n\nSo that it is also an offset from skb-\u003ehead, reduces its size from 8 to 4 bytes\non 64bit architectures, allowing us to combine the 4 bytes hole left by the\nlayer headers conversion, reducing struct sk_buff size to 256 bytes, i.e. 4\n64byte cachelines, and since the sk_buff slab cache is SLAB_HWCACHE_ALIGN...\n:-)\n\nMany calculations that previously required that skb-\u003e{transport,network,\nmac}_header be first converted to a pointer now can be done directly, being\nmeaningful as offsets or pointers.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c1a3313698895d8ad4760f98642007bf236af2e8",
      "tree": "337a876f727061362b6a169f8759849c105b8f7a",
      "parents": [
        "f5ffd4620aba9e55656483ae1ef5c79ba81f5403"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Feb 17 23:58:57 2007 +0100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Feb 26 11:42:41 2007 -0800"
      },
      "message": "[Bluetooth] Make use of device_move() for RFCOMM TTY devices\n\nIn the case of bound RFCOMM TTY devices the parent is not available\nbefore its usage. So when opening a RFCOMM TTY device, move it to\nthe corresponding ACL device as a child. When closing the device,\nmove it back to the virtual device tree.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "8e87d14255acffeee36873de226dc25c11b5f46d",
      "tree": "e11c179c8db4ae3ad56ea02d583bc041dcc686b6",
      "parents": [
        "528930b91ee89a05a6264629cf99109652c19ca8"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Fri Feb 09 23:24:33 2007 +0900"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Feb 10 23:19:20 2007 -0800"
      },
      "message": "[NET] BLUETOOTH: Fix whitespace errors.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4d6a2188bd456969f52c03edf1988de90f08d9f5",
      "tree": "ccbae1cf287db409d62c4178d417337ed4b409d1",
      "parents": [
        "b6e557fbf1dbba8cfa667a25503e5dbd0e9330b7"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jan 08 02:16:31 2007 +0100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jan 09 00:29:55 2007 -0800"
      },
      "message": "[Bluetooth] Fix uninitialized return value for RFCOMM sendmsg()\n\nWhen calling send() with a zero length parameter on a RFCOMM socket\nit returns a positive value. In this rare case the variable err is\nused uninitialized and unfortunately its value is returned.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "b6e557fbf1dbba8cfa667a25503e5dbd0e9330b7",
      "tree": "21296e7953c115aefb4967ad7680b6a5fc680310",
      "parents": [
        "f4777569204cb59f2f04fbe9ef4e9a6918209104"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jan 08 02:16:27 2007 +0100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jan 09 00:29:54 2007 -0800"
      },
      "message": "[Bluetooth] More checks if DLC is still attached to the TTY\n\nIf the DLC device is no longer attached to the TTY device, then return\nerrors or default values for various callbacks of the TTY layer.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.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": "e8db8c99100750ade5a9b4072b9469cab718a5b7",
      "tree": "c264573d90b266a2f8ba834c1942d14019c55deb",
      "parents": [
        "6ba9c755e5f044c6a37296481bf6a861e4193a37"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Nov 08 00:28:44 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:21:30 2006 -0800"
      },
      "message": "[BLUETOOTH] rfcomm endianness bug: param_mask is little-endian on the wire\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6ba9c755e5f044c6a37296481bf6a861e4193a37",
      "tree": "d6b9b656ca6e7b397a3a2f843ebe7ab26e2c1a19",
      "parents": [
        "1bc5d4483a83349f143e2bbf23ec144cd7e21e89"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Nov 08 00:28:19 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:21:29 2006 -0800"
      },
      "message": "[BLUETOOTH]: rfcomm endianness annotations\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ff2d367ac33b9278c9516ac1888207dac11d10b0",
      "tree": "7280d3007f20c2c9921f150ec3a84ca52194176e",
      "parents": [
        "6bd57416127e92d35e6798925502c84e14a3a966"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Nov 18 22:14:42 2006 +0100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Nov 21 16:16:30 2006 -0800"
      },
      "message": "[Bluetooth] Check if RFCOMM session is still attached to the TTY\n\nIf the RFCOMM session is no longer attached to the TTY device, then it\nmakes no sense to go through with changing the termios settings.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "74da626a1098640ddc40c0e3481c0cd41e8ec1e9",
      "tree": "65e6f72f07c0cccbb37b3b079d93276b061d9ade",
      "parents": [
        "cb19d9ea2ce2bcbe291d3d48e3501dc4f33ba627"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Oct 15 17:31:14 2006 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sun Oct 15 23:14:34 2006 -0700"
      },
      "message": "[Bluetooth] Add locking for bt_proto array manipulation\n\nThe bt_proto array needs to be protected by some kind of locking to\nprevent a race condition between bt_sock_create and bt_sock_register.\n\nAnd in addition all calls to sk_alloc need to be made GFP_ATOMIC now.\n\nSigned-off-by: Masatake YAMATO \u003cjet@gyve.org\u003e\nSigned-off-by: Frederik Deweerdt \u003cfrederik.deweerdt@gmail.com\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "cb19d9ea2ce2bcbe291d3d48e3501dc4f33ba627",
      "tree": "7cd11f8151f7c8bbf04ca74b1d0faaad3e3fd91c",
      "parents": [
        "b2cfcd75df77b80d9cc3fa84190a350dfa79eb93"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Oct 15 17:31:10 2006 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sun Oct 15 23:14:33 2006 -0700"
      },
      "message": "[Bluetooth] Check if DLC is still attached to the TTY\n\nIf the DLC device is no longer attached to the TTY device, then it\nmakes no sense to go through with changing the termios settings.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "b2cfcd75df77b80d9cc3fa84190a350dfa79eb93",
      "tree": "661abc82652a6cc7ff665861d98d127e2152affc",
      "parents": [
        "e86070c83e9110e89800274385c013db602b1444"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Oct 15 17:31:05 2006 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sun Oct 15 23:14:32 2006 -0700"
      },
      "message": "[Bluetooth] Fix reference count when connection lookup fails\n\nWhen the connection lookup for the device structure fails, the reference\ncount for the HCI device needs to be decremented.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "df5c37ea9a3820a9515d8204450aec00f48f8f88",
      "tree": "0a7ca311e03be7738ae9e2bcbd3c43c7b8f9cf74",
      "parents": [
        "e9c5702e3c5558dade169949abd730173e87ef9c"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Oct 15 17:30:45 2006 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sun Oct 15 23:14:28 2006 -0700"
      },
      "message": "[Bluetooth] Handle return values from driver core functions\n\nSome return values of the driver core register and create functions\nare not handled and so might cause unexpected problems.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.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": "b4c612a473eb816dff6e5ab6820dff338057aa8d",
      "tree": "26d2a88e2355ec9852abf4f70b7990087da3a58c",
      "parents": [
        "7785162cf2baf7c6c1e4ad8ae5888f85fcc5febc"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Sep 23 09:54:38 2006 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Sep 28 18:01:31 2006 -0700"
      },
      "message": "[Bluetooth] Return EINPROGRESS for non-blocking socket calls\n\nIn case of non-blocking socket calls we should return EINPROGRESS\nand not EAGAIN.\n\nSigned-off-by: Ulisses Furquim \u003culissesf@gmail.com\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "0a85b964e141a4b8db6eaf500ceace12f8f52f93",
      "tree": "8479bdc23230d7c1fa581af15199d7bef7268231",
      "parents": [
        "b219e3ac66183fc9771b94af931fb5fd41d586ec"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Jul 06 13:09:02 2006 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Sep 28 18:01:26 2006 -0700"
      },
      "message": "[Bluetooth] Integrate services into the driver model\n\nThis patch integrates the services of the Bluetooth protocols RFCOMM,\nBNEP and HIDP into the driver model. This makes it possible to assign\nthe virtual TTY, network and input devices to a specific Bluetooth\nconnection.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "98bcd08b5bfe78c1c9bda5768aa081e0fe4fcc4f",
      "tree": "171c7984eeaade72d57a325ee26d55e4408bbdd1",
      "parents": [
        "2266d8886f64c66e0a4e61e3e1c19dbc27ed00d4"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Jul 14 11:42:12 2006 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Jul 24 12:44:25 2006 -0700"
      },
      "message": "[Bluetooth] Correct RFCOMM channel MTU for broken implementations\n\nSome Bluetooth RFCOMM implementations try to negotiate a bigger channel\nMTU than we can support for a particular session. The maximum MTU for\na RFCOMM session is limited through the L2CAP layer. So if the other\nside proposes a channel MTU that is bigger than the underlying L2CAP\nMTU, we should reduce it to the L2CAP MTU of the session minus five\nbytes for the RFCOMM headers.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "25ea6db04a96d7871e7ece27d566f3228d59d932",
      "tree": "12d0b6735a451111c8b45ebb9523caac9578d0fc",
      "parents": [
        "c2ce920468624d87ec5f91f080ea99681dae6d88"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Jul 06 15:40:09 2006 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Jul 12 15:34:28 2006 -0700"
      },
      "message": "[Bluetooth] Remaining transitions to use kzalloc()\n\nThis patch makes the remaining transitions to use kzalloc().\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "300b93974ff64f1bef1ac8294547c573954f0300",
      "tree": "94b33acffd99c50986ba4ede3e61495485a88342",
      "parents": [
        "7c2660b00fae0575dd4ce5c7b6bf30762b632045"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 03 10:37:55 2006 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Jul 03 19:54:09 2006 -0700"
      },
      "message": "[Bluetooth] Add RFCOMM role switch support\n\nThis patch adds the support for RFCOMM role switching before the\nconnection is fully established.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "7c2660b00fae0575dd4ce5c7b6bf30762b632045",
      "tree": "de8be4ccdb2d1977be00af5afae65a0a97a7aec9",
      "parents": [
        "0139418c943c3389cf75afc4f4d2b2fa52bbf7c9"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 03 10:02:51 2006 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Jul 03 19:54:07 2006 -0700"
      },
      "message": "[Bluetooth] Allow disabling of credit based flow control\n\nThis patch adds the module parameter disable_cfc which can be used to\ndisable the credit based flow control. The credit based flow control\nwas introduced with the Bluetooth 1.1 specification and devices can\nnegotiate its support, but for testing purpose it is helpful to allow\ndisabling of it.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "a91f2e396f5b32b21d842b4757bc8de5e88eac66",
      "tree": "174b88a20feea87734bf63ec7104eae0b205649a",
      "parents": [
        "27d35284258c596900e0e41c46932ec4abe6a7b1"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 03 10:02:41 2006 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Jul 03 19:54:02 2006 -0700"
      },
      "message": "[Bluetooth] Use real devices for host controllers\n\nThis patch converts the Bluetooth class devices into real devices. The\nBluetooth class is kept and the driver core provides the appropriate\nsymlinks for backward compatibility.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.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": "602cada851b28c5792339786efe872fbdc1f5d41",
      "tree": "233d474b74d6038b5bb54a07ad91dd1bb10b0218",
      "parents": [
        "82991c6f2c361acc17279b8124d9bf1878973435",
        "fee68d1cc0d9bd863e51c16cdcd707737b16bb38"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jun 29 14:19:21 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jun 29 14:19:21 2006 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/devfs-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/devfs-2.6: (22 commits)\n  [PATCH] devfs: Remove it from the feature_removal.txt file\n  [PATCH] devfs: Last little devfs cleanups throughout the kernel tree.\n  [PATCH] devfs: Rename TTY_DRIVER_NO_DEVFS to TTY_DRIVER_DYNAMIC_DEV\n  [PATCH] devfs: Remove the tty_driver devfs_name field as it\u0027s no longer needed\n  [PATCH] devfs: Remove the line_driver devfs_name field as it\u0027s no longer needed\n  [PATCH] devfs: Remove the videodevice devfs_name field as it\u0027s no longer needed\n  [PATCH] devfs: Remove the gendisk devfs_name field as it\u0027s no longer needed\n  [PATCH] devfs: Remove the miscdevice devfs_name field as it\u0027s no longer needed\n  [PATCH] devfs: Remove the devfs_fs_kernel.h file from the tree\n  [PATCH] devfs: Remove devfs_remove() function from the kernel tree\n  [PATCH] devfs: Remove devfs_mk_cdev() function from the kernel tree\n  [PATCH] devfs: Remove devfs_mk_bdev() function from the kernel tree\n  [PATCH] devfs: Remove devfs_mk_symlink() function from the kernel tree\n  [PATCH] devfs: Remove devfs_mk_dir() function from the kernel tree\n  [PATCH] devfs: Remove devfs_*_tape() functions from the kernel tree\n  [PATCH] devfs: Remove devfs support from the sound subsystem\n  [PATCH] devfs: Remove devfs support from the ide subsystem.\n  [PATCH] devfs: Remove devfs support from the serial subsystem\n  [PATCH] devfs: Remove devfs from the init code\n  [PATCH] devfs: Remove devfs from the partition code\n  ...\n"
    },
    {
      "commit": "817d6d3bceaf34c99f5343820f9b9e6021f0655c",
      "tree": "651104833124262db46c2a372b7adb55289cd8dd",
      "parents": [
        "e0ac4761fa52acda90f9f53819c81474b511e3af"
      ],
      "author": {
        "name": "Paul Fulghum",
        "email": "paulkf@microgate.com",
        "time": "Wed Jun 28 04:26:47 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jun 28 14:59:05 2006 -0700"
      },
      "message": "[PATCH] remove TTY_DONT_FLIP\n\nRemove TTY_DONT_FLIP tty flag.  This flag was introduced in 2.1.X kernels\nto prevent the N_TTY line discipline functions read_chan() and\nn_tty_receive_buf() from running at the same time.  2.2.15 introduced\ntty-\u003eread_lock to protect access to the N_TTY read buffer, which is the\nonly state requiring protection between these two functions.\n\nThe current TTY_DONT_FLIP implementation is broken for SMP, and is not\nuniversally honored by drivers that send data directly to the line\ndiscipline receive_buf function.\n\nBecause TTY_DONT_FLIP is not necessary, is broken in implementation, and is\nnot universally honored, it is removed.\n\nSigned-off-by: Paul Fulghum \u003cpaulkf@microgate.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "331b831983f9d706f4a40d08a996d5c2c7a6ea7b",
      "tree": "9d47d5f8d6f882d26c8deade0e44442cebf2e288",
      "parents": [
        "f4eaa37017a5a68f67ef86729508022c13fb8e6d"
      ],
      "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: Rename TTY_DRIVER_NO_DEVFS to TTY_DRIVER_DYNAMIC_DEV\n\nI\u0027ve always found this flag confusing.  Now that devfs is no longer around, it\nhas been renamed, and the documentation for when this flag should be used has\nbeen updated.\n\nAlso fixes all drivers that use this flag.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.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": "4a3e2f711a00a1feb72ae12fdc749da10179d185",
      "tree": "76ced9d3270dea4b864da71fa1d4415d2e3c8b11",
      "parents": [
        "d4ccd08cdfa8d34f4d25b62041343c52fc79385f"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Mon Mar 20 22:33:17 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 22:33:17 2006 -0800"
      },
      "message": "[NET] sem2mutex: net/\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\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "56f3a40a5e7586043260669cc794e56fa58339e1",
      "tree": "a2a756d86f8ff9da8d5668d2dfbf51f5107c53ce",
      "parents": [
        "e9bb4c9929a63b23dcc637fae312b36b038bdc61"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Feb 13 11:39:57 2006 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Feb 13 11:39:57 2006 +0100"
      },
      "message": "[Bluetooth] Reduce L2CAP MTU for RFCOMM connections\n\nThis patch reduces the default L2CAP MTU for all RFCOMM connections\nfrom 1024 to 1013 to improve the interoperability with some broken\nRFCOMM implementations. To make this more flexible the L2CAP MTU\nbecomes also a module parameter and so it can changed at runtime.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "4fc268d24ceb9f4150777c1b5b2b8e6214e56b2b",
      "tree": "d2aaf0b5986b03e6129ed3ccd65b9f706cd59c7f",
      "parents": [
        "16f7e0fe2ecc30f30652e8185e1772cdebe39109"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Wed Jan 11 12:17:47 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 11 18:42:14 2006 -0800"
      },
      "message": "[PATCH] capable/capability.h (net/)\n\nnet: Use \u003clinux/capability.h\u003e where capable() is used.\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\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": "90ddc4f0470427df306f308ad03db6b6b21644b8",
      "tree": "f97c1d57b25585394ebbd4b42b8d42a339f98644",
      "parents": [
        "77d76ea310b50a9c8ff15bd290fcb4ed4961adf2"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Thu Dec 22 12:49:22 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jan 03 13:11:15 2006 -0800"
      },
      "message": "[NET]: move struct proto_ops to const\n\nI noticed that some of \u0027struct proto_ops\u0027 used in the kernel may share\na cache line used by locks or other heavily modified data. (default\nlinker alignement is 32 bytes, and L1_CACHE_LINE is 64 or 128 at\nleast)\n\nThis patch makes sure a \u0027struct proto_ops\u0027 can be declared as const,\nso that all cpus can share all parts of it without false sharing.\n\nThis is not mandatory : a driver can still use a read/write structure\nif it needs to (and eventually a __read_mostly)\n\nI made a global stubstitute to change all existing occurences to make\nthem const.\n\nThis should reduce the possibility of false sharing on SMP, and\nspeedup some socket system calls.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "be9d122730c878baafe11e70d1436faac229f2fc",
      "tree": "d6644129b56d7cff9fb9781154eebf97746f296b",
      "parents": [
        "1ebb92521d0bc2d4ef772730d29333c06b807191"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Nov 08 09:57:38 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 08 09:57:38 2005 -0800"
      },
      "message": "[Bluetooth]: Remove the usage of /proc completely\n\nThis patch removes all relics of the /proc usage from the Bluetooth\nsubsystem core and its upper layers. All the previous information are\nnow available via /sys/class/bluetooth through appropriate functions.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "408c1ce2716c7a004851c93f9f9dcf3d763bc240",
      "tree": "11e086c44c2f313e27cec46c7ad799b7614b01c9",
      "parents": [
        "741b2252a5e14d6c60a913c77a6099abe73a854a"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Oct 28 19:20:36 2005 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Oct 28 19:20:36 2005 +0200"
      },
      "message": "[Bluetooth] Move CRC table into RFCOMM core\n\nThis patch moves rfcomm_crc_table[] into the RFCOMM core, because there\nis no need to keep it in a separate file.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "dd0fc66fb33cd610bc1a5db8a5e232d34879b4d7",
      "tree": "51f96a9db96293b352e358f66032e1f4ff79fafb",
      "parents": [
        "3b0e77bd144203a507eb191f7117d2c5004ea1de"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Fri Oct 07 07:46:04 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 08 15:00:57 2005 -0700"
      },
      "message": "[PATCH] gfp flags annotations - part 1\n\n - added typedef unsigned int __nocast gfp_t;\n\n - replaced __nocast uses for gfp flags with gfp_t - it gives exactly\n   the same warnings as far as sparse is concerned, doesn\u0027t change\n   generated code (from gcc point of view we replaced unsigned int with\n   typedef) and documents what\u0027s going on far better.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "354d28d5f8546e115ebaae9311897f0bc4b6a8d4",
      "tree": "0eb7bd932d43047b592b80d42808f8cdc33286c8",
      "parents": [
        "21d9e30ed020d24336cc3bee2a4e04da232ed554"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Sep 13 01:32:31 2005 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Sep 13 01:32:31 2005 +0200"
      },
      "message": "[Bluetooth] Prevent RFCOMM connections through the RAW socket\n\nThis patch adds additional checks to prevent RFCOMM connections be\nestablished through the RAW socket interface.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "2eb25a6c34504254760e67172f7518d6bfdd7676",
      "tree": "fc2f39fedac03f773b7bbb3489774df57edc721c",
      "parents": [
        "3a5e903c09aed19ca4a1bb26d87b8d6461a93818"
      ],
      "author": {
        "name": "Victor Fusco",
        "email": "victor@cetuc.puc-rio.br",
        "time": "Tue Aug 09 20:29:11 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:55:07 2005 -0700"
      },
      "message": "[Bluetooth]: Fix sparse warnings (__nocast type)\n\nThis patch fixes the sparse warnings \"implicit cast to nocast type\"\nfor the priority or gfp_mask parameters of the memory allocations.\n\nSigned-off-by: Victor Fusco \u003cvictor@cetuc.puc-rio.br\u003e\nSigned-off-by: Domen Puncer \u003cdomen@coderock.org\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3a5e903c09aed19ca4a1bb26d87b8d6461a93818",
      "tree": "b9761b89aaba6537d06893091a2f43c9a8e17c3f",
      "parents": [
        "7b9eb9e2099f6f4acd6a36bcd7820d27c3cf5ee3"
      ],
      "author": {
        "name": "J. Suter",
        "email": "jsuter@hardwave.de",
        "time": "Tue Aug 09 20:28:46 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:55:03 2005 -0700"
      },
      "message": "[Bluetooth]: Implement RFCOMM remote port negotiation\n\nThis patch implements the remote port negotiation (RPN) of the RFCOMM\nprotocol for Bluetooth.\n\nSigned-off-by: J. Suter \u003cjsuter@hardwave.de\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7b9eb9e2099f6f4acd6a36bcd7820d27c3cf5ee3",
      "tree": "0cbd3c78723f3a66b9a35c725fa1328ebad28453",
      "parents": [
        "85a1e930bf628700e8e9c166b1f5c1c26d3651cc"
      ],
      "author": {
        "name": "Timo Teräs",
        "email": "ext-timo.teras@nokia.com",
        "time": "Tue Aug 09 20:28:21 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:54:58 2005 -0700"
      },
      "message": "[Bluetooth]: Call tty_hangup() when DCD is de-asserted\n\nThe RFCOMM layer does not handle properly the de-assertation\nof CD signal. It should call tty_hangup() to work properly.\n\nSigned-off-by: Timo Teräs \u003cext-timo.teras@nokia.com\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dcc365d8f28d6a2332fa37e64d669858a8d017e8",
      "tree": "45872ffc48be8319a88259cfcef86605a1f94a4e",
      "parents": [
        "cad0f6270c0bae5bcae6af3c7ac7bd3ae5d9b618"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Aug 06 12:36:42 2005 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Aug 06 12:36:42 2005 +0200"
      },
      "message": "[Bluetooth] Revert session reference counting fix\n\nThe fix for the reference counting problem of the signal DLC introduced\na race condition which leads to an oops. The reason for it is not fully\nunderstood by now and so revert this fix, because the reference counting\nproblem is not crashing the RFCOMM layer and its appearance it rare.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "b03efcfb2180289718991bb984044ce6c5b7d1b0",
      "tree": "f3b0c6c4eaf0991c28b7116a20994b48398eea57",
      "parents": [
        "a92b7b80579fe68fe229892815c750f6652eb6a9"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 08 14:57:23 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 08 14:57:23 2005 -0700"
      },
      "message": "[NET]: Transform skb_queue_len() binary tests into skb_queue_empty()\n\nThis is part of the grand scheme to eliminate the qlen\nmember of skb_queue_head, and subsequently remove the\n\u0027list\u0027 member of sk_buff.\n\nMost users of skb_queue_len() want to know if the queue is\nempty or not, and that\u0027s trivially done with skb_queue_empty()\nwhich doesn\u0027t use the skb_queue_head-\u003eqlen member and instead\nuses the queue list emptyness as the test.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b453257f057b834fdf9f4a6ad6133598b79bd982",
      "tree": "fd1621a8c03331bd78abfe52c8c385977d0a9729",
      "parents": [
        "94f2f715771d0aa5554451d1e2a920f11b8be3fe"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@www.linux.org.uk",
        "time": "Mon Apr 25 18:32:13 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Mon Apr 25 18:32:13 2005 -0700"
      },
      "message": "[PATCH] kill gratitious includes of major.h under net/*\n\nA lot of places in there are including major.h for no reason whatsoever.\nRemoved.  And yes, it still builds. \n\nThe history of that stuff is often amusing.  E.g.  for net/core/sock.c\nthe story looks so, as far as I\u0027ve been able to reconstruct it: we used\nto need major.h in net/socket.c circa 1.1.early.  In 1.1.13 that need\nhad disappeared, along with register_chrdev(SOCKET_MAJOR, \"socket\",\n\u0026net_fops) in sock_init().  Include had not.  When 1.2 -\u003e 1.3 reorg of\nnet/* had moved a lot of stuff from net/socket.c to net/core/sock.c,\nthis crap had followed... \n\nSigned-off-by: Al Viro \u003cviro@parcelfarce.linux.theplanet.co.uk\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"
    }
  ]
}
