)]}'
{
  "log": [
    {
      "commit": "28812fe11a21826ba4c97c6c7971a619987cd912",
      "tree": "c78daefd595989bbc660ea48d8bc2dc5750321d3",
      "parents": [
        "5fbcae57db69128c14080a7a5a42d0626bfe155c"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Tue Jan 05 12:48:07 2010 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Mar 07 17:04:48 2010 -0800"
      },
      "message": "driver-core: Add attribute argument to class_attribute show/store\n\nPassing the attribute to the low level IO functions allows all kinds\nof cleanups, by sharing low level IO code without requiring\nan own function for every piece of data.\n\nAlso drivers can extend the attributes with own data fields\nand use that in the low level function.\n\nThis makes the class attributes the same as sysdev_class attributes\nand plain attributes.\n\nThis will allow further cleanups in drivers.\n\nFull tree sweep converting all users.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "e420aba331f44de0eed6871441293a6124d566d1",
      "tree": "1a6b994bb9d3d083ed36c7212322e8159ebc5f13",
      "parents": [
        "fcafde2e6d81aa7901f9b10e6a097592f0637b79"
      ],
      "author": {
        "name": "Andrei Emeltchenko",
        "email": "andrei.emeltchenko@nokia.com",
        "time": "Wed Dec 23 13:07:14 2009 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Jan 30 05:57:20 2010 -0800"
      },
      "message": "Bluetooth: Fix memory leak in L2CAP\n\nMove skb_clone after error confition check so it is not going\npotentially out of the scope.\n\nSigned-off-by: Andrei Emeltchenko \u003candrei.emeltchenko@nokia.com\u003e\nAcked-by: Gustavo F. Padovan \u003cpadovan@profusion.mobi\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "fcafde2e6d81aa7901f9b10e6a097592f0637b79",
      "tree": "e1f80255f43851dcd2cacd836740330dc4cfd2ff",
      "parents": [
        "b473946a0853860e13b51c28add5524741117786"
      ],
      "author": {
        "name": "Andrei Emeltchenko",
        "email": "andrei.emeltchenko@nokia.com",
        "time": "Tue Dec 22 15:58:08 2009 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Jan 30 05:57:11 2010 -0800"
      },
      "message": "Bluetooth: Remove double free of SKB pointer in L2CAP\n\nTrivial fix for double free of SKB pointer with kfree_skb to\nmake code simplier and cleaner. Remove unused variable err.\n\nSigned-off-by: Andrei Emeltchenko \u003candrei.emeltchenko@nokia.com\u003e\nAcked-by: Gustavo F. Padovan \u003cpadovan@profusion.mobi\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "b13f5860447a98daf0358a51fbff66154ac0663a",
      "tree": "fc4c752e4b8ab5649d421955de3de399953f12d9",
      "parents": [
        "186ee8cf0130993dea8ab8867ff1af8a148f9ae6"
      ],
      "author": {
        "name": "Andrei Emeltchenko",
        "email": "andrei.emeltchenko@nokia.com",
        "time": "Tue Dec 15 11:38:04 2009 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Dec 17 12:07:25 2009 -0800"
      },
      "message": "Bluetooth: Fix L2CAP locking scheme regression\n\nWhen locking was introduced the error path branch was not taken\ninto account. Error was found in sparse code checking. Kudos to\nJani Nikula.\n\nSigned-off-by: Andrei Emeltchenko \u003candrei.emeltchenko@nokia.com\u003e\nAcked-by: Gustavo F. Padovan \u003cgustavo@las.ic.unicamp.br\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "186ee8cf0130993dea8ab8867ff1af8a148f9ae6",
      "tree": "dd65c1c454625194b85f6c458ccf96c1a7ef062a",
      "parents": [
        "186de9a33803c7ee20d9af75c9049b50e68a3a08"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "gustavo@las.ic.unicamp.br",
        "time": "Tue Dec 15 20:13:27 2009 -0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Dec 17 12:06:23 2009 -0800"
      },
      "message": "Bluetooth: Ack L2CAP I-frames before retransmit missing packet\n\nMoving the Ack to before l2cap_retransmit_frame() we can avoid the\ncase where txWindow is full and the packet can\u0027t be retransmited.\n\nSigned-off-by: Gustavo F. Padovan \u003cgustavo@las.ic.unicamp.br\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "186de9a33803c7ee20d9af75c9049b50e68a3a08",
      "tree": "4ec1d2f0b8c7624271cbbff21c6b8b134203574f",
      "parents": [
        "971beb83aeb2a309175682cf5683d64fd4591841"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "gustavo@las.ic.unicamp.br",
        "time": "Tue Dec 15 15:56:34 2009 -0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Dec 17 12:04:08 2009 -0800"
      },
      "message": "Bluetooth: Fix unset of RemoteBusy flag for L2CAP\n\nRemoteBusy flag need to be unset before l2cap_ertm_send(), otherwise\nl2cap_ertm_send() will return without sending packets because it checks\nthat flag before start sending.\n\nSigned-off-by: Gustavo F. Padovan \u003cgustavo@las.ic.unicamp.br\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "5fbcd3d1a07e234583e17830e8aef47282c22141",
      "tree": "412959aab8701a4b54ad1d06a4048c657f1adb3d",
      "parents": [
        "32fd63981ed453bd882f22e3e9b0ccbc11fb47e5"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Oct 05 11:35:43 2009 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Dec 03 19:34:25 2009 +0100"
      },
      "message": "Bluetooth: Add L2CAP option for max transmit value\n\nFor testing purposes it is important to modify the max transmit value.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "2ab25cdd7b54473dd42dcffc9872737de2517466",
      "tree": "0410dece8d1da3238bdc006e1909237f4a714e1f",
      "parents": [
        "4ec10d9720ef78cd81d8bcc30a3238665744569f"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "gustavo@las.ic.unicamp.br",
        "time": "Sat Oct 03 02:34:40 2009 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Dec 03 19:34:24 2009 +0100"
      },
      "message": "Bluetooth: Fix \u0027SendRRorRNR\u0027 to send the ReqSeq value\n\nSendRRorRNR needs to acknowledge received I-frames (actually every packet\nneeds to acknowledge received I-frames by sending the proper packet\nsequence number), so ReqSeq is set to the next I-frame number sequence to\nbe pulled by the reassembly function.\nSendRRorRNR tells the remote side about local busy conditions, it sends\na Receiver Ready frame if local busy is false or a Receiver Not Ready\nif local busy is true.\nReqSeq is the packet\u0027s field to send the number of the acknowledged\npackets.\n\nSigned-off-by: Gustavo F. Padovan \u003cgustavo@las.ic.unicamp.br\u003e\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": "889a3ca466018ab68363c3168993793bc2d984f1",
      "tree": "c3247c246d982546eb19328efff9253a8e2b5155",
      "parents": [
        "0565c1c24af94130b891f989fa608faddfadc52c"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "gustavo@las.ic.unicamp.br",
        "time": "Sat Oct 03 02:34:37 2009 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Dec 03 19:34:23 2009 +0100"
      },
      "message": "Bluetooth: Fix unset of SrejActioned flag\n\nSrejActioned  is a flag that when set prevents local side to retransmit a\nI-frame(the data frame) already retransmitted. The local entity can\nretransmit again only when it receives a SREJ frame with the F-bit set.\nSREJ frame - Selective Reject frame  - is sent when an entity wants the\nretransmission of a specific I-frame that was lost or corrupted.\nThis bug can put ERTM in an unknown state once the entity can\u0027t\nretransmit.\nA frame with the Final bit set is expected when the local side sends a\nframe with the Poll bit set due to a local busy condition or a\nretransmission timer expired. (Receipt of P-bit shall always be replied by\na frame with the F-bit set).\npi-\u003econn_state keeps informations about many ERTM flags including\nSrejActioned.\n\nSigned-off-by: Gustavo F. Padovan \u003cgustavo@las.ic.unicamp.br\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "0565c1c24af94130b891f989fa608faddfadc52c",
      "tree": "223bb84f663f3d2b21c57b264085abcf83c0f4a1",
      "parents": [
        "cde9f807f003676862178a6f28b52c7d431511ed"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "gustavo@las.ic.unicamp.br",
        "time": "Sat Oct 03 02:34:36 2009 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Dec 03 19:34:22 2009 +0100"
      },
      "message": "Bluetooth: Initialize variables and timers for both channel\u0027s sides\n\nFix ERTM\u0027s full-duplex channel to work as specified by ERTM spec. ERTM\nneeds to handle state vars, timers and counters to send and receive\nI-frames(the data frames), i.e., for both sides of data communication.\nWe initialize all of them to the default values here.\nFull-duplex channel 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": "f64f9e719261a87818dd192a3a2352e5b20fbd0f",
      "tree": "b2d5cbaef3df615295f6061d8c4d6a912690556c",
      "parents": [
        "152b6a62aea2d43359dd37004e9c218bf7bdeb3b"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Sun Nov 29 16:55:45 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 29 16:55:45 2009 -0800"
      },
      "message": "net: Move \u0026\u0026 and || to end of previous line\n\nNot including net/atm/\n\nCompiled tested x86 allyesconfig only\nAdded a \u003e 80 column line or two, which I ignored.\nExisting checkpatch plaints willfully, cheerfully ignored.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a2bfbc072e279ff81e6b336acff612b9bc2e5281",
      "tree": "89cfe21911e1539e1b7f89d8a10d42abecba2a18",
      "parents": [
        "5c427ff9e4cc61625d48172ea082ae99e21eea6a",
        "82b3cc1a2f5e46300a9dec4a8cc8106dc20a4c23"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 17 00:05:02 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 17 00:05:02 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/can/Kconfig\n"
    },
    {
      "commit": "68ae6639b6dff117ba37f648f1611a4629abadf0",
      "tree": "2f83dd6f4858c9294687013e7ef7eff6a1888125",
      "parents": [
        "a0e55a32afc2130e5ae506755e4b8eb42a23b568"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "gustavo@las.ic.unicamp.br",
        "time": "Sat Oct 17 21:41:01 2009 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Nov 16 01:31:41 2009 +0100"
      },
      "message": "Bluetooth: Fix regression with L2CAP configuration in Basic Mode\n\nBasic Mode is the default mode of operation of a L2CAP entity. In\nthis case the RFC (Retransmission and Flow Control) configuration\noption should not be used at all.\n\nNormally remote L2CAP implementation should just ignore this option,\nbut it can cause various side effects with other Bluetooth stacks\nthat are not capable of handling unknown options.\n\nSigned-off-by: Gustavo F. Padovan \u003cgustavo@las.ic.unicamp.br\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "a0e55a32afc2130e5ae506755e4b8eb42a23b568",
      "tree": "721f3c543b688ced6a7f55ffffd487f0b63a406a",
      "parents": [
        "93f19c9fc8c98bb6d2e9825115989603ffd5cd1f"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "gustavo@las.ic.unicamp.br",
        "time": "Tue Sep 29 01:42:23 2009 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Nov 16 01:31:16 2009 +0100"
      },
      "message": "Bluetooth: Select Basic Mode as default for SOCK_SEQPACKET\n\nThe default mode for SOCK_SEQPACKET is Basic Mode. So when no\nmode has been specified, Basic Mode shall be used.\n\nThis is important for current application to keep working as\nexpected and not cause a regression.\n\nSigned-off-by: Gustavo F. Padovan \u003cgustavo@las.ic.unicamp.br\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "c84b3268da3b85c9d8a9e504e1001a14ed829e94",
      "tree": "795b4997f5610cf2e56a57ee5b1e4c2d4ca10188",
      "parents": [
        "3f378b684453f2a028eda463ce383370545d9cc9"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Nov 05 20:45:52 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 05 22:18:18 2009 -0800"
      },
      "message": "net: check kern before calling security subsystem\n\nBefore calling capable(CAP_NET_RAW) check if this operations is on behalf\nof the kernel or on behalf of userspace.  Do not do the security check if\nit is on behalf of the kernel.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3f378b684453f2a028eda463ce383370545d9cc9",
      "tree": "dc50d087e137c6d173e25ae10ecd0f10823eca7a",
      "parents": [
        "13f18aa05f5abe135f47b6417537ae2b2fedc18c"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Nov 05 22:18:14 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 05 22:18:14 2009 -0800"
      },
      "message": "net: pass kern to net_proto_family create function\n\nThe generic __sock_create function has a kern argument which allows the\nsecurity system to make decisions based on if a socket is being created by\nthe kernel or by userspace.  This patch passes that flag to the\nnet_proto_family specific create function, so it can do the same thing.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cfadf853f6cd9689f79a63ca960c6f9d6665314f",
      "tree": "35418e342d9783f0974ea33ef03875aa21d2362a",
      "parents": [
        "05423b241311c9380b7280179295bac7794281b6",
        "f568a926a353d6816b3704d7367f34371df44ce7"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 27 01:03:26 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 27 01:03:26 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/sh_eth.c\n"
    },
    {
      "commit": "45054dc1bf2367ccb0e7c0486037907cd9395f8b",
      "tree": "a2dbc61975f169bd841a012d159210c69024c317",
      "parents": [
        "f74c77cb1124a11acf69c98d10c0fdc22f322664"
      ],
      "author": {
        "name": "Dave Young",
        "email": "hidave.darkstar@gmail.com",
        "time": "Sun Oct 18 20:28:30 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 19 19:36:49 2009 -0700"
      },
      "message": "bluetooth: static lock key fix\n\nWhen shutdown ppp connection, lockdep waring about non-static key\nwill happen, it is caused by the lock is not initialized properly\nat that time.\n\nFix with tuning the lock/skb_queue_head init order\n\n[   94.339261] INFO: trying to register non-static key.\n[   94.342509] the code is fine but needs lockdep annotation.\n[   94.342509] turning off the locking correctness validator.\n[   94.342509] Pid: 0, comm: swapper Not tainted 2.6.31-mm1 #2\n[   94.342509] Call Trace:\n[   94.342509]  [\u003cc0248fbe\u003e] register_lock_class+0x58/0x241\n[   94.342509]  [\u003cc024b5df\u003e] ? __lock_acquire+0xb57/0xb73\n[   94.342509]  [\u003cc024ab34\u003e] __lock_acquire+0xac/0xb73\n[   94.342509]  [\u003cc024b7fa\u003e] ? lock_release_non_nested+0x17b/0x1de\n[   94.342509]  [\u003cc024b662\u003e] lock_acquire+0x67/0x84\n[   94.342509]  [\u003cc04cd1eb\u003e] ? skb_dequeue+0x15/0x41\n[   94.342509]  [\u003cc054a857\u003e] _spin_lock_irqsave+0x2f/0x3f\n[   94.342509]  [\u003cc04cd1eb\u003e] ? skb_dequeue+0x15/0x41\n[   94.342509]  [\u003cc04cd1eb\u003e] skb_dequeue+0x15/0x41\n[   94.342509]  [\u003cc054a648\u003e] ? _read_unlock+0x1d/0x20\n[   94.342509]  [\u003cc04cd641\u003e] skb_queue_purge+0x14/0x1b\n[   94.342509]  [\u003cfab94fdc\u003e] l2cap_recv_frame+0xea1/0x115a [l2cap]\n[   94.342509]  [\u003cc024b5df\u003e] ? __lock_acquire+0xb57/0xb73\n[   94.342509]  [\u003cc0249c04\u003e] ? mark_lock+0x1e/0x1c7\n[   94.342509]  [\u003cf8364963\u003e] ? hci_rx_task+0xd2/0x1bc [bluetooth]\n[   94.342509]  [\u003cfab95346\u003e] l2cap_recv_acldata+0xb1/0x1c6 [l2cap]\n[   94.342509]  [\u003cf8364997\u003e] hci_rx_task+0x106/0x1bc [bluetooth]\n[   94.342509]  [\u003cfab95295\u003e] ? l2cap_recv_acldata+0x0/0x1c6 [l2cap]\n[   94.342509]  [\u003cc02302c4\u003e] tasklet_action+0x69/0xc1\n[   94.342509]  [\u003cc022fbef\u003e] __do_softirq+0x94/0x11e\n[   94.342509]  [\u003cc022fcaf\u003e] do_softirq+0x36/0x5a\n[   94.342509]  [\u003cc022fe14\u003e] irq_exit+0x35/0x68\n[   94.342509]  [\u003cc0204ced\u003e] do_IRQ+0x72/0x89\n[   94.342509]  [\u003cc02038ee\u003e] common_interrupt+0x2e/0x34\n[   94.342509]  [\u003cc024007b\u003e] ? pm_qos_add_requirement+0x63/0x9d\n[   94.342509]  [\u003cc038e8a5\u003e] ? acpi_idle_enter_bm+0x209/0x238\n[   94.342509]  [\u003cc049d238\u003e] cpuidle_idle_call+0x5c/0x94\n[   94.342509]  [\u003cc02023f8\u003e] cpu_idle+0x4e/0x6f\n[   94.342509]  [\u003cc0534153\u003e] rest_init+0x53/0x55\n[   94.342509]  [\u003cc0781894\u003e] start_kernel+0x2f0/0x2f5\n[   94.342509]  [\u003cc0781091\u003e] i386_start_kernel+0x91/0x96\n\nReported-by: Oliver Hartkopp \u003coliver@hartkopp.net\u003e\nSigned-off-by: Dave Young \u003chidave.darkstar@gmail.com\u003e\nTested-by: Oliver Hartkopp \u003coliver@hartkopp.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\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": "b7058842c940ad2c08dd829b21e5c92ebe3b8758",
      "tree": "5fe78d599fc345ca0bcd4b083b79095a54b2921b",
      "parents": [
        "eb1cf0f8f7a9e5a6d573d5bd72c015686a042db0"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 30 16:12:20 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Sep 30 16:12:20 2009 -0700"
      },
      "message": "net: Make setsockopt() optlen be unsigned.\n\nThis provides safety against negative optlen at the type\nlevel instead of depending upon (sometimes non-trivial)\nchecks against this sprinkled all over the the place, in\neach and every implementation.\n\nBased upon work done by Arjan van de Ven and feedback\nfrom Linus Torvalds.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7e7430908c3ccaf71f0851050c8ccaf9ecfb3b56",
      "tree": "7a435dbbb39a1d6179e0b683cb510978bec0adb5",
      "parents": [
        "2246b2f1b43f3fbd128e72b129dcbbd3202cc592"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "gustavo@las.ic.unicamp.br",
        "time": "Wed Aug 26 04:04:03 2009 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Aug 26 00:12:20 2009 -0700"
      },
      "message": "Bluetooth: Add support for L2CAP \u0027Send RRorRNR\u0027 action\n\nWhen called, \u0027Send RRorRNR\u0027 should send a RNR frame if local device is\nbusy or a RR frame otherwise.\n\nSigned-off-by: Gustavo F. Padovan \u003cgustavo@las.ic.unicamp.br\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\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": "ca42a613c92d131ff02d5714419d58c36c3459f3",
      "tree": "b40e2f5855260ab5eafb6f15517ba327db489b0b",
      "parents": [
        "cbe86b98a6aceefe943ada1471eb52fd9ac4c504"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "gustavo@las.ic.unicamp.br",
        "time": "Wed Aug 26 04:04:01 2009 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Aug 26 00:12:20 2009 -0700"
      },
      "message": "Bluetooth: Acknowledge L2CAP packets when receiving RR-frames (F-bit\u003d1)\n\nImplement the Recv ReqSeqAndFBit event when a RR frame with F bit set is\nreceived.\n\nSigned-off-by: Gustavo F. Padovan \u003cgustavo@las.ic.unicamp.br\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "1b7bf4edca0fdbad70c44e139f4cfebd6759de81",
      "tree": "b1440de411b2785427e8935fa4e8ae4dfd71a27b",
      "parents": [
        "e686219a64fee9be9ce438dc3f040cd71ddd168a"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "gustavo@las.ic.unicamp.br",
        "time": "Mon Aug 24 00:45:20 2009 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Aug 24 01:05:05 2009 -0700"
      },
      "message": "Bluetooth: Use proper *_unaligned_le{16,32} helpers for L2CAP\n\nSimplify more conversions to the right endian with the proper helpers.\n\nSigned-off-by: Gustavo F. Padovan \u003cgustavo@las.ic.unicamp.br\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "e686219a64fee9be9ce438dc3f040cd71ddd168a",
      "tree": "1b72117be85dc4dd5c4656e459043d2528069760",
      "parents": [
        "9e726b17422bade75fba94e625cd35fd1353e682"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "gustavo@las.ic.unicamp.br",
        "time": "Mon Aug 24 00:45:19 2009 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Aug 24 01:05:05 2009 -0700"
      },
      "message": "Bluetooth: Add locking scheme to L2CAP timeout callbacks\n\nAvoid race conditions when accessing the L2CAP socket from within the\ntimeout handlers.\n\nSigned-off-by: Gustavo F. Padovan \u003cgustavo@las.ic.unicamp.br\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": "6840ed0770d79b9bb0800e5e026a067040ef18f5",
      "tree": "7904a7bfc6bb1e57f30139cac47676bf589db7b7",
      "parents": [
        "e90bac061b17cd81bd0df30606c64f4543bf5ca0"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "gustavo@las.ic.unicamp.br",
        "time": "Thu Aug 20 22:26:01 2009 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Aug 22 14:57:58 2009 -0700"
      },
      "message": "Bluetooth: Enable Streaming Mode for L2CAP\n\nStreaming Mode is helpful for the Bluetooth streaming based profiles, such\nas A2DP. It doesn\u0027t have any error control or flow control.\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": "22121fc9152ca8f25a2d790860832ccb6a414c4d",
      "tree": "03fcc5bdbdae77838f9aff9ce0f6e43895fd36d7",
      "parents": [
        "f2fcfcd670257236ebf2088bbdf26f6a8ef459fe"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "gustavo@las.ic.unicamp.br",
        "time": "Thu Jul 23 10:27:23 2009 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Aug 22 14:50:07 2009 -0700"
      },
      "message": "Bluetooth: Create separate l2cap_send_disconn_req() function\n\nThe code for sending a disconnect request was repeated several times\nwithin L2CAP source code. So move this into its own 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": "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": "65c7c4918450f8c4545ccb02a9c7a3d77e073535",
      "tree": "ceacb79cdf46b74bad8429dd06d32ba96f9c31f9",
      "parents": [
        "c6b03cf986eab00e20d0dbc852b233bb83472138"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat May 02 23:07:53 2009 -0700"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Aug 22 14:50:07 2009 -0700"
      },
      "message": "Bluetooth: Add L2CAP RFC option if ERTM is enabled\n\nWhen trying to establish a connection with Enhanced Retransmission mode\nenabled, the RFC option needs to be added to the configuration.\n\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": "44dd46de325c4d47abfd1361e5d84a548edb8e42",
      "tree": "cd23feb79ecee0eed27abbd4078bfcc80896194c",
      "parents": [
        "52d18347dfb61519aa0f58fe1759edd3ad8c4e36"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat May 02 19:09:01 2009 -0700"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Aug 22 14:50:07 2009 -0700"
      },
      "message": "Bluetooth: Add module option to enable L2CAP ERTM support\n\nSince the Enhanced Retransmission mode for L2CAP is still under heavy\ndevelopment disable it by default and provide a module option to enable\nit manually for testing.\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": "af05b30bcb65da3ed488af54ee92e96bebe0be5e",
      "tree": "830fd8d7d52a82522ed22e37d95650254126d71c",
      "parents": [
        "44d0e48e8a1fa174edf11e03dc70bd6a146b2a40"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "gustavo@las.ic.unicamp.br",
        "time": "Mon Apr 20 01:31:08 2009 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jun 08 14:50:00 2009 +0200"
      },
      "message": "Bluetooth: Fix errors and warnings in L2CAP reported by checkpatch.pl\n\nThis patch fixes the errors without changing the l2cap.o binary:\n\n text    data     bss     dec     hex filename\n18059     568       0   18627    48c3 l2cap.o.after\n18059     568       0   18627    48c3 l2cap.o.before\n\nSigned-off-by: Gustavo F. Padovan \u003cgustavo@las.ic.unicamp.br\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "44d0e48e8a1fa174edf11e03dc70bd6a146b2a40",
      "tree": "1a783f77790a314e3d6cd3608deb57140d113357",
      "parents": [
        "589d27464846c7cb758f93d9ee380c8ff05a161c"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Apr 20 07:09:16 2009 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jun 08 14:50:00 2009 +0200"
      },
      "message": "Bluetooth: Remove unnecessary variable initialization\n\nThe initial value of err is not used until it is set to -ENOMEM. So just\nremove the initialization completely.\n\nBased on a patch from Gustavo F. Padovan \u003cgustavo@las.ic.unicamp.br\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": "7585b97a48180f754ebdade1be94092e36bef365",
      "tree": "c28a697197eef13e8f2b40ff7dd0d08fd0feb535",
      "parents": [
        "2ae9a6be5f476f3512839a4d11a8f432bfd2914c"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yjwei@cn.fujitsu.com",
        "time": "Wed Feb 25 18:29:52 2009 +0800"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:49 2009 +0100"
      },
      "message": "Bluetooth: Remove some pointless conditionals before kfree_skb()\n\nRemove some pointless conditionals before kfree_skb().\n\nSigned-off-by: Wei Yongjun \u003cyjwei@cn.fujitsu.com\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "2526d3d8b2f671a7d36cc486af984052cd5a690f",
      "tree": "161cca724ce4ecddcbdfed1642af1d5df8240c3c",
      "parents": [
        "37e62f5516cfb210e64fe53457932df4341b0ad1"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 20 20:54:06 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:48 2009 +0100"
      },
      "message": "Bluetooth: Permit BT_SECURITY also for L2CAP raw sockets\n\nUserspace pairing code can be simplified if it doesn\u0027t have to fall\nback to using L2CAP_LM in the case of L2CAP raw sockets. This patch\nallows the BT_SECURITY socket option to be used for these sockets.\n\nSigned-off-by: Johan Hedberg \u003cjohan.hedberg@nokia.com\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "2a517ca687232adc8f14893730644da712010ffc",
      "tree": "564d08647266370fd21ad5a0e0ee726e3f2ae113",
      "parents": [
        "8bf4794174659b06d43cc5e290cd384757374613"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Feb 16 03:20:31 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:47 2009 +0100"
      },
      "message": "Bluetooth: Disallow usage of L2CAP CID setting for now\n\nIn the future the L2CAP layer will have full support for fixed channels\nand right now it already can export the channel assignment, but for the\nfunctions bind() and connect() the usage of only CID 0 is allowed. This\nallows an easy detection if the kernel supports fixed channels or not,\nbecause otherwise it would impossible for application to tell.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "00ae4af91d8c5b6814e2bb3bfaaf743845f989eb",
      "tree": "616da6330e5b9ca7448234fbd588c536da165d11",
      "parents": [
        "2950f21acb0f6b8fcd964485c2ebf1e06545ac20"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Feb 12 16:19:45 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:43 2009 +0100"
      },
      "message": "Bluetooth: Fix authentication requirements for L2CAP security check\n\nThe L2CAP layer can trigger the authentication via an ACL connection or\nlater on to increase the security level. When increasing the security\nlevel it didn\u0027t use the same authentication requirements when triggering\na new ACL connection. Make sure that exactly the same authentication\nrequirements are used. The only exception here are the L2CAP raw sockets\nwhich are only used for dedicated bonding.\n\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": "255c76014af74165428e7aa16414b857e2bdccf2",
      "tree": "6c13e5413ce88e80780b02c80be00341db68cb78",
      "parents": [
        "43c2e57f94c15744495fee564610aa24602b3824"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Feb 04 21:07:19 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:36 2009 +0100"
      },
      "message": "Bluetooth: Don\u0027t check encryption for L2CAP raw sockets\n\nFor L2CAP sockets with medium and high security requirement a missing\nencryption will enforce the closing of the link. For the L2CAP raw\nsockets this is not needed, so skip that check.\n\nThis fixes a crash when pairing Bluetooth 2.0 (and earlier) devices\nsince the L2CAP state machine got confused and then locked up the whole\nsystem.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "5f9018af004fa8635bbbe3ab2dc61e8a686edfaa",
      "tree": "7d31fb740d7ddff8835c7ece90780a47ae1559cc",
      "parents": [
        "0588d94fd7e414367a7ae517569d2222441c255f"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Jan 16 10:09:50 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:34 2009 +0100"
      },
      "message": "Bluetooth: Update version numbers\n\nWith the support for the enhanced security model and the support for\ndeferring connection setup, it is a good idea to increase various\nversion numbers.\n\nThis is purely cosmetic and has no effect on the behavior, but can\nbe really helpful when debugging problems in different kernel versions.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "0588d94fd7e414367a7ae517569d2222441c255f",
      "tree": "c8563ce159bbea94e57df39a9b27bb1628ebccdd",
      "parents": [
        "f62e4323ab43c59e7cd7f72c1eb392d7c767ce5a"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Jan 16 10:06:13 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:33 2009 +0100"
      },
      "message": "Bluetooth: Restrict application of socket options\n\nThe new socket options should only be evaluated for SOL_BLUETOOTH level\nand not for every other level. Previously this causes some minor issues\nwhen detecting if a kernel with certain features is available.\n\nAlso restrict BT_SECURITY to SOCK_SEQPACKET for L2CAP and SOCK_STREAM for\nthe RFCOMM protocol.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "f62e4323ab43c59e7cd7f72c1eb392d7c767ce5a",
      "tree": "8ee582e12c91260ee4eccecbbe2fe055b41d97aa",
      "parents": [
        "8c84b83076b5062f59b6167cdda90d9e5124aa71"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Jan 15 21:58:44 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:33 2009 +0100"
      },
      "message": "Bluetooth: Disconnect L2CAP connections without encryption\n\nFor L2CAP connections with high security setting, the link will be\nimmediately dropped when the encryption gets disabled. For L2CAP\nconnections with medium security there will be grace period where\nthe remote device has the chance to re-enable encryption. If it\ndoesn\u0027t happen then the link will also be disconnected.\n\nThe requirement for the grace period with medium security comes from\nBluetooth 2.0 and earlier devices that require role switching.\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": "f66dc81f44d918ee1aa1a9d821bb2f25c7592bc0",
      "tree": "fe9030b58a7fac0d85dbed2da9f33702aab2e9b5",
      "parents": [
        "bb23c0ab824653be4aa7dfca15b07b3059717004"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Jan 15 21:57:00 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:24 2009 +0100"
      },
      "message": "Bluetooth: Add support for deferring L2CAP connection setup\n\nIn order to decide if listening L2CAP 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\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "d58daf42d29a3a4a4d4be46cf47ceee096789680",
      "tree": "c88a5820a44fe993e271437b0fcebdde7e8298d3",
      "parents": [
        "91aa35a5aa3540223066bf6b51c935418c63a35d"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Jan 15 21:52:14 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:22 2009 +0100"
      },
      "message": "Bluetooth: Preparation for usage of SOL_BLUETOOTH\n\nThe socket option levels SOL_L2CAP, SOL_RFOMM and SOL_SCO are currently\nin use by various Bluetooth applications. Going forward the common\noption level SOL_BLUETOOTH should be used. This patch prepares the clean\nsplit of the old and new option levels while keeping everything backward\ncompatibility.\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": "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": "63fbd24e5102eecfc9d049ed7f4be7f9a25f814f",
      "tree": "9ead3c67300ce8bcdbe26d02ba264e84baea930a",
      "parents": [
        "90855d7b725d764d6d70503bcc1b494cf10ddc98"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Aug 18 13:23:53 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Aug 18 13:23:53 2008 +0200"
      },
      "message": "[Bluetooth] Consolidate maintainers information\n\nThe Bluetooth entries for the MAINTAINERS file are a little bit too\nmuch. Consolidate them into two entries. One for Bluetooth drivers and\nanother one for the Bluetooth subsystem.\n\nAlso the MODULE_AUTHOR should indicate the current maintainer of the\nmodule and actually not the original author. Fix all Bluetooth modules\nto provide current maintainer information.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "b1235d79611e78a07629b4cbe53291c9cffd1834",
      "tree": "b12b694d991e62a761d48ee4bb12b6eade753f78",
      "parents": [
        "7cb127d5b0e7af7a0afd23785722ca3edab4ceff"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:54 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:54 2008 +0200"
      },
      "message": "[Bluetooth] Allow security for outgoing L2CAP connections\n\nWhen requested the L2CAP layer will now enforce authentication and\nencryption on outgoing connections. The usefulness of this feature\nis kinda limited since it will not allow proper connection ownership\ntracking until the authentication procedure has been finished. This\nis a limitation of Bluetooth 2.0 and before and can only be fixed by\nusing Simple Pairing.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "3241ad820dbb172021e0268b5611031991431626",
      "tree": "628c3fbdc88f9de6c996358ebcb551176da38f1f",
      "parents": [
        "40be492fe4fab829951681860c2bb26fa1d5fe4a"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:50 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:50 2008 +0200"
      },
      "message": "[Bluetooth] Add timestamp support to L2CAP, RFCOMM and SCO\n\nEnable the common timestamp functionality that the network subsystem\nprovides for L2CAP, RFCOMM and SCO sockets. It is possible to either\nuse SO_TIMESTAMP or the IOCTLs to retrieve the timestamp of the\ncurrent packet.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "40be492fe4fab829951681860c2bb26fa1d5fe4a",
      "tree": "41b576692c2206c9a51e689f54170076ec95bc3a",
      "parents": [
        "f8558555f31e177e2644f3c8116801c3e5c29974"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:50 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:50 2008 +0200"
      },
      "message": "[Bluetooth] Export details about authentication requirements\n\nWith the Simple Pairing support, the authentication requirements are\nan explicit setting during the bonding process. Track and enforce the\nrequirements and allow higher layers like L2CAP and RFCOMM to increase\nthem if needed.\n\nThis patch introduces a new IOCTL that allows to query the current\nauthentication requirements. It is also possible to detect Simple\nPairing support in the kernel this way.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "9719f8afce34d3d04e884873a8a5e3483e30974c",
      "tree": "aee26f7df7e2d92aa54d4b9da88c4ff5987191dd",
      "parents": [
        "77db1980565626471a980f0d2d17299e4bd5e7a5"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:45 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:45 2008 +0200"
      },
      "message": "[Bluetooth] Disconnect when encryption gets disabled\n\nThe Bluetooth specification allows to enable or disable the encryption\nof an ACL link at any time by either the peer or the remote device. If\na L2CAP or RFCOMM connection requested an encrypted link, they will now\ndisconnect that link if the encryption gets disabled. Higher protocols\nthat don\u0027t care about encryption (like SDP) are not affected.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "79d554a6976a295aa9212172b218f29ca71c3b3d",
      "tree": "430d106c1ebf194fcf208a145d32a2829ffca5a6",
      "parents": [
        "b7279469d66b55119784b8b9529c99c1955fe747"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:44 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:44 2008 +0200"
      },
      "message": "[Bluetooth] Change retrieval of L2CAP features mask\n\nGetting the remote L2CAP features mask is really important, but doing\nthis as less intrusive as possible is tricky. To play nice with older\nsystems and Bluetooth qualification testing, the features mask is now\nonly retrieved in two specific cases and only once per lifetime of an\nACL link.\n\nWhen trying to establish a L2CAP connection and the remote features mask\nis unknown, the L2CAP information request is sent when the ACL link goes\ninto connected state. This applies only to outgoing connections and also\nonly for the connection oriented channels.\n\nThe second case is when a connection request has been received. In this\ncase a connection response with the result pending and the information\nrequest will be send. After receiving an information response or if the\ntimeout gets triggered, the normal connection setup process with security\nsetup will be initiated.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "83985319393973f280ca2a797047780a7955cf19",
      "tree": "438e92affd9c605188404e920b8605670d0d6ab0",
      "parents": [
        "260ffeed3fd185d29f08e98fb47c09e71bb59cd8"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Fri May 02 16:25:46 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri May 02 16:25:46 2008 -0700"
      },
      "message": "bluetooth: use get/put_unaligned_* helpers\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nAcked-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e1ec1b8ccdf0df6000faa8c2d985ca5f94157e5a",
      "tree": "4e1ca325dde22f1ac21c9da0be509e87e922e604",
      "parents": [
        "c0f39322c335412339dec16ebfd2a05ceba5ebcf",
        "802fb176d8c635ae42da31b80841c26e8c7338a0"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 02 22:35:23 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 02 22:35:23 2008 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\n\tdrivers/net/s2io.c\n"
    },
    {
      "commit": "d5fb2962c6157495e1365e4f30568ed3830d35a7",
      "tree": "952baad67a821bf47b46f7cd4d748e0fa3144e90",
      "parents": [
        "293a3839304cac32e58929db0c23e00a509fbfc5"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@crashcourse.ca",
        "time": "Fri Mar 28 16:17:38 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 28 16:17:38 2008 -0700"
      },
      "message": "bluetooth: replace deprecated RW_LOCK_UNLOCKED macros\n\nThe older RW_LOCK_UNLOCKED macros defeat lockdep state tracing so\nreplace them with the newer __RW_LOCK_UNLOCKED macros.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@crashcourse.ca\u003e\nAcked-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3b1e0a655f8eba44ab1ee2a1068d169ccfb853b9",
      "tree": "09edb35f32ebcfb1b4dad904425128a110ef16ee",
      "parents": [
        "c346dca10840a874240c78efe3f39acf4312a1f2"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Wed Mar 26 02:26:21 2008 +0900"
      },
      "committer": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Wed Mar 26 04:39:55 2008 +0900"
      },
      "message": "[NET] NETNS: Omit sock-\u003esk_net without CONFIG_NET_NS.\n\nIntroduce per-sock inlines: sock_net(), sock_net_set()\nand per-inet_timewait_sock inlines: twsk_net(), twsk_net_set().\nWithout CONFIG_NET_NS, no namespace other than \u0026init_net exists.\nLet\u0027s explicitly define them to help compiler optimizations.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\n"
    },
    {
      "commit": "8e8440f53593b5f9c695f18b493b535873dbb9da",
      "tree": "e0429845227215de8284bcd9e7824ad26d4c8b7b",
      "parents": [
        "7e36763b2c204d59de4e88087f84a2c0c8421f25"
      ],
      "author": {
        "name": "Dave Young",
        "email": "hidave.darkstar@gmail.com",
        "time": "Mon Mar 03 12:18:55 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 03 12:18:55 2008 -0800"
      },
      "message": "[BLUETOOTH]: l2cap info_timer delete fix in hci_conn_del\n\nWhen the l2cap info_timer is active the info_state will be set to\nL2CAP_INFO_FEAT_MASK_REQ_SENT, and it will be unset after the timer is\ndeleted or timeout triggered.\n\nHere in l2cap_conn_del only call del_timer_sync when the info_state is\nset to L2CAP_INFO_FEAT_MASK_REQ_SENT.\n\nSigned-off-by: Dave Young \u003chidave.darkstar@gmail.com\u003e\nAcked-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3ab2273175bd59616b6e85c0f88b154e8bd97413",
      "tree": "d77cb79e89925a0def66bb710e97896508f45efa",
      "parents": [
        "5f2f40a92e007ec5b503db20f3f70cb331c64f65"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Feb 26 17:42:56 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 26 17:42:56 2008 -0800"
      },
      "message": "bluetooth: delete timer in l2cap_conn_del()\n\nDelete a possibly armed timer before kfree\u0027ing the connection object.\n\nSolves: http://lkml.org/lkml/2008/2/15/514\n\nReported-by:Quel Qun \u003ckelk1@comcast.net\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b24b8a247ff65c01b252025926fe564209fae4fc",
      "tree": "8a9e0ea1e24b4733d8b9433d41877659505e9da4",
      "parents": [
        "a92aa318b4b369091fd80433c80e62838db8bc1c"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Jan 23 21:20:07 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:53:35 2008 -0800"
      },
      "message": "[NET]: Convert init_timer into setup_timer\n\nMany-many code in the kernel initialized the timer-\u003efunction\nand  timer-\u003edata together with calling init_timer(timer). There\nis already a helper for this. Use it for networking code.\n\nThe patch is HUGE, but makes the code 130 lines shorter\n(98 insertions(+), 228 deletions(-)).\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6257ff2177ff02d7f260a7a501876aa41cb9a9f6",
      "tree": "9d9f80ccf16f3d4ef062e896f62974c5496193ad",
      "parents": [
        "154adbc8469ff21fbf5c958446ee92dbaab01be1"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Nov 01 00:39:31 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 01 00:39:31 2007 -0700"
      },
      "message": "[NET]: Forget the zero_it argument of sk_alloc()\n\nFinally, the zero_it argument can be completely removed from\nthe callers and from the function prototype.\n\nBesides, fix the checkpatch.pl warnings about using the\nassignments inside if-s.\n\nThis patch is rather big, and it is a part of the previous one.\nI splitted it wishing to make the patches more readable. Hope \nthis particular split helped.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6464f35f3771f69cd8d107fff166dc29ab392f97",
      "tree": "b737bc19dfd6decc6769a425491e0e0b06687d1b",
      "parents": [
        "f0709e03ac3552b1b048ee171cb96ecaacc6813c"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Oct 20 13:39:51 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Oct 22 02:59:43 2007 -0700"
      },
      "message": "[Bluetooth] Fall back to L2CAP in basic mode\n\nIn case the remote entity tries to negogiate retransmission or flow\ncontrol mode, reject it and fall back to basic mode.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "f0709e03ac3552b1b048ee171cb96ecaacc6813c",
      "tree": "65c888eb7c1d6ad1f34276232a8cddbbcf163c28",
      "parents": [
        "4e8402a3f884427f9233ba436459c158d1f2e114"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Oct 20 13:38:51 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Oct 22 02:59:42 2007 -0700"
      },
      "message": "[Bluetooth] Advertise L2CAP features mask support\n\nIndicate the support for the L2CAP features mask value when the remote\nentity tries to negotiate Bluetooth 1.2 specific features.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "4e8402a3f884427f9233ba436459c158d1f2e114",
      "tree": "3853523eaba309ea8aff89ed4868770cf82d40b2",
      "parents": [
        "861d6882b3dfe1710b35dbddf1b395b962061413"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Oct 20 13:37:56 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Oct 22 02:59:41 2007 -0700"
      },
      "message": "[Bluetooth] Retrieve L2CAP features mask on connection setup\n\nThe Bluetooth 1.2 specification introduced a specific features mask\nvalue to interoperate with newer versions of the specification. So far\nthis piece of information was never needed, but future extensions will\nrely on it. This patch adds a generic way to retrieve this information\nonly once per connection setup.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "861d6882b3dfe1710b35dbddf1b395b962061413",
      "tree": "94da0e9d5de2c3ed7643600ba4fe643e5e7c6911",
      "parents": [
        "876d9484edf77d228adb42aecd4debd58d7739d6"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Oct 20 13:37:06 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Oct 22 02:59:41 2007 -0700"
      },
      "message": "[Bluetooth] Remove global conf_mtu variable from L2CAP\n\nAfter the change to the L2CAP configuration parameter handling the\nglobal conf_mtu variable is no longer needed and so remove it.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "876d9484edf77d228adb42aecd4debd58d7739d6",
      "tree": "7812471a62fe26a8cf86d2b8fe5584396527de40",
      "parents": [
        "a9de9248064bfc8eb0a183a6a951a4e7b5ca10a4"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Oct 20 13:35:42 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Oct 22 02:59:40 2007 -0700"
      },
      "message": "[Bluetooth] Finish L2CAP configuration only with acceptable settings\n\nThe parameters of the L2CAP output configuration might not be accepted\nafter the first configuration round. So only indicate a finished output\nconfiguration when acceptable settings are provided.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "1b8d7ae42d02e483ad94035cca851e4f7fbecb40",
      "tree": "81f8cc0ee49ef99cc67dfed3dc7b7ecb510abf8b",
      "parents": [
        "457c4cbc5a3dde259d2a1f15d5f9785290397267"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Oct 08 23:24:22 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:49:07 2007 -0700"
      },
      "message": "[NET]: Make socket creation namespace safe.\n\nThis patch passes in the namespace a new socket should be created in\nand has the socket code do the appropriate reference counting.  By\nvirtue of this all socket create methods are touched.  In addition\nthe socket create methods are modified so that they will fail if\nyou attempt to create a socket in a non-default network namespace.\n\nFailing if we attempt to create a socket outside of the default\nnetwork namespace ensures that as we incrementally make the network stack\nnetwork namespace aware we will not export functionality that someone\nhas not audited and made certain is network namespace safe.\nAllowing us to partially enable network namespaces before all of the\nexotic protocols are supported.\n\nAny protocol layers I have missed will fail to compile because I now\npass an extra parameter into the socket creation code.\n\n[ Integrated AF_IUCV build fixes from Andrew Morton... -DaveM ]\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d83852822cb58f0beaa2d06b7c1e9e005e0c4f94",
      "tree": "b1a47dca0373551b0541258ab27e61606212c73b",
      "parents": [
        "88219a0f65ae14ba744fa424604c965b6f1c1a8d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 29 00:18:23 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 31 02:28:09 2007 -0700"
      },
      "message": "[BLUETOOTH] l2cap: don\u0027t mangle cmd.len\n\nSince nobody uses it after we convert it to host-endian,\nno need to do that at all.  At that point l2cap is endian-clean.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "88219a0f65ae14ba744fa424604c965b6f1c1a8d",
      "tree": "cc3187f18091f427b409dbad6130d8212fdab724",
      "parents": [
        "8e036fc3143646dc304356fa50314681d654363f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 29 00:17:25 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 31 02:28:08 2007 -0700"
      },
      "message": "[BLUETOOTH]: pass (host-endian) cmd length as explicit argument to l2cap_conf_req()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8e036fc3143646dc304356fa50314681d654363f",
      "tree": "11ba34d6977b95f69b96a8a91f2902e2672d8fad",
      "parents": [
        "6dc0c2082b8acf30c9239fbbcc051eebdaf7ecff"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 29 00:16:36 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 31 02:28:07 2007 -0700"
      },
      "message": "[BLUETOOTH] l2cap: endianness annotations\n\nno code changes, just documenting existing types\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6dc0c2082b8acf30c9239fbbcc051eebdaf7ecff",
      "tree": "709bc082b259b1a0bf2dfbc6a5aee4a7aaf343de",
      "parents": [
        "09c7d8293a2d1317d16ef4ddb9f6dd2553d0694e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 29 00:15:18 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 31 02:28:06 2007 -0700"
      },
      "message": "[BLUETOOTH]: Fix endianness bug in l2cap_sock_listen()\n\nWe loop through psm values, calling __l2cap_get_sock_by_addr(psm, ...)\nuntil we get NULL; then we set -\u003epsm of our socket to htobs(psm).\nIOW, we find unused psm value and put it into our socket.  So far, so\ngood, but...  __l2cap_get_sock_by_addr() compares its argument with\n-\u003epsm of sockets.  IOW, the entire thing works correctly only on\nlittle-endian.  On big-endian we\u0027ll get \"no socket with such psm\"\non the first iteration, since we won\u0027t find a socket with -\u003epsm \u003d\u003d 0x1001.\nWe will happily conclude that 0x1001 is unused and slap htobs(0x1001)\n(i.e. 0x110) into -\u003epsm of our socket.  Of course, the next time around\nthe same thing will repeat and we\u0027ll just get a fsckload of sockets\nwith the same -\u003epsm assigned.\n\nFix: pass htobs(psm) to __l2cap_get_sock_by_addr() there.  All other\ncallers are already passing little-endian values and all places that\nstore something in -\u003epsm are storing little-endian.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5dee9e7c4c869fcffccc3d432b755793dfa71376",
      "tree": "4142c425d5941c405dc0a8bf23c59e0749192bfa",
      "parents": [
        "fd184ab4283a6a6105e8312a497d2a2a193eaf67"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu May 24 14:27:19 2007 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu May 24 14:27:19 2007 +0200"
      },
      "message": "[Bluetooth] Fix L2CAP configuration parameter handling\n\nThe L2CAP configuration parameter handling was missing the support\nfor rejecting unknown options. The capability to reject unknown\noptions is mandatory since the Bluetooth 1.2 specification. This\npatch implements its and also simplifies the parameter parsing.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "0878b6667f28772aa7d6b735abff53efc7bf6d91",
      "tree": "5a1dbfb35f679335fbec4cbd17dfe64926db7750",
      "parents": [
        "dc87c3985e9b442c60994308a96f887579addc39"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat May 05 00:35:59 2007 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat May 05 00:35:59 2007 +0200"
      },
      "message": "[Bluetooth] Fix L2CAP and HCI setsockopt() information leaks\n\nThe L2CAP and HCI setsockopt() implementations have a small information\nleak that makes it possible to leak kernel stack memory to userspace.\n\nIf the optlen parameter is 0, no data will be copied by copy_from_user(),\nbut the uninitialized stack buffer will be read and stored later. A call\nto getsockopt() can now retrieve the leaked information.\n\nTo fix this problem the stack buffer given to copy_from_user() must be\ninitialized with the current settings.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "d626f62b11e00c16e81e4308ab93d3f13551812a",
      "tree": "fac4af6ced853755e12fc709d55f0c2bec51265d",
      "parents": [
        "2a123b86e2b242a4a6db990d2851d45e192f88e5"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Mar 27 18:55:52 2007 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:28:23 2007 -0700"
      },
      "message": "[SK_BUFF]: Introduce skb_copy_from_linear_data{_offset}\n\nTo clearly state the intent of copying from linear sk_buffs, _offset being a\noverly long variant but interesting for the sake of saving some bytes.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "aca3192cc60d2bf193c2252e45563c32e3117289",
      "tree": "d73dc39ae9c9f499a026c56517604af21d63bfd9",
      "parents": [
        "acde4855bb8f5fba8bb065d35ff6ac8a94b3dfa8"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Sun Mar 25 20:12:50 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:23:54 2007 -0700"
      },
      "message": "[NET] BLUETOOTH: Use cpu_to_le{16,32}() where appropriate.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8e87d14255acffeee36873de226dc25c11b5f46d",
      "tree": "e11c179c8db4ae3ad56ea02d583bc041dcc686b6",
      "parents": [
        "528930b91ee89a05a6264629cf99109652c19ca8"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Fri Feb 09 23:24:33 2007 +0900"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Feb 10 23:19:20 2007 -0800"
      },
      "message": "[NET] BLUETOOTH: Fix whitespace errors.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "847641d7db15ac3f18b3d4aa05479812abdf397a",
      "tree": "59c7f5f3fc3b6a06912487222cd1dbb4214825c4",
      "parents": [
        "7386397636d49cd5f03da29432467d3e98cbad35"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jan 22 22:00:45 2007 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jan 22 22:00:45 2007 +0100"
      },
      "message": "[Bluetooth] Restrict well known PSM to privileged users\n\nThe PSM values below 0x1001 of L2CAP are reserved for well known\nservices. Restrict the possibility to bind them to privileged\nusers.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "7386397636d49cd5f03da29432467d3e98cbad35",
      "tree": "e306cfa2d55c7085d77678e9f6b95bcf2b6aad58",
      "parents": [
        "a8b3485287731978899ced11f24628c927890e78"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jan 22 22:00:40 2007 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jan 22 22:00:40 2007 +0100"
      },
      "message": "[Bluetooth] Missing endian swapping for L2CAP socket list\n\nThe PSM value in the L2CAP socket list must be converted to host\norder before printing it.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "fcc70d5fdc9b0bd3e99c9dacb8198224af2b4b42",
      "tree": "f4450b97bb0cf61d731004f0fbe599662aba0f20",
      "parents": [
        "67f83cbf081a70426ff667e8d14f94e13ed3bdca"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Nov 08 22:44:35 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:21:35 2006 -0800"
      },
      "message": "[BLUETOOTH] lockdep: annotate sk_lock nesting in AF_BLUETOOTH\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[ INFO: possible recursive locking detected ]\n2.6.18-1.2726.fc6 #1\n"
    }
  ],
  "next": "354f60a9952d0af59e684b91cc6e06b95fbbf5ef"
}
