)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "f29972de8e7476706ab3c01304a505e7c95d9040",
      "tree": "966729f6b80d0e149b0ece4367d27f52306cc8cb",
      "parents": [
        "e1027a7c69700301d14db03d2e049ee60c4f92df"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Feb 12 05:07:45 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:42 2009 +0100"
      },
      "message": "Bluetooth: Add CID field to L2CAP socket address structure\n\nIn preparation for L2CAP fixed channel support, the CID value of a\nL2CAP connection needs to be accessible via the socket interface. The\nCID is the connection identifier and exists as source and destination\nvalue. So extend the L2CAP socket address structure with this field and\nchange getsockname() and getpeername() to fill it in.\n\nThe bind() and connect() functions have been modified to handle L2CAP\nsocket address structures of variable sizes. This makes them future\nproof if additional fields need to be added.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "e1027a7c69700301d14db03d2e049ee60c4f92df",
      "tree": "d2dc9bc993deec30c8e9a797592458286e89e31b",
      "parents": [
        "435fef20acfc48f46476abad55b0cd3aa47b8365"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Feb 09 09:18:02 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:42 2009 +0100"
      },
      "message": "Bluetooth: Request L2CAP fixed channel list if available\n\nIf the extended features mask indicates support for fixed channels,\nrequest the list of available fixed channels. This also enables the\nfixed channel features bit so remote implementations can request\ninformation about it. Currently only the signal channel will be\nlisted.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "435fef20acfc48f46476abad55b0cd3aa47b8365",
      "tree": "8871de70ce8fedb293683b73d56d09582318ced0",
      "parents": [
        "6a8d3010b313d99adbb28f1826fac0234395bb26"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Feb 09 03:55:28 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:41 2009 +0100"
      },
      "message": "Bluetooth: Don\u0027t enforce authentication for L2CAP PSM 1 and 3\n\nThe recommendation for the L2CAP PSM 1 (SDP) is to not use any kind\nof authentication or encryption. So don\u0027t trigger authentication\nfor incoming and outgoing SDP connections.\n\nFor L2CAP PSM 3 (RFCOMM) there is no clear requirement, but with\nBluetooth 2.1 the initiator is required to enable authentication\nand encryption first and this gets enforced. So there is no need\nto trigger an additional authentication step. The RFCOMM service\nsecurity will make sure that a secure enough link key is present.\n\nWhen the encryption gets enabled after the SDP connection setup,\nthen switch the security level from SDP to low security.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "6a8d3010b313d99adbb28f1826fac0234395bb26",
      "tree": "e116cd7033e05e0e59b225484991e2a27188fc3e",
      "parents": [
        "984947dc64f82bc6cafa4d84ba1a139718f634a8"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 06 23:56:36 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:41 2009 +0100"
      },
      "message": "Bluetooth: Fix double L2CAP connection request\n\nIf the remote L2CAP server uses authentication pending stage and\nencryption is enabled it can happen that a L2CAP connection request is\nsent twice due to a race condition in the connection state machine.\n\nWhen the remote side indicates any kind of connection pending, then\ntrack this state and skip sending of L2CAP commands for this period.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "984947dc64f82bc6cafa4d84ba1a139718f634a8",
      "tree": "f85e4b260034f5b5a20af7a63900ee7de06fa7ad",
      "parents": [
        "657e17b03c80bec817975984d221bef716f83558"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 06 23:35:19 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:41 2009 +0100"
      },
      "message": "Bluetooth: Fix race condition with L2CAP information request\n\nWhen two L2CAP connections are requested quickly after the ACL link has\nbeen established there exists a window for a race condition where a\nconnection request is sent before the information response has been\nreceived. Any connection request should only be sent after an exchange\nof the extended features mask has been finished.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "657e17b03c80bec817975984d221bef716f83558",
      "tree": "a307dbea02929a8275c8c6fac5e5e95052632406",
      "parents": [
        "0684e5f9fb9e3f7e168ab831dfca693bcb44805b"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 06 19:45:36 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:40 2009 +0100"
      },
      "message": "Bluetooth: Set authentication requirements if not available\n\nWhen no authentication requirements are selected, but an outgoing or\nincoming connection has requested any kind of security enforcement,\nthen set these authentication requirements.\n\nThis ensures that the userspace always gets informed about the\nauthentication requirements (if available). Only when no security\nenforcement has happened, the kernel will signal invalid requirements.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "0684e5f9fb9e3f7e168ab831dfca693bcb44805b",
      "tree": "1fb1315dff64ef2ebaa24729988b2c3b7c77d578",
      "parents": [
        "efc7688b557dd1be10eead7399b315efcb1dbc74"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Feb 09 02:48:38 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:40 2009 +0100"
      },
      "message": "Bluetooth: Use general bonding whenever possible\n\nWhen receiving incoming connection to specific services, always use\ngeneral bonding. This ensures that the link key gets stored and can be\nused for further authentications.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "efc7688b557dd1be10eead7399b315efcb1dbc74",
      "tree": "f51d32d047bbf27a106db679292c10a81b339836",
      "parents": [
        "255c76014af74165428e7aa16414b857e2bdccf2"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 06 09:13:37 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:37 2009 +0100"
      },
      "message": "Bluetooth: Add SCO fallback for eSCO connection attempts\n\nWhen attempting to setup eSCO connections it can happen that some link\nmanager implementations fail to properly negotiate the eSCO parameters\nand thus fail the eSCO setup. Normally the link manager is responsible\nfor the negotiation of the parameters and actually fallback to SCO if\nno agreement can be reached. In cases where the link manager is just too\nstupid, then at least try to establish a SCO link if eSCO fails.\n\nFor the Bluetooth devices with EDR support this includes handling packet\ntypes of EDR basebands. This is particular tricky since for the EDR the\nlogic of enabling/disabling one specific packet type is turned around.\nThis fix contains an extra bitmask to disable eSCO EDR packet when\ntrying to fallback to a SCO connection.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "255c76014af74165428e7aa16414b857e2bdccf2",
      "tree": "6c13e5413ce88e80780b02c80be00341db68cb78",
      "parents": [
        "43c2e57f94c15744495fee564610aa24602b3824"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Feb 04 21:07:19 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:36 2009 +0100"
      },
      "message": "Bluetooth: Don\u0027t check encryption for L2CAP raw sockets\n\nFor L2CAP sockets with medium and high security requirement a missing\nencryption will enforce the closing of the link. For the L2CAP raw\nsockets this is not needed, so skip that check.\n\nThis fixes a crash when pairing Bluetooth 2.0 (and earlier) devices\nsince the L2CAP state machine got confused and then locked up the whole\nsystem.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "6e1031a40029492c10509e8c3dcac9b611438ccb",
      "tree": "534b3b4c4b1495ae0f948453bf54e0d71e1216f5",
      "parents": [
        "34a55eda483e8177c9044f93fd2c9107f02bf1c7"
      ],
      "author": {
        "name": "Jaikumar Ganesh",
        "email": "jaikumar@google.com",
        "time": "Mon Feb 02 18:03:57 2009 -0800"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:35 2009 +0100"
      },
      "message": "Bluetooth: When encryption is dropped, do not send RFCOMM packets\n\nDuring a role change with pre-Bluetooth 2.1 devices, the remote side drops\nthe encryption of the RFCOMM connection. We allow a grace period for the\nencryption to be re-established, before dropping the connection. During\nthis grace period, the RFCOMM_SEC_PENDING flag is set. Check this flag\nbefore sending RFCOMM packets.\n\nSigned-off-by: Jaikumar Ganesh \u003cjaikumar@google.com\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "dd2efd03b49d56ae795c71335bc7358022514c32",
      "tree": "b526ac010310b6064c43addd4a80b884ca96c50d",
      "parents": [
        "5f9018af004fa8635bbbe3ab2dc61e8a686edfaa"
      ],
      "author": {
        "name": "Dave Young",
        "email": "hidave.darkstar@gmail.com",
        "time": "Sat Jan 31 13:51:15 2009 +0800"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:34 2009 +0100"
      },
      "message": "Bluetooth: Remove CONFIG_DEBUG_LOCK_ALLOC ifdefs\n\nDue to lockdep changes, the CONFIG_DEBUG_LOCK_ALLOC ifdef is not needed\nnow. So just remove it here.\n\nThe following commit fixed the !lockdep build warnings:\n\ncommit e8f6fbf62de37cbc2e179176ac7010d5f4396b67\nAuthor: Ingo Molnar \u003cmingo@elte.hu\u003e\nDate:   Wed Nov 12 01:38:36 2008 +0000\n\n    lockdep: include/linux/lockdep.h - fix warning in net/bluetooth/af_bluetooth.c\n\nSigned-off-by: Dave Young \u003chidave.darkstar@gmail.com\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "5f9018af004fa8635bbbe3ab2dc61e8a686edfaa",
      "tree": "7d31fb740d7ddff8835c7ece90780a47ae1559cc",
      "parents": [
        "0588d94fd7e414367a7ae517569d2222441c255f"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Jan 16 10:09:50 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:34 2009 +0100"
      },
      "message": "Bluetooth: Update version numbers\n\nWith the support for the enhanced security model and the support for\ndeferring connection setup, it is a good idea to increase various\nversion numbers.\n\nThis is purely cosmetic and has no effect on the behavior, but can\nbe really helpful when debugging problems in different kernel versions.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "0588d94fd7e414367a7ae517569d2222441c255f",
      "tree": "c8563ce159bbea94e57df39a9b27bb1628ebccdd",
      "parents": [
        "f62e4323ab43c59e7cd7f72c1eb392d7c767ce5a"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Jan 16 10:06:13 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:33 2009 +0100"
      },
      "message": "Bluetooth: Restrict application of socket options\n\nThe new socket options should only be evaluated for SOL_BLUETOOTH level\nand not for every other level. Previously this causes some minor issues\nwhen detecting if a kernel with certain features is available.\n\nAlso restrict BT_SECURITY to SOCK_SEQPACKET for L2CAP and SOCK_STREAM for\nthe RFCOMM protocol.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "f62e4323ab43c59e7cd7f72c1eb392d7c767ce5a",
      "tree": "8ee582e12c91260ee4eccecbbe2fe055b41d97aa",
      "parents": [
        "8c84b83076b5062f59b6167cdda90d9e5124aa71"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Jan 15 21:58:44 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:33 2009 +0100"
      },
      "message": "Bluetooth: Disconnect L2CAP connections without encryption\n\nFor L2CAP connections with high security setting, the link will be\nimmediately dropped when the encryption gets disabled. For L2CAP\nconnections with medium security there will be grace period where\nthe remote device has the chance to re-enable encryption. If it\ndoesn\u0027t happen then the link will also be disconnected.\n\nThe requirement for the grace period with medium security comes from\nBluetooth 2.0 and earlier devices that require role switching.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "8c84b83076b5062f59b6167cdda90d9e5124aa71",
      "tree": "7a47b0b80be4222494b272846ad5233f0d04c6e6",
      "parents": [
        "9f2c8a03fbb3048cf38b158f87aa0c3c09bca084"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Jan 16 08:17:51 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:33 2009 +0100"
      },
      "message": "Bluetooth: Pause RFCOMM TX when encryption drops\n\nA role switch with devices following the Bluetooth pre-2.1 standards\nor without Encryption Pause and Resume support is not possible if\nencryption is enabled. Most newer headsets require the role switch,\nbut also require that the connection is encrypted.\n\nFor connections with a high security mode setting, the link will be\nimmediately dropped. When the connection uses medium security mode\nsetting, then a grace period is introduced where the TX is halted and\nthe remote device gets a change to re-enable encryption after the\nrole switch. If not re-enabled the link will be dropped.\n\nBased on initial work by Ville Tervo \u003cville.tervo@nokia.com\u003e\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "9f2c8a03fbb3048cf38b158f87aa0c3c09bca084",
      "tree": "b8e81e5a8e3f0b8b8a15c06f1cf36e8aa02644e2",
      "parents": [
        "2af6b9d518ddfbc4d6990d5f9c9b1a05341c1cef"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Jan 15 21:58:40 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:26 2009 +0100"
      },
      "message": "Bluetooth: Replace RFCOMM link mode with security level\n\nChange the RFCOMM internals to use the new security levels and remove\nthe link mode details.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "2af6b9d518ddfbc4d6990d5f9c9b1a05341c1cef",
      "tree": "62b6f679495026ccf64c1b71d48cede452689b73",
      "parents": [
        "8c1b235594fbab9a13240a1dac12ea9fd99b6440"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Jan 15 21:58:38 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:26 2009 +0100"
      },
      "message": "Bluetooth: Replace L2CAP link mode with security level\n\nChange the L2CAP internals to use the new security levels and remove\nthe link mode details.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "8c1b235594fbab9a13240a1dac12ea9fd99b6440",
      "tree": "eb137a23e0fd8199144a4c3e36902af411e44269",
      "parents": [
        "c89b6e6bda4c8021195778f47567d0cc9dbfe7ec"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Jan 15 21:58:04 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:25 2009 +0100"
      },
      "message": "Bluetooth: Add enhanced security model for Simple Pairing\n\nThe current security model is based around the flags AUTH, ENCRYPT and\nSECURE. Starting with support for the Bluetooth 2.1 specification this is\nno longer sufficient. The different security levels are now defined as\nSDP, LOW, MEDIUM and SECURE.\n\nPreviously it was possible to set each security independently, but this\nactually doesn\u0027t make a lot of sense. For Bluetooth the encryption depends\non a previous successful authentication. Also you can only update your\nexisting link key if you successfully created at least one before. And of\ncourse the update of link keys without having proper encryption in place\nis a security issue.\n\nThe new security levels from the Bluetooth 2.1 specification are now\nused internally. All old settings are mapped to the new values and this\nway it ensures that old applications still work. The only limitation\nis that it is no longer possible to set authentication without also\nenabling encryption. No application should have done this anyway since\nthis is actually a security issue. Without encryption the integrity of\nthe authentication can\u0027t be guaranteed.\n\nAs default for a new L2CAP or RFCOMM connection, the LOW security level\nis used. The only exception here are the service discovery sessions on\nPSM 1 where SDP level is used. To have similar security strength as with\na Bluetooth 2.0 and before combination key, the MEDIUM level should be\nused. This is according to the Bluetooth specification. The MEDIUM level\nwill not require any kind of man-in-the-middle (MITM) protection. Only\nthe HIGH security level will require this.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "c89b6e6bda4c8021195778f47567d0cc9dbfe7ec",
      "tree": "babe74bb0f318f26c572859e067a4c8d1d4d43a9",
      "parents": [
        "71aeeaa1fd88fe7446391e0553336f0e0c2cfe6a"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Jan 15 21:57:03 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:25 2009 +0100"
      },
      "message": "Bluetooth: Fix SCO state handling for incoming connections\n\nWhen the remote device supports only SCO connections, on receipt of\nthe HCI_EV_CONN_COMPLETE event packet, the connect state is changed to\nBT_CONNECTED, but the socket state is not updated. Hence, the connect()\ncall times out even though the SCO connection has been successfully\nestablished.\n\nBased on a report by Jaikumar Ganesh \u003cjaikumar@google.com\u003e\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "71aeeaa1fd88fe7446391e0553336f0e0c2cfe6a",
      "tree": "54ebd367cc0d8deb1de919f9c3c69782120ef97f",
      "parents": [
        "f66dc81f44d918ee1aa1a9d821bb2f25c7592bc0"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Jan 15 21:57:02 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:24 2009 +0100"
      },
      "message": "Bluetooth: Reject incoming SCO connections without listeners\n\nAll SCO and eSCO connection are auto-accepted no matter if there is a\ncorresponding listening socket for them. This patch changes this and\nconnection requests for SCO and eSCO without any socket are rejected.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "f66dc81f44d918ee1aa1a9d821bb2f25c7592bc0",
      "tree": "fe9030b58a7fac0d85dbed2da9f33702aab2e9b5",
      "parents": [
        "bb23c0ab824653be4aa7dfca15b07b3059717004"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Jan 15 21:57:00 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:24 2009 +0100"
      },
      "message": "Bluetooth: Add support for deferring L2CAP connection setup\n\nIn order to decide if listening L2CAP sockets should be accept()ed\nthe BD_ADDR of the remote device needs to be known. This patch adds\na socket option which defines a timeout for deferring the actual\nconnection setup.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "bb23c0ab824653be4aa7dfca15b07b3059717004",
      "tree": "bd0390c67d129e8b5ddc2a70a1b12e383db6fa16",
      "parents": [
        "c4f912e155504e94dd4f3d63c378dab0ff03dbda"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Jan 15 21:56:48 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:23 2009 +0100"
      },
      "message": "Bluetooth: Add support for deferring RFCOMM connection setup\n\nIn order to decide if listening RFCOMM sockets should be accept()ed\nthe BD_ADDR of the remote device needs to be known. This patch adds\na socket option which defines a timeout for deferring the actual\nconnection setup.\n\nThe connection setup is done after reading from the socket for the\nfirst time. Until then writing to the socket returns ENOTCONN.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "c4f912e155504e94dd4f3d63c378dab0ff03dbda",
      "tree": "db544bdd0dfc8ca890193a29b161b551f20f543c",
      "parents": [
        "d58daf42d29a3a4a4d4be46cf47ceee096789680"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Jan 15 21:52:16 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:23 2009 +0100"
      },
      "message": "Bluetooth: Add global deferred socket parameter\n\nThe L2CAP and RFCOMM applications require support for authorization\nand the ability of rejecting incoming connection requests. The socket\ninterface is not really able to support this.\n\nThis patch does the ground work for a socket option to defer connection\nsetup. Setting this option allows calling of accept() and then the\nfirst read() will trigger the final connection setup. Calling close()\nwould reject the connection.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "d58daf42d29a3a4a4d4be46cf47ceee096789680",
      "tree": "c88a5820a44fe993e271437b0fcebdde7e8298d3",
      "parents": [
        "91aa35a5aa3540223066bf6b51c935418c63a35d"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Jan 15 21:52:14 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:22 2009 +0100"
      },
      "message": "Bluetooth: Preparation for usage of SOL_BLUETOOTH\n\nThe socket option levels SOL_L2CAP, SOL_RFOMM and SOL_SCO are currently\nin use by various Bluetooth applications. Going forward the common\noption level SOL_BLUETOOTH should be used. This patch prepares the clean\nsplit of the old and new option levels while keeping everything backward\ncompatibility.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "91aa35a5aa3540223066bf6b51c935418c63a35d",
      "tree": "ff9e15db0b2e029a7704e4ba8b1f138b6805dbef",
      "parents": [
        "f11c179eea77b8afc2fb7cb4b9a8815b85e3c16f"
      ],
      "author": {
        "name": "Victor Shcherbatyuk",
        "email": "victor.shcherbatyuk@tomtom.com",
        "time": "Thu Jan 15 21:52:12 2009 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 27 06:14:21 2009 +0100"
      },
      "message": "Bluetooth: Fix issue with return value of rfcomm_sock_sendmsg()\n\nIn case of connection failures the rfcomm_sock_sendmsg() should return\nan error and not a 0 value.\n\nSigned-off-by: Victor Shcherbatyuk \u003cvictor.shcherbatyuk@tomtom.com\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "b4d7f0a46bc0e30514b1779caff0fce6e424c4b5",
      "tree": "7dcd0b1620b62e11aa1d7346df379ce369d5f19e",
      "parents": [
        "43a67304a3e882ec297e08159f8698be59a235fe"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Wed Jan 07 17:23:17 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 07 17:23:17 2009 -0800"
      },
      "message": "bluetooth: driver API update\n\nConvert to net_device_ops and use internal net_device_stats in bnep\ndevice. \n\nNote: no need for bnep_net_ioctl since if ioctl is not set, then\ndev_ifsioc handles it by returning -EOPNOTSUPP\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nAcked-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6332178d91ca1a9dbd99bd97cabbcf965d178e9f",
      "tree": "d98af2cbc7ff0e9e4d00b6cc8c79b05ca7815a5f",
      "parents": [
        "908a7a16b852ffd618a9127be8d62432182d81b4",
        "739840d529eb7505d3cbfe9d468bf1440c9a8e27"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 23 17:56:23 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 23 17:56:23 2008 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\n\tdrivers/net/ppp_generic.c\n"
    },
    {
      "commit": "1b08534e562dae7b084326f8aa8cc12a4c1b6593",
      "tree": "9fcc3093d7002015d334a28b0b0e21527ed5dcf7",
      "parents": [
        "3298a7388c00227e736d1037328788073c80c7b4"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yjwei@cn.fujitsu.com",
        "time": "Thu Dec 18 19:35:10 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 18 19:35:10 2008 -0800"
      },
      "message": "net: Fix module refcount leak in kernel_accept()\n\nThe kernel_accept() does not hold the module refcount of newsock-\u003eops-\u003eowner,\nso we need __module_get(newsock-\u003eops-\u003eowner) code after call kernel_accept()\nby hand.\nIn sunrpc, the module refcount is missing to hold. So this cause kernel panic.\n\nUsed following script to reproduct:\n\nwhile [ 1 ];\ndo\n    mount -t nfs4 192.168.0.19:/ /mnt\n    touch /mnt/file\n    umount /mnt\n    lsmod | grep ipv6\ndone\n\nThis patch fixed the problem by add __module_get(newsock-\u003eops-\u003eowner) to\nkernel_accept(). So we do not need to used __module_get(newsock-\u003eops-\u003eowner)\nin every place when used kernel_accept().\n\nSigned-off-by: Wei Yongjun \u003cyjwei@cn.fujitsu.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "037322abe6141e32e1b1dea86a9405d52c99be5d",
      "tree": "f223a6e44f8243cef4d937ad4091af55e21424b7",
      "parents": [
        "0eae1b98cf3022715b5a6ea5f1ac6b0bd7ac4edd"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Sun Dec 14 23:18:00 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 14 23:18:00 2008 -0800"
      },
      "message": "bt/rfcomm/tty: join error paths\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e19caae7177fcc732ae1b47135e39f577352adb2",
      "tree": "f212c02bd6888bc6c4a30db6ab3278f365a6fccc",
      "parents": [
        "bcb09dc276e706ed6f22813ba774797125f3da0a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 09 01:04:27 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 09 01:04:27 2008 -0800"
      },
      "message": "bluetooth: Fix unused var warning properly in rfcomm_sock_ioctl().\n\nAs Stephen Rothwell points out, we don\u0027t want \u0027sock\u0027 here but\nrather we really do want \u0027sk\u0027.\n\nThis local var is protected by all sorts of bluetooth debugging\nkconfig vars, but BT_DBG() is just a straight pr_debug() call\nwhich is unconditional.\n\npr_debug() evaluates it\u0027s args only if either DEBUG or\nCONFIG_DYNAMIC_PRINTK_DEBUG is defined.\n\nSolving this inside of the BT_DBG() macro is non-trivial since\nit\u0027s varargs.  And these ifdefs are ugly.\n\nSo, just mark this \u0027sk\u0027 thing __maybe_unused and kill the ifdefs.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6cf1a0f856bcb5423bfb4121b2dfeaa3ba7b1ff2",
      "tree": "cc1ea9def5bfbe95a91add565f04b0fd4f08685f",
      "parents": [
        "e42130039c85826567d4e4864f2c7492578576cb"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 09 00:01:53 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 09 00:01:53 2008 -0800"
      },
      "message": "bluetooth: Fix rfcomm_sock_ioctl() build failure with debugging enabled.\n\nIt\u0027s \u0027sock\u0027 not \u0027sk\u0027.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9a5df92374d65e2886b92e98dd7d873c533a83ff",
      "tree": "0e45cc166ce12c42cb7a94cac2dd82e255552120",
      "parents": [
        "2e792995e4cb425422dc379c3618447c462756a8"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Nov 30 12:17:29 2008 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Nov 30 12:17:29 2008 +0100"
      },
      "message": "Bluetooth: Fix RFCOMM release oops when device is still in use\n\nIt turns out that the following sequence of actions will reproduce the\noops:\n\n  1. Create a new RFCOMM device (using RFCOMMCREATEDEV ioctl)\n  2. (Try to) open the device\n  3. Release the RFCOMM device (using RFCOMMRELEASEDEV ioctl)\n\nAt this point, the \"/dev/rfcomm*\" device is still in use, but it is gone\nfrom the internal list, so the device id can be reused.\n\n  4. Create a new RFCOMM device with the same device id as before\n\nAnd now kobject will complain that the TTY already exists.\n\n(See http://lkml.org/lkml/2008/7/13/89 for a reproducible test-case.)\n\nThis patch attempts to correct this by only removing the device from the\ninternal list of devices at the final unregister stage, so that the id\nwon\u0027t get reused until the device has been completely destructed.\n\nThis should be safe as the RFCOMM_TTY_RELEASED bit will be set for the\ndevice and prevent the device from being reopened after it has been\nreleased.\n\nBased on a report from Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "2e792995e4cb425422dc379c3618447c462756a8",
      "tree": "e3953a7a98290718efe591abdc72ea945428774e",
      "parents": [
        "a418b893a6af11ae73c762ed5b76c1bad6dc19d8"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Nov 30 12:17:29 2008 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Nov 30 12:17:29 2008 +0100"
      },
      "message": "Bluetooth: Fix format arguments warning\n\nNewer GCC versions are a little bit picky about how to deal with format\narguments:\n\nnet/bluetooth/hci_sysfs.c: In function ‘hci_register_sysfs’:\nnet/bluetooth/hci_sysfs.c:418: warning: format not a string literal and no format arguments\n\nIt is simple enough to fix and makes the compiler happy.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "a418b893a6af11ae73c762ed5b76c1bad6dc19d8",
      "tree": "a24f9192988e4d55077d77420b90dc3cfd647a06",
      "parents": [
        "5ddd4a60683f819982b7bd3d1aee972f931c11a3"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Nov 30 12:17:28 2008 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Nov 30 12:17:28 2008 +0100"
      },
      "message": "Bluetooth: Enable per-module dynamic debug messages\n\nWith the introduction of CONFIG_DYNAMIC_PRINTK_DEBUG it is possible to\nallow debugging without having to recompile the kernel. This patch turns\nall BT_DBG() calls into pr_debug() to support dynamic debug messages.\n\nAs a side effect all CONFIG_BT_*_DEBUG statements are now removed and\nsome broken debug entries have been fixed.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "7a9d4020533b5c0c615b6de3be154c9ff30b8cc9",
      "tree": "7d2957eb96f87f9ba8fcaf8c28aa7f4e93740fb6",
      "parents": [
        "12421b40b81d101d7535e03f1af197365adc932b"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Nov 30 12:17:26 2008 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Nov 30 12:17:26 2008 +0100"
      },
      "message": "Bluetooth: Send HCI Reset command by default on device initialization\n\nThe Bluetooth subsystem was not using the HCI Reset command when doing\ndevice initialization. The Bluetooth 1.0b specification was ambiguous\non how the device firmware was suppose to handle it. Almost every device\nwas triggering a transport reset at the same time. In case of USB this\nended up in disconnects from the bus.\n\nAll modern Bluetooth dongles handle this perfectly fine and a lot of\nthem actually require that HCI Reset is sent. If not then they are\neither stuck in their HID Proxy mode or their internal structures for\ninquiry and paging are not correctly setup.\n\nTo handle old and new devices smoothly the Bluetooth subsystem contains\na quirk to force the HCI Reset on initialization. However maintaining\nsuch a quirk becomes more and more complicated. This patch turns the\nlogic around and lets the old devices disable the HCI Reset command.\n\nThe only device where the HCI_QUIRK_NO_RESET is still needed are the\noriginal Digianswer devices and dongles with an early CSR firmware.\n\nCSR reported that they fixed this for version 12 firmware. The last\nofficial release of version 11 firmware is build ID 115. The first\nversion 12 candidate was build ID 117.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "db7aa1c203d477351ed1b8f394b40d9df06ddfc4",
      "tree": "7a53a4e408eedca8e9342b7085ffd9de322919e3",
      "parents": [
        "c6bf514c6e0171c5b731beffaa0c4463e2335f3d"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Nov 30 12:17:19 2008 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Nov 30 12:17:19 2008 +0100"
      },
      "message": "Bluetooth: Fix warnings for bt_key_strings and bt_slock_key_strings\n\nAfter adding proper lockdep annotations for Bluetooth protocols the case\nwhen lockdep is disabled produced two compiler warnings:\n\nnet/bluetooth/af_bluetooth.c:60: warning: ‘bt_key_strings’ defined but not used\nnet/bluetooth/af_bluetooth.c:71: warning: ‘bt_slock_key_strings’ defined but not used\n\nFix both of them by adding a CONFIG_DEBUG_LOCK_ALLOC conditional around\nthem and re-arranging the code a little bit.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "c6bf514c6e0171c5b731beffaa0c4463e2335f3d",
      "tree": "a7a2a7ac9f39175173b1835901e9763762adddd8",
      "parents": [
        "7644d63d1348ec044ccd8f775fefe5eb7cbcac69"
      ],
      "author": {
        "name": "Vegard Nossum",
        "email": "vegard.nossum@gmail.com",
        "time": "Sun Nov 30 12:17:19 2008 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Nov 30 12:17:19 2008 +0100"
      },
      "message": "Bluetooth: Fix leak of uninitialized data to userspace\n\n    struct hci_dev_list_req {\n            __u16  dev_num;\n            struct hci_dev_req dev_req[0];  /* hci_dev_req structures */\n    };\n\nsizeof(struct hci_dev_list_req) \u003d\u003d 4, so the two bytes immediately\nfollowing \"dev_num\" will never be initialized. When this structure\nis copied to userspace, these uninitialized bytes are leaked.\n\nFix by using kzalloc() instead of kmalloc(). Found using kmemcheck.\n\nSigned-off-by: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "45555c0ed436b8b06eeaa5c524a3377e6d24fb45",
      "tree": "b339a04dbcb47cfaf3c3a489624b7b404e229be5",
      "parents": [
        "ff0db0490a2eb6db4f03870987c5c8e3dd81e747"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 25 16:59:21 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 25 16:59:21 2008 -0800"
      },
      "message": "bluetooth: fix warning in net/bluetooth/rfcomm/sock.c\n\nfix this warning:\n\n  net/bluetooth/rfcomm/sock.c: In function ‘rfcomm_sock_ioctl’:\n  net/bluetooth/rfcomm/sock.c:795: warning: unused variable ‘sk’\n\nperhaps BT_DEBUG() should be improved to do printf format checking\ninstead of the #ifdef, but that looks quite intrusive: each bluetooth\n.c file undefines the macro.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "524ad0a79126efabf58d0a49eace6155ab5b4549",
      "tree": "927e79d7d28d2c563c5beba74f06527df564e31c",
      "parents": [
        "8f15ea42b64941001a401cf855a0869e24f3a845"
      ],
      "author": {
        "name": "Wang Chen",
        "email": "wangchen@cn.fujitsu.com",
        "time": "Wed Nov 12 23:39:10 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 12 23:39:10 2008 -0800"
      },
      "message": "netdevice: safe convert to netdev_priv() #part-4\n\nWe have some reasons to kill netdev-\u003epriv:\n1. netdev-\u003epriv is equal to netdev_priv().\n2. netdev_priv() wraps the calculation of netdev-\u003epriv\u0027s offset, obviously\n   netdev_priv() is more flexible than netdev-\u003epriv.\nBut we cann\u0027t kill netdev-\u003epriv, because so many drivers reference to it\ndirectly.\n\nThis patch is a safe convert for netdev-\u003epriv to netdev_priv(netdev).\nSince all of the netdev-\u003epriv is only for read.\nBut it is too big to be sent in one mail.\nI split it to 4 parts and make every part smaller than 100,000 bytes,\nwhich is max size allowed by vger.\n\nSigned-off-by: Wang Chen \u003cwangchen@cn.fujitsu.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fb28ad35906af2f042c94e2f9c0f898ef9acfa37",
      "tree": "ee3d535ab38d680b424a857406789f8c28bf5266",
      "parents": [
        "23779897546c1effb546ff89b89803d9d955d517"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Mon Nov 10 13:55:14 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 10 13:55:14 2008 -0800"
      },
      "message": "net: struct device - replace bus_id with dev_name(), dev_set_name()\n\nAcked-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d2ad3ca88da02baeccd5216780f1fe983c6953ba",
      "tree": "62858c1c1f89cf4abe17f5e4e0812b1b528fbd18",
      "parents": [
        "265eb67fb4e16be8e46a51e1e4e2ecd99fb15219"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 03 22:01:07 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 03 22:01:07 2008 -0800"
      },
      "message": "net/: Kill now superfluous -\u003elast_rx stores.\n\nThe generic packet receive code takes care of setting\nnetdev-\u003elast_rx when necessary, for the sake of the\nbonding ARP monitor.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b225ee5bed70254a100896c473e6dd8c2be45c18",
      "tree": "2f044d5898d15edcff858f624618c788d5b58760",
      "parents": [
        "2e532d68a2b3e2aa6b19731501222069735c741c",
        "95a5afca4a8d2e1cb77e1d4bc6ff9f718dc32f7a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 17 08:58:52 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 17 08:58:52 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:\n  net: Remove CONFIG_KMOD from net/ (towards removing CONFIG_KMOD entirely)\n  ipv4: Add a missing rcu_assign_pointer() in routing cache.\n  [netdrvr] ibmtr: PCMCIA IBMTR is ok on 64bit\n  xen-netfront: Avoid unaligned accesses to IP header\n  lmc: copy_*_user under spinlock\n  [netdrvr] myri10ge, ixgbe: remove broken select INTEL_IOATDMA\n"
    },
    {
      "commit": "95a5afca4a8d2e1cb77e1d4bc6ff9f718dc32f7a",
      "tree": "15452d28df4e4d76fc1276e791a7cc3c6e1a9b3a",
      "parents": [
        "00269b54edbf25f3bb0dccb558ae23a6fc77ed86"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Thu Oct 16 15:24:51 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Oct 16 15:24:51 2008 -0700"
      },
      "message": "net: Remove CONFIG_KMOD from net/ (towards removing CONFIG_KMOD entirely)\n\nSome code here depends on CONFIG_KMOD to not try to load\nprotocol modules or similar, replace by CONFIG_MODULES\nwhere more than just request_module depends on CONFIG_KMOD\nand and also use try_then_request_module in ebtables.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "93c10132a7ac160df3175b53f7ee857625412165",
      "tree": "64ea194ddd7791d44394bb2a918921a2906fe1ee",
      "parents": [
        "fea6f1833b5bbff7066bcde1fa1141c9717bbad2"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Fri Jun 27 00:04:24 2008 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Oct 14 23:50:56 2008 +0200"
      },
      "message": "HID: move connect quirks\n\nMove connecting from usbhid to the hid layer and fix also hidp in\nthat manner.\nThis removes all the ignore/force hidinput/hiddev connecting quirks.\n\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "8c19a51591d06f5226499972567f528cf6066bb7",
      "tree": "acfa47c0cb371c8b87f7282d19c627e44032dbe2",
      "parents": [
        "d458a9dfc4de24870b8c747484b1988726534bee"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Wed Jun 18 23:36:49 2008 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Oct 14 23:50:49 2008 +0200"
      },
      "message": "HID: move apple quirks\n\nMove them from the core code to a separate driver.\n\nSigned-off-by: Jiri Slaby \u003cjslaby@suse.cz\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "d458a9dfc4de24870b8c747484b1988726534bee",
      "tree": "6ffc58f210054f615c60a495b1a4493d8e7cef14",
      "parents": [
        "5f22a7992349c5ca3842190be52d5e9a1dd7adf4"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Fri May 16 11:49:20 2008 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Oct 14 23:50:49 2008 +0200"
      },
      "message": "HID: move ignore quirks\n\nMove ignore quirks from usbhid-quirks into hid-core code. Also don\u0027t output\nwarning when ENODEV is error code in usbhid and try ordinal input in hidp\nwhen that error is returned.\n\nSigned-off-by: Jiri Slaby \u003cjslaby@suse.cz\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "c500c9714011edab021591340042787722db9cf0",
      "tree": "d6bb0fe483c9f1c71c3d757e9c13d261ca01cd5f",
      "parents": [
        "85cdaf524b7ddab627e7d15405693f2511ef7505"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Fri May 16 11:49:16 2008 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Oct 14 23:50:48 2008 +0200"
      },
      "message": "HID: hid, make parsing event driven\n\nNext step for complete hid bus, this patch includes:\n- call parser either from probe or from hid-core if there is no probe.\n- add ll_driver structure and centralize some stuff there (open, close...)\n- split and merge usb_hid_configure and hid_probe into several functions\n  to allow hooks/fixes between them\n\nSigned-off-by: Jiri Slaby \u003cjslaby@suse.cz\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "85cdaf524b7ddab627e7d15405693f2511ef7505",
      "tree": "a85fb7c801df07842301c27dc57cf2eb5092f6ed",
      "parents": [
        "e8c84f9a5f06912c94c38961096c994da3890a2e"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Fri May 16 11:49:15 2008 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Oct 14 23:50:48 2008 +0200"
      },
      "message": "HID: make a bus from hid code\n\nMake a bus from hid core. This is the first step for converting all the\nquirks and separate almost-drivers into real drivers attached to this bus.\n\nIt\u0027s implemented to change behaviour in very tiny manner, so that no driver\nneeds to be changed this time.\n\nAlso add generic drivers for both usb and bt into usbhid or hidp\nrespectively which will bind all non-blacklisted device. Those blacklisted\nwill be either grabbed by special drivers or by nobody if they are broken at\nthe very rude base.\n\nSigned-off-by: Jiri Slaby \u003cjslaby@suse.cz\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "7c6a329e444725f24c02192ac493d8a7cd9fa638",
      "tree": "73a48d087108537a174290f3a8a01814313fbf63",
      "parents": [
        "69da6b87fcb270f758fe75141c32e041f8db510c"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Sep 12 03:11:54 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Sep 12 03:11:54 2008 +0200"
      },
      "message": "[Bluetooth] Fix regression from using default link policy\n\nTo speed up the Simple Pairing connection setup, the support for the\ndefault link policy has been enabled. This is in contrast to settings\nthe link policy on every connection setup. Using the default link policy\nis the preferred way since there is no need to dynamically change it for\nevery connection.\n\nFor backward compatibility reason and to support old userspace the\nHCISETLINKPOL ioctl has been switched over to using hci_request() to\nissue the HCI command for setting the default link policy instead of\njust storing it in the HCI device structure.\n\nHowever the hci_request() can only be issued when the device is\nbrought up. If used on a device that is registered, but still down\nit will timeout and fail. This is problematic since the command is\nput on the TX queue and the Bluetooth core tries to submit it to\nhardware that is not ready yet. The timeout for these requests is\n10 seconds and this causes a significant regression when setting up\na new device.\n\nThe userspace can perfectly handle a failure of the HCISETLINKPOL\nioctl and will re-submit it later, but the 10 seconds delay causes\na problem. So in case hci_request() is called on a device that is\nstill down, just fail it with ENETDOWN to indicate what happens.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "e7c29cb16c833441fd2160642bb13025f4e7ac70",
      "tree": "7ba44be60b7bf9c4e7bee459735ebabdc85eb8fd",
      "parents": [
        "09ab6f4c2376a0fc31abde1e2991513f900ea825"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Sep 09 07:19:20 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Sep 09 07:19:20 2008 +0200"
      },
      "message": "[Bluetooth] Reject L2CAP connections on an insecure ACL link\n\nThe Security Mode 4 of the Bluetooth 2.1 specification has strict\nauthentication and encryption requirements. It is the initiators job\nto create a secure ACL link. However in case of malicious devices, the\nacceptor has to make sure that the ACL is encrypted before allowing\nany kind of L2CAP connection. The only exception here is the PSM 1 for\nthe service discovery protocol, because that is allowed to run on an\ninsecure ACL link.\n\nPreviously it was enough to reject a L2CAP connection during the\nconnection setup phase, but with Bluetooth 2.1 it is forbidden to\ndo any L2CAP protocol exchange on an insecure link (except SDP).\n\nThe new hci_conn_check_link_mode() function can be used to check the\nintegrity of an ACL link. This functions also takes care of the cases\nwhere Security Mode 4 is disabled or one of the devices is based on\nan older specification.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "09ab6f4c2376a0fc31abde1e2991513f900ea825",
      "tree": "f002d719a8a9a2c6344f06a5b9346bc053b4054d",
      "parents": [
        "f1c08ca559387ab30992055596d54061dfa022b1"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Sep 09 07:19:20 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Sep 09 07:19:20 2008 +0200"
      },
      "message": "[Bluetooth] Enforce correct authentication requirements\n\nWith the introduction of Security Mode 4 and Simple Pairing from the\nBluetooth 2.1 specification it became mandatory that the initiator\nrequires authentication and encryption before any L2CAP channel can\nbe established. The only exception here is PSM 1 for the service\ndiscovery protocol (SDP). It is meant to be used without any encryption\nsince it contains only public information. This is how Bluetooth 2.0\nand before handle connections on PSM 1.\n\nFor Bluetooth 2.1 devices the pairing procedure differentiates between\nno bonding, general bonding and dedicated bonding. The L2CAP layer\nwrongly uses always general bonding when creating new connections, but it\nshould not do this for SDP connections. In this case the authentication\nrequirement should be no bonding and the just-works model should be used,\nbut in case of non-SDP connection it is required to use general bonding.\n\nIf the new connection requires man-in-the-middle (MITM) protection, it\nalso first wrongly creates an unauthenticated link key and then later on\nrequests an upgrade to an authenticated link key to provide full MITM\nprotection. With Simple Pairing the link key generation is an expensive\noperation (compared to Bluetooth 2.0 and before) and doing this twice\nduring a connection setup causes a noticeable delay when establishing\na new connection. This should be avoided to not regress from the expected\nBluetooth 2.0 connection times. The authentication requirements are known\nup-front and so enforce them.\n\nTo fulfill these requirements the hci_connect() function has been extended\nwith an authentication requirement parameter that will be stored inside\nthe connection information and can be retrieved by userspace at any\ntime. This allows the correct IO capabilities exchange and results in\nthe expected behavior.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "f1c08ca559387ab30992055596d54061dfa022b1",
      "tree": "ad95ceaf1d26b798a938ad09e2fec943a890dc11",
      "parents": [
        "24342c34a022ee90839873d91396045e12ef1090"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Sep 09 07:19:19 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Sep 09 07:19:19 2008 +0200"
      },
      "message": "[Bluetooth] Fix reference counting during ACL config stage\n\nThe ACL config stage keeps holding a reference count on incoming\nconnections when requesting the extended features. This results in\nkeeping an ACL link up without any users. The problem here is that\nthe Bluetooth specification doesn\u0027t define an ownership of the ACL\nlink and thus it can happen that the implementation on the initiator\nside doesn\u0027t care about disconnecting unused links. In this case the\nacceptor needs to take care of this.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "63fbd24e5102eecfc9d049ed7f4be7f9a25f814f",
      "tree": "9ead3c67300ce8bcdbe26d02ba264e84baea930a",
      "parents": [
        "90855d7b725d764d6d70503bcc1b494cf10ddc98"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Aug 18 13:23:53 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Aug 18 13:23:53 2008 +0200"
      },
      "message": "[Bluetooth] Consolidate maintainers information\n\nThe Bluetooth entries for the MAINTAINERS file are a little bit too\nmuch. Consolidate them into two entries. One for Bluetooth drivers and\nanother one for the Bluetooth subsystem.\n\nAlso the MODULE_AUTHOR should indicate the current maintainer of the\nmodule and actually not the original author. Fix all Bluetooth modules\nto provide current maintainer information.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "90855d7b725d764d6d70503bcc1b494cf10ddc98",
      "tree": "bad737fb7b8ee6593b3fcddce0233f0eb207ea25",
      "parents": [
        "9bfa35fe422c74882e27cc54450a5f76c96aad68"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Aug 18 13:23:53 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Aug 18 13:23:53 2008 +0200"
      },
      "message": "[Bluetooth] Fix userspace breakage due missing class links\n\nThe Bluetooth adapters and connections are best presented via a class\nin sysfs. The removal of the links inside the Bluetooth class broke\nassumptions by userspace programs on how to find attached adapters.\n\nThis patch creates adapters and connections as part of the Bluetooth\nclass, but it uses different device types to distinguish them. The\nuserspace programs can now easily navigate in the sysfs device tree.\n\nThe unused platform device and bus have been removed to keep the\ncode simple and clean.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "28111eb2f5087c5aa5ec3697388f6c7d354b2ad8",
      "tree": "b1a30843c0b245e872babbc101a703cf874e59cc",
      "parents": [
        "0967d61ea0d8e8a7826bd8949cd93dd1e829ac55"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Aug 07 22:26:54 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Aug 07 22:26:54 2008 +0200"
      },
      "message": "[Bluetooth] Add parameters to control BNEP header compression\n\nThe Bluetooth qualification for PAN demands testing with BNEP header\ncompression disabled. This is actually pretty stupid and the Linux\nimplementation outsmarts the test system since it compresses whenever\npossible. So to pass qualification two need parameters have been added\nto control the compression of source and destination headers.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "16be63fd1670000b96b76cb55b6f1bead21b4c4b",
      "tree": "7b5bbe9ccf70098a88e31a6da9196f1476730eea",
      "parents": [
        "110cf374a809817d5c080c0ac82d65d029820a66"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue May 27 11:50:16 2008 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jul 21 21:54:51 2008 -0700"
      },
      "message": "bluetooth: remove improper bluetooth class symlinks.\n\nDon\u0027t create symlinks in a class to a device that is not owned by the\nclass.  If the bluetooth subsystem really wants to point to all of the\ndevices it controls, it needs to create real devices, not fake symlinks.\n\nCc: Maxim Krasnyansky \u003cmaxk@qualcomm.com\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nAcked-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "db6d8c7a4027b48d797b369a53f8470aaeed7063",
      "tree": "e140c104a89abc2154e1f41a7db8ebecbb6fa0b4",
      "parents": [
        "3a533374283aea50eab3976d8a6d30532175f009",
        "fb65a7c091529bfffb1262515252c0d0f6241c5c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 20 17:43:29 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 20 17:43:29 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (1232 commits)\n  iucv: Fix bad merging.\n  net_sched: Add size table for qdiscs\n  net_sched: Add accessor function for packet length for qdiscs\n  net_sched: Add qdisc_enqueue wrapper\n  highmem: Export totalhigh_pages.\n  ipv6 mcast: Omit redundant address family checks in ip6_mc_source().\n  net: Use standard structures for generic socket address structures.\n  ipv6 netns: Make several \"global\" sysctl variables namespace aware.\n  netns: Use net_eq() to compare net-namespaces for optimization.\n  ipv6: remove unused macros from net/ipv6.h\n  ipv6: remove unused parameter from ip6_ra_control\n  tcp: fix kernel panic with listening_get_next\n  tcp: Remove redundant checks when setting eff_sacks\n  tcp: options clean up\n  tcp: Fix MD5 signatures for non-linear skbs\n  sctp: Update sctp global memory limit allocations.\n  sctp: remove unnecessary byteshifting, calculate directly in big-endian\n  sctp: Allow only 1 listening socket with SO_REUSEADDR\n  sctp: Do not leak memory on multiple listen() calls\n  sctp: Support ipv6only AF_INET6 sockets.\n  ...\n"
    },
    {
      "commit": "a352def21a642133758b868c71bee12ab34ad5c5",
      "tree": "95d0f7229f9e4afccdc6fbbf11f7f5c6dd83b0fd",
      "parents": [
        "e1e5770bb63fb9d71619a68f52cb0ba4b2ae58a6"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Wed Jul 16 21:53:12 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 20 17:12:34 2008 -0700"
      },
      "message": "tty: Ldisc revamp\n\nMove the line disciplines towards a conventional -\u003eops arrangement.  For\nthe moment the actual \u0027tty_ldisc\u0027 struct in the tty is kept as part of\nthe tty struct but this can then be changed if it turns out that when it\nall settles down we want to refcount ldiscs separately to the tty.\n\nPull the ldisc code out of /proc and put it with our ldisc code.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "407d819cf0fd54c6fc1138a509225696aecafd15",
      "tree": "b653a5c8c09f7c316f5f98947be262e27a4ca33a",
      "parents": [
        "7abbcd6a4c8d6179121f2915a761b1133bf1cd99",
        "b1235d79611e78a07629b4cbe53291c9cffd1834"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 19 00:30:39 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jul 19 00:30:39 2008 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/holtmann/bluetooth-2.6\n"
    },
    {
      "commit": "b1235d79611e78a07629b4cbe53291c9cffd1834",
      "tree": "b12b694d991e62a761d48ee4bb12b6eade753f78",
      "parents": [
        "7cb127d5b0e7af7a0afd23785722ca3edab4ceff"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:54 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:54 2008 +0200"
      },
      "message": "[Bluetooth] Allow security for outgoing L2CAP connections\n\nWhen requested the L2CAP layer will now enforce authentication and\nencryption on outgoing connections. The usefulness of this feature\nis kinda limited since it will not allow proper connection ownership\ntracking until the authentication procedure has been finished. This\nis a limitation of Bluetooth 2.0 and before and can only be fixed by\nusing Simple Pairing.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "7cb127d5b0e7af7a0afd23785722ca3edab4ceff",
      "tree": "67293f99530de5a7c826656143477ee41251750e",
      "parents": [
        "ec8dab36e0738d3059980d144e34f16a26bbda7d"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:53 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:53 2008 +0200"
      },
      "message": "[Bluetooth] Add option to disable eSCO connection creation\n\nIt has been reported that some eSCO capable headsets are not able to\nconnect properly. The real reason for this is unclear at the moment. So\nfor easier testing add a module parameter to disable eSCO connection\ncreation.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "ec8dab36e0738d3059980d144e34f16a26bbda7d",
      "tree": "d1854559838c4ac228c9586faae44625c08d30ba",
      "parents": [
        "a0c22f226502be6eab37a1d9bf6fb0fadf551376"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:53 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:53 2008 +0200"
      },
      "message": "[Bluetooth] Signal user-space for HIDP and BNEP socket errors\n\nWhen using the HIDP or BNEP kernel support, the user-space needs to\nknow if the connection has been terminated for some reasons. Wake up\nthe application if that happens. Otherwise kernel and user-space are\nno longer on the same page and weird behaviors can happen.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "a0c22f226502be6eab37a1d9bf6fb0fadf551376",
      "tree": "fe0237624038290fc0d84ce5ee97a65c49b56818",
      "parents": [
        "8b6b3da765af9600b5edd8e3e84a20523e975884"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:52 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:52 2008 +0200"
      },
      "message": "[Bluetooth] Move pending packets from RFCOMM socket to TTY\n\nWhen an incoming RFCOMM socket connection gets converted into a TTY,\nit can happen that packets are lost. This mainly happens with the\nHandsfree profile where the remote side starts sending data right\naway. The problem is that these packets are in the socket receive\nqueue. So when creating the TTY make sure to copy all pending packets\nfrom the socket receive queue to a private queue inside the TTY.\n\nTo make this actually work, the flow control on the newly created TTY\nwill be disabled and only enabled again when the TTY is opened by an\napplication. And right before that, the pending packets will be put\ninto the TTY flip buffer.\n\nSigned-off-by: Denis Kenzior \u003cdenis.kenzior@trolltech.com\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "8b6b3da765af9600b5edd8e3e84a20523e975884",
      "tree": "16c1ccc6c02ea8fd89043e7ed1934a9cd1d9b6be",
      "parents": [
        "ca37bdd53b5af06d00e792f2415b93206aa2a541"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:52 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:52 2008 +0200"
      },
      "message": "[Bluetooth] Store remote modem status for RFCOMM TTY\n\nWhen switching a RFCOMM socket to a TTY, the remote modem status might\nbe needed later. Currently it is lost since the original configuration\nis done via the socket interface. So store the modem status and reply\nit when the socket has been converted to a TTY.\n\nSigned-off-by: Denis Kenzior \u003cdenis.kenzior@trolltech.com\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "ca37bdd53b5af06d00e792f2415b93206aa2a541",
      "tree": "02e030b02e650e0508243f43f130291e74c194de",
      "parents": [
        "78c6a1744fafc3a396f85c1970eb78839b55af74"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:52 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:52 2008 +0200"
      },
      "message": "[Bluetooth] Use non-canonical TTY by default for RFCOMM\n\nWhile the RFCOMM TTY emulation can act like a real serial port, in\nreality it is not used like this. So to not mess up stupid applications,\nuse the non-canonical mode by default.\n\nSigned-off-by: Denis Kenzior \u003cdenis.kenzior@trolltech.com\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "78c6a1744fafc3a396f85c1970eb78839b55af74",
      "tree": "ae93d2e5e7c399f09996f5bae360b028ce448cdc",
      "parents": [
        "7d0db0a373195385a2e0b19d1f5e4b186fdcffac"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:51 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:51 2008 +0200"
      },
      "message": "[Bluetooth] Update Bluetooth core version number\n\nWith all the Bluetooth 2.1 changes and the support for Simple Pairing,\nit is important to update the Bluetooth core version number.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "7d0db0a373195385a2e0b19d1f5e4b186fdcffac",
      "tree": "4e82fafd39eb0a32bfb0a340302dd0baf15410e0",
      "parents": [
        "43cbeee9f9b26300275e4e2d55ed1607f8c5f760"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:51 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:51 2008 +0200"
      },
      "message": "[Bluetooth] Use a more unique bus name for connections\n\nWhen attaching Bluetooth low-level connections to the bus, the bus name\nis constructed from the remote address since at that time the connection\nhandle is not assigned yet. This has worked so far, but also caused a\nlot of troubles. It is better to postpone the creation of the sysfs\nentry to the time when the connection actually has been established\nand then use its connection handle as unique identifier.\n\nThis also fixes the case where two different adapters try to connect\nto the same remote device.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "43cbeee9f9b26300275e4e2d55ed1607f8c5f760",
      "tree": "42ca68acb1043291df2015be01b81c09eeb5fb80",
      "parents": [
        "3241ad820dbb172021e0268b5611031991431626"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:51 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:51 2008 +0200"
      },
      "message": "[Bluetooth] Add support for TIOCOUTQ and TIOCINQ ioctls\n\nAlmost every protocol family supports the TIOCOUTQ and TIOCINQ ioctls\nand even Bluetooth could make use of them. When implementing audio\nstreaming and integration with GStreamer or PulseAudio they will allow\na better timing and synchronization.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "3241ad820dbb172021e0268b5611031991431626",
      "tree": "628c3fbdc88f9de6c996358ebcb551176da38f1f",
      "parents": [
        "40be492fe4fab829951681860c2bb26fa1d5fe4a"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:50 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:50 2008 +0200"
      },
      "message": "[Bluetooth] Add timestamp support to L2CAP, RFCOMM and SCO\n\nEnable the common timestamp functionality that the network subsystem\nprovides for L2CAP, RFCOMM and SCO sockets. It is possible to either\nuse SO_TIMESTAMP or the IOCTLs to retrieve the timestamp of the\ncurrent packet.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "40be492fe4fab829951681860c2bb26fa1d5fe4a",
      "tree": "41b576692c2206c9a51e689f54170076ec95bc3a",
      "parents": [
        "f8558555f31e177e2644f3c8116801c3e5c29974"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:50 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:50 2008 +0200"
      },
      "message": "[Bluetooth] Export details about authentication requirements\n\nWith the Simple Pairing support, the authentication requirements are\nan explicit setting during the bonding process. Track and enforce the\nrequirements and allow higher layers like L2CAP and RFCOMM to increase\nthem if needed.\n\nThis patch introduces a new IOCTL that allows to query the current\nauthentication requirements. It is also possible to detect Simple\nPairing support in the kernel this way.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "f8558555f31e177e2644f3c8116801c3e5c29974",
      "tree": "5ad03ff814c4e1d0619e75d5f5a6033beff1c177",
      "parents": [
        "769be974d0c7b4fe1a52f9cdaad22259b60953f7"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:49 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:49 2008 +0200"
      },
      "message": "[Bluetooth] Initiate authentication during connection establishment\n\nWith Bluetooth 2.1 and Simple Pairing the requirement is that any new\nconnection needs to be authenticated and that encryption has been\nswitched on before allowing L2CAP to use it. So make sure that all\nthe requirements are fulfilled and otherwise drop the connection with\na minimal disconnect timeout of 10 milliseconds.\n\nThis change only affects Bluetooth 2.1 devices and Simple Pairing\nneeds to be enabled locally and in the remote host stack. The previous\nchanges made sure that these information are discovered before any\nkind of authentication and encryption is triggered.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "769be974d0c7b4fe1a52f9cdaad22259b60953f7",
      "tree": "b07af753550c892beb7223d474298806cbf919d5",
      "parents": [
        "a8bd28baf21b9ee6b8486666b771283e566c0d31"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:49 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:49 2008 +0200"
      },
      "message": "[Bluetooth] Use ACL config stage to retrieve remote features\n\nThe Bluetooth technology introduces new features on a regular basis\nand for some of them it is important that the hardware on both sides\nsupport them. For features like Simple Pairing it is important that\nthe host stacks on both sides have switched this feature on. To make\nvalid decisions, a config stage during ACL link establishment has been\nintroduced that retrieves remote features and if needed also the remote\nextended features (known as remote host features) before signalling\nthis link as connected.\n\nThis change introduces full reference counting of incoming and outgoing\nACL links and the Bluetooth core will disconnect both if no owner of it\nis present. To better handle interoperability during the pairing phase\nthe disconnect timeout for incoming connections has been increased to\n10 seconds. This is five times more than for outgoing connections.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "a8bd28baf21b9ee6b8486666b771283e566c0d31",
      "tree": "6e98a4bd353ac3abd808698b9bca05abac6168b1",
      "parents": [
        "41a96212b3b7b3cd59e8e8d33e6dabf0e21d9778"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:49 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:49 2008 +0200"
      },
      "message": "[Bluetooth] Export remote Simple Pairing mode via sysfs\n\nSince the remote Simple Pairing mode is stored together with the\ninquiry cache, it makes sense to show it together with the other\ninformation.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "41a96212b3b7b3cd59e8e8d33e6dabf0e21d9778",
      "tree": "3ba680af5e3f984d7b32a25c4d71685a54541a8f",
      "parents": [
        "333140b57fa7867bc92e5ee879b6ac4ef5e1d867"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:48 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:48 2008 +0200"
      },
      "message": "[Bluetooth] Track status of remote Simple Pairing mode\n\nThe Simple Pairing process can only be used if both sides have the\nsupport enabled in the host stack. The current Bluetooth specification\nhas three ways to detect this support.\n\nIf an Extended Inquiry Result has been sent during inquiry then it\nis safe to assume that Simple Pairing is enabled. It is not allowed\nto enable Extended Inquiry without Simple Pairing. During the remote\nname request phase a notification with the remote host supported\nfeatures will be sent to indicate Simple Pairing support. Also the\nsecond page of the remote extended features can indicate support for\nSimple Pairing.\n\nFor all three cases the value of remote Simple Pairing mode is stored\nin the inquiry cache for later use.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "333140b57fa7867bc92e5ee879b6ac4ef5e1d867",
      "tree": "a498d195bff090371993ec2bf63505f768434540",
      "parents": [
        "0493684ed2397e111574f343534d8e4ec440dfa5"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:48 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:48 2008 +0200"
      },
      "message": "[Bluetooth] Track status of Simple Pairing mode\n\nThe Simple Pairing feature is optional and needs to be enabled by the\nhost stack first. The Linux kernel relies on the Bluetooth daemon to\neither enable or disable it, but at any time it needs to know the\ncurrent state of the Simple Pairing mode. So track any changes made\nby external entities and store the current mode in the HCI device\nstructure.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "0493684ed2397e111574f343534d8e4ec440dfa5",
      "tree": "ea27e8d7ecbc197893c16b36af0ac4419264d62d",
      "parents": [
        "c7bdd5026d28d178238bd794c61612602a54d55e"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:48 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:48 2008 +0200"
      },
      "message": "[Bluetooth] Disable disconnect timer during Simple Pairing\n\nDuring the Simple Pairing process the HCI disconnect timer must be\ndisabled. The way to do this is by holding a reference count of the\nHCI connection. The Simple Pairing process on both sides starts with\nan IO Capabilities Request and ends with Simple Pairing Complete.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "c7bdd5026d28d178238bd794c61612602a54d55e",
      "tree": "c79bd21f11ceacdf31255c536861587edb8967b5",
      "parents": [
        "f383f2750af19fe6f820edf40d8729f9741c5b37"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:47 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:47 2008 +0200"
      },
      "message": "[Bluetooth] Update class of device value whenever possible\n\nThe class of device value can only be retrieved via inquiry or during\nan incoming connection request. Outgoing connections can\u0027t ask for the\nclass of device. To compensate for this the value is stored and copied\nvia the inquiry cache, but currently only updated via inquiry. This\nupdate should also happen during an incoming connection request.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "f383f2750af19fe6f820edf40d8729f9741c5b37",
      "tree": "95163bddb967074d7e11b456b5b4aadb89257fba",
      "parents": [
        "e4e8e37c42bdaaefcb84eeaef0dc1bc3f696f8f6"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:47 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:47 2008 +0200"
      },
      "message": "[Bluetooth] Some cleanups for HCI event handling\n\nSome minor cosmetic cleanups to the HCI event handling to make the\ncode easier to read and understand.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "e4e8e37c42bdaaefcb84eeaef0dc1bc3f696f8f6",
      "tree": "7909e7f16b314ac0e2f68305ba38ebe7840d1951",
      "parents": [
        "a8746417e864da1ed36dd2432a399fbeb843c2a0"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:47 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:47 2008 +0200"
      },
      "message": "[Bluetooth] Make use of the default link policy settings\n\nThe Bluetooth specification supports the default link policy settings\non a per host controller basis. For every new connection the link\nmanager would then use these settings. It is better to use this instead\nof bothering the controller on every connection setup to overwrite the\ndefault settings.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "a8746417e864da1ed36dd2432a399fbeb843c2a0",
      "tree": "e0e392e8b76d53748f357e888483bced2de24e2b",
      "parents": [
        "9dc0a3afc08d6c20c284994dcd84531787d00ec2"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:46 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:46 2008 +0200"
      },
      "message": "[Bluetooth] Track connection packet type changes\n\nThe connection packet type can be changed after the connection has been\nestablished and thus needs to be properly tracked to ensure that the\nhost stack has always correct and valid information about it.\n\nOn incoming connections the Bluetooth core switches the supported packet\ntypes to the configured list for this controller. However the usefulness\nof this feature has been questioned a lot. The general consent is that\nevery Bluetooth host stack should enable as many packet types as the\nhardware actually supports and leave the decision to the link manager\nsoftware running on the Bluetooth chip.\n\nWhen running on Bluetooth 2.0 or later hardware, don\u0027t change the packet\ntype for incoming connections anymore. This hardware likely supports\nEnhanced Data Rate and thus leave it completely up to the link manager\nto pick the best packet type.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "9dc0a3afc08d6c20c284994dcd84531787d00ec2",
      "tree": "16658484ca53d7fbbf60d0a6c12590a5d3043de9",
      "parents": [
        "ae29319649b80ed9d28d7b4f164e3f5f75020fc8"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:46 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:46 2008 +0200"
      },
      "message": "[Bluetooth] Support the case when headset falls back to SCO link\n\nWhen trying to establish an eSCO link between two devices then it can\nhappen that the remote device falls back to a SCO link. Currently this\ncase is not handled correctly and the message dispatching will break\nsince it is looking for eSCO packets. So in case the configured link\nfalls back to SCO overwrite the link type with the correct value.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "ae29319649b80ed9d28d7b4f164e3f5f75020fc8",
      "tree": "71026720bc10d9e4c9f1b971a531e175aa9d2e16",
      "parents": [
        "9719f8afce34d3d04e884873a8a5e3483e30974c"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:45 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:45 2008 +0200"
      },
      "message": "[Bluetooth] Update authentication status after successful encryption\n\nThe authentication status is not communicated to both parties. This is\nactually a flaw in the Bluetooth specification. Only the requesting side\nreally knows if the authentication was successful or not. This piece of\ninformation is however needed on the other side to know if it has to\ntrigger the authentication procedure or not. Worst case is that both\nsides will request authentication at different times, but this should\nbe avoided since it costs extra time when setting up a new connection.\n\nFor Bluetooth encryption it is required to authenticate the link first\nand the encryption status is communicated to both sides. So when a link\nis switched to encryption it is possible to update the authentication\nstatus since it implies an authenticated link.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "9719f8afce34d3d04e884873a8a5e3483e30974c",
      "tree": "aee26f7df7e2d92aa54d4b9da88c4ff5987191dd",
      "parents": [
        "77db1980565626471a980f0d2d17299e4bd5e7a5"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:45 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:45 2008 +0200"
      },
      "message": "[Bluetooth] Disconnect when encryption gets disabled\n\nThe Bluetooth specification allows to enable or disable the encryption\nof an ACL link at any time by either the peer or the remote device. If\na L2CAP or RFCOMM connection requested an encrypted link, they will now\ndisconnect that link if the encryption gets disabled. Higher protocols\nthat don\u0027t care about encryption (like SDP) are not affected.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    },
    {
      "commit": "77db1980565626471a980f0d2d17299e4bd5e7a5",
      "tree": "93b71744c82fd3479d3c91033b871032de03049b",
      "parents": [
        "79d554a6976a295aa9212172b218f29ca71c3b3d"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:45 2008 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 14 20:13:45 2008 +0200"
      },
      "message": "[Bluetooth] Enforce security for outgoing RFCOMM connections\n\nRecent tests with various Bluetooth headsets have shown that some of\nthem don\u0027t enforce authentication and encryption when connecting. All\nof them leave it up to the host stack to enforce it. Non of them should\nallow unencrypted connections, but that is how it is. So in case the\nlink mode settings require authentication and/or encryption it will now\nalso be enforced on outgoing RFCOMM connections. Previously this was\nonly done for incoming connections.\n\nThis support has a small drawback from a protocol level point of view\nsince the host stack can\u0027t really tell with 100% certainty if a remote\nside is already authenticated or not. So if both sides are configured\nto enforce authentication it will be requested twice. Most Bluetooth\nchips are caching this information and thus no extra authentication\nprocedure has to be triggered over-the-air, but it can happen.\n\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\n"
    }
  ],
  "next": "79d554a6976a295aa9212172b218f29ca71c3b3d"
}
