1. 06 6月, 2022 1 次提交
  2. 24 5月, 2022 1 次提交
  3. 23 5月, 2022 1 次提交
  4. 20 5月, 2022 1 次提交
  5. 13 5月, 2022 10 次提交
  6. 12 5月, 2022 1 次提交
    • I
      Bluetooth: Fix the creation of hdev->name · 103a2f32
      Itay Iellin 提交于
      Set a size limit of 8 bytes of the written buffer to "hdev->name"
      including the terminating null byte, as the size of "hdev->name" is 8
      bytes. If an id value which is greater than 9999 is allocated,
      then the "snprintf(hdev->name, sizeof(hdev->name), "hci%d", id)"
      function call would lead to a truncation of the id value in decimal
      notation.
      
      Set an explicit maximum id parameter in the id allocation function call.
      The id allocation function defines the maximum allocated id value as the
      maximum id parameter value minus one. Therefore, HCI_MAX_ID is defined
      as 10000.
      Signed-off-by: NItay Iellin <ieitayie@gmail.com>
      Signed-off-by: NLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
      103a2f32
  7. 29 4月, 2022 1 次提交
  8. 27 4月, 2022 3 次提交
  9. 06 4月, 2022 1 次提交
    • O
      net: remove noblock parameter from skb_recv_datagram() · f4b41f06
      Oliver Hartkopp 提交于
      skb_recv_datagram() has two parameters 'flags' and 'noblock' that are
      merged inside skb_recv_datagram() by 'flags | (noblock ? MSG_DONTWAIT : 0)'
      
      As 'flags' may contain MSG_DONTWAIT as value most callers split the 'flags'
      into 'flags' and 'noblock' with finally obsolete bit operations like this:
      
      skb_recv_datagram(sk, flags & ~MSG_DONTWAIT, flags & MSG_DONTWAIT, &rc);
      
      And this is not even done consistently with the 'flags' parameter.
      
      This patch removes the obsolete and costly splitting into two parameters
      and only performs bit operations when really needed on the caller side.
      
      One missing conversion thankfully reported by kernel test robot. I missed
      to enable kunit tests to build the mctp code.
      Reported-by: Nkernel test robot <lkp@intel.com>
      Signed-off-by: NOliver Hartkopp <socketcan@hartkopp.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f4b41f06
  10. 19 3月, 2022 8 次提交
    • N
      Bluetooth: call hci_le_conn_failed with hdev lock in hci_le_conn_failed · 9fa6b4cd
      Niels Dossche 提交于
      hci_le_conn_failed function's documentation says that the caller must
      hold hdev->lock. The only callsite that does not hold that lock is
      hci_le_conn_failed. The other 3 callsites hold the hdev->lock very
      locally. The solution is to hold the lock during the call to
      hci_le_conn_failed.
      
      Fixes: 3c857757 ("Bluetooth: Add directed advertising support through connect()")
      Signed-off-by: NNiels Dossche <dossche.niels@gmail.com>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      9fa6b4cd
    • M
      Bluetooth: Send AdvMonitor Dev Found for all matched devices · ff39fc1b
      Manish Mandlik 提交于
      When an Advertisement Monitor is configured with SamplingPeriod 0xFF,
      the controller reports only one adv report along with the MSFT Monitor
      Device event.
      
      When an advertiser matches multiple monitors, some controllers send one
      adv report for each matched monitor; whereas, some controllers send just
      one adv report for all matched monitors.
      
      In such a case, report Adv Monitor Device Found event for each matched
      monitor.
      Signed-off-by: NManish Mandlik <mmandlik@google.com>
      Reviewed-by: NMiao-chen Chou <mcchou@chromium.org>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      ff39fc1b
    • M
      Bluetooth: msft: Clear tracked devices on resume · 37b63c68
      Manish Mandlik 提交于
      Clear already tracked devices on system resume. Once the monitors are
      reregistered after resume, matched devices in range will be found again.
      Signed-off-by: NManish Mandlik <mmandlik@google.com>
      Reviewed-by: NMiao-chen Chou <mcchou@chromium.org>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      37b63c68
    • G
      Bluetooth: fix incorrect nonblock bitmask in bt_sock_wait_ready() · da891217
      Gavin Li 提交于
      Callers pass msg->msg_flags as flags, which contains MSG_DONTWAIT
      instead of O_NONBLOCK.
      Signed-off-by: NGavin Li <gavin@matician.com>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      da891217
    • C
      Bluetooth: Don't assign twice the same value · 1f667e15
      Christophe JAILLET 提交于
      data.pid is set twice with the same value. Remove one of these redundant
      calls.
      Signed-off-by: NChristophe JAILLET <christophe.jaillet@wanadoo.fr>
      Signed-off-by: NLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      1f667e15
    • L
      Bluetooth: Fix use after free in hci_send_acl · f63d24ba
      Luiz Augusto von Dentz 提交于
      This fixes the following trace caused by receiving
      HCI_EV_DISCONN_PHY_LINK_COMPLETE which does call hci_conn_del without
      first checking if conn->type is in fact AMP_LINK and in case it is
      do properly cleanup upper layers with hci_disconn_cfm:
      
       ==================================================================
          BUG: KASAN: use-after-free in hci_send_acl+0xaba/0xc50
          Read of size 8 at addr ffff88800e404818 by task bluetoothd/142
      
          CPU: 0 PID: 142 Comm: bluetoothd Not tainted
          5.17.0-rc5-00006-gda4022eeac1a #7
          Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS
          rel-1.14.0-0-g155821a1990b-prebuilt.qemu.org 04/01/2014
          Call Trace:
           <TASK>
           dump_stack_lvl+0x45/0x59
           print_address_description.constprop.0+0x1f/0x150
           kasan_report.cold+0x7f/0x11b
           hci_send_acl+0xaba/0xc50
           l2cap_do_send+0x23f/0x3d0
           l2cap_chan_send+0xc06/0x2cc0
           l2cap_sock_sendmsg+0x201/0x2b0
           sock_sendmsg+0xdc/0x110
           sock_write_iter+0x20f/0x370
           do_iter_readv_writev+0x343/0x690
           do_iter_write+0x132/0x640
           vfs_writev+0x198/0x570
           do_writev+0x202/0x280
           do_syscall_64+0x38/0x90
           entry_SYSCALL_64_after_hwframe+0x44/0xae
          RSP: 002b:00007ffce8a099b8 EFLAGS: 00000246 ORIG_RAX: 0000000000000014
          Code: 0f 00 f7 d8 64 89 02 48 c7 c0 ff ff ff ff eb b8 0f 1f 00 f3
          0f 1e fa 64 8b 04 25 18 00 00 00 85 c0 75 10 b8 14 00 00 00 0f 05
          <48> 3d 00 f0 ff ff 77 51 c3 48 83 ec 28 89 54 24 1c 48 89 74 24 10
          RDX: 0000000000000001 RSI: 00007ffce8a099e0 RDI: 0000000000000015
          RAX: ffffffffffffffda RBX: 00007ffce8a099e0 RCX: 00007f788fc3cf77
          R10: 00007ffce8af7080 R11: 0000000000000246 R12: 000055e4ccf75580
          RBP: 0000000000000015 R08: 0000000000000002 R09: 0000000000000001
          </TASK>
          R13: 000055e4ccf754a0 R14: 000055e4ccf75cd0 R15: 000055e4ccf4a6b0
      
          Allocated by task 45:
              kasan_save_stack+0x1e/0x40
              __kasan_kmalloc+0x81/0xa0
              hci_chan_create+0x9a/0x2f0
              l2cap_conn_add.part.0+0x1a/0xdc0
              l2cap_connect_cfm+0x236/0x1000
              le_conn_complete_evt+0x15a7/0x1db0
              hci_le_conn_complete_evt+0x226/0x2c0
              hci_le_meta_evt+0x247/0x450
              hci_event_packet+0x61b/0xe90
              hci_rx_work+0x4d5/0xc50
              process_one_work+0x8fb/0x15a0
              worker_thread+0x576/0x1240
              kthread+0x29d/0x340
              ret_from_fork+0x1f/0x30
      
          Freed by task 45:
              kasan_save_stack+0x1e/0x40
              kasan_set_track+0x21/0x30
              kasan_set_free_info+0x20/0x30
              __kasan_slab_free+0xfb/0x130
              kfree+0xac/0x350
              hci_conn_cleanup+0x101/0x6a0
              hci_conn_del+0x27e/0x6c0
              hci_disconn_phylink_complete_evt+0xe0/0x120
              hci_event_packet+0x812/0xe90
              hci_rx_work+0x4d5/0xc50
              process_one_work+0x8fb/0x15a0
              worker_thread+0x576/0x1240
              kthread+0x29d/0x340
              ret_from_fork+0x1f/0x30
      
          The buggy address belongs to the object at ffff88800c0f0500
          The buggy address is located 24 bytes inside of
          which belongs to the cache kmalloc-128 of size 128
          The buggy address belongs to the page:
          128-byte region [ffff88800c0f0500, ffff88800c0f0580)
          flags: 0x100000000000200(slab|node=0|zone=1)
          page:00000000fe45cd86 refcount:1 mapcount:0
          mapping:0000000000000000 index:0x0 pfn:0xc0f0
          raw: 0000000000000000 0000000080100010 00000001ffffffff
          0000000000000000
          raw: 0100000000000200 ffffea00003a2c80 dead000000000004
          ffff8880078418c0
          page dumped because: kasan: bad access detected
          ffff88800c0f0400: 00 00 00 00 00 00 00 00 00 00 00 00 00 fc fc fc
          Memory state around the buggy address:
          >ffff88800c0f0500: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
          ffff88800c0f0480: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
          ffff88800c0f0580: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
                                      ^
          ==================================================================
          ffff88800c0f0600: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
      Reported-by: NSönke Huster <soenke.huster@eknoes.de>
      Tested-by: NSönke Huster <soenke.huster@eknoes.de>
      Signed-off-by: NLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      f63d24ba
    • I
      Bluetooth: hci_sync: Add a new quirk to skip HCI_FLT_CLEAR_ALL · 0eaecfb2
      Ismael Ferreras Morezuelas 提交于
      Some controllers have problems with being sent a command to clear
      all filtering. While the HCI code does not unconditionally
      send a clear-all anymore at BR/EDR setup (after the state machine
      refactor), there might be more ways of hitting these codepaths
      in the future as the kernel develops.
      
      Cc: stable@vger.kernel.org
      Cc: Hans de Goede <hdegoede@redhat.com>
      Signed-off-by: NIsmael Ferreras Morezuelas <swyterzone@gmail.com>
      Reviewed-by: NHans de Goede <hdegoede@redhat.com>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      0eaecfb2
    • C
      Bluetooth: mgmt: remove redundant assignment to variable cur_len · 0ca8794a
      Colin Ian King 提交于
      Variable cur_len is being ininitialized with a value in the start of
      a for-loop but this is never read, it is being re-assigned a new value
      on the first statement in the for-loop.  The initialization is redundant
      and can be removed.
      
      Cleans up clang scan build warning:
      net/bluetooth/mgmt.c:7958:14: warning: Although the value stored to 'cur_len'
      is used in the enclosing expression, the value is never actually read
      from 'cur_len' [deadcode.DeadStores]
      Signed-off-by: NColin Ian King <colin.i.king@gmail.com>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      0ca8794a
  11. 07 3月, 2022 1 次提交
  12. 04 3月, 2022 9 次提交
  13. 03 3月, 2022 2 次提交