1. 13 2月, 2014 24 次提交
  2. 19 1月, 2014 1 次提交
  3. 18 1月, 2014 2 次提交
    • S
      Bluetooth: remove direct compilation of 6lowpan_iphc.c · c9151497
      Stephen Warren 提交于
      It's now built as a separate utility module, and enabling BT selects
      that module in Kconfig. This fixes:
      
      net/ieee802154/built-in.o:(___ksymtab_gpl+lowpan_process_data+0x0): multiple definition of `__ksymtab_lowpan_process_data'
      net/bluetooth/built-in.o:(___ksymtab_gpl+lowpan_process_data+0x0): first defined here
      net/ieee802154/built-in.o:(___ksymtab_gpl+lowpan_header_compress+0x0): multiple definition of `__ksymtab_lowpan_header_compress'
      net/bluetooth/built-in.o:(___ksymtab_gpl+lowpan_header_compress+0x0): first defined here
      net/ieee802154/built-in.o: In function `lowpan_header_compress':
      net/ieee802154/6lowpan_iphc.c:606: multiple definition of `lowpan_header_compress'
      net/bluetooth/built-in.o:/home/swarren/shared/git_wa/kernel/kernel.git/net/bluetooth/../ieee802154/6lowpan_iphc.c:606: first defined here
      net/ieee802154/built-in.o: In function `lowpan_process_data':
      net/ieee802154/6lowpan_iphc.c:344: multiple definition of `lowpan_process_data'
      net/bluetooth/built-in.o:/home/swarren/shared/git_wa/kernel/kernel.git/net/bluetooth/../ieee802154/6lowpan_iphc.c:344: first defined here
      make[1]: *** [net/built-in.o] Error 1
      
      (this change probably simply wasn't "git add"d to a53d34c3)
      
      Fixes: a53d34c3 ("net: move 6lowpan compression code to separate module")
      Fixes: 18722c24 ("Bluetooth: Enable 6LoWPAN support for BT LE devices")
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Acked-by: NRandy Dunlap <rdunlap@infradead.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c9151497
    • S
      Bluetooth: remove direct compilation of 6lowpan_iphc.c · 7bbc084c
      Stephen Warren 提交于
      It's now built as a separate utility module, and enabling BT selects
      that module in Kconfig. This fixes:
      
      net/ieee802154/built-in.o:(___ksymtab_gpl+lowpan_process_data+0x0): multiple definition of `__ksymtab_lowpan_process_data'
      net/bluetooth/built-in.o:(___ksymtab_gpl+lowpan_process_data+0x0): first defined here
      net/ieee802154/built-in.o:(___ksymtab_gpl+lowpan_header_compress+0x0): multiple definition of `__ksymtab_lowpan_header_compress'
      net/bluetooth/built-in.o:(___ksymtab_gpl+lowpan_header_compress+0x0): first defined here
      net/ieee802154/built-in.o: In function `lowpan_header_compress':
      net/ieee802154/6lowpan_iphc.c:606: multiple definition of `lowpan_header_compress'
      net/bluetooth/built-in.o:/home/swarren/shared/git_wa/kernel/kernel.git/net/bluetooth/../ieee802154/6lowpan_iphc.c:606: first defined here
      net/ieee802154/built-in.o: In function `lowpan_process_data':
      net/ieee802154/6lowpan_iphc.c:344: multiple definition of `lowpan_process_data'
      net/bluetooth/built-in.o:/home/swarren/shared/git_wa/kernel/kernel.git/net/bluetooth/../ieee802154/6lowpan_iphc.c:344: first defined here
      make[1]: *** [net/built-in.o] Error 1
      
      (this change probably simply wasn't "git add"d to a53d34c3)
      
      Fixes: a53d34c3 ("net: move 6lowpan compression code to separate module")
      Fixes: 18722c24 ("Bluetooth: Enable 6LoWPAN support for BT LE devices")
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Acked-by: NRandy Dunlap <rdunlap@infradead.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7bbc084c
  4. 16 1月, 2014 1 次提交
  5. 07 1月, 2014 8 次提交
    • C
      Bluetooth: Fix 6loWPAN peer lookup · e825eb1d
      Claudio Takahasi 提交于
      This patch fixes peer address lookup for 6loWPAN over Bluetooth Low
      Energy links.
      
      ADDR_LE_DEV_PUBLIC, and ADDR_LE_DEV_RANDOM are the values allowed for
      "dst_type" field in the hci_conn struct for LE links.
      Signed-off-by: NClaudio Takahasi <claudio.takahasi@openbossa.org>
      Signed-off-by: NGustavo Padovan <gustavo.padovan@collabora.co.uk>
      e825eb1d
    • C
      Bluetooth: Fix setting Universal/Local bit · b071a620
      Claudio Takahasi 提交于
      This patch fixes the Bluetooth Low Energy Address type checking when
      setting Universal/Local bit for the 6loWPAN network device or for the
      peer device connection.
      
      ADDR_LE_DEV_PUBLIC or ADDR_LE_DEV_RANDOM are the values allowed for
      "src_type" and "dst_type" in the hci_conn struct. The Bluetooth link
      type can be obtainned reading the "type" field in the same struct.
      Signed-off-by: NClaudio Takahasi <claudio.takahasi@openbossa.org>
      Signed-off-by: NGustavo Padovan <gustavo.padovan@collabora.co.uk>
      b071a620
    • G
      Bluetooth: Remove rfcomm_carrier_raised() · f86772af
      Gianluca Anzolin 提交于
      Remove the rfcomm_carrier_raised() definition as that function isn't
      used anymore.
      Signed-off-by: NGianluca Anzolin <gianluca@sottospazio.it>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      f86772af
    • G
      Bluetooth: Always wait for a connection on RFCOMM open() · 4a2fb3ec
      Gianluca Anzolin 提交于
      This patch fixes two regressions introduced with the recent rfcomm tty
      rework.
      
      The current code uses the carrier_raised() method to wait for the
      bluetooth connection when a process opens the tty.
      
      However processes may open the port with the O_NONBLOCK flag or set the
      CLOCAL termios flag: in these cases the open() syscall returns
      immediately without waiting for the bluetooth connection to
      complete.
      
      This behaviour confuses userspace which expects an established bluetooth
      connection.
      
      The patch restores the old behaviour by waiting for the connection in
      rfcomm_dev_activate() and removes carrier_raised() from the tty_port ops.
      
      As a side effect the new code also fixes the case in which the rfcomm
      tty device is created with the flag RFCOMM_REUSE_DLC: the old code
      didn't call device_move() and ModemManager skipped the detection
      probe. Now device_move() is always called inside rfcomm_dev_activate().
      Signed-off-by: NGianluca Anzolin <gianluca@sottospazio.it>
      Reported-by: NAndrey Vihrov <andrey.vihrov@gmail.com>
      Reported-by: NBeson Chow <blc+bluez@mail.vanade.com>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      4a2fb3ec
    • G
      Bluetooth: Move rfcomm_get_device() before rfcomm_dev_activate() · e228b633
      Gianluca Anzolin 提交于
      This is a preparatory patch which moves the rfcomm_get_device()
      definition before rfcomm_dev_activate() where it will be used.
      Signed-off-by: NGianluca Anzolin <gianluca@sottospazio.it>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      e228b633
    • G
      Bluetooth: Release RFCOMM port when the last user closes the TTY · 5b899241
      Gianluca Anzolin 提交于
      This patch fixes a userspace regression introduced by the commit
      29cd718b.
      
      If the rfcomm device was created with the flag RFCOMM_RELEASE_ONHUP the
      user space expects that the tty_port is released as soon as the last
      process closes the tty.
      
      The current code attempts to release the port in the function
      rfcomm_dev_state_change(). However it won't get a reference to the
      relevant tty to send a HUP: at that point the tty is already destroyed
      and therefore NULL.
      
      This patch fixes the regression by taking over the tty refcount in the
      tty install method(). This way the tty_port is automatically released as
      soon as the tty is destroyed.
      
      As a consequence the check for RFCOMM_RELEASE_ONHUP flag in the hangup()
      method is now redundant. Instead we have to be careful with the reference
      counting in the rfcomm_release_dev() function.
      Signed-off-by: NGianluca Anzolin <gianluca@sottospazio.it>
      Reported-by: NAlexander Holler <holler@ahsoftware.de>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      5b899241
    • J
      Bluetooth: Default to no security with L2CAP RAW sockets · cb6ca8e1
      Johan Hedberg 提交于
      L2CAP RAW sockets can be used for things which do not involve
      establishing actual connection oriented L2CAP channels. One example of
      such usage is the l2ping tool. The default security level for L2CAP
      sockets is LOW, which implies that for SSP based connection
      authentication is still requested (although with no MITM requirement),
      which is not what we want (or need) for things like l2ping. Therefore,
      default to one lower level, i.e. BT_SECURITY_SDP, for L2CAP RAW sockets
      in order not to trigger unwanted authentication requests.
      Signed-off-by: NJohan Hedberg <johan.hedberg@intel.com>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      cb6ca8e1
    • J
      Bluetooth: Fix NULL pointer dereference when disconnecting · 8cef8f50
      Johan Hedberg 提交于
      When disconnecting it is possible that the l2cap_conn pointer is already
      NULL when bt_6lowpan_del_conn() is entered. Looking at l2cap_conn_del
      also verifies this as there's a NULL check there too. This patch adds
      the missing NULL check without which the following bug may occur:
      
      BUG: unable to handle kernel NULL pointer dereference at   (null)
      IP: [<c131e9c7>] bt_6lowpan_del_conn+0x19/0x12a
      *pde = 00000000
      Oops: 0000 [#1] SMP
      CPU: 1 PID: 52 Comm: kworker/u5:1 Not tainted 3.12.0+ #196
      Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
      Workqueue: hci0 hci_rx_work
      task: f6259b00 ti: f48c0000 task.ti: f48c0000
      EIP: 0060:[<c131e9c7>] EFLAGS: 00010282 CPU: 1
      EIP is at bt_6lowpan_del_conn+0x19/0x12a
      EAX: 00000000 EBX: ef094e10 ECX: 00000000 EDX: 00000016
      ESI: 00000000 EDI: f48c1e60 EBP: f48c1e50 ESP: f48c1e34
       DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068
      CR0: 8005003b CR2: 00000000 CR3: 30c65000 CR4: 00000690
      Stack:
       f4d38000 00000000 f4d38000 00000002 ef094e10 00000016 f48c1e60 f48c1e70
       c1316bed f48c1e84 c1316bed 00000000 00000001 ef094e10 f48c1e84 f48c1ed0
       c1303cc6 c1303c7b f31f331a c1303cc6 f6e7d1c0 f3f8ea16 f3f8f380 f4d38008
      Call Trace:
       [<c1316bed>] l2cap_disconn_cfm+0x3f/0x5b
       [<c1316bed>] ? l2cap_disconn_cfm+0x3f/0x5b
       [<c1303cc6>] hci_event_packet+0x645/0x2117
       [<c1303c7b>] ? hci_event_packet+0x5fa/0x2117
       [<c1303cc6>] ? hci_event_packet+0x645/0x2117
       [<c12681bd>] ? __kfree_skb+0x65/0x68
       [<c12681eb>] ? kfree_skb+0x2b/0x2e
       [<c130d3fb>] ? hci_send_to_sock+0x18d/0x199
       [<c12fa327>] hci_rx_work+0xf9/0x295
       [<c12fa327>] ? hci_rx_work+0xf9/0x295
       [<c1036d25>] process_one_work+0x128/0x1df
       [<c1346a39>] ? _raw_spin_unlock_irq+0x8/0x12
       [<c1036d25>] ? process_one_work+0x128/0x1df
       [<c103713a>] worker_thread+0x127/0x1c4
       [<c1037013>] ? rescuer_thread+0x216/0x216
       [<c103aec6>] kthread+0x88/0x8d
       [<c1040000>] ? task_rq_lock+0x37/0x6e
       [<c13474b7>] ret_from_kernel_thread+0x1b/0x28
       [<c103ae3e>] ? __kthread_parkme+0x50/0x50
      Code: 05 b8 f4 ff ff ff 8d 65 f4 5b 5e 5f 5d 8d 67 f8 5f c3 57 8d 7c 24 08 83 e4 f8 ff 77 fc 55 89 e5 57 56f
      EIP: [<c131e9c7>] bt_6lowpan_del_conn+0x19/0x12a SS:ESP 0068:f48c1e34
      CR2: 0000000000000000
      Signed-off-by: NJohan Hedberg <johan.hedberg@intel.com>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      8cef8f50
  6. 05 1月, 2014 1 次提交
    • M
      Bluetooth: Add quirk for disabling Delete Stored Link Key command · f9f462fa
      Marcel Holtmann 提交于
      Some controller pretend they support the Delete Stored Link Key command,
      but in reality they really don't support it.
      
        < HCI Command: Delete Stored Link Key (0x03|0x0012) plen 7
            bdaddr 00:00:00:00:00:00 all 1
        > HCI Event: Command Complete (0x0e) plen 4
            Delete Stored Link Key (0x03|0x0012) ncmd 1
            status 0x11 deleted 0
            Error: Unsupported Feature or Parameter Value
      
      Not correctly supporting this command causes the controller setup to
      fail and will make a device not work. However sending the command for
      controller that handle stored link keys is important. This quirk
      allows a driver to disable the command if it knows that this command
      handling is broken.
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      Signed-off-by: NJohan Hedberg <johan.hedberg@intel.com>
      f9f462fa
  7. 17 12月, 2013 1 次提交
  8. 14 12月, 2013 2 次提交