)]}'
{
  "log": [
    {
      "commit": "23bb57633df97ede067ea26f3cdc8a7ba2cd8109",
      "tree": "3aa9a25b17da84975691af7159b030f810560e38",
      "parents": [
        "c71e97bfaadfa727669fcfcf12301744fd169091"
      ],
      "author": {
        "name": "Johan Hedberg",
        "email": "johan.hedberg@nokia.com",
        "time": "Tue Dec 21 23:01:27 2010 +0200"
      },
      "committer": {
        "name": "Gustavo F. Padovan",
        "email": "padovan@profusion.mobi",
        "time": "Wed Dec 22 22:58:07 2010 -0200"
      },
      "message": "Bluetooth: Fix __hci_request synchronization for hci_open_dev\n\nThe initialization function used by hci_open_dev (hci_init_req) sends\nmany different HCI commands. The __hci_request function should only\nreturn when all of these commands have completed (or a timeout occurs).\nSeveral of these commands cause hci_req_complete to be called which\ncauses __hci_request to return prematurely.\n\nThis patch fixes the issue by adding a new hdev-\u003ereq_last_cmd variable\nwhich is set during the initialization procedure. The hci_req_complete\nfunction will no longer mark the request as complete until the command\nmatching hdev-\u003ereq_last_cmd completes.\n\nSigned-off-by: Johan Hedberg \u003cjohan.hedberg@nokia.com\u003e\nAcked-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: Gustavo F. Padovan \u003cpadovan@profusion.mobi\u003e\n"
    },
    {
      "commit": "c71e97bfaadfa727669fcfcf12301744fd169091",
      "tree": "0a0a04dee5ec1aa16ef1a6e67a78a0d5a03c14c2",
      "parents": [
        "f7b64e69c7c75c8e9f2d5e23edec8de1ce883bcc"
      ],
      "author": {
        "name": "Johan Hedberg",
        "email": "johan.hedberg@nokia.com",
        "time": "Mon Dec 13 21:07:07 2010 +0200"
      },
      "committer": {
        "name": "Gustavo F. Padovan",
        "email": "padovan@profusion.mobi",
        "time": "Wed Dec 22 22:58:00 2010 -0200"
      },
      "message": "Bluetooth: Add management events for controller addition \u0026 removal\n\nThis patch adds Bluetooth Management interface events for controller\naddition and removal. The events correspond to the existing HCI_DEV_REG\nand HCI_DEV_UNREG stack internal events.\n\nSigned-off-by: Johan Hedberg \u003cjohan.hedberg@nokia.com\u003e\nAcked-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: Gustavo F. Padovan \u003cpadovan@profusion.mobi\u003e\n"
    },
    {
      "commit": "f7b64e69c7c75c8e9f2d5e23edec8de1ce883bcc",
      "tree": "f13810db736718264f08717e9f0ba04fc2ac9da5",
      "parents": [
        "faba42eb2a8cf905ed26d540c3c93d429e327224"
      ],
      "author": {
        "name": "Johan Hedberg",
        "email": "johan.hedberg@nokia.com",
        "time": "Mon Dec 13 21:07:06 2010 +0200"
      },
      "committer": {
        "name": "Gustavo F. Padovan",
        "email": "padovan@profusion.mobi",
        "time": "Wed Dec 22 22:57:51 2010 -0200"
      },
      "message": "Bluetooth: Add read_info management command\n\nThis patch implements the read_info command which is used to fetch basic\ninfo about an adapter.\n\nSigned-off-by: Johan Hedberg \u003cjohan.hedberg@nokia.com\u003e\nAcked-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: Gustavo F. Padovan \u003cpadovan@profusion.mobi\u003e\n"
    },
    {
      "commit": "faba42eb2a8cf905ed26d540c3c93d429e327224",
      "tree": "a9cf2411c9de333efcf1616f546865301a72615d",
      "parents": [
        "02d981292ad3149e8e5f37cffbccedab1a8576d8"
      ],
      "author": {
        "name": "Johan Hedberg",
        "email": "johan.hedberg@nokia.com",
        "time": "Mon Dec 13 21:07:05 2010 +0200"
      },
      "committer": {
        "name": "Gustavo F. Padovan",
        "email": "padovan@profusion.mobi",
        "time": "Wed Dec 22 22:57:44 2010 -0200"
      },
      "message": "Bluetooth: Add read_index_list management command\n\nThis patch implements the read_index_list command through which\nuserspace can get a list of current adapter indices.\n\nSigned-off-by: Johan Hedberg \u003cjohan.hedberg@nokia.com\u003e\nAcked-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: Gustavo F. Padovan \u003cpadovan@profusion.mobi\u003e\n"
    },
    {
      "commit": "02d981292ad3149e8e5f37cffbccedab1a8576d8",
      "tree": "c28722fc51a0650c541ce10c8c188c5876881b73",
      "parents": [
        "e41d8b4e131a41f2a3b74aaa783b16aa46376d8e"
      ],
      "author": {
        "name": "Johan Hedberg",
        "email": "johan.hedberg@nokia.com",
        "time": "Mon Dec 13 21:07:04 2010 +0200"
      },
      "committer": {
        "name": "Gustavo F. Padovan",
        "email": "padovan@profusion.mobi",
        "time": "Wed Dec 22 22:57:37 2010 -0200"
      },
      "message": "Bluetooth: Add read_version management command\n\nThis patch implements the initial read_version command that userspace\nwill use before any other management interface operations.\n\nSigned-off-by: Johan Hedberg \u003cjohan.hedberg@nokia.com\u003e\nAcked-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: Gustavo F. Padovan \u003cpadovan@profusion.mobi\u003e\n"
    },
    {
      "commit": "a40c406cbdd28dcca3483065bc2ba794cf5aaab7",
      "tree": "30c0242aea1c7a5acdaab1e7a4493ff5245e98fa",
      "parents": [
        "0381101fd6a73c7d6b545044dc1472d019fc64e3"
      ],
      "author": {
        "name": "Johan Hedberg",
        "email": "johan.hedberg@nokia.com",
        "time": "Wed Dec 08 00:21:07 2010 +0200"
      },
      "committer": {
        "name": "Gustavo F. Padovan",
        "email": "padovan@profusion.mobi",
        "time": "Tue Dec 07 23:03:39 2010 -0200"
      },
      "message": "Bluetooth: Make hci_send_to_sock usable for management control sockets\n\nIn order to send data to management control sockets the function should:\n\n  - skip checks intended for raw HCI data and stack internal events\n  - make sure RAW HCI data or stack internal events don\u0027t go to\n    management control sockets\n\nIn order to accomplish this the patch adds a new member to the bluetooth\nskb private data to flag skb\u0027s that are destined for management control\nsockets.\n\nSigned-off-by: Johan Hedberg \u003cjohan.hedberg@nokia.com\u003e\nAcked-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: Gustavo F. Padovan \u003cpadovan@profusion.mobi\u003e\n"
    },
    {
      "commit": "0381101fd6a73c7d6b545044dc1472d019fc64e3",
      "tree": "8b7ec25d3e97e3bd7918135fa3fe3b29941e0db4",
      "parents": [
        "c02178d22b3ef2d18c38c96151600ee1c7ed94f0"
      ],
      "author": {
        "name": "Johan Hedberg",
        "email": "johan.hedberg@nokia.com",
        "time": "Wed Dec 08 00:21:06 2010 +0200"
      },
      "committer": {
        "name": "Gustavo F. Padovan",
        "email": "padovan@profusion.mobi",
        "time": "Tue Dec 07 23:03:38 2010 -0200"
      },
      "message": "Bluetooth: Add initial Bluetooth Management interface callbacks\n\nAdd initial code for handling Bluetooth Management interface messages.\n\nSigned-off-by: Johan Hedberg \u003cjohan.hedberg@nokia.com\u003e\nAcked-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nAcked-by: Andrei Emeltchenko \u003candrei.emeltchenko@nokia.com\u003e\nSigned-off-by: Gustavo F. Padovan \u003cpadovan@profusion.mobi\u003e\n"
    },
    {
      "commit": "c02178d22b3ef2d18c38c96151600ee1c7ed94f0",
      "tree": "a375c07e3977dcf295edb65bf404820e8af305c9",
      "parents": [
        "ff2109f5f94ff75f45e0c8d2d1d56fefdf20733f"
      ],
      "author": {
        "name": "Johan Hedberg",
        "email": "johan.hedberg@nokia.com",
        "time": "Wed Dec 08 00:21:05 2010 +0200"
      },
      "committer": {
        "name": "Gustavo F. Padovan",
        "email": "padovan@profusion.mobi",
        "time": "Tue Dec 07 22:59:54 2010 -0200"
      },
      "message": "Bluetooth: Add Bluetooth Management interface definitions\n\nAdd initial definitions for the new Bluetooth Management interface to\nthe bluetooth headers.\n\nSigned-off-by: Johan Hedberg \u003cjohan.hedberg@nokia.com\u003e\nAcked-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: Gustavo F. Padovan \u003cpadovan@profusion.mobi\u003e\n"
    },
    {
      "commit": "be21871f24b0fcd8d0d09c8090385c9cec80efa3",
      "tree": "50c7674a8fffd7bf919de24a1fa0d1967c180319",
      "parents": [
        "70f23020e6d89155504b5b39f22505f4aec6fa6f"
      ],
      "author": {
        "name": "Andrei Emeltchenko",
        "email": "andrei.emeltchenko@nokia.com",
        "time": "Wed Dec 01 16:58:26 2010 +0200"
      },
      "committer": {
        "name": "Gustavo F. Padovan",
        "email": "padovan@profusion.mobi",
        "time": "Wed Dec 01 21:04:43 2010 -0200"
      },
      "message": "Bluetooth: clean up legal text\n\nRemove extra spaces from legal text so that legal stuff looks\nthe same for all bluetooth code.\n\nSigned-off-by: Andrei Emeltchenko \u003candrei.emeltchenko@nokia.com\u003e\nSigned-off-by: Gustavo F. Padovan \u003cpadovan@profusion.mobi\u003e\n"
    },
    {
      "commit": "70f23020e6d89155504b5b39f22505f4aec6fa6f",
      "tree": "91fb41030acd0d2a2ca3e55be2373c5a70284d0c",
      "parents": [
        "894718a6be69d8cfd191dc291b42be32a1e4851b"
      ],
      "author": {
        "name": "Andrei Emeltchenko",
        "email": "andrei.emeltchenko@nokia.com",
        "time": "Wed Dec 01 16:58:25 2010 +0200"
      },
      "committer": {
        "name": "Gustavo F. Padovan",
        "email": "padovan@profusion.mobi",
        "time": "Wed Dec 01 21:04:43 2010 -0200"
      },
      "message": "Bluetooth: clean up hci code\n\nDo not use assignment in IF condition, remove extra spaces,\nfixing typos, simplify code.\n\nSigned-off-by: Andrei Emeltchenko \u003candrei.emeltchenko@nokia.com\u003e\nSigned-off-by: Gustavo F. Padovan \u003cpadovan@profusion.mobi\u003e\n"
    },
    {
      "commit": "894718a6be69d8cfd191dc291b42be32a1e4851b",
      "tree": "47d814d0f4c9c8ac3de4ec4290422ea747ee5dd9",
      "parents": [
        "285b4e90318dcf421a00b2ac3fe8ab713f3281e3"
      ],
      "author": {
        "name": "Andrei Emeltchenko",
        "email": "andrei.emeltchenko@nokia.com",
        "time": "Wed Dec 01 16:58:24 2010 +0200"
      },
      "committer": {
        "name": "Gustavo F. Padovan",
        "email": "padovan@profusion.mobi",
        "time": "Wed Dec 01 21:04:43 2010 -0200"
      },
      "message": "Bluetooth: clean up l2cap code\n\nDo not initialize static vars to zero, macros with complex values\nshall be enclosed with (), remove unneeded braces.\n\nSigned-off-by: Andrei Emeltchenko \u003candrei.emeltchenko@nokia.com\u003e\nSigned-off-by: Gustavo F. Padovan \u003cpadovan@profusion.mobi\u003e\n"
    },
    {
      "commit": "285b4e90318dcf421a00b2ac3fe8ab713f3281e3",
      "tree": "2f69b35603f0c68288e364cc41de96e502ee511b",
      "parents": [
        "735cbc4784a084b7a76c43c69f9dba683bb3b48b"
      ],
      "author": {
        "name": "Andrei Emeltchenko",
        "email": "andrei.emeltchenko@nokia.com",
        "time": "Wed Dec 01 16:58:23 2010 +0200"
      },
      "committer": {
        "name": "Gustavo F. Padovan",
        "email": "padovan@profusion.mobi",
        "time": "Wed Dec 01 21:04:43 2010 -0200"
      },
      "message": "Bluetooth: clean up rfcomm code\n\nRemove extra spaces, assignments in if statement, zeroing static\nvariables, extra braces. Fix includes.\n\nSigned-off-by: Andrei Emeltchenko \u003candrei.emeltchenko@nokia.com\u003e\nSigned-off-by: Gustavo F. Padovan \u003cpadovan@profusion.mobi\u003e\n"
    },
    {
      "commit": "735cbc4784a084b7a76c43c69f9dba683bb3b48b",
      "tree": "75ba54305ab4e06fc7469761a0eb9b43ea9711a5",
      "parents": [
        "b78d7b4f204a6ba1901af36c95e10fded9816054"
      ],
      "author": {
        "name": "Andrei Emeltchenko",
        "email": "andrei.emeltchenko@nokia.com",
        "time": "Wed Dec 01 16:58:22 2010 +0200"
      },
      "committer": {
        "name": "Gustavo F. Padovan",
        "email": "padovan@profusion.mobi",
        "time": "Wed Dec 01 21:04:43 2010 -0200"
      },
      "message": "Bluetooth: clean up sco code\n\nDo not use assignments in IF condition, remove extra spaces\n\nSigned-off-by: Andrei Emeltchenko \u003candrei.emeltchenko@nokia.com\u003e\nSigned-off-by: Gustavo F. Padovan \u003cpadovan@profusion.mobi\u003e\n"
    },
    {
      "commit": "534c92fde74c8d2143fc15b5f1d957f42cb43570",
      "tree": "1f6fe4dcf8bebd4b8313357036614900f289aab2",
      "parents": [
        "ab3e571564a5d8fa4923e2e858e574c931a014c7"
      ],
      "author": {
        "name": "Andrei Emeltchenko",
        "email": "andrei.emeltchenko@nokia.com",
        "time": "Fri Oct 01 12:05:11 2010 +0300"
      },
      "committer": {
        "name": "Gustavo F. Padovan",
        "email": "padovan@profusion.mobi",
        "time": "Tue Oct 12 12:44:53 2010 -0300"
      },
      "message": "Bluetooth: clean up rfcomm code\n\nRemove dead code and unused rfcomm thread events\n\nSigned-off-by: Andrei Emeltchenko \u003candrei.emeltchenko@nokia.com\u003e\nAcked-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: Gustavo F. Padovan \u003cpadovan@profusion.mobi\u003e\n"
    },
    {
      "commit": "796c86eec84ddfd02281c5071838ed1fefda6b90",
      "tree": "5b6c705846e46c39b4ddc233e5a1604d9fb9476d",
      "parents": [
        "0fba2558cbb3fae3a09147b7d6e18a6204204e0e"
      ],
      "author": {
        "name": "Mat Martineau",
        "email": "mathewm@codeaurora.org",
        "time": "Wed Sep 08 10:05:27 2010 -0700"
      },
      "committer": {
        "name": "Gustavo F. Padovan",
        "email": "padovan@profusion.mobi",
        "time": "Tue Oct 12 12:44:51 2010 -0300"
      },
      "message": "Bluetooth: Add common code for stream-oriented recvmsg()\n\nThis commit adds a bt_sock_stream_recvmsg() function for use by any\nBluetooth code that uses SOCK_STREAM sockets.  This code is copied\nfrom rfcomm_sock_recvmsg() with minimal modifications to remove\nRFCOMM-specific functionality and improve readability.\n\nL2CAP (with the SOCK_STREAM socket type) and RFCOMM have common needs\nwhen it comes to reading data.  Proper stream read semantics require\nthat applications can read from a stream one byte at a time and not\nlose any data.  The RFCOMM code already operated on and pulled data\nfrom the underlying L2CAP socket, so very few changes were required to\nmake the code more generic for use with non-RFCOMM data over L2CAP.\n\nApplications that need more awareness of L2CAP frame boundaries are\nstill free to use SOCK_SEQPACKET sockets, and may verify that they\nconnection did not fall back to basic mode by calling getsockopt().\n\nSigned-off-by: Mat Martineau \u003cmathewm@codeaurora.org\u003e\nAcked-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: Gustavo F. Padovan \u003cpadovan@profusion.mobi\u003e\n"
    },
    {
      "commit": "8f1e1742233cd1c3444dfc6c945a2efb2814e157",
      "tree": "252563ff2af556132d23f0edfd6bfa92a8a97dc5",
      "parents": [
        "29b4433d991c88d86ca48a4c1cc33c671475be4b"
      ],
      "author": {
        "name": "David Vrabel",
        "email": "david.vrabel@csr.com",
        "time": "Mon Aug 09 17:38:10 2010 -0400"
      },
      "committer": {
        "name": "Gustavo F. Padovan",
        "email": "padovan@profusion.mobi",
        "time": "Tue Oct 12 12:44:51 2010 -0300"
      },
      "message": "Bluetooth: HCI devices are either BR/EDR or AMP radios\n\nHCI transport drivers may not know what type of radio an AMP device has\nso only say whether they\u0027re BR/EDR or AMP devices.\n\nSigned-off-by: David Vrabel \u003cdavid.vrabel@csr.com\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: Gustavo F. Padovan \u003cpadovan@profusion.mobi\u003e\n"
    },
    {
      "commit": "d122179a3c0fdc71b88cb9e3605f372b1651a9ff",
      "tree": "63a48b333e7565967b6d7c9e246557bfcb9f225f",
      "parents": [
        "419c20465d6319274e7286f0966e2390540e6e0a",
        "b00916b189d13a615ff05c9242201135992fcda3"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 11 12:30:34 2010 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 11 12:30:34 2010 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tnet/core/ethtool.c\n"
    },
    {
      "commit": "e454c844644683571617896ab2a4ce0109c1943e",
      "tree": "fd8fbcb76608bce78062c6a74ff8e8b65b3e34ae",
      "parents": [
        "b0239c80fe89d5832a68a0f3121a9d5ec9fb763e"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "padovan@profusion.mobi",
        "time": "Tue Sep 21 16:31:11 2010 -0300"
      },
      "committer": {
        "name": "Gustavo F. Padovan",
        "email": "padovan@profusion.mobi",
        "time": "Thu Sep 30 12:19:35 2010 -0300"
      },
      "message": "Bluetooth: Fix deadlock in the ERTM logic\n\nThe Enhanced Retransmission Mode(ERTM) is a realiable mode of operation\nof the Bluetooth L2CAP layer. Think on it like a simplified version of\nTCP.\nThe problem we were facing here was a deadlock. ERTM uses a backlog\nqueue to queue incomimg packets while the user is helding the lock. At\nsome moment the sk_sndbuf can be exceeded and we can\u0027t alloc new skbs\nthen the code sleep with the lock to wait for memory, that stalls the\nERTM connection once we can\u0027t read the acknowledgements packets in the\nbacklog queue to free memory and make the allocation of outcoming skb\nsuccessful.\n\nThis patch actually affect all users of bt_skb_send_alloc(), i.e., all\nL2CAP modes and SCO.\n\nWe are safe against socket states changes or channels deletion while the\nwe are sleeping wait memory. Checking for the sk-\u003esk_err and\nsk-\u003esk_shutdown make the code safe, since any action that can leave the\nsocket or the channel in a not usable state set one of the struct\nmembers at least. Then we can check both of them when getting the lock\nagain and return with the proper error if something unexpected happens.\n\nSigned-off-by: Gustavo F. Padovan \u003cpadovan@profusion.mobi\u003e\nSigned-off-by: Ulisses Furquim \u003culisses@profusion.mobi\u003e\n"
    },
    {
      "commit": "a02cec2155fbea457eca8881870fd2de1a4c4c76",
      "tree": "cfbfc4b32bfe10f9cd803d46c31607d13f1858f5",
      "parents": [
        "6a08d194ee40806e0ccd5f36ed768e64cbfc979f"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Sep 22 20:43:57 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 23 14:33:39 2010 -0700"
      },
      "message": "net: return operator cleanup\n\nChange \"return (EXPR);\" to \"return EXPR;\"\n\nreturn is not a function, parentheses are not required.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "db12d647ccc971ed120199dc7ea5be2b5887d328",
      "tree": "6720ef2cbcd408fcca4c94b855970ca1e9908f3e",
      "parents": [
        "cff70fae111efba80c27023772ce5265797fb514"
      ],
      "author": {
        "name": "Mat Martineau",
        "email": "mathewm@codeaurora.org",
        "time": "Thu Aug 05 15:54:27 2010 -0700"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Aug 10 07:59:11 2010 -0400"
      },
      "message": "Bluetooth: Use 3-DH5 payload size for default ERTM max PDU size\n\nThe previous value of 672 for L2CAP_DEFAULT_MAX_PDU_SIZE is based on\nthe default L2CAP MTU.  That default MTU is calculated from the size\nof two DH5 packets, minus ACL and L2CAP b-frame header overhead.\n\nERTM is used with newer basebands that typically support larger 3-DH5\npackets, and i-frames and s-frames have more header overhead.  With\nclean RF conditions, basebands will typically attempt to use 1021-byte\n3-DH5 packets for maximum throughput.  Adjusting for 2 bytes of ACL\nheaders plus 10 bytes of worst-case L2CAP headers yields 1009 bytes\nof payload.\n\nThis PDU size imposes less overhead for header bytes and gives the\nbaseband the option to choose 3-DH5 packets, but is small enough for\nERTM traffic to interleave well with other L2CAP or SCO data.\n672-byte payloads do not allow the most efficient over-the-air\npacket choice, and cannot achieve maximum throughput over BR/EDR.\n\nSigned-off-by: Mat Martineau \u003cmathewm@codeaurora.org\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "fa235562fbde8703aabeeedfa0772f08608d1542",
      "tree": "96b982350dfafe19bb30dff3fd842a26fe16c328",
      "parents": [
        "86b1b26326279299c93ddb11ab4782d3896bf84c"
      ],
      "author": {
        "name": "Mat Martineau",
        "email": "mathewm@codeaurora.org",
        "time": "Thu Aug 05 15:54:20 2010 -0700"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Aug 10 07:59:11 2010 -0400"
      },
      "message": "Bluetooth: Change default L2CAP ERTM retransmit timeout\n\nThe L2CAP specification requires that the ERTM retransmit timeout be at\nleast 2 seconds for BR/EDR connections.\n\nSigned-off-by: Mat Martineau \u003cmathewm@codeaurora.org\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "ea4bd8ba804dedefa65303b3bd105d6d2808e621",
      "tree": "4a189e6c27629892ce9d8b99566ca823e7502b47",
      "parents": [
        "b7753c8cd51dce67a0b152efb456a21ff1cc241b"
      ],
      "author": {
        "name": "David Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 30 21:54:49 2010 -0700"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Jul 31 16:06:58 2010 -0700"
      },
      "message": "Bluetooth: Use list_head for HCI blacklist head\n\nThe bdaddr in the list root is completely unused and just\ntaking up space.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nTested-by: Johan Hedberg \u003cjohan.hedberg@nokia.com\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "e73439d8c0e4c522c843b8bb98c0eb5700da6b05",
      "tree": "0ca070acc02700061380bd40315e39684b3e59fa",
      "parents": [
        "800f65bba8d2030b3fef62850e203f9f176625a8"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 26 10:06:00 2010 -0400"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Jul 27 12:29:04 2010 -0700"
      },
      "message": "Bluetooth: Defer SCO setup if mode change is pending\n\nCertain headsets such as the Motorola H350 will reject SCO and eSCO\nconnection requests while the ACL is transitioning from sniff mode\nto active mode. Add synchronization so that SCO and eSCO connection\nrequests will wait until the ACL has fully transitioned to active mode.\n\n\u003c HCI Command: Exit Sniff Mode (0x02|0x0004) plen 2\n    handle 12\n\u003e HCI Event: Command Status (0x0f) plen 4\n    Exit Sniff Mode (0x02|0x0004) status 0x00 ncmd 1\n\u003c HCI Command:  Setup Synchronous Connection (0x01|0x0028) plen 17\n    handle 12 voice setting 0x0040\n\u003e HCI Event: Command Status (0x0f) plen 4\n    Setup Synchronous Connection (0x01|0x0028) status 0x00 ncmd 1\n\u003e HCI Event: Number of Completed Packets (0x13) plen 5\n    handle 12 packets 1\n\u003e HCI Event: Mode Change (0x14) plen 6\n    status 0x00 handle 12 mode 0x00 interval 0\n    Mode: Active\n\u003e HCI Event: Synchronous Connect Complete (0x2c) plen 17\n    status 0x10 handle 14 bdaddr 00:1A:0E:50:28:A4 type SCO\n    Error: Connection Accept Timeout Exceeded\n\nSigned-off-by: Ron Shaffer \u003crshaffer@codeaurora.org\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "66c853cc21bd387a9a2109dcf3b3d53cc9ee9edf",
      "tree": "7cff1a1c452f0cdd3420523b0f5f966900c2336a",
      "parents": [
        "d1c4a17d58a6dfacb48935aa430aa986559a885f"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "padovan@profusion.mobi",
        "time": "Mon Jul 19 02:00:13 2010 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Jul 21 10:39:13 2010 -0700"
      },
      "message": "Bluetooth: Use __packed annotation\n\nTo make net/ and include/net/ code consistent use __packed instead of\n__attribute__ ((packed)). Bluetooth subsystem was one of the last net\nsubsys still using __attribute__ ((packed)).\n\nSigned-off-by: Gustavo F. Padovan \u003cpadovan@profusion.mobi\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "5d8868ff3d11e3fc5a5c07477f281a16c71714a3",
      "tree": "60f6080cb5201bfcc59d32e189b9d10575fb04d3",
      "parents": [
        "9981151086385eecc2febf4ba95a14593f834b3d"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "padovan@profusion.mobi",
        "time": "Fri Jul 16 16:18:39 2010 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Jul 21 10:39:12 2010 -0700"
      },
      "message": "Bluetooth: Add Google\u0027s copyright to L2CAP\n\nSigned-off-by: Gustavo F. Padovan \u003cpadovan@profusion.mobi\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "9981151086385eecc2febf4ba95a14593f834b3d",
      "tree": "3cdda7fe4c3d5d3bf05e9ca6fb8f9f1b6ab1c226",
      "parents": [
        "f39a3c06404d01ef2ce47e821bc778dfb1836df9"
      ],
      "author": {
        "name": "Suraj Sumangala",
        "email": "suraj@atheros.com",
        "time": "Wed Jul 14 13:02:19 2010 +0530"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Jul 21 10:39:12 2010 -0700"
      },
      "message": "Bluetooth: Implemented HCI frame reassembly for RX from stream\n\nImplemented frame reassembly implementation for reassembling fragments\nreceived from stream.\n\nSigned-off-by: Suraj Sumangala \u003csuraj@atheros.com\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "33e882a5f2301a23a85ef2994e30fd9f48d39d9b",
      "tree": "4048a954d11698581e123b25389a9f8f72125f90",
      "parents": [
        "cd4c53919ed50b0d532f106aeb76e79077bece98"
      ],
      "author": {
        "name": "Suraj Sumangala",
        "email": "suraj@atheros.com",
        "time": "Wed Jul 14 13:02:17 2010 +0530"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Jul 21 10:39:12 2010 -0700"
      },
      "message": "Bluetooth: Implement hci_reassembly helper to reassemble RX packets\n\nImplements feature to reassemble received HCI frames from any input stream\n\nSigned-off-by: Suraj Sumangala \u003csuraj@atheros.com\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "cd4c53919ed50b0d532f106aeb76e79077bece98",
      "tree": "db669259c941d543a12014fc0d69103a4e368cea",
      "parents": [
        "0a79f67445de50ca0a8dc1d34f3cc406d89c28b2"
      ],
      "author": {
        "name": "Suraj Sumangala",
        "email": "suraj@atheros.com",
        "time": "Wed Jul 14 13:02:16 2010 +0530"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Jul 21 10:39:12 2010 -0700"
      },
      "message": "Bluetooth: Add one more buffer for HCI stream reassembly\n\nAdditional reassembly buffer to keep track of stream reasembly\n\nSigned-off-by: Suraj Sumangala \u003csuraj@atheros.com\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "ce5706bd69be6b25715ed6cd48a210b5080032bc",
      "tree": "c542ca5952c691905f922869426be8d2a79f82fe",
      "parents": [
        "be60b94030339b89c2bcff18c76882f0a4c01ce6"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "padovan@profusion.mobi",
        "time": "Tue Jul 13 11:57:11 2010 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Jul 21 10:39:11 2010 -0700"
      },
      "message": "Bluetooth: Add Copyright notice to L2CAP\n\nCopyright for the time I worked on L2CAP during the Google Summer of Code\nprogram.\n\nSigned-off-by: Gustavo F. Padovan \u003cpadovan@profusion.mobi\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "e0f66218b3a7d0bcf37ca95186123c257fda0ba5",
      "tree": "3b7972c417686f3bddbe69af5fdb8c6984c513ee",
      "parents": [
        "8cb8e6f1684be13b51f8429b15f39c140326b327"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "padovan@profusion.mobi",
        "time": "Mon Jun 21 18:50:49 2010 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Jul 21 10:39:09 2010 -0700"
      },
      "message": "Bluetooth: Remove the send_lock spinlock from ERTM\n\nUsing a lock to deal with the ERTM race condition - interruption with\nnew data from the hci layer - is wrong. We should use the native skb\nbacklog queue.\n\nSigned-off-by: Gustavo F. Padovan \u003cpadovan@profusion.mobi\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "cf6c2c0b9f47ee3cd12684b905725c8376d52135",
      "tree": "0564fbf6b00891c810d8b91dbdb33c3e97ce1ce4",
      "parents": [
        "2ba13ed678775195e8255b4e503c59d48b615bd8"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "padovan@profusion.mobi",
        "time": "Mon Jun 07 20:54:45 2010 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Jul 21 10:39:09 2010 -0700"
      },
      "message": "Bluetooth: Disconnect early if mode is not supported\n\nWhen mode is mandatory we shall not send connect request and report this\nto the userspace as well.\n\nSigned-off-by: Gustavo F. Padovan \u003cpadovan@profusion.mobi\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "2d0a03460a8a0c611843500735096ff799aa8510",
      "tree": "7de71ec848af910d0075a1175381015ded556fe6",
      "parents": [
        "04fafe4ed76f5547856f4c464bec5bf948afb498"
      ],
      "author": {
        "name": "Ron Shaffer",
        "email": "rshaffer@codeaurora.org",
        "time": "Fri May 28 11:53:46 2010 -0400"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Jul 21 10:39:06 2010 -0700"
      },
      "message": "Bluetooth: Reassigned copyright to Code Aurora Forum\n\nQualcomm, Inc. has reassigned rights to Code Aurora Forum. Accordingly,\nas files are modified by Code Aurora Forum members, the copyright\nstatement will be updated.\n\nSigned-off-by: Ron Shaffer \u003crshaffer@codeaurora.org\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "04fafe4ed76f5547856f4c464bec5bf948afb498",
      "tree": "6e16cc046b1686048efb36cb278b33ad7842f4dd",
      "parents": [
        "7452d24cfb91e84f9be61beda5ad68d2a56d0938"
      ],
      "author": {
        "name": "Ron Shaffer",
        "email": "rshaffer@codeaurora.org",
        "time": "Fri May 28 11:53:45 2010 -0400"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Jul 21 10:39:05 2010 -0700"
      },
      "message": "Bluetooth: Remove extraneous white space\n\nDeleted extraneous white space from the end of several lines\n\nSigned-off-by: Ron Shaffer \u003crshaffer@codeaurora.org\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "f03585689fdff4ae256edd45a35bc2dd83d3684a",
      "tree": "be1516aa354aa742f2d5b69a91de0561febaffc4",
      "parents": [
        "95ffa97827371ede501615d9bd048eb5b49e8fe1"
      ],
      "author": {
        "name": "Johan Hedberg",
        "email": "johan.hedberg@nokia.com",
        "time": "Tue May 18 13:20:32 2010 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Jul 21 10:39:05 2010 -0700"
      },
      "message": "Bluetooth: Add blacklist support for incoming connections\n\nIn some circumstances it could be desirable to reject incoming\nconnections on the baseband level. This patch adds this feature through\ntwo new ioctl\u0027s: HCIBLOCKADDR and HCIUNBLOCKADDR. Both take a simple\nBluetooth address as a parameter. BDADDR_ANY can be used with\nHCIUNBLOCKADDR to remove all devices from the blacklist.\n\nSigned-off-by: Johan Hedberg \u003cjohan.hedberg@nokia.com\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "f48fd9c8cd746fdb055a97249a209c77dca0f710",
      "tree": "a3ab4ba27edc43bf3527a02fd7c6ba4167213056",
      "parents": [
        "844c0972427ee5f661158160aaca10b22b3dda60"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Mar 20 15:20:04 2010 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon May 10 09:34:03 2010 +0200"
      },
      "message": "Bluetooth: Create per controller workqueue\n\nInstead of having a global workqueue for all controllers, it makes\nmore sense to have a workqueue per controller.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "dfc909befbfe967bd7f46ef33b6969c1b7f3cf42",
      "tree": "cec8545cce920fe194a2d167467a1ca500c2616d",
      "parents": [
        "6161c0382bbab883a634d284f7367a88bbe88534"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "padovan@profusion.mobi",
        "time": "Sat May 01 16:15:45 2010 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon May 10 09:28:53 2010 +0200"
      },
      "message": "Bluetooth: Fix race condition on l2cap_ertm_send()\n\nl2cap_ertm_send() can be called both from user context and bottom half\ncontext. The socket locks for that contexts are different, the user\ncontext uses a mutex(which can sleep) and the second one uses a\nspinlock_bh. That creates a race condition when we have interruptions on\nboth contexts at the same time.\n\nThe better way to solve this is to add a new spinlock to lock\nl2cap_ertm_send() and the vars it access. The other solution was to defer\nl2cap_ertm_send() with a workqueue, but we the sending process already\nhas one defer on the hci layer. It\u0027s not a good idea add another one.\n\nThe patch refactor the code to create l2cap_retransmit_frames(), then we\nencapulate the lock of l2cap_ertm_send() for some call. It also changes\nl2cap_retransmit_frame() to l2cap_retransmit_one_frame() to avoid\nconfusion\n\nSigned-off-by: Gustavo F. Padovan \u003cpadovan@profusion.mobi\u003e\nReviewed-by: João Paulo Rechi Vita \u003cjprvita@profusion.mobi\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "1890d36bb556a27684ad29654a9898ab9a5f57ee",
      "tree": "9ff2c7d2f2e4288fa781f9f1802def01f7c530c9",
      "parents": [
        "9b53350d3cf5b330c3261d89b5e62a2dc25c5653"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "padovan@profusion.mobi",
        "time": "Sat May 01 16:15:44 2010 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon May 10 09:28:53 2010 +0200"
      },
      "message": "Bluetooth: Implement Local Busy Condition handling\n\nSupports Local Busy condition handling through a waitqueue that wake ups\neach 200ms and try to push the packets to the upper layer. If it can\npush all the queue then it leaves the Local Busy state.\n\nThe patch modifies the behaviour of l2cap_ertm_reassembly_sdu() to\nsupport retry of the push operation.\n\nSigned-off-by: Gustavo F. Padovan \u003cpadovan@profusion.mobi\u003e\nReviewed-by: João Paulo Rechi Vita \u003cjprvita@profusion.mobi\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "9a9c6a34416b3743c09c00f3d6708d9df3c21629",
      "tree": "1551a090ce012a53343d822c274f0705e44438b3",
      "parents": [
        "ff12fd643334071084b6145cad3793bb6c956638"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "padovan@profusion.mobi",
        "time": "Sat May 01 16:15:43 2010 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon May 10 09:28:52 2010 +0200"
      },
      "message": "Bluetooth: Make hci_send_acl() void\n\nhci_send_acl can\u0027t fail, so we can make it void. This patch changes\nthat and all the funcions that use hci_send_acl().\nThat change exposed a bug on sending connectionless data. We were not\nreporting the lenght send back to the user space.\n\nSigned-off-by: Gustavo F. Padovan \u003cpadovan@profusion.mobi\u003e\nReviewed-by: João Paulo Rechi Vita \u003cjprvita@profusion.mobi\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "68d7f0ce911e41e463c45911be031cdf6a096fe8",
      "tree": "0434ce6c83b95913ce506fc92643349d5f58df53",
      "parents": [
        "369ba30264826f38eefc61b93688100be8adbd4d"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "padovan@profusion.mobi",
        "time": "Sat May 01 16:15:41 2010 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon May 10 09:28:50 2010 +0200"
      },
      "message": "Bluetooth: Enable option to configure Max Transmission value via sockopt\n\nWith the sockopt extension we can set a per-channel MaxTx value.\n\nSigned-off-by: Gustavo F. Padovan \u003cpadovan@profusion.mobi\u003e\nReviewed-by: João Paulo Rechi Vita \u003cjprvita@profusion.mobi\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "803020c6fa63aa738cfda3329c9675b42023e9d2",
      "tree": "4fbe8adc8319193624931a2710bf5e46c541852f",
      "parents": [
        "14b5aa71ec506f4e38ca6a1dc02ecd668ecfd902"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "padovan@profusion.mobi",
        "time": "Sat May 01 16:15:41 2010 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon May 10 09:28:50 2010 +0200"
      },
      "message": "Bluetooth: Change acknowledgement to use the value of txWindow\n\nNow that we can set the txWindow we need to change the acknowledgement\nprocedure to ack after each (pi-\u003etxWindow/6 + 1). The plus 1 is to avoid\nthe zero value.\nIt also renames pi-\u003enum_to_ack to a better name: pi-\u003enum_acked.\n\nSigned-off-by: Gustavo F. Padovan \u003cpadovan@profusion.mobi\u003e\nReviewed-by: João Paulo Rechi Vita \u003cjprvita@profusion.mobi\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "14b5aa71ec506f4e38ca6a1dc02ecd668ecfd902",
      "tree": "afd8fc766f81d1c436433ca010eb12a606538b47",
      "parents": [
        "855666cccc939d392316de17512e17a08b2fa05a"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "padovan@profusion.mobi",
        "time": "Sat May 01 16:15:40 2010 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon May 10 09:28:49 2010 +0200"
      },
      "message": "Bluetooth: Add sockopt configuration for txWindow on L2CAP\n\nNow we can set/get Transmission Window size via sockopt.\n\nSigned-off-by: Gustavo F. Padovan \u003cpadovan@profusion.mobi\u003e\nReviewed-by: João Paulo Rechi Vita \u003cjprvita@profusion.mobi\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "1c7621596d11b9c3e19eb88a818758dee4901c95",
      "tree": "7eccf73c1739964e83cbc7ea5bce53fd4372a07c",
      "parents": [
        "7b1c0049be3aabc18831ada339dbcf41ba8c81fd"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "padovan@profusion.mobi",
        "time": "Sat May 01 16:15:40 2010 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon May 10 09:28:48 2010 +0200"
      },
      "message": "Bluetooth: Fix configuration of the MPS value\n\nWe were accepting values bigger than we can accept. This was leading\nERTM to drop packets because of wrong FCS checks.\n\nSigned-off-by: Gustavo F. Padovan \u003cpadovan@profusion.mobi\u003e\nReviewed-by: João Paulo Rechi Vita \u003cjprvita@profusion.mobi\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "c1b4f43be01c2a363be021485dd18cca33cfab8a",
      "tree": "3244f14f00eb6a227e52b2a8ddd7063ef0961840",
      "parents": [
        "05fbd89dd4153341717b33d9e8ae8bd29db6c1c8"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "padovan@profusion.mobi",
        "time": "Sat May 01 16:15:39 2010 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon May 10 09:28:48 2010 +0200"
      },
      "message": "Bluetooth: Add timer to Acknowledge I-frames\n\nWe ack I-frames on each txWindow/5 I-frames received, but if the sender\nstop to send I-frames and it\u0027s not a txWindow multiple we can leave some\nframes unacked.\nSo I added a timer to ack I-frames on this case. The timer expires in\n200ms.\n\nSigned-off-by: Gustavo F. Padovan \u003cpadovan@profusion.mobi\u003e\nReviewed-by: João Paulo Rechi Vita \u003cjprvita@profusion.mobi\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "d5392c8f1e9faef089bb7cb66c3314da8bddd1fe",
      "tree": "4a935a46f0bfe2b9eb6d94f1d18fa079d2e1d095",
      "parents": [
        "e8235c6bdd1c7ffbaa7eb8dcdbb46c51f1e5d72e"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "padovan@profusion.mobi",
        "time": "Sat May 01 16:15:36 2010 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon May 10 09:28:46 2010 +0200"
      },
      "message": "Bluetooth: Implement \u0027Send IorRRorRNR\u0027 event\n\nAfter receive a RR with P bit set ERTM shall use this funcion to choose\nwhat type of frame to reply with F bit \u003d 1.\n\nSigned-off-by: Gustavo F. Padovan \u003cpadovan@profusion.mobi\u003e\nReviewed-by: João Paulo Rechi Vita \u003cjprvita@profusion.mobi\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "0d861d8b8edd139a9b291cb262d08dec8dc3922d",
      "tree": "2b917b96e349baad182c49b15129c43b6a7b8ca5",
      "parents": [
        "4f7ac1814ef6f0773e57ffd159a1dd57a3c80521"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "padovan@profusion.mobi",
        "time": "Sat May 01 16:15:35 2010 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon May 10 09:28:45 2010 +0200"
      },
      "message": "Bluetooth: Make hci_send_sco() void\n\nIt also removes an unneeded check for the MTU. The check is done before\non sco_send_frame()\n\nSigned-off-by: Gustavo F. Padovan \u003cpadovan@profusion.mobi\u003e\nReviewed-by: João Paulo Rechi Vita \u003cjprvita@profusion.mobi\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "aef7d97cc604309b66f6f45cce02cd734934cd4e",
      "tree": "b21aae56f9a5de0bbabe881d597a4dc790ff97c8",
      "parents": [
        "101545f6fef4a0a3ea8daf0b5b880df2c6a92a69"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Mar 21 05:27:45 2010 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Mar 21 05:49:35 2010 +0100"
      },
      "message": "Bluetooth: Convert debug files to actually use debugfs instead of sysfs\n\nSome of the debug files ended up wrongly in sysfs, because at that point\nof time, debugfs didn\u0027t exist. Convert these files to use debugfs and\nalso seq_file. This patch converts all of these files at once and then\nremoves the exported symbol for the Bluetooth sysfs class.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "943da25d95c7e8fd8c39dbf09e030f5da46f5d85",
      "tree": "afa710bb2455ec43db38e205157fd6943ac6b63b",
      "parents": [
        "b914a250e7b390c713b36a9405a39c4c11abad80"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Feb 13 02:28:41 2010 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Feb 27 14:05:38 2010 +0100"
      },
      "message": "Bluetooth: Add controller types for BR/EDR and 802.11 AMP\n\nWith the Bluetooth 3.0 specification and the introduction of alternate\nMAC/PHY (AMP) support, it is required to differentiate between primary\nBR/EDR controllers and 802.11 AMP controllers. So introduce a special\ntype inside HCI device for differentiation.\n\nFor now all AMP controllers will be treated as raw devices until an\nAMP manager has been implemented.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "ca325f698996c1a0770a67f41e7dc97a007d8bc2",
      "tree": "8232f4c0cf8a2bef09b883280d3742735776c842",
      "parents": [
        "c13854cef4751000b968d4e8ac95796562d5b96f"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Feb 08 16:22:31 2010 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Feb 27 14:05:38 2010 +0100"
      },
      "message": "Bluetooth: Convert inquiry cache to use debugfs instead of sysfs\n\nThe output of the inquiry cache is only useful for debugging purposes\nand so move it into debugfs.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "c13854cef4751000b968d4e8ac95796562d5b96f",
      "tree": "0955205615783cfdf112c9bbf264ef1fe57409ed",
      "parents": [
        "10f7891f998e84acfa31ac9c5a0fea052c39ecb8"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Feb 08 15:27:07 2010 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Feb 27 14:05:38 2010 +0100"
      },
      "message": "Bluetooth: Convert controller hdev-\u003etype to hdev-\u003ebus\n\nThe hdev-\u003etype is misnamed and should be actually hdev-\u003ebus instead. So\nconvert it now.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "4ec10d9720ef78cd81d8bcc30a3238665744569f",
      "tree": "a4be8b2201f9e7acac689443d10cb30a3287972f",
      "parents": [
        "9f121a5a80b4417c6db5a35e26d2e79c29c3fc0d"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "gustavo@las.ic.unicamp.br",
        "time": "Sat Oct 03 02:34:39 2009 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Dec 03 19:34:24 2009 +0100"
      },
      "message": "Bluetooth: Implement RejActioned flag\n\nRejActioned is used to prevent retransmission when a entity is on the\nWAIT_F state, i.e., waiting for a frame with F-bit set due local busy\ncondition or a expired retransmission timer. (When these two events raise\nthey send a frame with the Poll bit set and enters in the WAIT_F state to\nwait for a frame with the Final bit set.)\nThe local entity doesn\u0027t send I-frames(the data frames) until the receipt\nof a frame with F-bit set. When that happens it also set RejActioned to false.\nRejActioned is a mandatory feature of ERTM spec.\n\nSigned-off-by: Gustavo F. Padovan \u003cgustavo@las.ic.unicamp.br\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "9f121a5a80b4417c6db5a35e26d2e79c29c3fc0d",
      "tree": "8e01df10e3e640c0f76b4c3f380db351543900bb",
      "parents": [
        "889a3ca466018ab68363c3168993793bc2d984f1"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "gustavo@las.ic.unicamp.br",
        "time": "Sat Oct 03 02:34:38 2009 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Dec 03 19:34:23 2009 +0100"
      },
      "message": "Bluetooth: Fix sending ReqSeq on I-frames\n\nAs specified by ERTM spec an ERTM channel can acknowledge received\nI-frames(the data frames) by sending an I-frame with the proper ReqSeq\nvalue (i.e. ReqSeq is set to BufferSeq).  Until now we aren\u0027t setting the\nReqSeq value on I-frame control bits. That way we can save sending\nS-frames(Supervise frames) only to acknowledge receipt of I-frames. It\nis very helpful to the full-duplex channel.\nReqSeq is the packet sequence number sent in an acknowledgement frame to\nacknowledge receipt of frames up to (ReqSeq - 1).\nBufferSeq controls the receiver buffer, it is used to delay\nacknowledgement of new frames to not cause buffer overflow. BufferSeq\nvalue is not increased until frames are pulled by reassembly function.\n\nSigned-off-by: Gustavo F. Padovan \u003cgustavo@las.ic.unicamp.br\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "c78ae283145d3a8799b2fb01650166a66af3bff8",
      "tree": "1da35006397e33e1ff9f3941a19a6cb2aa585c75",
      "parents": [
        "76bca88012e1d27de794f32cc551d6314d38b6d9"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Nov 18 01:02:54 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Dec 03 19:34:21 2009 +0100"
      },
      "message": "Bluetooth: Unobfuscate tasklet_schedule usage\n\nThe tasklet schedule function helpers are just an obfuscation. So remove\nthem and call the schedule functions directly.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "76bca88012e1d27de794f32cc551d6314d38b6d9",
      "tree": "b2c78fd6f9946ea67abd5b4d0fe5a66061990fa8",
      "parents": [
        "7e21addcd0ad87696c17409399e56e874931da57"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Nov 18 00:40:39 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Dec 03 19:34:20 2009 +0100"
      },
      "message": "Bluetooth: Turn hci_recv_frame into an exported function\n\nFor future simplification it is important that the hci_recv_frame\nfunction is no longer an inline function. So move it into the module\nitself and export it.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "ec1b4cf74c81bfd0fbe5bf62bafc86c45917e72f",
      "tree": "1b693e4e027f3e42224e6221ae018daeb562e5e1",
      "parents": [
        "f7734fdf61ec6bb848e0bafc1fb8bad2c124bb50"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Mon Oct 05 05:58:39 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 07 01:10:46 2009 -0700"
      },
      "message": "net: mark net_proto_ops as const\n\nAll usages of structure net_proto_ops should be declared const.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2246b2f1b43f3fbd128e72b129dcbbd3202cc592",
      "tree": "edfe82ab47829bb320c41c04289e2a01f23fba56",
      "parents": [
        "ca42a613c92d131ff02d5714419d58c36c3459f3"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "gustavo@las.ic.unicamp.br",
        "time": "Wed Aug 26 04:04:02 2009 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Aug 26 00:12:20 2009 -0700"
      },
      "message": "Bluetooth: Handle L2CAP case when the remote receiver is busy\n\nImplement all issues related to RemoteBusy in the RECV state table.\n\nSigned-off-by: Gustavo F. Padovan \u003cgustavo@las.ic.unicamp.br\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "9e726b17422bade75fba94e625cd35fd1353e682",
      "tree": "af8cf616d9cbda12f51682dbb96e696f135be436",
      "parents": [
        "ef54fd937fbd5ebaeb023818524565bd526a5f36"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.dentz@openbossa.org",
        "time": "Wed Jul 15 13:50:58 2009 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Aug 22 15:05:58 2009 -0700"
      },
      "message": "Bluetooth: Fix rejected connection not disconnecting ACL link\n\nWhen using DEFER_SETUP on a RFCOMM socket, a SABM frame triggers\nauthorization which when rejected send a DM response. This is fine\naccording to the RFCOMM spec:\n\n    the responding implementation may replace the \"proper\" response\n    on the Multiplexer Control channel with a DM frame, sent on the\n    referenced DLCI to indicate that the DLCI is not open, and that\n    the responder would not grant a request to open it later either.\n\nBut some stacks doesn\u0027t seems to cope with this leaving DLCI 0 open after\nreceiving DM frame.\n\nTo fix it properly a timer was introduced to rfcomm_session which is used\nto set a timeout when the last active DLC of a session is unlinked, this\nwill give the remote stack some time to reply with a proper DISC frame on\nDLCI 0 avoiding both sides sending DISC to each other on stacks that\nfollow the specification and taking care of those who don\u0027t by taking\ndown DLCI 0.\n\nSigned-off-by: Luiz Augusto von Dentz \u003cluiz.dentz@openbossa.org\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "ef54fd937fbd5ebaeb023818524565bd526a5f36",
      "tree": "c664288f00548b8c531ff44a0bc8c7f18542740e",
      "parents": [
        "8f17154f1f70fcc6faa31ac82164fcf7f0599f38"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "gustavo@las.ic.unicamp.br",
        "time": "Thu Aug 20 22:26:04 2009 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Aug 22 15:03:43 2009 -0700"
      },
      "message": "Bluetooth: Full support for receiving L2CAP SREJ frames\n\nSupport for receiving of SREJ frames as specified by the state table.\n\nSigned-off-by: Gustavo F. Padovan \u003cgustavo@las.ic.unicamp.br\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "8f17154f1f70fcc6faa31ac82164fcf7f0599f38",
      "tree": "f210dae590f600720b974d367082c368d03eac86",
      "parents": [
        "fcc203c30d72dde82692f6b761a80e5ca5fdd8fa"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "gustavo@las.ic.unicamp.br",
        "time": "Thu Aug 20 22:26:03 2009 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Aug 22 15:01:25 2009 -0700"
      },
      "message": "Bluetooth: Add support for L2CAP SREJ exception\n\nWhen L2CAP loses an I-frame we send a SREJ frame to the transmitter side\nrequesting the lost packet. This patch implement all Recv I-frame events\non SREJ_SENT state table except the ones that deal with SendRej (the REJ\nexception at receiver side is yet not implemented).\n\nSigned-off-by: Gustavo F. Padovan \u003cgustavo@las.ic.unicamp.br\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "fcc203c30d72dde82692f6b761a80e5ca5fdd8fa",
      "tree": "04eb154db3be85574efe74542f528efb39abf5bb",
      "parents": [
        "6840ed0770d79b9bb0800e5e026a067040ef18f5"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "gustavo@las.ic.unicamp.br",
        "time": "Thu Aug 20 22:26:02 2009 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Aug 22 14:59:49 2009 -0700"
      },
      "message": "Bluetooth: Add support for FCS option to L2CAP\n\nImplement CRC16 check for L2CAP packets. FCS is used by Streaming Mode and\nEnhanced Retransmission Mode and is a extra check for the packet content.\n\nUsing CRC16 is the default, L2CAP won\u0027t use FCS only when both side send\na \"No FCS\" request.\n\nInitially based on a patch from Nathan Holstein \u003cnathan@lampreynetworks.com\u003e\n\nSigned-off-by: Gustavo F. Padovan \u003cgustavo@las.ic.unicamp.br\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "e90bac061b17cd81bd0df30606c64f4543bf5ca0",
      "tree": "3529111fa5ba07bdd8ed9627d10d623f77416ace",
      "parents": [
        "30afb5b2aa83adf4f69e5090d48e1bb04b64c58a"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "gustavo@las.ic.unicamp.br",
        "time": "Thu Aug 20 22:26:00 2009 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Aug 22 14:56:15 2009 -0700"
      },
      "message": "Bluetooth: Add support for Retransmission and Monitor Timers\n\nL2CAP uses retransmission and monitor timers to inquiry the other side\nabout unacked I-frames. After sending each I-frame we (re)start the\nretransmission timer. If it expires, we start a monitor timer that send a\nS-frame with P bit set and wait for S-frame with F bit set. If monitor\ntimer expires, try again, at a maximum of L2CAP_DEFAULT_MAX_TX.\n\nSigned-off-by: Gustavo F. Padovan \u003cgustavo@las.ic.unicamp.br\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "30afb5b2aa83adf4f69e5090d48e1bb04b64c58a",
      "tree": "f47506c5f02b8e1d23123cadee49f518c928afa5",
      "parents": [
        "c74e560cd0101455f1889515e1527e4c2e266113"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "gustavo@las.ic.unicamp.br",
        "time": "Thu Aug 20 22:25:59 2009 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Aug 22 14:55:20 2009 -0700"
      },
      "message": "Bluetooth: Initial support for retransmission of packets with REJ frames\n\nWhen receiving an I-frame with unexpected txSeq, receiver side start the\nrecovery procedure by sending a REJ S-frame to the transmitter side. So\nthe transmitter can re-send the lost I-frame.\n\nThis patch just adds a basic support for retransmission, it doesn\u0027t\nmean that ERTM now has full support for packet retransmission.\n\nSigned-off-by: Gustavo F. Padovan \u003cgustavo@las.ic.unicamp.br\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "c74e560cd0101455f1889515e1527e4c2e266113",
      "tree": "a828b646b60578c1e90580da0d92e5d1ee7e7981",
      "parents": [
        "1c2acffb76d4bc5fd27c4ea55cc27ad8ead10f9a"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "gustavo@las.ic.unicamp.br",
        "time": "Thu Aug 20 22:25:58 2009 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Aug 22 14:53:58 2009 -0700"
      },
      "message": "Bluetooth: Add support for Segmentation and Reassembly of SDUs\n\nERTM should use Segmentation and Reassembly to break down a SDU in many\nPDUs on sending data to the other side.\n\nOn sending packets we queue all \u0027segments\u0027 until end of segmentation and\njust the add them to the queue for sending. On receiving we create a new\nSKB with the SDU reassembled.\n\nInitially based on a patch from Nathan Holstein \u003cnathan@lampreynetworks.com\u003e\n\nSigned-off-by: Gustavo F. Padovan \u003cgustavo@las.ic.unicamp.br\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "1c2acffb76d4bc5fd27c4ea55cc27ad8ead10f9a",
      "tree": "c196f2acec0fa0ace48483ec99a691b4230f53d2",
      "parents": [
        "22121fc9152ca8f25a2d790860832ccb6a414c4d"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "gustavo@las.ic.unicamp.br",
        "time": "Thu Aug 20 22:25:57 2009 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Aug 22 14:53:01 2009 -0700"
      },
      "message": "Bluetooth: Add initial support for ERTM packets transfers\n\nThis patch adds support for ERTM transfers, without retransmission, with\ntxWindow up to 63 and with acknowledgement of packets received. Now the\npackets are queued before call l2cap_do_send(), so packets couldn\u0027t be\nsent at the time we call l2cap_sock_sendmsg(). They will be sent in\nan asynchronous way on later calls of l2cap_ertm_send(). Besides if an\nerror occurs on calling l2cap_do_send() we disconnect the channel.\n\nInitially based on a patch from Nathan Holstein \u003cnathan@lampreynetworks.com\u003e\n\nSigned-off-by: Gustavo F. Padovan \u003cgustavo@las.ic.unicamp.br\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "f2fcfcd670257236ebf2088bbdf26f6a8ef459fe",
      "tree": "5bc6061e3b684ae545b24e2919ab43b711e04c4d",
      "parents": [
        "65c7c4918450f8c4545ccb02a9c7a3d77e073535"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "gustavo@las.ic.unicamp.br",
        "time": "Sat Jul 04 15:06:24 2009 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Aug 22 14:50:07 2009 -0700"
      },
      "message": "Bluetooth: Add configuration support for ERTM and Streaming mode\n\nAdd support to config_req and config_rsp to configure ERTM and Streaming\nmode. If the remote device specifies ERTM or Streaming mode, then the\nsame mode is proposed. Otherwise ERTM or Basic mode is used. And in case\nof a state 2 device, the remote device should propose the same mode. If\nnot, then the channel gets disconnected.\n\nSigned-off-by: Gustavo F. Padovan \u003cgustavo@las.ic.unicamp.br\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "c6b03cf986eab00e20d0dbc852b233bb83472138",
      "tree": "94fe92aafca068e3eb1cd6f4c53a3c86801fe7e0",
      "parents": [
        "44dd46de325c4d47abfd1361e5d84a548edb8e42"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat May 02 22:31:10 2009 -0700"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Aug 22 14:50:07 2009 -0700"
      },
      "message": "Bluetooth: Allow setting of L2CAP ERTM via socket option\n\nTo enable Enhanced Retransmission mode it needs to be set via a socket\noption. A different mode can be set on a socket, but on listen() and\nconnect() the mode is checked and ERTM is only allowed if it is enabled\nvia the module parameter.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "a6a67efd7088702fdbbb780c5a3f8e1a74e77b63",
      "tree": "fe35247ef5806ed690df3581de877fb84faad42b",
      "parents": [
        "5959809ded86e267c1a95fb44738a224c30d3434"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun Jul 26 08:18:19 2009 +0000"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Aug 22 14:35:02 2009 -0700"
      },
      "message": "Bluetooth: Convert hdev-\u003ereq_lock to a mutex\n\nhdev-\u003ereq_lock is used as mutex so make it a mutex.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "9eba32b86d17ef87131fa0bce43c614904ab5781",
      "tree": "cd7e40a026475b7e4ddb8bdc944e75bc5a18c250",
      "parents": [
        "364f63519d94442ed373ac7da79033c8282df46a"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Aug 22 14:19:26 2009 -0700"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Aug 22 14:19:26 2009 -0700"
      },
      "message": "Bluetooth: Add extra device reference counting for connections\n\nThe device model itself has no real usable reference counting at the\nmoment and this causes problems if parents are deleted before their\nchildren. The device model itself handles the memory details of this\ncorrectly, but the uevent order is not consistent. This causes various\nproblems for systems like HAL or even X.\n\nSo until device_put() does a proper cleanup, the device for Bluetooth\nconnection will be protected with an extra reference counting to ensure\nthe correct order of uevents when connections are terminated.\n\nThis is not an automatic feature. Higher Bluetooth layers like HIDP or\nBNEP should grab this new reference to ensure that their uevents are\nsend before the ones from the parent device.\n\nBased on a report by Brian Rogers \u003cbrian@xyzw.org\u003e\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "af0d3b103bcfa877343ee338de12002cd50c9ee5",
      "tree": "a06b348fae8d295b17e7620d00df6701f678d449",
      "parents": [
        "eb4ad826419ab5b1260bc1625249114767d36bea"
      ],
      "author": {
        "name": "Dave Young",
        "email": "hidave.darkstar@gmail.com",
        "time": "Mon Aug 03 04:26:16 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Aug 03 13:24:39 2009 -0700"
      },
      "message": "bluetooth: rfcomm_init bug fix\n\nrfcomm tty may be used before rfcomm_tty_driver initilized,\nThe problem is that now socket layer init before tty layer, if userspace\nprogram do socket callback right here then oops will happen.\n\nreporting in:\nhttp://marc.info/?l\u003dlinux-bluetooth\u0026m\u003d124404919324542\u0026w\u003d2\n\nmake 3 changes:\n1. remove #ifdef in rfcomm/core.c,\nmake it blank function when rfcomm tty not selected in rfcomm.h\n\n2. tune the rfcomm_init error patch to ensure\ntty driver initilized before rfcomm socket usage.\n\n3. remove __exit for rfcomm_cleanup_sockets\nbecause above change need call it in a __init function.\n\nReported-by: Oliver Hartkopp \u003coliver@hartkopp.net\u003e\nTested-by: Oliver Hartkopp \u003coliver@hartkopp.net\u003e\nSigned-off-by: Dave Young \u003chidave.darkstar@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bb400801c2f40bbd9a688818323ad09abfc4e581",
      "tree": "bf23baef0cdc7590b73a53e6b1e88565ba455cf1",
      "parents": [
        "130aa61a77b8518f1ea618e1b7d214d60b405f10",
        "611b30f74b5d8ca036a9923b3bf6e0ee10a21a53"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 11 05:47:43 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 11 05:47:43 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/holtmann/bluetooth-next-2.6\n"
    },
    {
      "commit": "05f77f85f47e30a53f7971b687f3b0250e42f665",
      "tree": "798b920ff7b1959c43006e7c5c4462acafd8233e",
      "parents": [
        "963267bc5d4de4a0da104a64300375d186575332"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 08 16:16:56 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 08 16:16:56 2009 -0700"
      },
      "message": "bluetooth: Kill skb_frags_no(), unused.\n\nFurthermore, it twiddles with the details of SKB list handling\ndirectly, which we\u0027re trying to eliminate.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "611b30f74b5d8ca036a9923b3bf6e0ee10a21a53",
      "tree": "75da131d873d19c2ee40dd6b05bf094d5afed2c1",
      "parents": [
        "092b85853b161a5ca285c429faf1cf2ff4318a01"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jun 08 14:41:38 2009 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jun 08 14:50:01 2009 +0200"
      },
      "message": "Bluetooth: Add native RFKILL soft-switch support for all devices\n\nWith the re-write of the RFKILL subsystem it is now possible to easily\nintegrate RFKILL soft-switch support into the Bluetooth subsystem. All\nBluetooth devices will now get automatically RFKILL support.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "b4324b5dc5b62ba76372e1bf8927230cf744df66",
      "tree": "0827bb177760bd2bdac41fbf6466eb1c825b9d88",
      "parents": [
        "47ec1dcd696d56a7c396e5838516a566ecd4b03d"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jun 07 18:06:51 2009 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jun 08 14:50:01 2009 +0200"
      },
      "message": "Bluetooth: Remove pointless endian conversion helpers\n\nThe Bluetooth source uses some endian conversion helpers, that in the end\ntranslate to kernel standard routines. So remove this obfuscation since it\nis fully pointless.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "47ec1dcd696d56a7c396e5838516a566ecd4b03d",
      "tree": "bd730bf14a5f685c8fad4f84fe0aa434a960f06c",
      "parents": [
        "af05b30bcb65da3ed488af54ee92e96bebe0be5e"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat May 02 18:57:55 2009 -0700"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jun 08 14:50:00 2009 +0200"
      },
      "message": "Bluetooth: Add basic constants for L2CAP ERTM support and use them\n\nThis adds the basic constants required to add support for L2CAP Enhanced\nRetransmission feature.\n\nBased on a patch from Nathan Holstein \u003cnathan@lampreynetworks.com\u003e\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "589d27464846c7cb758f93d9ee380c8ff05a161c",
      "tree": "cca78e805ba371fb53043ff9f0ceed5c02c25184",
      "parents": [
        "8db4dc46dcff7568896aa1eae4bd07620ce3dd93"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "gustavo@las.ic.unicamp.br",
        "time": "Mon Apr 20 01:31:07 2009 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jun 08 14:50:00 2009 +0200"
      },
      "message": "Bluetooth: Use macro for L2CAP hint mask on receiving config request\n\nUsing the L2CAP_CONF_HINT macro is easier to understand than using a\nhardcoded 0x80 value.\n\nSigned-off-by: Gustavo F. Padovan \u003cgustavo@las.ic.unicamp.br\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "8db4dc46dcff7568896aa1eae4bd07620ce3dd93",
      "tree": "32b92a182971618462f5997c156fa953cd9049cc",
      "parents": [
        "a1c1db392090bd280d1c3e2ed52ef682746ee332"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "gustavo@las.ic.unicamp.br",
        "time": "Mon Apr 20 01:31:05 2009 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jun 08 14:49:59 2009 +0200"
      },
      "message": "Bluetooth: Use macros for L2CAP channel identifiers\n\nUse macros instead of hardcoded numbers to make the L2CAP source code\nmore readable.\n\nSigned-off-by: Gustavo F. Padovan \u003cgustavo@las.ic.unicamp.br\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "a67e899cf38ae542d1a028ccd021f9189f76fb74",
      "tree": "d0bb79ccbdd5737745e99acbc569605bc74bc446",
      "parents": [
        "9f722c0978b04acba209f8ca1896ad05814bc3a3"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat May 02 18:24:06 2009 -0700"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon May 04 14:29:02 2009 -0700"
      },
      "message": "Bluetooth: Fix issue with sysfs handling for connections\n\nDue to a semantic changes in flush_workqueue() the current approach of\nsynchronizing the sysfs handling for connections doesn\u0027t work anymore. The\nwhole approach is actually fully broken and based on assumptions that are\nno longer valid.\n\nWith the introduction of Simple Pairing support, the creation of low-level\nACL links got changed. This change invalidates the reason why in the past\ntwo independent work queues have been used for adding/removing sysfs\ndevices. The adding of the actual sysfs device is now postponed until the\nhost controller successfully assigns an unique handle to that link. So\nthe real synchronization happens inside the controller and not the host.\n\nThe only left-over problem is that some internals of the sysfs device\nhandling are not initialized ahead of time. This leaves potential access\nto invalid data and can cause various NULL pointer dereferences. To fix\nthis a new function makes sure that all sysfs details are initialized\nwhen an connection attempt is made. The actual sysfs device is only\nregistered when the connection has been successfully established. To\navoid a race condition with the registration, the check if a device is\nregistered has been moved into the removal work.\n\nAs an extra protection two flush_work() calls are left in place to\nmake sure a previous add/del work has been completed first.\n\nBased on a report by Marc Pignat \u003cmarc.pignat@hevs.ch\u003e\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nTested-by: Justin P. Mattock \u003cjustinmattock@gmail.com\u003e\nTested-by: Roger Quadros \u003cext-roger.quadros@nokia.com\u003e\nTested-by: Marc Pignat \u003cmarc.pignat@hevs.ch\u003e\n"
    },
    {
      "commit": "052b30b0a8eec8db5b18ad49effdf2a9ba4c1e1a",
      "tree": "a7e772ecb7b13ef1d67e75e62ae00bb68cdf398c",
      "parents": [
        "f3784d834c71689336fa272df420b45345cb6b84"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Apr 26 20:01:22 2009 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Apr 28 09:31:38 2009 -0700"
      },
      "message": "Bluetooth: Add different pairing timeout for Legacy Pairing\n\nThe Bluetooth stack uses a reference counting for all established ACL\nlinks and if no user (L2CAP connection) is present, the link will be\nterminated to save power. The problem part is the dedicated pairing\nwhen using Legacy Pairing (Bluetooth 2.0 and before). At that point\nno user is present and pairing attempts will be disconnected within\n10 seconds or less. In previous kernel version this was not a problem\nsince the disconnect timeout wasn\u0027t triggered on incoming connections\nfor the first time. However this caused issues with broken host stacks\nthat kept the connections around after dedicated pairing. When the\nsupport for Simple Pairing got added, the link establishment procedure\nneeded to be changed and now causes issues when using Legacy Pairing\n\nWhen using Simple Pairing it is possible to do a proper reference\ncounting of ACL link users. With Legacy Pairing this is not possible\nsince the specification is unclear in some areas and too many broken\nBluetooth devices have already been deployed. So instead of trying to\ndeal with all the broken devices, a special pairing timeout will be\nintroduced that increases the timeout to 60 seconds when pairing is\ntriggered.\n\nIf a broken devices now puts the stack into an unforeseen state, the\nworst that happens is the disconnect timeout triggers after 120 seconds\ninstead of 4 seconds. This allows successful pairings with legacy and\nbroken devices now.\n\nBased on a report by Johan Hedberg \u003cjohan.hedberg@nokia.com\u003e\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "f3784d834c71689336fa272df420b45345cb6b84",
      "tree": "bfed4c21b3b3360bab0eb8123595e911adfbfdcf",
      "parents": [
        "bf368e4e70cd4e0f880923c44e95a4273d725ab4"
      ],
      "author": {
        "name": "Roger Quadros",
        "email": "ext-roger.quadros@nokia.com",
        "time": "Thu Apr 23 14:50:54 2009 +0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Apr 28 09:31:38 2009 -0700"
      },
      "message": "Bluetooth: Ensure that HCI sysfs add/del is preempt safe\n\nUse a different work_struct variables for add_conn() and del_conn() and\nuse single work queue instead of two for adding and deleting connections.\n\nIt eliminates the following error on a preemptible kernel:\n\n[  204.358032] Unable to handle kernel NULL pointer dereference at virtual address 0000000c\n[  204.370697] pgd \u003d c0004000\n[  204.373443] [0000000c] *pgd\u003d00000000\n[  204.378601] Internal error: Oops: 17 [#1] PREEMPT\n[  204.383361] Modules linked in: vfat fat rfcomm sco l2cap sd_mod scsi_mod iphb pvr2d drm omaplfb ps\n[  204.438537] CPU: 0    Not tainted  (2.6.28-maemo2 #1)\n[  204.443664] PC is at klist_put+0x2c/0xb4\n[  204.447601] LR is at klist_put+0x18/0xb4\n[  204.451568] pc : [\u003cc0270f08\u003e]    lr : [\u003cc0270ef4\u003e]    psr: a0000113\n[  204.451568] sp : cf1b3f10  ip : cf1b3f10  fp : cf1b3f2c\n[  204.463104] r10: 00000000  r9 : 00000000  r8 : bf08029c\n[  204.468353] r7 : c7869200  r6 : cfbe2690  r5 : c78692c8  r4 : 00000001\n[  204.474945] r3 : 00000001  r2 : cf1b2000  r1 : 00000001  r0 : 00000000\n[  204.481506] Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM Segment kernel\n[  204.488861] Control: 10c5387d  Table: 887fc018  DAC: 00000017\n[  204.494628] Process btdelconn (pid: 515, stack limit \u003d 0xcf1b22e0)\n\nSigned-off-by: Roger Quadros \u003cext-roger.quadros@nokia.com\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "2950f21acb0f6b8fcd964485c2ebf1e06545ac20",
      "tree": "a38b8c5a78849b9c88df24abe51d4e9c3a35424a",
      "parents": [
        "f29972de8e7476706ab3c01304a505e7c95d9040"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Feb 12 14:02:50 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:43 2009 +0100"
      },
      "message": "Bluetooth: Ask upper layers for HCI disconnect reason\n\nSome of the qualification tests demand that in case of failures in L2CAP\nthe HCI disconnect should indicate a reason why L2CAP fails. This is a\nbluntly layer violation since multiple L2CAP connections could be using\nthe same ACL and thus forcing a disconnect reason is not a good idea.\n\nTo comply with the Bluetooth test specification, the disconnect reason\nis now stored in the L2CAP connection structure and every time a new\nL2CAP channel is added it will set back to its default. So only in the\ncase where the L2CAP channel with the disconnect reason is really the\nlast one, it will propagated to the HCI layer.\n\nThe HCI layer has been extended with a disconnect indication that allows\nit to ask upper layers for a disconnect reason. The upper layer must not\nsupport this callback and in that case it will nicely default to the\nexisting behavior. If an upper layer like L2CAP can provide a disconnect\nreason that one will be used to disconnect the ACL or SCO link.\n\nNo modification to the ACL disconnect timeout have been made. So in case\nof Linux to Linux connection the initiator will disconnect the ACL link\nbefore the acceptor side can signal the specific disconnect reason. That\nis perfectly fine since Linux doesn\u0027t make use of this value anyway. The\nL2CAP layer has a perfect valid error code for rejecting connection due\nto a security violation. It is unclear why the Bluetooth specification\ninsists on having specific HCI disconnect reason.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "f29972de8e7476706ab3c01304a505e7c95d9040",
      "tree": "966729f6b80d0e149b0ece4367d27f52306cc8cb",
      "parents": [
        "e1027a7c69700301d14db03d2e049ee60c4f92df"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Feb 12 05:07:45 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:42 2009 +0100"
      },
      "message": "Bluetooth: Add CID field to L2CAP socket address structure\n\nIn preparation for L2CAP fixed channel support, the CID value of a\nL2CAP connection needs to be accessible via the socket interface. The\nCID is the connection identifier and exists as source and destination\nvalue. So extend the L2CAP socket address structure with this field and\nchange getsockname() and getpeername() to fill it in.\n\nThe bind() and connect() functions have been modified to handle L2CAP\nsocket address structures of variable sizes. This makes them future\nproof if additional fields need to be added.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "e1027a7c69700301d14db03d2e049ee60c4f92df",
      "tree": "d2dc9bc993deec30c8e9a797592458286e89e31b",
      "parents": [
        "435fef20acfc48f46476abad55b0cd3aa47b8365"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Feb 09 09:18:02 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:42 2009 +0100"
      },
      "message": "Bluetooth: Request L2CAP fixed channel list if available\n\nIf the extended features mask indicates support for fixed channels,\nrequest the list of available fixed channels. This also enables the\nfixed channel features bit so remote implementations can request\ninformation about it. Currently only the signal channel will be\nlisted.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "435fef20acfc48f46476abad55b0cd3aa47b8365",
      "tree": "8871de70ce8fedb293683b73d56d09582318ced0",
      "parents": [
        "6a8d3010b313d99adbb28f1826fac0234395bb26"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Feb 09 03:55:28 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:41 2009 +0100"
      },
      "message": "Bluetooth: Don\u0027t enforce authentication for L2CAP PSM 1 and 3\n\nThe recommendation for the L2CAP PSM 1 (SDP) is to not use any kind\nof authentication or encryption. So don\u0027t trigger authentication\nfor incoming and outgoing SDP connections.\n\nFor L2CAP PSM 3 (RFCOMM) there is no clear requirement, but with\nBluetooth 2.1 the initiator is required to enable authentication\nand encryption first and this gets enforced. So there is no need\nto trigger an additional authentication step. The RFCOMM service\nsecurity will make sure that a secure enough link key is present.\n\nWhen the encryption gets enabled after the SDP connection setup,\nthen switch the security level from SDP to low security.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "6a8d3010b313d99adbb28f1826fac0234395bb26",
      "tree": "e116cd7033e05e0e59b225484991e2a27188fc3e",
      "parents": [
        "984947dc64f82bc6cafa4d84ba1a139718f634a8"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 06 23:56:36 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:41 2009 +0100"
      },
      "message": "Bluetooth: Fix double L2CAP connection request\n\nIf the remote L2CAP server uses authentication pending stage and\nencryption is enabled it can happen that a L2CAP connection request is\nsent twice due to a race condition in the connection state machine.\n\nWhen the remote side indicates any kind of connection pending, then\ntrack this state and skip sending of L2CAP commands for this period.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "984947dc64f82bc6cafa4d84ba1a139718f634a8",
      "tree": "f85e4b260034f5b5a20af7a63900ee7de06fa7ad",
      "parents": [
        "657e17b03c80bec817975984d221bef716f83558"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 06 23:35:19 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:41 2009 +0100"
      },
      "message": "Bluetooth: Fix race condition with L2CAP information request\n\nWhen two L2CAP connections are requested quickly after the ACL link has\nbeen established there exists a window for a race condition where a\nconnection request is sent before the information response has been\nreceived. Any connection request should only be sent after an exchange\nof the extended features mask has been finished.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "0684e5f9fb9e3f7e168ab831dfca693bcb44805b",
      "tree": "1fb1315dff64ef2ebaa24729988b2c3b7c77d578",
      "parents": [
        "efc7688b557dd1be10eead7399b315efcb1dbc74"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Feb 09 02:48:38 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:40 2009 +0100"
      },
      "message": "Bluetooth: Use general bonding whenever possible\n\nWhen receiving incoming connection to specific services, always use\ngeneral bonding. This ensures that the link key gets stored and can be\nused for further authentications.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "efc7688b557dd1be10eead7399b315efcb1dbc74",
      "tree": "f51d32d047bbf27a106db679292c10a81b339836",
      "parents": [
        "255c76014af74165428e7aa16414b857e2bdccf2"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 06 09:13:37 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:37 2009 +0100"
      },
      "message": "Bluetooth: Add SCO fallback for eSCO connection attempts\n\nWhen attempting to setup eSCO connections it can happen that some link\nmanager implementations fail to properly negotiate the eSCO parameters\nand thus fail the eSCO setup. Normally the link manager is responsible\nfor the negotiation of the parameters and actually fallback to SCO if\nno agreement can be reached. In cases where the link manager is just too\nstupid, then at least try to establish a SCO link if eSCO fails.\n\nFor the Bluetooth devices with EDR support this includes handling packet\ntypes of EDR basebands. This is particular tricky since for the EDR the\nlogic of enabling/disabling one specific packet type is turned around.\nThis fix contains an extra bitmask to disable eSCO EDR packet when\ntrying to fallback to a SCO connection.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "8c84b83076b5062f59b6167cdda90d9e5124aa71",
      "tree": "7a47b0b80be4222494b272846ad5233f0d04c6e6",
      "parents": [
        "9f2c8a03fbb3048cf38b158f87aa0c3c09bca084"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Jan 16 08:17:51 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:33 2009 +0100"
      },
      "message": "Bluetooth: Pause RFCOMM TX when encryption drops\n\nA role switch with devices following the Bluetooth pre-2.1 standards\nor without Encryption Pause and Resume support is not possible if\nencryption is enabled. Most newer headsets require the role switch,\nbut also require that the connection is encrypted.\n\nFor connections with a high security mode setting, the link will be\nimmediately dropped. When the connection uses medium security mode\nsetting, then a grace period is introduced where the TX is halted and\nthe remote device gets a change to re-enable encryption after the\nrole switch. If not re-enabled the link will be dropped.\n\nBased on initial work by Ville Tervo \u003cville.tervo@nokia.com\u003e\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "9f2c8a03fbb3048cf38b158f87aa0c3c09bca084",
      "tree": "b8e81e5a8e3f0b8b8a15c06f1cf36e8aa02644e2",
      "parents": [
        "2af6b9d518ddfbc4d6990d5f9c9b1a05341c1cef"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Jan 15 21:58:40 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:26 2009 +0100"
      },
      "message": "Bluetooth: Replace RFCOMM link mode with security level\n\nChange the RFCOMM internals to use the new security levels and remove\nthe link mode details.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "2af6b9d518ddfbc4d6990d5f9c9b1a05341c1cef",
      "tree": "62b6f679495026ccf64c1b71d48cede452689b73",
      "parents": [
        "8c1b235594fbab9a13240a1dac12ea9fd99b6440"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Jan 15 21:58:38 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:26 2009 +0100"
      },
      "message": "Bluetooth: Replace L2CAP link mode with security level\n\nChange the L2CAP internals to use the new security levels and remove\nthe link mode details.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "8c1b235594fbab9a13240a1dac12ea9fd99b6440",
      "tree": "eb137a23e0fd8199144a4c3e36902af411e44269",
      "parents": [
        "c89b6e6bda4c8021195778f47567d0cc9dbfe7ec"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Jan 15 21:58:04 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:25 2009 +0100"
      },
      "message": "Bluetooth: Add enhanced security model for Simple Pairing\n\nThe current security model is based around the flags AUTH, ENCRYPT and\nSECURE. Starting with support for the Bluetooth 2.1 specification this is\nno longer sufficient. The different security levels are now defined as\nSDP, LOW, MEDIUM and SECURE.\n\nPreviously it was possible to set each security independently, but this\nactually doesn\u0027t make a lot of sense. For Bluetooth the encryption depends\non a previous successful authentication. Also you can only update your\nexisting link key if you successfully created at least one before. And of\ncourse the update of link keys without having proper encryption in place\nis a security issue.\n\nThe new security levels from the Bluetooth 2.1 specification are now\nused internally. All old settings are mapped to the new values and this\nway it ensures that old applications still work. The only limitation\nis that it is no longer possible to set authentication without also\nenabling encryption. No application should have done this anyway since\nthis is actually a security issue. Without encryption the integrity of\nthe authentication can\u0027t be guaranteed.\n\nAs default for a new L2CAP or RFCOMM connection, the LOW security level\nis used. The only exception here are the service discovery sessions on\nPSM 1 where SDP level is used. To have similar security strength as with\na Bluetooth 2.0 and before combination key, the MEDIUM level should be\nused. This is according to the Bluetooth specification. The MEDIUM level\nwill not require any kind of man-in-the-middle (MITM) protection. Only\nthe HIGH security level will require this.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "bb23c0ab824653be4aa7dfca15b07b3059717004",
      "tree": "bd0390c67d129e8b5ddc2a70a1b12e383db6fa16",
      "parents": [
        "c4f912e155504e94dd4f3d63c378dab0ff03dbda"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Jan 15 21:56:48 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:23 2009 +0100"
      },
      "message": "Bluetooth: Add support for deferring RFCOMM connection setup\n\nIn order to decide if listening RFCOMM sockets should be accept()ed\nthe BD_ADDR of the remote device needs to be known. This patch adds\na socket option which defines a timeout for deferring the actual\nconnection setup.\n\nThe connection setup is done after reading from the socket for the\nfirst time. Until then writing to the socket returns ENOTCONN.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "c4f912e155504e94dd4f3d63c378dab0ff03dbda",
      "tree": "db544bdd0dfc8ca890193a29b161b551f20f543c",
      "parents": [
        "d58daf42d29a3a4a4d4be46cf47ceee096789680"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Jan 15 21:52:16 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:23 2009 +0100"
      },
      "message": "Bluetooth: Add global deferred socket parameter\n\nThe L2CAP and RFCOMM applications require support for authorization\nand the ability of rejecting incoming connection requests. The socket\ninterface is not really able to support this.\n\nThis patch does the ground work for a socket option to defer connection\nsetup. Setting this option allows calling of accept() and then the\nfirst read() will trigger the final connection setup. Calling close()\nwould reject the connection.\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": "7a9d4020533b5c0c615b6de3be154c9ff30b8cc9",
      "tree": "7d2957eb96f87f9ba8fcaf8c28aa7f4e93740fb6",
      "parents": [
        "12421b40b81d101d7535e03f1af197365adc932b"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Nov 30 12:17:26 2008 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Nov 30 12:17:26 2008 +0100"
      },
      "message": "Bluetooth: Send HCI Reset command by default on device initialization\n\nThe Bluetooth subsystem was not using the HCI Reset command when doing\ndevice initialization. The Bluetooth 1.0b specification was ambiguous\non how the device firmware was suppose to handle it. Almost every device\nwas triggering a transport reset at the same time. In case of USB this\nended up in disconnects from the bus.\n\nAll modern Bluetooth dongles handle this perfectly fine and a lot of\nthem actually require that HCI Reset is sent. If not then they are\neither stuck in their HID Proxy mode or their internal structures for\ninquiry and paging are not correctly setup.\n\nTo handle old and new devices smoothly the Bluetooth subsystem contains\na quirk to force the HCI Reset on initialization. However maintaining\nsuch a quirk becomes more and more complicated. This patch turns the\nlogic around and lets the old devices disable the HCI Reset command.\n\nThe only device where the HCI_QUIRK_NO_RESET is still needed are the\noriginal Digianswer devices and dongles with an early CSR firmware.\n\nCSR reported that they fixed this for version 12 firmware. The last\nofficial release of version 11 firmware is build ID 115. The first\nversion 12 candidate was build ID 117.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "d5c003b4d1690e666dbab02bc8e705947baa848c",
      "tree": "868edee78b635698429173a95ac4215b932f0155",
      "parents": [
        "8e9c7716c138fa82d919bfe1115ec8c938e90918"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Oct 15 22:01:24 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:30 2008 -0700"
      },
      "message": "include: replace __FUNCTION__ with __func__\n\n__FUNCTION__ is gcc-specific, use __func__\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": "e7c29cb16c833441fd2160642bb13025f4e7ac70",
      "tree": "7ba44be60b7bf9c4e7bee459735ebabdc85eb8fd",
      "parents": [
        "09ab6f4c2376a0fc31abde1e2991513f900ea825"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Sep 09 07:19:20 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Sep 09 07:19:20 2008 +0200"
      },
      "message": "[Bluetooth] Reject L2CAP connections on an insecure ACL link\n\nThe Security Mode 4 of the Bluetooth 2.1 specification has strict\nauthentication and encryption requirements. It is the initiators job\nto create a secure ACL link. However in case of malicious devices, the\nacceptor has to make sure that the ACL is encrypted before allowing\nany kind of L2CAP connection. The only exception here is the PSM 1 for\nthe service discovery protocol, because that is allowed to run on an\ninsecure ACL link.\n\nPreviously it was enough to reject a L2CAP connection during the\nconnection setup phase, but with Bluetooth 2.1 it is forbidden to\ndo any L2CAP protocol exchange on an insecure link (except SDP).\n\nThe new hci_conn_check_link_mode() function can be used to check the\nintegrity of an ACL link. This functions also takes care of the cases\nwhere Security Mode 4 is disabled or one of the devices is based on\nan older specification.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "09ab6f4c2376a0fc31abde1e2991513f900ea825",
      "tree": "f002d719a8a9a2c6344f06a5b9346bc053b4054d",
      "parents": [
        "f1c08ca559387ab30992055596d54061dfa022b1"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Sep 09 07:19:20 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Sep 09 07:19:20 2008 +0200"
      },
      "message": "[Bluetooth] Enforce correct authentication requirements\n\nWith the introduction of Security Mode 4 and Simple Pairing from the\nBluetooth 2.1 specification it became mandatory that the initiator\nrequires authentication and encryption before any L2CAP channel can\nbe established. The only exception here is PSM 1 for the service\ndiscovery protocol (SDP). It is meant to be used without any encryption\nsince it contains only public information. This is how Bluetooth 2.0\nand before handle connections on PSM 1.\n\nFor Bluetooth 2.1 devices the pairing procedure differentiates between\nno bonding, general bonding and dedicated bonding. The L2CAP layer\nwrongly uses always general bonding when creating new connections, but it\nshould not do this for SDP connections. In this case the authentication\nrequirement should be no bonding and the just-works model should be used,\nbut in case of non-SDP connection it is required to use general bonding.\n\nIf the new connection requires man-in-the-middle (MITM) protection, it\nalso first wrongly creates an unauthenticated link key and then later on\nrequests an upgrade to an authenticated link key to provide full MITM\nprotection. With Simple Pairing the link key generation is an expensive\noperation (compared to Bluetooth 2.0 and before) and doing this twice\nduring a connection setup causes a noticeable delay when establishing\na new connection. This should be avoided to not regress from the expected\nBluetooth 2.0 connection times. The authentication requirements are known\nup-front and so enforce them.\n\nTo fulfill these requirements the hci_connect() function has been extended\nwith an authentication requirement parameter that will be stored inside\nthe connection information and can be retrieved by userspace at any\ntime. This allows the correct IO capabilities exchange and results in\nthe expected behavior.\n\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": "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"
    }
  ],
  "next": "769be974d0c7b4fe1a52f9cdaad22259b60953f7"
}
