)]}'
{
  "log": [
    {
      "commit": "4ef58d4e2ad1fa2a3e5bbf41af2284671fca8cf8",
      "tree": "856ba96302a36014736747e8464f80eeb827bbdd",
      "parents": [
        "f6c4c8195b5e7878823caa1181be404d9e86d369",
        "d014d043869cdc591f3a33243d3481fa4479c2d0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:43:33 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:43:33 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (42 commits)\n  tree-wide: fix misspelling of \"definition\" in comments\n  reiserfs: fix misspelling of \"journaled\"\n  doc: Fix a typo in slub.txt.\n  inotify: remove superfluous return code check\n  hdlc: spelling fix in find_pvc() comment\n  doc: fix regulator docs cut-and-pasteism\n  mtd: Fix comment in Kconfig\n  doc: Fix IRQ chip docs\n  tree-wide: fix assorted typos all over the place\n  drivers/ata/libata-sff.c: comment spelling fixes\n  fix typos/grammos in Documentation/edac.txt\n  sysctl: add missing comments\n  fs/debugfs/inode.c: fix comment typos\n  sgivwfb: Make use of ARRAY_SIZE.\n  sky2: fix sky2_link_down copy/paste comment error\n  tree-wide: fix typos \"couter\" -\u003e \"counter\"\n  tree-wide: fix typos \"offest\" -\u003e \"offset\"\n  fix kerneldoc for set_irq_msi()\n  spidev: fix double \"of of\" in comment\n  comment typo fix: sybsystem -\u003e subsystem\n  ...\n"
    },
    {
      "commit": "d014d043869cdc591f3a33243d3481fa4479c2d0",
      "tree": "63626829498e647ba058a1ce06419fe7e4d5f97d",
      "parents": [
        "6ec22f9b037fc0c2e00ddb7023fad279c365324d",
        "6070d81eb5f2d4943223c96e7609a53cdc984364"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Dec 07 18:36:35 2009 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Dec 07 18:36:35 2009 +0100"
      },
      "message": "Merge branch \u0027for-next\u0027 into for-linus\n\nConflicts:\n\n\tkernel/irq/chip.c\n"
    },
    {
      "commit": "94e2bd688820aed72b4f8092f88c2ccf64e003de",
      "tree": "988de1817ec5ebe40dc6f2901eb86987876c517f",
      "parents": [
        "65cb76baa1058d17d51ce948b697cdbd5dc97421"
      ],
      "author": {
        "name": "Thadeu Lima de Souza Cascardo",
        "email": "cascardo@holoscopio.com",
        "time": "Fri Oct 16 15:20:49 2009 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Dec 04 15:39:48 2009 +0100"
      },
      "message": "tree-wide: fix some typos and punctuation in comments\n\nfix some typos and punctuation in comments\n\nSigned-off-by: Thadeu Lima de Souza Cascardo \u003ccascardo@holoscopio.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "eae38eede2e5f70d65f09327297bd698b0d3ea7e",
      "tree": "695cfeaaa240d4ad9c91b7fb40edfbe8c343534c",
      "parents": [
        "5fbcd3d1a07e234583e17830e8aef47282c22141"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Oct 05 12:23:48 2009 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Dec 03 19:34:26 2009 +0100"
      },
      "message": "Bluetooth: Add RFCOMM option to use L2CAP ERTM mode\n\nBy default the RFCOMM layer would still use L2CAP basic mode. For testing\npurposes this option enables RFCOMM to select enhanced retransmission\nmode.\n\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": "cde9f807f003676862178a6f28b52c7d431511ed",
      "tree": "88605527cc17c11787ab347d076733289aaff4cb",
      "parents": [
        "c78ae283145d3a8799b2fb01650166a66af3bff8"
      ],
      "author": {
        "name": "Vikram Kandukuri",
        "email": "vkandukuri@atheros.com",
        "time": "Thu Dec 03 15:12:51 2009 +0530"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Dec 03 19:34:21 2009 +0100"
      },
      "message": "Bluetooth: Fix handling of BNEP setup connection requests\n\nAccording to BNEP test specification the proper response should be sent\nfor a setup connection request message after the BNEP connection setup\nhas been completed.\n\nSigned-off-by: Vikram Kandukuri \u003cvikram.kandukuri@atheros.com\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "c78ae283145d3a8799b2fb01650166a66af3bff8",
      "tree": "1da35006397e33e1ff9f3941a19a6cb2aa585c75",
      "parents": [
        "76bca88012e1d27de794f32cc551d6314d38b6d9"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Nov 18 01:02:54 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Dec 03 19:34:21 2009 +0100"
      },
      "message": "Bluetooth: Unobfuscate tasklet_schedule usage\n\nThe tasklet schedule function helpers are just an obfuscation. So remove\nthem and call the schedule functions directly.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "76bca88012e1d27de794f32cc551d6314d38b6d9",
      "tree": "b2c78fd6f9946ea67abd5b4d0fe5a66061990fa8",
      "parents": [
        "7e21addcd0ad87696c17409399e56e874931da57"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Nov 18 00:40:39 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Dec 03 19:34:20 2009 +0100"
      },
      "message": "Bluetooth: Turn hci_recv_frame into an exported function\n\nFor future simplification it is important that the hci_recv_frame\nfunction is no longer an inline function. So move it into the module\nitself and export it.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "7e21addcd0ad87696c17409399e56e874931da57",
      "tree": "98a1f7a02dfa1db6d3c67565982f367ace68929c",
      "parents": [
        "2da31939a42f7a676a0bc5155d6a0a39ed8451f2"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Nov 18 01:05:00 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Dec 03 19:34:20 2009 +0100"
      },
      "message": "Bluetooth: Return ENETDOWN when interface is down\n\nSending commands to a down interface results in a timeout while clearly\nit should just return ENETDOWN. When using the ioctls this works fine,\nbut not when using the HCI sockets sendmsg interface.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "2da31939a42f7a676a0bc5155d6a0a39ed8451f2",
      "tree": "2ff9006190fde6f973baa7004a565f1d07f99ab2",
      "parents": [
        "fed4c2508b7419d0a55958fead6151b32def1683"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Nov 26 16:20:56 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Dec 03 19:34:19 2009 +0100"
      },
      "message": "Bluetooth: Implement raw output support for HIDP layer\n\nImplement raw output callback which is used by hidraw to send raw data to\nthe underlying device.\n\nWithout this patch, the userspace hidraw-based applications can\u0027t send\noutput reports to HID Bluetooth devices.\n\nReported-and-tested-by: Brian Gunn \u003cbgunn@solekai.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\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": "93f19c9fc8c98bb6d2e9825115989603ffd5cd1f",
      "tree": "5635759dd469fffb423b3cb7ddaa13adfbfbff24",
      "parents": [
        "d01032e4fd33110f9f3a085a36cb819c1dfc5827"
      ],
      "author": {
        "name": "Andrei Emeltchenko",
        "email": "andrei.emeltchenko@nokia.com",
        "time": "Thu Sep 03 12:34:19 2009 +0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Nov 16 01:30:28 2009 +0100"
      },
      "message": "Bluetooth: Set general bonding security for ACL by default\n\nThis patch fixes double pairing issues with Secure Simple\nParing support. It was observed that when pairing with SSP\nenabled, that the confirmation will be asked twice.\n\nhttp://www.spinics.net/lists/linux-bluetooth/msg02473.html\n\nThis also causes bug when initiating SSP connection from\nWindows Vista.\n\nThe reason is because bluetoothd does not store link keys\nsince HCIGETAUTHINFO returns 0. Setting default to general\nbonding fixes these issues.\n\nSigned-off-by: Andrei Emeltchenko \u003candrei.emeltchenko@nokia.com\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": "f74c77cb1124a11acf69c98d10c0fdc22f322664",
      "tree": "432ed5d118c00a274feae1a9dc3d494ec9b15ce1",
      "parents": [
        "b103cf34382f26ff48a87931b83f13b177b47c1a"
      ],
      "author": {
        "name": "Dave Young",
        "email": "hidave.darkstar@gmail.com",
        "time": "Sun Oct 18 20:24:41 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 19 19:36:45 2009 -0700"
      },
      "message": "bluetooth: scheduling while atomic bug fix\n\nDue to driver core changes dev_set_drvdata will call kzalloc which should be\nin might_sleep context, but hci_conn_add will be called in atomic context\n\nLike dev_set_name move dev_set_drvdata to work queue function.\n\noops as following:\n\nOct  2 17:41:59 darkstar kernel: [  438.001341] BUG: sleeping function called from invalid context at mm/slqb.c:1546\nOct  2 17:41:59 darkstar kernel: [  438.001345] in_atomic(): 1, irqs_disabled(): 0, pid: 2133, name: sdptool\nOct  2 17:41:59 darkstar kernel: [  438.001348] 2 locks held by sdptool/2133:\nOct  2 17:41:59 darkstar kernel: [  438.001350]  #0:  (sk_lock-AF_BLUETOOTH-BTPROTO_L2CAP){+.+.+.}, at: [\u003cfaa1d2f5\u003e] lock_sock+0xa/0xc [l2cap]\nOct  2 17:41:59 darkstar kernel: [  438.001360]  #1:  (\u0026hdev-\u003elock){+.-.+.}, at: [\u003cfaa20e16\u003e] l2cap_sock_connect+0x103/0x26b [l2cap]\nOct  2 17:41:59 darkstar kernel: [  438.001371] Pid: 2133, comm: sdptool Not tainted 2.6.31-mm1 #2\nOct  2 17:41:59 darkstar kernel: [  438.001373] Call Trace:\nOct  2 17:41:59 darkstar kernel: [  438.001381]  [\u003cc022433f\u003e] __might_sleep+0xde/0xe5\nOct  2 17:41:59 darkstar kernel: [  438.001386]  [\u003cc0298843\u003e] __kmalloc+0x4a/0x15a\nOct  2 17:41:59 darkstar kernel: [  438.001392]  [\u003cc03f0065\u003e] ? kzalloc+0xb/0xd\nOct  2 17:41:59 darkstar kernel: [  438.001396]  [\u003cc03f0065\u003e] kzalloc+0xb/0xd\nOct  2 17:41:59 darkstar kernel: [  438.001400]  [\u003cc03f04ff\u003e] device_private_init+0x15/0x3d\nOct  2 17:41:59 darkstar kernel: [  438.001405]  [\u003cc03f24c5\u003e] dev_set_drvdata+0x18/0x26\nOct  2 17:41:59 darkstar kernel: [  438.001414]  [\u003cfa51fff7\u003e] hci_conn_init_sysfs+0x40/0xd9 [bluetooth]\nOct  2 17:41:59 darkstar kernel: [  438.001422]  [\u003cfa51cdc0\u003e] ? hci_conn_add+0x128/0x186 [bluetooth]\nOct  2 17:41:59 darkstar kernel: [  438.001429]  [\u003cfa51ce0f\u003e] hci_conn_add+0x177/0x186 [bluetooth]\nOct  2 17:41:59 darkstar kernel: [  438.001437]  [\u003cfa51cf8a\u003e] hci_connect+0x3c/0xfb [bluetooth]\nOct  2 17:41:59 darkstar kernel: [  438.001442]  [\u003cfaa20e87\u003e] l2cap_sock_connect+0x174/0x26b [l2cap]\nOct  2 17:41:59 darkstar kernel: [  438.001448]  [\u003cc04c8df5\u003e] sys_connect+0x60/0x7a\nOct  2 17:41:59 darkstar kernel: [  438.001453]  [\u003cc024b703\u003e] ? lock_release_non_nested+0x84/0x1de\nOct  2 17:41:59 darkstar kernel: [  438.001458]  [\u003cc028804b\u003e] ? might_fault+0x47/0x81\nOct  2 17:41:59 darkstar kernel: [  438.001462]  [\u003cc028804b\u003e] ? might_fault+0x47/0x81\nOct  2 17:41:59 darkstar kernel: [  438.001468]  [\u003cc033361f\u003e] ? __copy_from_user_ll+0x11/0xce\nOct  2 17:41:59 darkstar kernel: [  438.001472]  [\u003cc04c9419\u003e] sys_socketcall+0x82/0x17b\nOct  2 17:41:59 darkstar kernel: [  438.001477]  [\u003cc020329d\u003e] syscall_call+0x7/0xb\n\nSigned-off-by: Dave Young \u003chidave.darkstar@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3b885787ea4112eaa80945999ea0901bf742707f",
      "tree": "06fc15f8e8083d5652ccb4d06653d9812dce9c0b",
      "parents": [
        "d5e63bded6e819ca77ee1a1d97c783a31f6caf30"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Mon Oct 12 13:26:31 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 12 13:26:31 2009 -0700"
      },
      "message": "net: Generalize socket rx gap / receive queue overflow cmsg\n\nCreate a new socket level option to report number of queue overflows\n\nRecently I augmented the AF_PACKET protocol to report the number of frames lost\non the socket receive queue between any two enqueued frames.  This value was\nexported via a SOL_PACKET level cmsg.  AFter I completed that work it was\nrequested that this feature be generalized so that any datagram oriented socket\ncould make use of this option.  As such I\u0027ve created this patch, It creates a\nnew SOL_SOCKET level option called SO_RXQ_OVFL, which when enabled exports a\nSOL_SOCKET level cmsg that reports the nubmer of times the sk_receive_queue\noverflowed between any two given frames.  It also augments the AF_PACKET\nprotocol to take advantage of this new feature (as it previously did not touch\nsk-\u003esk_drops, which this patch uses to record the overflow count).  Tested\nsuccessfully by me.\n\nNotes:\n\n1) Unlike my previous patch, this patch simply records the sk_drops value, which\nis not a number of drops between packets, but rather a total number of drops.\nDeltas must be computed in user space.\n\n2) While this patch currently works with datagram oriented protocols, it will\nalso be accepted by non-datagram oriented protocols. I\u0027m not sure if thats\nagreeable to everyone, but my argument in favor of doing so is that, for those\nprotocols which aren\u0027t applicable to this option, sk_drops will always be zero,\nand reporting no drops on a receive queue that isn\u0027t used for those\nnon-participating protocols seems reasonable to me.  This also saves us having\nto code in a per-protocol opt in mechanism.\n\n3) This applies cleanly to net-next assuming that commit\n977750076d98c7ff6cbda51858bb5a5894a9d9ab (my af packet cmsg patch) is reverted\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\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": "50223e486cabdcf7e540e519da1f26bab3084e5d",
      "tree": "c5eedda167c7ea83e342f80a9344646c7a99ba35",
      "parents": [
        "e258b80e691f1f3ae83a60aa80eaf7322bd55ec4",
        "a2d693cf650f000ea22351484ee66cf4c2651eef"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:51:28 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:51:28 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:\n  HID: Remove duplicate Kconfig entry\n  HID: consolidate connect and disconnect into core code\n  HID: fix non-atomic allocation in hid_input_report\n"
    },
    {
      "commit": "c4c259bcc27c4242b012106afdba183622b1735f",
      "tree": "5db41b8ea3d43f3a10479257da302590a6b974f2",
      "parents": [
        "d1ff65226c5afe55f9af38a439058f41b71e114f"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Sep 15 16:27:45 2009 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Sep 17 15:15:11 2009 +0200"
      },
      "message": "HID: consolidate connect and disconnect into core code\n\nHID core registers input, hidraw and hiddev devices, but leaves\nunregistering it up to the individual driver, which is not really nice.\nLet\u0027s move all the logic to the core.\n\nReported-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nReported-by: Brian Rogers \u003cbrian@xyzw.org\u003e\nAcked-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "a4dbd6740df0872cdf0a86841f75beec8381964d",
      "tree": "1093687845d89f8397d61e7df1ad8546a5a25225",
      "parents": [
        "5b2ea2f10dbb2fa91d8033993000f8664309395f"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Wed Jun 24 10:06:31 2009 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Sep 15 09:50:47 2009 -0700"
      },
      "message": "driver model: constify attribute groups\n\nLet attribute group vectors be declared \"const\".  We\u0027d\nlike to let most attribute metadata live in read-only\nsections... this is a start.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "384912ed194e43c03ad1cdaa09b0b1e488c34d46",
      "tree": "bdaae15252819543cff0900941238d2b99bb2300",
      "parents": [
        "f510c35de0e63e1066db83d2fdce99e6dbde0c80"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Aug 31 21:08:19 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Sep 11 12:54:55 2009 -0700"
      },
      "message": "net: Add DEVTYPE support for Ethernet based devices\n\nThe Ethernet framing is used for a lot of devices these days. Most\nprominent are WiFi and WiMAX based devices. However for userspace\napplication it is important to classify these devices correctly and\nnot only see them as Ethernet devices. The daemons like HAL, DeviceKit\nor even NetworkManager with udev support tries to do the classification\nin userspace with a lot trickery and extra system calls. This is not\ngood and actually reaches its limitations. Especially since the kernel\ndoes know the type of the Ethernet device it is pretty stupid.\n\nTo solve this problem the underlying device type needs to be set and\nthen the value will be exported as DEVTYPE via uevents and available\nwithin udev.\n\n  # cat /sys/class/net/wlan0/uevent\n  DEVTYPE\u003dwlan\n  INTERFACE\u003dwlan0\n  IFINDEX\u003d5\n\nThis is similar to subsystems like USB and SCSI that distinguish\nbetween hosts, devices, disks, partitions etc.\n\nThe new SET_NETDEV_DEVTYPE() is a convenience helper to set the actual\ndevice type. All device types are free form, but for convenience the\nsame strings as used with RFKILL are choosen.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6fef4c0c8eeff7de13007a5f56113475444a253d",
      "tree": "216bafb88ab84c5e0a048598cd6c05f7eb8f438d",
      "parents": [
        "dc1f8bf68b311b1537cb65893430b6796118498a"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Mon Aug 31 19:50:41 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Sep 01 01:13:07 2009 -0700"
      },
      "message": "netdev: convert pseudo-devices to netdev_tx_t\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\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": "cbe86b98a6aceefe943ada1471eb52fd9ac4c504",
      "tree": "c9210df351240686da735245e9036eeb5999110a",
      "parents": [
        "7bee549e197c9c0e92b89857a409675c1d5e9dff"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Mon Aug 24 16:32:50 2009 -0700"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Aug 24 16:34:35 2009 -0700"
      },
      "message": "Bluetooth: Add missing selection of CONFIG_CRC16 for L2CAP layer\n\nFix net/bluetooth/l2cap.c build errors:\n\nl2cap.c:(.text+0x126035): undefined reference to `crc16\u0027\nl2cap.c:(.text+0x126323): undefined reference to `crc16\u0027\nl2cap.c:(.text+0x12668e): undefined reference to `crc16\u0027\nl2cap.c:(.text+0x12683b): undefined reference to `crc16\u0027\nl2cap.c:(.text+0x126956): undefined reference to `crc16\u0027\nnet/built-in.o:l2cap.c:(.text+0x129041): more undefined references to `crc16\u0027 follow\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\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": "9e726b17422bade75fba94e625cd35fd1353e682",
      "tree": "af8cf616d9cbda12f51682dbb96e696f135be436",
      "parents": [
        "ef54fd937fbd5ebaeb023818524565bd526a5f36"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.dentz@openbossa.org",
        "time": "Wed Jul 15 13:50:58 2009 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Aug 22 15:05:58 2009 -0700"
      },
      "message": "Bluetooth: Fix rejected connection not disconnecting ACL link\n\nWhen using DEFER_SETUP on a RFCOMM socket, a SABM frame triggers\nauthorization which when rejected send a DM response. This is fine\naccording to the RFCOMM spec:\n\n    the responding implementation may replace the \"proper\" response\n    on the Multiplexer Control channel with a DM frame, sent on the\n    referenced DLCI to indicate that the DLCI is not open, and that\n    the responder would not grant a request to open it later either.\n\nBut some stacks doesn\u0027t seems to cope with this leaving DLCI 0 open after\nreceiving DM frame.\n\nTo fix it properly a timer was introduced to rfcomm_session which is used\nto set a timeout when the last active DLC of a session is unlinked, this\nwill give the remote stack some time to reply with a proper DISC frame on\nDLCI 0 avoiding both sides sending DISC to each other on stacks that\nfollow the specification and taking care of those who don\u0027t by taking\ndown DLCI 0.\n\nSigned-off-by: Luiz Augusto von Dentz \u003cluiz.dentz@openbossa.org\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "ef54fd937fbd5ebaeb023818524565bd526a5f36",
      "tree": "c664288f00548b8c531ff44a0bc8c7f18542740e",
      "parents": [
        "8f17154f1f70fcc6faa31ac82164fcf7f0599f38"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "gustavo@las.ic.unicamp.br",
        "time": "Thu Aug 20 22:26:04 2009 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Aug 22 15:03:43 2009 -0700"
      },
      "message": "Bluetooth: Full support for receiving L2CAP SREJ frames\n\nSupport for receiving of SREJ frames as specified by the state table.\n\nSigned-off-by: Gustavo F. Padovan \u003cgustavo@las.ic.unicamp.br\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "8f17154f1f70fcc6faa31ac82164fcf7f0599f38",
      "tree": "f210dae590f600720b974d367082c368d03eac86",
      "parents": [
        "fcc203c30d72dde82692f6b761a80e5ca5fdd8fa"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "gustavo@las.ic.unicamp.br",
        "time": "Thu Aug 20 22:26:03 2009 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Aug 22 15:01:25 2009 -0700"
      },
      "message": "Bluetooth: Add support for L2CAP SREJ exception\n\nWhen L2CAP loses an I-frame we send a SREJ frame to the transmitter side\nrequesting the lost packet. This patch implement all Recv I-frame events\non SREJ_SENT state table except the ones that deal with SendRej (the REJ\nexception at receiver side is yet not implemented).\n\nSigned-off-by: Gustavo F. Padovan \u003cgustavo@las.ic.unicamp.br\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "fcc203c30d72dde82692f6b761a80e5ca5fdd8fa",
      "tree": "04eb154db3be85574efe74542f528efb39abf5bb",
      "parents": [
        "6840ed0770d79b9bb0800e5e026a067040ef18f5"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "gustavo@las.ic.unicamp.br",
        "time": "Thu Aug 20 22:26:02 2009 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Aug 22 14:59:49 2009 -0700"
      },
      "message": "Bluetooth: Add support for FCS option to L2CAP\n\nImplement CRC16 check for L2CAP packets. FCS is used by Streaming Mode and\nEnhanced Retransmission Mode and is a extra check for the packet content.\n\nUsing CRC16 is the default, L2CAP won\u0027t use FCS only when both side send\na \"No FCS\" request.\n\nInitially based on a patch from Nathan Holstein \u003cnathan@lampreynetworks.com\u003e\n\nSigned-off-by: Gustavo F. Padovan \u003cgustavo@las.ic.unicamp.br\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "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": "52d18347dfb61519aa0f58fe1759edd3ad8c4e36",
      "tree": "e704210e27846a7763853d3a15236809c00e3ef4",
      "parents": [
        "a6a67efd7088702fdbbb780c5a3f8e1a74e77b63"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Aug 22 14:49:36 2009 -0700"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Aug 22 14:49:36 2009 -0700"
      },
      "message": "Bluetooth: Coding style cleanup from previous rfcomm_init bug fix\n\nThe rfcomm_init bug fix went into the kernel premature before it got fully\nreviewed and acknowledged by the Bluetooth maintainer. So fix up the coding\nstyle now.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "a6a67efd7088702fdbbb780c5a3f8e1a74e77b63",
      "tree": "fe35247ef5806ed690df3581de877fb84faad42b",
      "parents": [
        "5959809ded86e267c1a95fb44738a224c30d3434"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun Jul 26 08:18:19 2009 +0000"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Aug 22 14:35:02 2009 -0700"
      },
      "message": "Bluetooth: Convert hdev-\u003ereq_lock to a mutex\n\nhdev-\u003ereq_lock is used as mutex so make it a mutex.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "edad63886993d18ab800c49f6587a93432ef8b35",
      "tree": "3513335d25e260daed72ecc0bdf19b0fd8bdcac2",
      "parents": [
        "9eba32b86d17ef87131fa0bce43c614904ab5781"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Aug 22 14:22:15 2009 -0700"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Aug 22 14:22:15 2009 -0700"
      },
      "message": "Bluetooth: Let HIDP grab the device reference for connections\n\nThe core exports the hci_conn_hold_device() and hci_conn_put_device()\nfunctions for device reference of connections. Use this to ensure that\nthe uevents from the parent are send after the child ones.\n\nBased on a report by Brian Rogers \u003cbrian@xyzw.org\u003e\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "9eba32b86d17ef87131fa0bce43c614904ab5781",
      "tree": "cd7e40a026475b7e4ddb8bdc944e75bc5a18c250",
      "parents": [
        "364f63519d94442ed373ac7da79033c8282df46a"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Aug 22 14:19:26 2009 -0700"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Aug 22 14:19:26 2009 -0700"
      },
      "message": "Bluetooth: Add extra device reference counting for connections\n\nThe device model itself has no real usable reference counting at the\nmoment and this causes problems if parents are deleted before their\nchildren. The device model itself handles the memory details of this\ncorrectly, but the uevent order is not consistent. This causes various\nproblems for systems like HAL or even X.\n\nSo until device_put() does a proper cleanup, the device for Bluetooth\nconnection will be protected with an extra reference counting to ensure\nthe correct order of uevents when connections are terminated.\n\nThis is not an automatic feature. Higher Bluetooth layers like HIDP or\nBNEP should grab this new reference to ensure that their uevents are\nsend before the ones from the parent device.\n\nBased on a report by Brian Rogers \u003cbrian@xyzw.org\u003e\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "364f63519d94442ed373ac7da79033c8282df46a",
      "tree": "af17fa090f2525e562396dbb2916199635ca1197",
      "parents": [
        "290ba200815fdecb4d40dc942499c4ea6d0c4624"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Aug 22 14:15:53 2009 -0700"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Aug 22 14:15:53 2009 -0700"
      },
      "message": "Bluetooth: Disconnect HIDRAW devices on disconnect\n\nCurrently the HID subsystem will create HIDRAW devices for the transport\ndriver, but it will not disconnect them. Until the HID subsytem gets\nfixed, ensure that HIDRAW and HIDDEV devices are disconnected when the\nBluetooth HID device gets removed.\n\nBased on a patch from Brian Rogers \u003cbrian@xyzw.org\u003e\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "981b1414d78a7a42cab48b97d4de54a62d61db88",
      "tree": "74e1189b045b3b9e84c23a6b8aa892265df8046d",
      "parents": [
        "fd0b3ff707dc1f7837079044bd4eca7ed505f70d"
      ],
      "author": {
        "name": "Vikram Kandukuri",
        "email": "vkandukuri@atheros.com",
        "time": "Wed Jul 01 11:39:58 2009 +0530"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Aug 22 14:12:17 2009 -0700"
      },
      "message": "Bluetooth: Fix missing scheduling when VIRTUAL_CABLE_UNPLUG is received\n\nThere is a test case in PTS tool; PTS will send the VIRTUAL_CABLE_UNPLUG\ncommand to IUT. Then IUT should disconnect the channel and kill the HID\nsession when it receives the command. The VIRTUAL_CABLE_UNPLUG command\nis parsed by HID transport, but it is not scheduled to do so. Add a\ncall to hidp_schedule() to kill the session.\n\nSigned-off-by: Jothikumar Mothilal \u003cjothikumar.mothilal@atheros.com\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "fd0b3ff707dc1f7837079044bd4eca7ed505f70d",
      "tree": "a6e37b21f98ae3a3413ab0829730ba908f8cc446",
      "parents": [
        "f8f2109d4f6c525f893f6f2901ae62372e83245e"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Jun 16 00:01:49 2009 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Aug 22 14:11:46 2009 -0700"
      },
      "message": "Bluetooth: Add proper shutdown support to SCO sockets\n\nThe SCO sockets for Bluetooth audio setup and streaming are missing the\nshutdown implementation. This hasn\u0027t been a problem so far, but with a\nmore deeper integration with PulseAudio it is important to shutdown SCO\nsockets properly.\n\nAlso the Headset profile 1.2 has more detailed qualification tests that\nrequire that SCO and RFCOMM channels are terminated in the right order. A\nproper shutdown function is necessary for this.\n\nBased on a report by Johan Hedberg \u003cjohan.hedberg@nokia.com\u003e\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nTested-by: Johan Hedberg \u003cjohan.hedberg@nokia.com\u003e\n"
    },
    {
      "commit": "aa11d958d1a6572eda08214d7c6a735804fe48a5",
      "tree": "d025b05270ad1e010660d17eeadc6ac3c1abbd7d",
      "parents": [
        "07f6642ee9418e962e54cbc07471cfe2e559c568",
        "9799218ae36910af50f002a5db1802d576fffb43"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 12 17:44:53 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 12 17:44:53 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tarch/microblaze/include/asm/socket.h\n"
    },
    {
      "commit": "36cbd3dcc10384f813ec0814255f576c84f2bcd4",
      "tree": "c3579edea972519d2f9ae99d7da9a5dd56e6f5c1",
      "parents": [
        "db71789c01ae7b641f83c5aa64e7df25122f4b28"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Wed Aug 05 10:42:58 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 05 10:42:58 2009 -0700"
      },
      "message": "net: mark read-only arrays as const\n\nString literals are constant, and usually, we can also tag the array\nof pointers const too, moving it to the .rodata section.\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@medozas.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "af0d3b103bcfa877343ee338de12002cd50c9ee5",
      "tree": "a06b348fae8d295b17e7620d00df6701f678d449",
      "parents": [
        "eb4ad826419ab5b1260bc1625249114767d36bea"
      ],
      "author": {
        "name": "Dave Young",
        "email": "hidave.darkstar@gmail.com",
        "time": "Mon Aug 03 04:26:16 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Aug 03 13:24:39 2009 -0700"
      },
      "message": "bluetooth: rfcomm_init bug fix\n\nrfcomm tty may be used before rfcomm_tty_driver initilized,\nThe problem is that now socket layer init before tty layer, if userspace\nprogram do socket callback right here then oops will happen.\n\nreporting in:\nhttp://marc.info/?l\u003dlinux-bluetooth\u0026m\u003d124404919324542\u0026w\u003d2\n\nmake 3 changes:\n1. remove #ifdef in rfcomm/core.c,\nmake it blank function when rfcomm tty not selected in rfcomm.h\n\n2. tune the rfcomm_init error patch to ensure\ntty driver initilized before rfcomm socket usage.\n\n3. remove __exit for rfcomm_cleanup_sockets\nbecause above change need call it in a __init function.\n\nReported-by: Oliver Hartkopp \u003coliver@hartkopp.net\u003e\nTested-by: Oliver Hartkopp \u003coliver@hartkopp.net\u003e\nSigned-off-by: Dave Young \u003chidave.darkstar@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6ed106549d17474ca17a16057f4c0ed4eba5a7ca",
      "tree": "b98c09081509b3a9757339b6b66779e4126dfa29",
      "parents": [
        "0e8635a8e1f2d4a9e1bfc6c3b21419a5921e674f"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Jun 23 06:03:08 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 05 19:16:04 2009 -0700"
      },
      "message": "net: use NETDEV_TX_OK instead of 0 in ndo_start_xmit() functions\n\nThis patch is the result of an automatic spatch transformation to convert\nall ndo_start_xmit() return values of 0 to NETDEV_TX_OK.\n\nSome occurences are missed by the automatic conversion, those will be\nhandled in a seperate patch.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "31e6d363abcd0d05766c82f1a9c905a4c974a199",
      "tree": "f2b5c46354d95f91e743ae748b8add0de8bffd17",
      "parents": [
        "d3b238a03efd6d644ff93c8b10a1d38a596f2e34"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Jun 17 19:05:41 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 18 00:29:12 2009 -0700"
      },
      "message": "net: correct off-by-one write allocations reports\n\ncommit 2b85a34e911bf483c27cfdd124aeb1605145dc80\n(net: No more expensive sock_hold()/sock_put() on each tx)\nchanged initial sk_wmem_alloc value.\n\nWe need to take into account this offset when reporting\nsk_wmem_alloc to user, in PROC_FS files or various\nioctls (SIOCOUTQ/TIOCOUTQ)\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1a097181ee8b0c492c021eb3dbaa5f9cd813ad0e",
      "tree": "e47ad149e37fccf8c9a90f0ea0e1c145f0317779",
      "parents": [
        "403dbb97f654cd59b87999fe1b64d29bf90b3a2a"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jun 14 15:21:25 2009 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jun 14 15:30:51 2009 +0200"
      },
      "message": "Bluetooth: Fix Kconfig issue with RFKILL integration\n\nSince the re-write of the RFKILL subsystem it is no longer good to just\nselect RFKILL, but it is important to add a proper depends on rule.\n\nBased on a report by Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "bb400801c2f40bbd9a688818323ad09abfc4e581",
      "tree": "bf23baef0cdc7590b73a53e6b1e88565ba455cf1",
      "parents": [
        "130aa61a77b8518f1ea618e1b7d214d60b405f10",
        "611b30f74b5d8ca036a9923b3bf6e0ee10a21a53"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 11 05:47:43 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 11 05:47:43 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/holtmann/bluetooth-next-2.6\n"
    },
    {
      "commit": "611b30f74b5d8ca036a9923b3bf6e0ee10a21a53",
      "tree": "75da131d873d19c2ee40dd6b05bf094d5afed2c1",
      "parents": [
        "092b85853b161a5ca285c429faf1cf2ff4318a01"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jun 08 14:41:38 2009 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jun 08 14:50:01 2009 +0200"
      },
      "message": "Bluetooth: Add native RFKILL soft-switch support for all devices\n\nWith the re-write of the RFKILL subsystem it is now possible to easily\nintegrate RFKILL soft-switch support into the Bluetooth subsystem. All\nBluetooth devices will now get automatically RFKILL support.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "b4324b5dc5b62ba76372e1bf8927230cf744df66",
      "tree": "0827bb177760bd2bdac41fbf6466eb1c825b9d88",
      "parents": [
        "47ec1dcd696d56a7c396e5838516a566ecd4b03d"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jun 07 18:06:51 2009 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jun 08 14:50:01 2009 +0200"
      },
      "message": "Bluetooth: Remove pointless endian conversion helpers\n\nThe Bluetooth source uses some endian conversion helpers, that in the end\ntranslate to kernel standard routines. So remove this obfuscation since it\nis fully pointless.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "47ec1dcd696d56a7c396e5838516a566ecd4b03d",
      "tree": "bd730bf14a5f685c8fad4f84fe0aa434a960f06c",
      "parents": [
        "af05b30bcb65da3ed488af54ee92e96bebe0be5e"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat May 02 18:57:55 2009 -0700"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jun 08 14:50:00 2009 +0200"
      },
      "message": "Bluetooth: Add basic constants for L2CAP ERTM support and use them\n\nThis adds the basic constants required to add support for L2CAP Enhanced\nRetransmission feature.\n\nBased on a patch from Nathan Holstein \u003cnathan@lampreynetworks.com\u003e\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "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": "4e329972052c3649367b91de783f6293b8653cb2",
      "tree": "f1da15bbb95353c2b5184e0ef42693112cd9322d",
      "parents": [
        "f0a4d0e5b5bfd271e6737f7c095994835b70d450"
      ],
      "author": {
        "name": "Tilman Schmidt",
        "email": "tilman@imap.cc",
        "time": "Sun Jun 07 09:09:23 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 08 00:45:50 2009 -0700"
      },
      "message": "isdn: rename capi_ctr_reseted() to capi_ctr_down()\n\nChange the name of the Kernel CAPI exported function capi_ctr_reseted()\nto something representing its purpose better.\n\nImpact: renaming, no functional change\nSigned-off-by: Tilman Schmidt \u003ctilman@imap.cc\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4c713189485dbea875aecd1990daed74908e181d",
      "tree": "848424eb6d47b136126f5beff3193774ba06eefa",
      "parents": [
        "7682455ec36fce70bdbad9f739de05060dedfa27"
      ],
      "author": {
        "name": "Dave Young",
        "email": "hidave.darkstar@gmail.com",
        "time": "Wed May 27 09:10:28 2009 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed May 27 09:15:57 2009 +0200"
      },
      "message": "Bluetooth: Remove useless flush_work() causing lockdep warnings\n\nThe calls to flush_work() are pointless in a single thread workqueue\nand they are actually causing a lockdep warning.\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.30-rc6-02911-gbb803cf #16\n---------------------------------------------\nbluetooth/2518 is trying to acquire lock:\n (bluetooth){+.+.+.}, at: [\u003cc0130c14\u003e] flush_work+0x28/0xb0\n\nbut task is already holding lock:\n (bluetooth){+.+.+.}, at: [\u003cc0130424\u003e] worker_thread+0x149/0x25e\n\nother info that might help us debug this:\n2 locks held by bluetooth/2518:\n #0:  (bluetooth){+.+.+.}, at: [\u003cc0130424\u003e] worker_thread+0x149/0x25e\n #1:  (\u0026conn-\u003ework_del){+.+...}, at: [\u003cc0130424\u003e] worker_thread+0x149/0x25e\n\nstack backtrace:\nPid: 2518, comm: bluetooth Not tainted 2.6.30-rc6-02911-gbb803cf #16\nCall Trace:\n [\u003cc03d64d9\u003e] ? printk+0xf/0x11\n [\u003cc0140d96\u003e] __lock_acquire+0x7ce/0xb1b\n [\u003cc0141173\u003e] lock_acquire+0x90/0xad\n [\u003cc0130c14\u003e] ? flush_work+0x28/0xb0\n [\u003cc0130c2e\u003e] flush_work+0x42/0xb0\n [\u003cc0130c14\u003e] ? flush_work+0x28/0xb0\n [\u003cf8b84966\u003e] del_conn+0x1c/0x84 [bluetooth]\n [\u003cc0130469\u003e] worker_thread+0x18e/0x25e\n [\u003cc0130424\u003e] ? worker_thread+0x149/0x25e\n [\u003cf8b8494a\u003e] ? del_conn+0x0/0x84 [bluetooth]\n [\u003cc0133843\u003e] ? autoremove_wake_function+0x0/0x33\n [\u003cc01302db\u003e] ? worker_thread+0x0/0x25e\n [\u003cc013355a\u003e] kthread+0x45/0x6b\n [\u003cc0133515\u003e] ? kthread+0x0/0x6b\n [\u003cc01034a7\u003e] kernel_thread_helper+0x7/0x10\n\nBased on a report by Oliver Hartkopp \u003coliver@hartkopp.net\u003e\n\nSigned-off-by: Dave Young \u003chidave.darkstar@gmail.com\u003e\nTested-by: Oliver Hartkopp \u003coliver@hartkopp.net\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "3d7a9d1c7ee251a04095d43eec5a3f4ff3f710a8",
      "tree": "f3d6641ca09d1fee1cebe0b153da4a199c99e14a",
      "parents": [
        "1b0336bb36f88976f1210a65b62f6a3e9578ee7b"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat May 09 12:09:21 2009 -0700"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat May 09 18:09:52 2009 -0700"
      },
      "message": "Bluetooth: Don\u0027t trigger disconnect timeout for security mode 3 pairing\n\nA remote device in security mode 3 that tries to connect will require\nthe pairing during the connection setup phase. The disconnect timeout\nis now triggered within 10 milliseconds and causes the pairing to fail.\n\nIf a connection is not fully established and a PIN code request is\nreceived, don\u0027t trigger the disconnect timeout. The either successful\nor failing connection complete event will make sure that the timeout\nis triggered at the right time.\n\nThe biggest problem with security mode 3 is that many Bluetooth 2.0\ndevice and before use a temporary security mode 3 for dedicated\nbonding.\n\nBased on a report by Johan Hedberg \u003cjohan.hedberg@nokia.com\u003e\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nTested-by: Johan Hedberg \u003cjohan.hedberg@nokia.com\u003e\n"
    },
    {
      "commit": "1b0336bb36f88976f1210a65b62f6a3e9578ee7b",
      "tree": "bcf2a8413090c43ab6513b55e145bddf8fe87da6",
      "parents": [
        "384943ec1bb462e410390ad8f108ff1474cd882d"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat May 09 12:04:08 2009 -0700"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat May 09 18:09:45 2009 -0700"
      },
      "message": "Bluetooth: Don\u0027t use hci_acl_connect_cancel() for incoming connections\n\nThe connection setup phase takes around 2 seconds or longer and in\nthat time it is possible that the need for an ACL connection is no\nlonger present. If that happens then, the connection attempt will\nbe canceled.\n\nThis only applies to outgoing connections, but currently it can also\nbe triggered by incoming connection. Don\u0027t call hci_acl_connect_cancel()\non incoming connection since these have to be either accepted or rejected\nin this state. Once they are successfully connected they need to be\nfully disconnected anyway.\n\nAlso remove the wrong hci_acl_disconn() call for SCO and eSCO links\nsince at this stage they can\u0027t be disconnected either, because the\nconnection handle is still unknown.\n\nBased on a report by Johan Hedberg \u003cjohan.hedberg@nokia.com\u003e\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nTested-by: Johan Hedberg \u003cjohan.hedberg@nokia.com\u003e\n"
    },
    {
      "commit": "384943ec1bb462e410390ad8f108ff1474cd882d",
      "tree": "df2fba9cebf66d5617bda674b4bbb997f01e8016",
      "parents": [
        "e1cc1c578055d20d36e084e324001fb5e0355a71"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri May 08 18:20:43 2009 -0700"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat May 09 18:09:38 2009 -0700"
      },
      "message": "Bluetooth: Fix wrong module refcount when connection setup fails\n\nThe module refcount is increased by hci_dev_hold() call in hci_conn_add()\nand decreased by hci_dev_put() call in del_conn(). In case the connection\nsetup fails, hci_dev_put() is never called.\n\nProcedure to reproduce the issue:\n\n  # hciconfig hci0 up\n  # lsmod | grep btusb                   -\u003e \"used by\" refcount \u003d 1\n\n  # hcitool cc \u003cnon-exisiting bdaddr\u003e    -\u003e will get timeout\n\n  # lsmod | grep btusb                   -\u003e \"used by\" refcount \u003d 2\n  # hciconfig hci0 down\n  # lsmod | grep btusb                   -\u003e \"used by\" refcount \u003d 1\n  # rmmod btusb                          -\u003e ERROR: Module btusb is in use\n\nThe hci_dev_put() call got moved into del_conn() with the 2.6.25 kernel\nto fix an issue with hci_dev going away before hci_conn. However that\nchange was wrong and introduced this problem.\n\nWhen calling hci_conn_del() it has to call hci_dev_put() after freeing\nthe connection details. This handling should be fully symmetric. The\nexecution of del_conn() is done in a work queue and needs it own calls\nto hci_dev_hold() and hci_dev_put() to ensure that the hci_dev stays\nuntil the connection cleanup has been finished.\n\nBased on a report by Bing Zhao \u003cbzhao@marvell.com\u003e\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nTested-by: Bing Zhao \u003cbzhao@marvell.com\u003e\n"
    },
    {
      "commit": "457ca7bb6bdf39d0832d3f88c65fa367a3b20de6",
      "tree": "0a126a886bf1626db70bc6a23b8b4277bd8750ae",
      "parents": [
        "356d6c2d55b71303a17910ea2cce3eba8e44bd29"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue May 05 13:09:01 2009 -0700"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue May 05 13:26:08 2009 -0700"
      },
      "message": "Bluetooth: Move dev_set_name() to a context that can sleep\n\nSetting the name of a sysfs device has to be done in a context that can\nactually sleep. It allocates its memory with GFP_KERNEL. Previously it\nwas a static (size limited) string and that got changed to accommodate\nlonger device names. So move the dev_set_name() just before calling\ndevice_add() which is executed in a work queue.\n\nThis fixes the following error:\n\n[  110.012125] BUG: sleeping function called from invalid context at mm/slub.c:1595\n[  110.012135] in_atomic(): 1, irqs_disabled(): 0, pid: 0, name: swapper\n[  110.012141] 2 locks held by swapper/0:\n[  110.012145]  #0:  (hci_task_lock){++.-.+}, at: [\u003cffffffffa01f822f\u003e] hci_rx_task+0x2f/0x2d0 [bluetooth]\n[  110.012173]  #1:  (\u0026hdev-\u003elock){+.-.+.}, at: [\u003cffffffffa01fb9e2\u003e] hci_event_packet+0x72/0x25c0 [bluetooth]\n[  110.012198] Pid: 0, comm: swapper Tainted: G        W 2.6.30-rc4-g953cdaa #1\n[  110.012203] Call Trace:\n[  110.012207]  \u003cIRQ\u003e  [\u003cffffffff8023eabd\u003e] __might_sleep+0x14d/0x170\n[  110.012228]  [\u003cffffffff802cfbe1\u003e] __kmalloc+0x111/0x170\n[  110.012239]  [\u003cffffffff803c2094\u003e] kvasprintf+0x64/0xb0\n[  110.012248]  [\u003cffffffff803b7a5b\u003e] kobject_set_name_vargs+0x3b/0xa0\n[  110.012257]  [\u003cffffffff80465326\u003e] dev_set_name+0x76/0xa0\n[  110.012273]  [\u003cffffffffa01fb9e2\u003e] ? hci_event_packet+0x72/0x25c0 [bluetooth]\n[  110.012289]  [\u003cffffffffa01ffc1d\u003e] hci_conn_add_sysfs+0x3d/0x70 [bluetooth]\n[  110.012303]  [\u003cffffffffa01fba2c\u003e] hci_event_packet+0xbc/0x25c0 [bluetooth]\n[  110.012312]  [\u003cffffffff80516eb0\u003e] ? sock_def_readable+0x80/0xa0\n[  110.012328]  [\u003cffffffffa01fee0c\u003e] ? hci_send_to_sock+0xfc/0x1c0 [bluetooth]\n[  110.012343]  [\u003cffffffff80516eb0\u003e] ? sock_def_readable+0x80/0xa0\n[  110.012347]  [\u003cffffffff805e88c5\u003e] ? _read_unlock+0x75/0x80\n[  110.012354]  [\u003cffffffffa01fee0c\u003e] ? hci_send_to_sock+0xfc/0x1c0 [bluetooth]\n[  110.012360]  [\u003cffffffffa01f8403\u003e] hci_rx_task+0x203/0x2d0 [bluetooth]\n[  110.012365]  [\u003cffffffff80250ab5\u003e] tasklet_action+0xb5/0x160\n[  110.012369]  [\u003cffffffff8025116c\u003e] __do_softirq+0x9c/0x150\n[  110.012372]  [\u003cffffffff805e850f\u003e] ? _spin_unlock+0x3f/0x80\n[  110.012376]  [\u003cffffffff8020cbbc\u003e] call_softirq+0x1c/0x30\n[  110.012380]  [\u003cffffffff8020f01d\u003e] do_softirq+0x8d/0xe0\n[  110.012383]  [\u003cffffffff80250df5\u003e] irq_exit+0xc5/0xe0\n[  110.012386]  [\u003cffffffff8020e71d\u003e] do_IRQ+0x9d/0x120\n[  110.012389]  [\u003cffffffff8020c3d3\u003e] ret_from_intr+0x0/0xf\n[  110.012391]  \u003cEOI\u003e  [\u003cffffffff80431832\u003e] ? acpi_idle_enter_bm+0x264/0x2a6\n[  110.012399]  [\u003cffffffff80431828\u003e] ? acpi_idle_enter_bm+0x25a/0x2a6\n[  110.012403]  [\u003cffffffff804f50d5\u003e] ? cpuidle_idle_call+0xc5/0x130\n[  110.012407]  [\u003cffffffff8020a4b4\u003e] ? cpu_idle+0xc4/0x130\n[  110.012411]  [\u003cffffffff805d2268\u003e] ? rest_init+0x88/0xb0\n[  110.012416]  [\u003cffffffff807e2fbd\u003e] ? start_kernel+0x3b5/0x412\n[  110.012420]  [\u003cffffffff807e2281\u003e] ? x86_64_start_reservations+0x91/0xb5\n[  110.012424]  [\u003cffffffff807e2394\u003e] ? x86_64_start_kernel+0xef/0x11b\n\nBased on a report by Davide Pesavento \u003cdavidepesa@gmail.com\u003e\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nTested-by: Hugo Mildenberger \u003chugo.mildenberger@namir.de\u003e\nTested-by: Bing Zhao \u003cbzhao@marvell.com\u003e\n"
    },
    {
      "commit": "a67e899cf38ae542d1a028ccd021f9189f76fb74",
      "tree": "d0bb79ccbdd5737745e99acbc569605bc74bc446",
      "parents": [
        "9f722c0978b04acba209f8ca1896ad05814bc3a3"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat May 02 18:24:06 2009 -0700"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon May 04 14:29:02 2009 -0700"
      },
      "message": "Bluetooth: Fix issue with sysfs handling for connections\n\nDue to a semantic changes in flush_workqueue() the current approach of\nsynchronizing the sysfs handling for connections doesn\u0027t work anymore. The\nwhole approach is actually fully broken and based on assumptions that are\nno longer valid.\n\nWith the introduction of Simple Pairing support, the creation of low-level\nACL links got changed. This change invalidates the reason why in the past\ntwo independent work queues have been used for adding/removing sysfs\ndevices. The adding of the actual sysfs device is now postponed until the\nhost controller successfully assigns an unique handle to that link. So\nthe real synchronization happens inside the controller and not the host.\n\nThe only left-over problem is that some internals of the sysfs device\nhandling are not initialized ahead of time. This leaves potential access\nto invalid data and can cause various NULL pointer dereferences. To fix\nthis a new function makes sure that all sysfs details are initialized\nwhen an connection attempt is made. The actual sysfs device is only\nregistered when the connection has been successfully established. To\navoid a race condition with the registration, the check if a device is\nregistered has been moved into the removal work.\n\nAs an extra protection two flush_work() calls are left in place to\nmake sure a previous add/del work has been completed first.\n\nBased on a report by Marc Pignat \u003cmarc.pignat@hevs.ch\u003e\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nTested-by: Justin P. Mattock \u003cjustinmattock@gmail.com\u003e\nTested-by: Roger Quadros \u003cext-roger.quadros@nokia.com\u003e\nTested-by: Marc Pignat \u003cmarc.pignat@hevs.ch\u003e\n"
    },
    {
      "commit": "3fdca1e1370ffe89980927cdef0583bebcd8caaf",
      "tree": "30ec395081409d7cea5338cf4f486eaabd14e53d",
      "parents": [
        "052b30b0a8eec8db5b18ad49effdf2a9ba4c1e1a"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Apr 28 09:04:55 2009 -0700"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Apr 28 09:31:39 2009 -0700"
      },
      "message": "Bluetooth: Fix connection establishment with low security requirement\n\nThe Bluetooth 2.1 specification introduced four different security modes\nthat can be mapped using Legacy Pairing and Simple Pairing. With the\nusage of Simple Pairing it is required that all connections (except\nthe ones for SDP) are encrypted. So even the low security requirement\nmandates an encrypted connection when using Simple Pairing. When using\nLegacy Pairing (for Bluetooth 2.0 devices and older) this is not required\nsince it causes interoperability issues.\n\nTo support this properly the low security requirement translates into\ndifferent host controller transactions depending if Simple Pairing is\nsupported or not. However in case of Simple Pairing the command to\nswitch on encryption after a successful authentication is not triggered\nfor the low security mode. This patch fixes this and actually makes\nthe logic to differentiate between Simple Pairing and Legacy Pairing\na lot simpler.\n\nBased on a report by Ville Tervo \u003cville.tervo@nokia.com\u003e\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "052b30b0a8eec8db5b18ad49effdf2a9ba4c1e1a",
      "tree": "a7e772ecb7b13ef1d67e75e62ae00bb68cdf398c",
      "parents": [
        "f3784d834c71689336fa272df420b45345cb6b84"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Apr 26 20:01:22 2009 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Apr 28 09:31:38 2009 -0700"
      },
      "message": "Bluetooth: Add different pairing timeout for Legacy Pairing\n\nThe Bluetooth stack uses a reference counting for all established ACL\nlinks and if no user (L2CAP connection) is present, the link will be\nterminated to save power. The problem part is the dedicated pairing\nwhen using Legacy Pairing (Bluetooth 2.0 and before). At that point\nno user is present and pairing attempts will be disconnected within\n10 seconds or less. In previous kernel version this was not a problem\nsince the disconnect timeout wasn\u0027t triggered on incoming connections\nfor the first time. However this caused issues with broken host stacks\nthat kept the connections around after dedicated pairing. When the\nsupport for Simple Pairing got added, the link establishment procedure\nneeded to be changed and now causes issues when using Legacy Pairing\n\nWhen using Simple Pairing it is possible to do a proper reference\ncounting of ACL link users. With Legacy Pairing this is not possible\nsince the specification is unclear in some areas and too many broken\nBluetooth devices have already been deployed. So instead of trying to\ndeal with all the broken devices, a special pairing timeout will be\nintroduced that increases the timeout to 60 seconds when pairing is\ntriggered.\n\nIf a broken devices now puts the stack into an unforeseen state, the\nworst that happens is the disconnect timeout triggers after 120 seconds\ninstead of 4 seconds. This allows successful pairings with legacy and\nbroken devices now.\n\nBased on a report by Johan Hedberg \u003cjohan.hedberg@nokia.com\u003e\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "f3784d834c71689336fa272df420b45345cb6b84",
      "tree": "bfed4c21b3b3360bab0eb8123595e911adfbfdcf",
      "parents": [
        "bf368e4e70cd4e0f880923c44e95a4273d725ab4"
      ],
      "author": {
        "name": "Roger Quadros",
        "email": "ext-roger.quadros@nokia.com",
        "time": "Thu Apr 23 14:50:54 2009 +0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Apr 28 09:31:38 2009 -0700"
      },
      "message": "Bluetooth: Ensure that HCI sysfs add/del is preempt safe\n\nUse a different work_struct variables for add_conn() and del_conn() and\nuse single work queue instead of two for adding and deleting connections.\n\nIt eliminates the following error on a preemptible kernel:\n\n[  204.358032] Unable to handle kernel NULL pointer dereference at virtual address 0000000c\n[  204.370697] pgd \u003d c0004000\n[  204.373443] [0000000c] *pgd\u003d00000000\n[  204.378601] Internal error: Oops: 17 [#1] PREEMPT\n[  204.383361] Modules linked in: vfat fat rfcomm sco l2cap sd_mod scsi_mod iphb pvr2d drm omaplfb ps\n[  204.438537] CPU: 0    Not tainted  (2.6.28-maemo2 #1)\n[  204.443664] PC is at klist_put+0x2c/0xb4\n[  204.447601] LR is at klist_put+0x18/0xb4\n[  204.451568] pc : [\u003cc0270f08\u003e]    lr : [\u003cc0270ef4\u003e]    psr: a0000113\n[  204.451568] sp : cf1b3f10  ip : cf1b3f10  fp : cf1b3f2c\n[  204.463104] r10: 00000000  r9 : 00000000  r8 : bf08029c\n[  204.468353] r7 : c7869200  r6 : cfbe2690  r5 : c78692c8  r4 : 00000001\n[  204.474945] r3 : 00000001  r2 : cf1b2000  r1 : 00000001  r0 : 00000000\n[  204.481506] Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM Segment kernel\n[  204.488861] Control: 10c5387d  Table: 887fc018  DAC: 00000017\n[  204.494628] Process btdelconn (pid: 515, stack limit \u003d 0xcf1b22e0)\n\nSigned-off-by: Roger Quadros \u003cext-roger.quadros@nokia.com\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "9499237a1c42a27fbcc7ed1d59e34df2b574cdfb",
      "tree": "d238fd5a6931af24d2efa6536eb17c09bbf5411b",
      "parents": [
        "732547f96ea2442965a24e0ed529d285321a0fff"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Apr 19 19:30:03 2009 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Apr 19 19:30:03 2009 +0200"
      },
      "message": "Bluetooth: Add workaround for wrong HCI event in eSCO setup\n\nThe Broadcom chips with 2.1 firmware handle the fallback case to a SCO\nlink wrongly when setting up eSCO connections.\n\n  \u003c HCI Command: Setup Synchronous Connection (0x01|0x0028) plen 17\n      handle 11 voice setting 0x0060\n  \u003e HCI Event: Command Status (0x0f) plen 4\n      Setup Synchronous Connection (0x01|0x0028) status 0x00 ncmd 1\n  \u003e HCI Event: Connect Complete (0x03) plen 11\n      status 0x00 handle 1 bdaddr 00:1E:3A:xx:xx:xx type SCO encrypt 0x01\n\nThe Link Manager negotiates the fallback to SCO, but then sends out\na Connect Complete event. This is wrong and the Link Manager should\nactually send a Synchronous Connection Complete event if the Setup\nSynchronous Connection has been used. Only the remote side is allowed\nto use Connect Complete to indicate the missing support for eSCO in\nthe host stack.\n\nThis patch adds a workaround for this which clearly should not be\nneeded, but reality is that broken Broadcom devices are deployed.\n\nBased on a report by Ville Tervo \u003cville.tervo@nokia.com\u003e\n\nSigned-off-by: Marcel Holtman \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "732547f96ea2442965a24e0ed529d285321a0fff",
      "tree": "315350b2dfafd90f06d28163e8f3cf4807e4a6a3",
      "parents": [
        "e2139b32726e5dd184974c785ea3f62026590801"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Apr 19 19:14:14 2009 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Apr 19 19:14:14 2009 +0200"
      },
      "message": "Bluetooth: Fallback from eSCO to SCO on unspecified error\n\nSome Bluetooth chips (like the ones from Texas Instruments) don\u0027t do\nproper eSCO negotiations inside the Link Manager. They just return an\nerror code and in case of the Kyocera ED-8800 headset it is just a\nrandom error.\n\n  \u003c HCI Command: Setup Synchronous Connection 0x01|0x0028) plen 17\n    handle 1 voice setting 0x0060\n  \u003e HCI Event: Command Status (0x0f) plen 4\n    Setup Synchronous Connection (0x01|0x0028) status 0x00 ncmd 1\n  \u003e HCI Event: Synchronous Connect Complete (0x2c) plen 17\n    status 0x1f handle 257 bdaddr 00:14:0A:xx:xx:xx type eSCO\n    Error: Unspecified Error\n\nIn these cases it is up to the host stack to fallback to a SCO setup\nand so retry with SCO parameters.\n\nBased on a report by Nick Pelly \u003cnpelly@google.com\u003e\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "e2139b32726e5dd184974c785ea3f62026590801",
      "tree": "663f35194914f7aa2dbb30fb65ed3f4b13ed8da9",
      "parents": [
        "a0a69a0106dab8d20596f97f6674bed3b394d1ee"
      ],
      "author": {
        "name": "Johan Hedberg",
        "email": "johan.hedberg@nokia.com",
        "time": "Thu Mar 26 16:41:56 2009 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Apr 19 18:56:45 2009 +0200"
      },
      "message": "Bluetooth: Fix removing of RFCOMM DLC timer with DEFER_SETUP\n\nThere is a missing call to rfcomm_dlc_clear_timer in the case that\nDEFER_SETUP is used and so the connection gets disconnected after the\ntimeout even if it was successfully accepted previously.\n\nThis patch adds a call to rfcomm_dlc_clear_timer to rfcomm_dlc_accept\nwhich will get called when the user accepts the connection by calling\nread() on the socket.\n\nSigned-off-by: Johan Hedberg \u003cjohan.hedberg@nokia.com\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "0f043a81ebe84be3576667f04fdda481609e3816",
      "tree": "c54a9ac4a1dc79bd5f2f7ec3ead5aa48802ff7a3",
      "parents": [
        "140716934f67a9b28c3f7032c07c20c746d97a31"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Mar 31 15:19:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:10 2009 -0700"
      },
      "message": "proc tty: remove struct tty_operations::read_proc\n\nstruct tty_operations::proc_fops took it\u0027s place and there is one less\ncreate_proc_read_entry() user now!\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "08abe18af1f78ee80c3c3a5ac47c3e0ae0beadf6",
      "tree": "2be39bf8942edca1bcec735145e144a682ca9cd3",
      "parents": [
        "f0de70f8bb56952f6e016a65a8a8d006918f5bf6",
        "0384e2959127a56d0640505d004d8dd92f9c29f5"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 26 15:23:24 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 26 15:23:24 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of /home/davem/src/GIT/linux-2.6/\n\nConflicts:\n\tdrivers/net/wimax/i2400m/usb-notif.c\n"
    },
    {
      "commit": "ffa6a7054d172a2f57248dff2de600ca795c5656",
      "tree": "f93c6234bb90295c52fcef09e367ed77ff6c3645",
      "parents": [
        "60530afe1ee8a5532cb09d0ab5bc3f1a6495b780"
      ],
      "author": {
        "name": "Cornelia Huck",
        "email": "cornelia.huck@de.ibm.com",
        "time": "Wed Mar 04 12:44:00 2009 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Mar 24 16:38:26 2009 -0700"
      },
      "message": "Driver core: Fix device_move() vs. dpm list ordering, v2\n\ndpm_list currently relies on the fact that child devices will\nbe registered after their parents to get a correct suspend\norder. Using device_move() however destroys this assumption, as\nan already registered device may be moved under a newly registered\none.\n\nThis patch adds a new argument to device_move(), allowing callers\nto specify how dpm_list should be adapted.\n\nSigned-off-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nAcked-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\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": "2ae9a6be5f476f3512839a4d11a8f432bfd2914c",
      "tree": "6c7312a27b80b68d0aa37d0d5f6b4acceadb78d8",
      "parents": [
        "2526d3d8b2f671a7d36cc486af984052cd5a690f"
      ],
      "author": {
        "name": "Dave Young",
        "email": "hidave.darkstar@gmail.com",
        "time": "Sat Feb 21 16:13:34 2009 +0800"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:49 2009 +0100"
      },
      "message": "Bluetooth: Move hci_conn_del_sysfs() back to avoid device destruct too early\n\nThe following commit introduce a regression:\n\n\tcommit 7d0db0a373195385a2e0b19d1f5e4b186fdcffac\n\tAuthor: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n\tDate:   Mon Jul 14 20:13:51 2008 +0200\n\n\t\t[Bluetooth] Use a more unique bus name for connections\n\nI get panic as following (by netconsole):\n\n[ 2709.344034] usb 5-1: new full speed USB device using uhci_hcd and address 4\n[ 2709.505776] usb 5-1: configuration #1 chosen from 1 choice\n[ 2709.569207] Bluetooth: Generic Bluetooth USB driver ver 0.4\n[ 2709.570169] usbcore: registered new interface driver btusb\n[ 2845.742781] BUG: unable to handle kernel paging request at 6b6b6c2f\n[ 2845.742958] IP: [\u003cc015515c\u003e] __lock_acquire+0x6c/0xa80\n[ 2845.743087] *pde \u003d 00000000\n[ 2845.743206] Oops: 0002 [#1] SMP\n[ 2845.743377] last sysfs file: /sys/class/bluetooth/hci0/hci0:6/type\n[ 2845.743742] Modules linked in: btusb netconsole snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss rfcomm l2cap bluetooth vfat fuse snd_hda_codec_idt snd_hda_intel snd_hda_codec snd_hwdep snd_pcm pl2303 snd_timer psmouse usbserial snd 3c59x e100 serio_raw soundcore i2c_i801 intel_agp mii agpgart snd_page_alloc rtc_cmos rtc_core thermal processor rtc_lib button thermal_sys sg evdev\n[ 2845.743742]\n[ 2845.743742] Pid: 0, comm: swapper Not tainted (2.6.29-rc5-smp #54) Dell DM051\n[ 2845.743742] EIP: 0060:[\u003cc015515c\u003e] EFLAGS: 00010002 CPU: 0\n[ 2845.743742] EIP is at __lock_acquire+0x6c/0xa80\n[ 2845.743742] EAX: 00000046 EBX: 00000046 ECX: 6b6b6b6b EDX: 00000002\n[ 2845.743742] ESI: 6b6b6b6b EDI: 00000000 EBP: c064fd14 ESP: c064fcc8\n[ 2845.743742]  DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068\n[ 2845.743742] Process swapper (pid: 0, ti\u003dc064e000 task\u003dc05d1400 task.ti\u003dc064e000)\n[ 2845.743742] Stack:\n[ 2845.743742]  c05d1400 00000002 c05d1400 00000001 00000002 00000000 f65388dc c05d1400\n[ 2845.743742]  6b6b6b6b 00000292 c064fd0c c0153732 00000000 00000000 00000001 f700fa50\n[ 2845.743742]  00000046 00000000 00000000 c064fd40 c0155be6 00000000 00000002 00000001\n[ 2845.743742] Call Trace:\n[ 2845.743742]  [\u003cc0153732\u003e] ? trace_hardirqs_on_caller+0x72/0x1c0\n[ 2845.743742]  [\u003cc0155be6\u003e] ? lock_acquire+0x76/0xa0\n[ 2845.743742]  [\u003cc03e1aad\u003e] ? skb_dequeue+0x1d/0x70\n[ 2845.743742]  [\u003cc046c885\u003e] ? _spin_lock_irqsave+0x45/0x80\n[ 2845.743742]  [\u003cc03e1aad\u003e] ? skb_dequeue+0x1d/0x70\n[ 2845.743742]  [\u003cc03e1aad\u003e] ? skb_dequeue+0x1d/0x70\n[ 2845.743742]  [\u003cc03e1f94\u003e] ? skb_queue_purge+0x14/0x20\n[ 2845.743742]  [\u003cf8171f5a\u003e] ? hci_conn_del+0x10a/0x1c0 [bluetooth]\n[ 2845.743742]  [\u003cf81399c9\u003e] ? l2cap_disconn_ind+0x59/0xb0 [l2cap]\n[ 2845.743742]  [\u003cf81795ce\u003e] ? hci_conn_del_sysfs+0x8e/0xd0 [bluetooth]\n[ 2845.743742]  [\u003cf8175758\u003e] ? hci_event_packet+0x5f8/0x31c0 [bluetooth]\n[ 2845.743742]  [\u003cc03dfe19\u003e] ? sock_def_readable+0x59/0x80\n[ 2845.743742]  [\u003cc046c14d\u003e] ? _read_unlock+0x1d/0x20\n[ 2845.743742]  [\u003cf8178aa9\u003e] ? hci_send_to_sock+0xe9/0x1d0 [bluetooth]\n[ 2845.743742]  [\u003cc015388b\u003e] ? trace_hardirqs_on+0xb/0x10\n[ 2845.743742]  [\u003cf816fa6a\u003e] ? hci_rx_task+0x2ba/0x490 [bluetooth]\n[ 2845.743742]  [\u003cc0133661\u003e] ? tasklet_action+0x31/0xc0\n[ 2845.743742]  [\u003cc013367c\u003e] ? tasklet_action+0x4c/0xc0\n[ 2845.743742]  [\u003cc0132eb7\u003e] ? __do_softirq+0xa7/0x170\n[ 2845.743742]  [\u003cc0116dec\u003e] ? ack_apic_level+0x5c/0x1c0\n[ 2845.743742]  [\u003cc0132fd7\u003e] ? do_softirq+0x57/0x60\n[ 2845.743742]  [\u003cc01333dc\u003e] ? irq_exit+0x7c/0x90\n[ 2845.743742]  [\u003cc01055bb\u003e] ? do_IRQ+0x4b/0x90\n[ 2845.743742]  [\u003cc01333d5\u003e] ? irq_exit+0x75/0x90\n[ 2845.743742]  [\u003cc010392c\u003e] ? common_interrupt+0x2c/0x34\n[ 2845.743742]  [\u003cc010a14f\u003e] ? mwait_idle+0x4f/0x70\n[ 2845.743742]  [\u003cc0101c05\u003e] ? cpu_idle+0x65/0xb0\n[ 2845.743742]  [\u003cc045731e\u003e] ? rest_init+0x4e/0x60\n[ 2845.743742] Code: 0f 84 69 02 00 00 83 ff 07 0f 87 1e 06 00 00 85 ff 0f 85 08 05 00 00 8b 4d cc 8b 49 04 85 c9 89 4d d4 0f 84 f7 04 00 00 8b 75 d4 \u003cf0\u003e ff 86 c4 00 00 00 89 f0 e8 56 a9 ff ff 85 c0 0f 85 6e 03 00\n[ 2845.743742] EIP: [\u003cc015515c\u003e] __lock_acquire+0x6c/0xa80 SS:ESP 0068:c064fcc8\n[ 2845.743742] ---[ end trace 4c985b38f022279f ]---\n[ 2845.743742] Kernel panic - not syncing: Fatal exception in interrupt\n[ 2845.743742] ------------[ cut here ]------------\n[ 2845.743742] WARNING: at kernel/smp.c:329 smp_call_function_many+0x151/0x200()\n[ 2845.743742] Hardware name: Dell DM051\n[ 2845.743742] Modules linked in: btusb netconsole snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss rfcomm l2cap bluetooth vfat fuse snd_hda_codec_idt snd_hda_intel snd_hda_codec snd_hwdep snd_pcm pl2303 snd_timer psmouse usbserial snd 3c59x e100 serio_raw soundcore i2c_i801 intel_agp mii agpgart snd_page_alloc rtc_cmos rtc_core thermal processor rtc_lib button thermal_sys sg evdev\n[ 2845.743742] Pid: 0, comm: swapper Tainted: G      D    2.6.29-rc5-smp #54\n[ 2845.743742] Call Trace:\n[ 2845.743742]  [\u003cc012e076\u003e] warn_slowpath+0x86/0xa0\n[ 2845.743742]  [\u003cc015041b\u003e] ? trace_hardirqs_off+0xb/0x10\n[ 2845.743742]  [\u003cc0146384\u003e] ? up+0x14/0x40\n[ 2845.743742]  [\u003cc012e661\u003e] ? release_console_sem+0x31/0x1e0\n[ 2845.743742]  [\u003cc046c8ab\u003e] ? _spin_lock_irqsave+0x6b/0x80\n[ 2845.743742]  [\u003cc015041b\u003e] ? trace_hardirqs_off+0xb/0x10\n[ 2845.743742]  [\u003cc046c900\u003e] ? _read_lock_irqsave+0x40/0x80\n[ 2845.743742]  [\u003cc012e7f2\u003e] ? release_console_sem+0x1c2/0x1e0\n[ 2845.743742]  [\u003cc0146384\u003e] ? up+0x14/0x40\n[ 2845.743742]  [\u003cc015041b\u003e] ? trace_hardirqs_off+0xb/0x10\n[ 2845.743742]  [\u003cc046a3d7\u003e] ? __mutex_unlock_slowpath+0x97/0x160\n[ 2845.743742]  [\u003cc046a563\u003e] ? mutex_trylock+0xb3/0x180\n[ 2845.743742]  [\u003cc046a4a8\u003e] ? mutex_unlock+0x8/0x10\n[ 2845.743742]  [\u003cc015b991\u003e] smp_call_function_many+0x151/0x200\n[ 2845.743742]  [\u003cc010a1a0\u003e] ? stop_this_cpu+0x0/0x40\n[ 2845.743742]  [\u003cc015ba61\u003e] smp_call_function+0x21/0x30\n[ 2845.743742]  [\u003cc01137ae\u003e] native_smp_send_stop+0x1e/0x50\n[ 2845.743742]  [\u003cc012e0f5\u003e] panic+0x55/0x110\n[ 2845.743742]  [\u003cc01065a8\u003e] oops_end+0xb8/0xc0\n[ 2845.743742]  [\u003cc010668f\u003e] die+0x4f/0x70\n[ 2845.743742]  [\u003cc011a8c9\u003e] do_page_fault+0x269/0x610\n[ 2845.743742]  [\u003cc011a660\u003e] ? do_page_fault+0x0/0x610\n[ 2845.743742]  [\u003cc046cbaf\u003e] error_code+0x77/0x7c\n[ 2845.743742]  [\u003cc015515c\u003e] ? __lock_acquire+0x6c/0xa80\n[ 2845.743742]  [\u003cc0153732\u003e] ? trace_hardirqs_on_caller+0x72/0x1c0\n[ 2845.743742]  [\u003cc0155be6\u003e] lock_acquire+0x76/0xa0\n[ 2845.743742]  [\u003cc03e1aad\u003e] ? skb_dequeue+0x1d/0x70\n[ 2845.743742]  [\u003cc046c885\u003e] _spin_lock_irqsave+0x45/0x80\n[ 2845.743742]  [\u003cc03e1aad\u003e] ? skb_dequeue+0x1d/0x70\n[ 2845.743742]  [\u003cc03e1aad\u003e] skb_dequeue+0x1d/0x70\n[ 2845.743742]  [\u003cc03e1f94\u003e] skb_queue_purge+0x14/0x20\n[ 2845.743742]  [\u003cf8171f5a\u003e] hci_conn_del+0x10a/0x1c0 [bluetooth]\n[ 2845.743742]  [\u003cf81399c9\u003e] ? l2cap_disconn_ind+0x59/0xb0 [l2cap]\n[ 2845.743742]  [\u003cf81795ce\u003e] ? hci_conn_del_sysfs+0x8e/0xd0 [bluetooth]\n[ 2845.743742]  [\u003cf8175758\u003e] hci_event_packet+0x5f8/0x31c0 [bluetooth]\n[ 2845.743742]  [\u003cc03dfe19\u003e] ? sock_def_readable+0x59/0x80\n[ 2845.743742]  [\u003cc046c14d\u003e] ? _read_unlock+0x1d/0x20\n[ 2845.743742]  [\u003cf8178aa9\u003e] ? hci_send_to_sock+0xe9/0x1d0 [bluetooth]\n[ 2845.743742]  [\u003cc015388b\u003e] ? trace_hardirqs_on+0xb/0x10\n[ 2845.743742]  [\u003cf816fa6a\u003e] hci_rx_task+0x2ba/0x490 [bluetooth]\n[ 2845.743742]  [\u003cc0133661\u003e] ? tasklet_action+0x31/0xc0\n[ 2845.743742]  [\u003cc013367c\u003e] tasklet_action+0x4c/0xc0\n[ 2845.743742]  [\u003cc0132eb7\u003e] __do_softirq+0xa7/0x170\n[ 2845.743742]  [\u003cc0116dec\u003e] ? ack_apic_level+0x5c/0x1c0\n[ 2845.743742]  [\u003cc0132fd7\u003e] do_softirq+0x57/0x60\n[ 2845.743742]  [\u003cc01333dc\u003e] irq_exit+0x7c/0x90\n[ 2845.743742]  [\u003cc01055bb\u003e] do_IRQ+0x4b/0x90\n[ 2845.743742]  [\u003cc01333d5\u003e] ? irq_exit+0x75/0x90\n[ 2845.743742]  [\u003cc010392c\u003e] common_interrupt+0x2c/0x34\n[ 2845.743742]  [\u003cc010a14f\u003e] ? mwait_idle+0x4f/0x70\n[ 2845.743742]  [\u003cc0101c05\u003e] cpu_idle+0x65/0xb0\n[ 2845.743742]  [\u003cc045731e\u003e] rest_init+0x4e/0x60\n[ 2845.743742] ---[ end trace 4c985b38f02227a0 ]---\n[ 2845.743742] ------------[ cut here ]------------\n[ 2845.743742] WARNING: at kernel/smp.c:226 smp_call_function_single+0x8e/0x110()\n[ 2845.743742] Hardware name: Dell DM051\n[ 2845.743742] Modules linked in: btusb netconsole snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss rfcomm l2cap bluetooth vfat fuse snd_hda_codec_idt snd_hda_intel snd_hda_codec snd_hwdep snd_pcm pl2303 snd_timer psmouse usbserial snd 3c59x e100 serio_raw soundcore i2c_i801 intel_agp mii agpgart snd_page_alloc rtc_cmos rtc_core thermal processor rtc_lib button thermal_sys sg evdev\n[ 2845.743742] Pid: 0, comm: swapper Tainted: G      D W  2.6.29-rc5-smp #54\n[ 2845.743742] Call Trace:\n[ 2845.743742]  [\u003cc012e076\u003e] warn_slowpath+0x86/0xa0\n[ 2845.743742]  [\u003cc012e000\u003e] ? warn_slowpath+0x10/0xa0\n[ 2845.743742]  [\u003cc015041b\u003e] ? trace_hardirqs_off+0xb/0x10\n[ 2845.743742]  [\u003cc0146384\u003e] ? up+0x14/0x40\n[ 2845.743742]  [\u003cc012e661\u003e] ? release_console_sem+0x31/0x1e0\n[ 2845.743742]  [\u003cc046c8ab\u003e] ? _spin_lock_irqsave+0x6b/0x80\n[ 2845.743742]  [\u003cc015041b\u003e] ? trace_hardirqs_off+0xb/0x10\n[ 2845.743742]  [\u003cc046c900\u003e] ? _read_lock_irqsave+0x40/0x80\n[ 2845.743742]  [\u003cc012e7f2\u003e] ? release_console_sem+0x1c2/0x1e0\n[ 2845.743742]  [\u003cc0146384\u003e] ? up+0x14/0x40\n[ 2845.743742]  [\u003cc015b7be\u003e] smp_call_function_single+0x8e/0x110\n[ 2845.743742]  [\u003cc010a1a0\u003e] ? stop_this_cpu+0x0/0x40\n[ 2845.743742]  [\u003cc026d23f\u003e] ? cpumask_next_and+0x1f/0x40\n[ 2845.743742]  [\u003cc015b95a\u003e] smp_call_function_many+0x11a/0x200\n[ 2845.743742]  [\u003cc010a1a0\u003e] ? stop_this_cpu+0x0/0x40\n[ 2845.743742]  [\u003cc015ba61\u003e] smp_call_function+0x21/0x30\n[ 2845.743742]  [\u003cc01137ae\u003e] native_smp_send_stop+0x1e/0x50\n[ 2845.743742]  [\u003cc012e0f5\u003e] panic+0x55/0x110\n[ 2845.743742]  [\u003cc01065a8\u003e] oops_end+0xb8/0xc0\n[ 2845.743742]  [\u003cc010668f\u003e] die+0x4f/0x70\n[ 2845.743742]  [\u003cc011a8c9\u003e] do_page_fault+0x269/0x610\n[ 2845.743742]  [\u003cc011a660\u003e] ? do_page_fault+0x0/0x610\n[ 2845.743742]  [\u003cc046cbaf\u003e] error_code+0x77/0x7c\n[ 2845.743742]  [\u003cc015515c\u003e] ? __lock_acquire+0x6c/0xa80\n[ 2845.743742]  [\u003cc0153732\u003e] ? trace_hardirqs_on_caller+0x72/0x1c0\n[ 2845.743742]  [\u003cc0155be6\u003e] lock_acquire+0x76/0xa0\n[ 2845.743742]  [\u003cc03e1aad\u003e] ? skb_dequeue+0x1d/0x70\n[ 2845.743742]  [\u003cc046c885\u003e] _spin_lock_irqsave+0x45/0x80\n[ 2845.743742]  [\u003cc03e1aad\u003e] ? skb_dequeue+0x1d/0x70\n[ 2845.743742]  [\u003cc03e1aad\u003e] skb_dequeue+0x1d/0x70\n[ 2845.743742]  [\u003cc03e1f94\u003e] skb_queue_purge+0x14/0x20\n[ 2845.743742]  [\u003cf8171f5a\u003e] hci_conn_del+0x10a/0x1c0 [bluetooth]\n[ 2845.743742]  [\u003cf81399c9\u003e] ? l2cap_disconn_ind+0x59/0xb0 [l2cap]\n[ 2845.743742]  [\u003cf81795ce\u003e] ? hci_conn_del_sysfs+0x8e/0xd0 [bluetooth]\n[ 2845.743742]  [\u003cf8175758\u003e] hci_event_packet+0x5f8/0x31c0 [bluetooth]\n[ 2845.743742]  [\u003cc03dfe19\u003e] ? sock_def_readable+0x59/0x80\n[ 2845.743742]  [\u003cc046c14d\u003e] ? _read_unlock+0x1d/0x20\n[ 2845.743742]  [\u003cf8178aa9\u003e] ? hci_send_to_sock+0xe9/0x1d0 [bluetooth]\n[ 2845.743742]  [\u003cc015388b\u003e] ? trace_hardirqs_on+0xb/0x10\n[ 2845.743742]  [\u003cf816fa6a\u003e] hci_rx_task+0x2ba/0x490 [bluetooth]\n[ 2845.743742]  [\u003cc0133661\u003e] ? tasklet_action+0x31/0xc0\n[ 2845.743742]  [\u003cc013367c\u003e] tasklet_action+0x4c/0xc0\n[ 2845.743742]  [\u003cc0132eb7\u003e] __do_softirq+0xa7/0x170\n[ 2845.743742]  [\u003cc0116dec\u003e] ? ack_apic_level+0x5c/0x1c0\n[ 2845.743742]  [\u003cc0132fd7\u003e] do_softirq+0x57/0x60\n[ 2845.743742]  [\u003cc01333dc\u003e] irq_exit+0x7c/0x90\n[ 2845.743742]  [\u003cc01055bb\u003e] do_IRQ+0x4b/0x90\n[ 2845.743742]  [\u003cc01333d5\u003e] ? irq_exit+0x75/0x90\n[ 2845.743742]  [\u003cc010392c\u003e] common_interrupt+0x2c/0x34\n[ 2845.743742]  [\u003cc010a14f\u003e] ? mwait_idle+0x4f/0x70\n[ 2845.743742]  [\u003cc0101c05\u003e] cpu_idle+0x65/0xb0\n[ 2845.743742]  [\u003cc045731e\u003e] rest_init+0x4e/0x60\n[ 2845.743742] ---[ end trace 4c985b38f02227a1 ]---\n[ 2845.743742] Rebooting in 3 seconds..\n\nMy logitec bluetooth mouse trying connect to pc, but\npc side reject the connection again and again. then panic happens.\n\nThe reason is due to hci_conn_del_sysfs now called in hci_event_packet,\nthe del work is done in a workqueue, so it\u0027s possible done before\nskb_queue_purge called.\n\nI move the hci_conn_del_sysfs after skb_queue_purge just as that before\nmarcel\u0027s commit.\n\nRemove the hci_conn_del_sysfs in hci_conn_hash_flush as well due to\nhci_conn_del will deal with the work.\n\nSigned-off-by: Dave Young \u003chidave.darkstar@gmail.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": "37e62f5516cfb210e64fe53457932df4341b0ad1",
      "tree": "7bf4d14be4acbc9f9198d5dedb5ed5fb9badb729",
      "parents": [
        "2a517ca687232adc8f14893730644da712010ffc"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 17 21:49:33 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:48 2009 +0100"
      },
      "message": "Bluetooth: Fix RFCOMM usage of in-kernel L2CAP sockets\n\nThe CID value of L2CAP sockets need to be set to zero. All userspace\napplications do this via memset() on the sockaddr_l2 structure. The\nRFCOMM implementation uses in-kernel L2CAP sockets and so it has to\nmake sure that l2_cid is set to zero.\n\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": "8bf4794174659b06d43cc5e290cd384757374613",
      "tree": "d728d18b4725e1b4f4b421703e020af16772008c",
      "parents": [
        "d5f2d2be68876f65dd051b978a7b66265fde9ffd"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Feb 16 02:59:49 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:47 2009 +0100"
      },
      "message": "Bluetooth: Change RFCOMM to use BT_CONNECT2 for BT_DEFER_SETUP\n\nWhen BT_DEFER_SETUP is enabled on a RFCOMM socket, then switch its\ncurrent state from BT_OPEN to BT_CONNECT2. This gives the Bluetooth\ncore a unified way to handle L2CAP and RFCOMM sockets. The BT_CONNECT2\nstate is designated for incoming connections.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "d5f2d2be68876f65dd051b978a7b66265fde9ffd",
      "tree": "bb2a9023185a8d4812dfc99634c041fddcfc64e5",
      "parents": [
        "96a3183322cba1a2846771b067c99b9d6f481263"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Feb 16 02:57:30 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:46 2009 +0100"
      },
      "message": "Bluetooth: Fix poll() misbehavior when using BT_DEFER_SETUP\n\nWhen BT_DEFER_SETUP has been enabled on a Bluetooth socket it keeps\nsignaling POLLIN all the time. This is a wrong behavior. The POLLIN\nshould only be signaled if the client socket is in BT_CONNECT2 state\nand the parent has been BT_DEFER_SETUP enabled.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "96a3183322cba1a2846771b067c99b9d6f481263",
      "tree": "fde0c0d4c7ad3033acbeadfe67c79fa539e50feb",
      "parents": [
        "00ae4af91d8c5b6814e2bb3bfaaf743845f989eb"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Feb 12 16:23:03 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:44 2009 +0100"
      },
      "message": "Bluetooth: Set authentication requirement before requesting it\n\nThe authentication requirement got only updated when the security level\nincreased. This is a wrong behavior. The authentication requirement is\nread by the Bluetooth daemon to make proper decisions when handling the\nIO capabilities exchange. So set the value that is currently expected by\nthe higher layers like L2CAP and RFCOMM.\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"
    }
  ],
  "next": "f29972de8e7476706ab3c01304a505e7c95d9040"
}
