From: Greg Kroah-Hartman Date: Tue, 13 Jan 2015 21:32:57 +0000 (-0800) Subject: 3.18-stable patches X-Git-Tag: v3.10.65~40 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7e5059ceacd223c29c075454df078eb999053238;p=thirdparty%2Fkernel%2Fstable-queue.git 3.18-stable patches added patches: bluetooth-6lowpan-fix-skb_unshare-behaviour.patch bluetooth-ath3k-add-support-of-mci-13d3-3408-bt-device.patch bluetooth-clear-le-white-list-when-resetting-controller.patch bluetooth-fix-accepting-connections-when-not-using-mgmt.patch bluetooth-fix-check-for-direct-advertising.patch bluetooth-fix-controller-configuration-with-hci_quirk_invalid_bdaddr.patch bluetooth-fix-le-connection-timeout-deadlock.patch pci-restore-detection-of-read-only-bars.patch --- diff --git a/queue-3.18/bluetooth-6lowpan-fix-skb_unshare-behaviour.patch b/queue-3.18/bluetooth-6lowpan-fix-skb_unshare-behaviour.patch new file mode 100644 index 00000000000..25cd0dc37e2 --- /dev/null +++ b/queue-3.18/bluetooth-6lowpan-fix-skb_unshare-behaviour.patch @@ -0,0 +1,47 @@ +From b0c42cd7b210efc74aa4bfc3e39a2814dfaa9b89 Mon Sep 17 00:00:00 2001 +From: Alexander Aring +Date: Wed, 8 Oct 2014 10:24:53 +0200 +Subject: Bluetooth: 6lowpan: fix skb_unshare behaviour + +From: Alexander Aring + +commit b0c42cd7b210efc74aa4bfc3e39a2814dfaa9b89 upstream. + +This patch reverts commit: + +a7807d73 ("Bluetooth: 6lowpan: Avoid memory leak if memory allocation +fails") + +which was wrong suggested by Alexander Aring. The function skb_unshare +run also kfree_skb on failure. + +Signed-off-by: Alexander Aring +Signed-off-by: Marcel Holtmann +Signed-off-by: Greg Kroah-Hartman + +--- + net/bluetooth/6lowpan.c | 8 ++------ + 1 file changed, 2 insertions(+), 6 deletions(-) + +--- a/net/bluetooth/6lowpan.c ++++ b/net/bluetooth/6lowpan.c +@@ -591,17 +591,13 @@ static netdev_tx_t bt_xmit(struct sk_buf + int err = 0; + bdaddr_t addr; + u8 addr_type; +- struct sk_buff *tmpskb; + + /* We must take a copy of the skb before we modify/replace the ipv6 + * header as the header could be used elsewhere + */ +- tmpskb = skb_unshare(skb, GFP_ATOMIC); +- if (!tmpskb) { +- kfree_skb(skb); ++ skb = skb_unshare(skb, GFP_ATOMIC); ++ if (!skb) + return NET_XMIT_DROP; +- } +- skb = tmpskb; + + /* Return values from setup_header() + * <0 - error, packet is dropped diff --git a/queue-3.18/bluetooth-ath3k-add-support-of-mci-13d3-3408-bt-device.patch b/queue-3.18/bluetooth-ath3k-add-support-of-mci-13d3-3408-bt-device.patch new file mode 100644 index 00000000000..f9b3ef4e570 --- /dev/null +++ b/queue-3.18/bluetooth-ath3k-add-support-of-mci-13d3-3408-bt-device.patch @@ -0,0 +1,77 @@ +From 3bb30a7cdf9242aca90d49aa41baebf9458f96f0 Mon Sep 17 00:00:00 2001 +From: Dmitry Tunin +Date: Tue, 25 Nov 2014 20:19:52 +0300 +Subject: Bluetooth: ath3k: Add support of MCI 13d3:3408 bt device + +From: Dmitry Tunin + +commit 3bb30a7cdf9242aca90d49aa41baebf9458f96f0 upstream. + +Add support for Bluetooth MCI WB335 (AR9565) Wi-Fi+bt module. This +Bluetooth module requires loading patch and sysconfig by ath3k driver. + +T: Bus=01 Lev=02 Prnt=03 Port=00 Cnt=01 Dev#= 20 Spd=12 MxCh= 0 +D: Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1 +P: Vendor=13d3 ProdID=3408 Rev= 0.02 +C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA +A: FirstIf#= 0 IfCount= 2 Cls=e0(wlcon) Sub=01 Prot=01 +I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb +E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=1ms +E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms +E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms +I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb +E: Ad=83(I) Atr=01(Isoc) MxPS= 0 Ivl=1ms +E: Ad=03(O) Atr=01(Isoc) MxPS= 0 Ivl=1ms +I: If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb +E: Ad=83(I) Atr=01(Isoc) MxPS= 9 Ivl=1ms +E: Ad=03(O) Atr=01(Isoc) MxPS= 9 Ivl=1ms +I: If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb +E: Ad=83(I) Atr=01(Isoc) MxPS= 17 Ivl=1ms +E: Ad=03(O) Atr=01(Isoc) MxPS= 17 Ivl=1ms +I: If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb +E: Ad=83(I) Atr=01(Isoc) MxPS= 25 Ivl=1ms +E: Ad=03(O) Atr=01(Isoc) MxPS= 25 Ivl=1ms +I: If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb +E: Ad=83(I) Atr=01(Isoc) MxPS= 33 Ivl=1ms +E: Ad=03(O) Atr=01(Isoc) MxPS= 33 Ivl=1ms +I: If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb +E: Ad=83(I) Atr=01(Isoc) MxPS= 49 Ivl=1ms +E: Ad=03(O) Atr=01(Isoc) MxPS= 49 Ivl=1ms + +Signed-off-by: Dmitry Tunin +Signed-off-by: Johan Hedberg +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/bluetooth/ath3k.c | 2 ++ + drivers/bluetooth/btusb.c | 1 + + 2 files changed, 3 insertions(+) + +--- a/drivers/bluetooth/ath3k.c ++++ b/drivers/bluetooth/ath3k.c +@@ -105,6 +105,7 @@ static const struct usb_device_id ath3k_ + { USB_DEVICE(0x13d3, 0x3375) }, + { USB_DEVICE(0x13d3, 0x3393) }, + { USB_DEVICE(0x13d3, 0x3402) }, ++ { USB_DEVICE(0x13d3, 0x3408) }, + { USB_DEVICE(0x13d3, 0x3432) }, + + /* Atheros AR5BBU12 with sflash firmware */ +@@ -156,6 +157,7 @@ static const struct usb_device_id ath3k_ + { USB_DEVICE(0x13d3, 0x3375), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x13d3, 0x3393), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x13d3, 0x3402), .driver_info = BTUSB_ATH3012 }, ++ { USB_DEVICE(0x13d3, 0x3408), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x13d3, 0x3432), .driver_info = BTUSB_ATH3012 }, + + /* Atheros AR5BBU22 with sflash firmware */ +--- a/drivers/bluetooth/btusb.c ++++ b/drivers/bluetooth/btusb.c +@@ -182,6 +182,7 @@ static const struct usb_device_id blackl + { USB_DEVICE(0x13d3, 0x3375), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x13d3, 0x3393), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x13d3, 0x3402), .driver_info = BTUSB_ATH3012 }, ++ { USB_DEVICE(0x13d3, 0x3408), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x13d3, 0x3432), .driver_info = BTUSB_ATH3012 }, + + /* Atheros AR5BBU12 with sflash firmware */ diff --git a/queue-3.18/bluetooth-clear-le-white-list-when-resetting-controller.patch b/queue-3.18/bluetooth-clear-le-white-list-when-resetting-controller.patch new file mode 100644 index 00000000000..60583db3fa4 --- /dev/null +++ b/queue-3.18/bluetooth-clear-le-white-list-when-resetting-controller.patch @@ -0,0 +1,37 @@ +From a4d5504d5c39cc84f1f828e19967595597a8136e Mon Sep 17 00:00:00 2001 +From: Marcel Holtmann +Date: Wed, 29 Oct 2014 23:37:53 +0100 +Subject: Bluetooth: Clear LE white list when resetting controller + +From: Marcel Holtmann + +commit a4d5504d5c39cc84f1f828e19967595597a8136e upstream. + +The internal representation of the LE white list needs to be cleared +when receiving a successful HCI_Reset command. A reset of the controller +is expected to start with an empty LE white list. + +When the LE white list is not cleared on controller reset, the passive +background scanning might skip programming the remote devices. Only +changes to the LE white list are programmed when passive background +is started. + +Signed-off-by: Marcel Holtmann +Signed-off-by: Johan Hedberg +Signed-off-by: Greg Kroah-Hartman + +--- + net/bluetooth/hci_event.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/net/bluetooth/hci_event.c ++++ b/net/bluetooth/hci_event.c +@@ -205,6 +205,8 @@ static void hci_cc_reset(struct hci_dev + hdev->le_scan_type = LE_SCAN_PASSIVE; + + hdev->ssp_debug_mode = 0; ++ ++ hci_bdaddr_list_clear(&hdev->le_white_list); + } + + static void hci_cc_write_local_name(struct hci_dev *hdev, struct sk_buff *skb) diff --git a/queue-3.18/bluetooth-fix-accepting-connections-when-not-using-mgmt.patch b/queue-3.18/bluetooth-fix-accepting-connections-when-not-using-mgmt.patch new file mode 100644 index 00000000000..e80d75713d7 --- /dev/null +++ b/queue-3.18/bluetooth-fix-accepting-connections-when-not-using-mgmt.patch @@ -0,0 +1,43 @@ +From 6a8fc95c87110a466ee81675b41170b963f82bdb Mon Sep 17 00:00:00 2001 +From: Johan Hedberg +Date: Wed, 24 Dec 2014 20:43:11 +0200 +Subject: Bluetooth: Fix accepting connections when not using mgmt +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Johan Hedberg + +commit 6a8fc95c87110a466ee81675b41170b963f82bdb upstream. + +When connectable mode is enabled (page scan on) through some non-mgmt +method the HCI_CONNECTABLE flag will not be set. For backwards +compatibility with user space versions not using mgmt we should not +require HCI_CONNECTABLE to be set if HCI_MGMT is not set. + +Reported-by: Pali Rohár +Tested-by: Pali Rohár +Signed-off-by: Johan Hedberg +Signed-off-by: Marcel Holtmann +Signed-off-by: Greg Kroah-Hartman + +--- + net/bluetooth/hci_event.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +--- a/net/bluetooth/hci_event.c ++++ b/net/bluetooth/hci_event.c +@@ -2144,7 +2144,12 @@ static void hci_conn_request_evt(struct + return; + } + +- if (!test_bit(HCI_CONNECTABLE, &hdev->dev_flags) && ++ /* Require HCI_CONNECTABLE or a whitelist entry to accept the ++ * connection. These features are only touched through mgmt so ++ * only do the checks if HCI_MGMT is set. ++ */ ++ if (test_bit(HCI_MGMT, &hdev->dev_flags) && ++ !test_bit(HCI_CONNECTABLE, &hdev->dev_flags) && + !hci_bdaddr_list_lookup(&hdev->whitelist, &ev->bdaddr, + BDADDR_BREDR)) { + hci_reject_conn(hdev, &ev->bdaddr); diff --git a/queue-3.18/bluetooth-fix-check-for-direct-advertising.patch b/queue-3.18/bluetooth-fix-check-for-direct-advertising.patch new file mode 100644 index 00000000000..f9210c06c28 --- /dev/null +++ b/queue-3.18/bluetooth-fix-check-for-direct-advertising.patch @@ -0,0 +1,36 @@ +From 0b1db38ca26b322296cbd141f3080eccfe1cc3e1 Mon Sep 17 00:00:00 2001 +From: Johan Hedberg +Date: Tue, 28 Oct 2014 22:23:27 +0100 +Subject: Bluetooth: Fix check for direct advertising + +From: Johan Hedberg + +commit 0b1db38ca26b322296cbd141f3080eccfe1cc3e1 upstream. + +These days we allow simultaneous LE scanning and advertising. Checking +for whether advertising is enabled or not is therefore not a reliable +way to determine whether directed advertising was used to trigger the +connection creation. The appropriate place to check (instead of the hdev +context) is the connection role that's stored in the hci_conn. This +patch fixes such a check in le_conn_timeout() which could otherwise lead +to incorrect HCI commands being sent. + +Signed-off-by: Johan Hedberg +Signed-off-by: Marcel Holtmann +Signed-off-by: Greg Kroah-Hartman + +--- + net/bluetooth/hci_conn.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/net/bluetooth/hci_conn.c ++++ b/net/bluetooth/hci_conn.c +@@ -415,7 +415,7 @@ static void le_conn_timeout(struct work_ + * happen with broken hardware or if low duty cycle was used + * (which doesn't have a timeout of its own). + */ +- if (test_bit(HCI_ADVERTISING, &hdev->dev_flags)) { ++ if (conn->role == HCI_ROLE_SLAVE) { + u8 enable = 0x00; + hci_send_cmd(hdev, HCI_OP_LE_SET_ADV_ENABLE, sizeof(enable), + &enable); diff --git a/queue-3.18/bluetooth-fix-controller-configuration-with-hci_quirk_invalid_bdaddr.patch b/queue-3.18/bluetooth-fix-controller-configuration-with-hci_quirk_invalid_bdaddr.patch new file mode 100644 index 00000000000..938510b0f2f --- /dev/null +++ b/queue-3.18/bluetooth-fix-controller-configuration-with-hci_quirk_invalid_bdaddr.patch @@ -0,0 +1,68 @@ +From 8bfe8442ff20fdc2d965c197103d935a99bd3296 Mon Sep 17 00:00:00 2001 +From: Marcel Holtmann +Date: Tue, 23 Dec 2014 23:10:48 +0100 +Subject: Bluetooth: Fix controller configuration with HCI_QUIRK_INVALID_BDADDR + +From: Marcel Holtmann + +commit 8bfe8442ff20fdc2d965c197103d935a99bd3296 upstream. + +When controllers set the HCI_QUIRK_INVALID_BDADDR flag, it is required +by userspace to program a valid public Bluetooth device address into +the controller before it can be used. + +After successful address configuration, the internal state changes and +the controller runs the complete initialization procedure. However one +small difference is that this is no longer the HCI_SETUP stage. The +HCI_SETUP stage is only valid during initial controller setup. In this +case the stack runs the initialization as part of the HCI_CONFIG stage. + +The controller version information, default name and supported commands +are only stored during HCI_SETUP. While these information are static, +they are not read initially when HCI_QUIRK_INVALID_BDADDR is set. So +when running in HCI_CONFIG state, these information need to be updated +as well. + +This especially impacts Bluetooth 4.1 and later controllers using +extended feature pages and second event mask page. + +Signed-off-by: Marcel Holtmann +Signed-off-by: Johan Hedberg +Signed-off-by: Greg Kroah-Hartman + +--- + net/bluetooth/hci_event.c | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +--- a/net/bluetooth/hci_event.c ++++ b/net/bluetooth/hci_event.c +@@ -239,7 +239,8 @@ static void hci_cc_read_local_name(struc + if (rp->status) + return; + +- if (test_bit(HCI_SETUP, &hdev->dev_flags)) ++ if (test_bit(HCI_SETUP, &hdev->dev_flags) || ++ test_bit(HCI_CONFIG, &hdev->dev_flags)) + memcpy(hdev->dev_name, rp->name, HCI_MAX_NAME_LENGTH); + } + +@@ -494,7 +495,8 @@ static void hci_cc_read_local_version(st + if (rp->status) + return; + +- if (test_bit(HCI_SETUP, &hdev->dev_flags)) { ++ if (test_bit(HCI_SETUP, &hdev->dev_flags) || ++ test_bit(HCI_CONFIG, &hdev->dev_flags)) { + hdev->hci_ver = rp->hci_ver; + hdev->hci_rev = __le16_to_cpu(rp->hci_rev); + hdev->lmp_ver = rp->lmp_ver; +@@ -513,7 +515,8 @@ static void hci_cc_read_local_commands(s + if (rp->status) + return; + +- if (test_bit(HCI_SETUP, &hdev->dev_flags)) ++ if (test_bit(HCI_SETUP, &hdev->dev_flags) || ++ test_bit(HCI_CONFIG, &hdev->dev_flags)) + memcpy(hdev->commands, rp->commands, sizeof(hdev->commands)); + } + diff --git a/queue-3.18/bluetooth-fix-le-connection-timeout-deadlock.patch b/queue-3.18/bluetooth-fix-le-connection-timeout-deadlock.patch new file mode 100644 index 00000000000..5f7a79ae935 --- /dev/null +++ b/queue-3.18/bluetooth-fix-le-connection-timeout-deadlock.patch @@ -0,0 +1,34 @@ +From 980ffc0a2cec2c37589cc97993e1ad17252f4f47 Mon Sep 17 00:00:00 2001 +From: Johan Hedberg +Date: Tue, 28 Oct 2014 22:23:26 +0100 +Subject: Bluetooth: Fix LE connection timeout deadlock + +From: Johan Hedberg + +commit 980ffc0a2cec2c37589cc97993e1ad17252f4f47 upstream. + +The le_conn_timeout() may call hci_le_conn_failed() which in turn may +call hci_conn_del(). Trying to use the _sync variant for cancelling the +conn timeout from hci_conn_del() could therefore result in a deadlock. +This patch converts hci_conn_del() to use the non-sync variant so the +deadlock is not possible. + +Signed-off-by: Johan Hedberg +Signed-off-by: Marcel Holtmann +Signed-off-by: Greg Kroah-Hartman + +--- + net/bluetooth/hci_conn.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/net/bluetooth/hci_conn.c ++++ b/net/bluetooth/hci_conn.c +@@ -517,7 +517,7 @@ int hci_conn_del(struct hci_conn *conn) + /* Unacked frames */ + hdev->acl_cnt += conn->sent; + } else if (conn->type == LE_LINK) { +- cancel_delayed_work_sync(&conn->le_conn_timeout); ++ cancel_delayed_work(&conn->le_conn_timeout); + + if (hdev->le_pkts) + hdev->le_cnt += conn->sent; diff --git a/queue-3.18/pci-restore-detection-of-read-only-bars.patch b/queue-3.18/pci-restore-detection-of-read-only-bars.patch new file mode 100644 index 00000000000..3108da23efc --- /dev/null +++ b/queue-3.18/pci-restore-detection-of-read-only-bars.patch @@ -0,0 +1,64 @@ +From 36e8164882ca6d3c41cb91e6f09a3ed236841f80 Mon Sep 17 00:00:00 2001 +From: Myron Stowe +Date: Thu, 30 Oct 2014 11:54:37 -0600 +Subject: PCI: Restore detection of read-only BARs + +From: Myron Stowe + +commit 36e8164882ca6d3c41cb91e6f09a3ed236841f80 upstream. + +Commit 6ac665c63dca ("PCI: rewrite PCI BAR reading code") masked off +low-order bits from 'l', but not from 'sz'. Both are passed to pci_size(), +which compares 'base == maxbase' to check for read-only BARs. The masking +of 'l' means that comparison will never be 'true', so the check for +read-only BARs no longer works. + +Resolve this by also masking off the low-order bits of 'sz' before passing +it into pci_size() as 'maxbase'. With this change, pci_size() will once +again catch the problems that have been encountered to date: + + - AGP aperture BAR of AMD-7xx host bridges: if the AGP window is + disabled, this BAR is read-only and read as 0x00000008 [1] + + - BARs 0-4 of ALi IDE controllers can be non-zero and read-only [1] + + - Intel Sandy Bridge - Thermal Management Controller [8086:0103]; + BAR 0 returning 0xfed98004 [2] + + - Intel Xeon E5 v3/Core i7 Power Control Unit [8086:2fc0]; + Bar 0 returning 0x00001a [3] + +Link: [1] https://git.kernel.org/cgit/linux/kernel/git/tglx/history.git/commit/drivers/pci/probe.c?id=1307ef6621991f1c4bc3cec1b5a4ebd6fd3d66b9 ("PCI: probing read-only BARs" (pre-git)) +Link: [2] https://bugzilla.kernel.org/show_bug.cgi?id=43331 +Link: [3] https://bugzilla.kernel.org/show_bug.cgi?id=85991 +Reported-by: William Unruh +Reported-by: Martin Lucina +Signed-off-by: Myron Stowe +Signed-off-by: Bjorn Helgaas +CC: Matthew Wilcox +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/pci/probe.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/drivers/pci/probe.c ++++ b/drivers/pci/probe.c +@@ -216,14 +216,17 @@ int __pci_read_base(struct pci_dev *dev, + res->flags |= IORESOURCE_SIZEALIGN; + if (res->flags & IORESOURCE_IO) { + l &= PCI_BASE_ADDRESS_IO_MASK; ++ sz &= PCI_BASE_ADDRESS_IO_MASK; + mask = PCI_BASE_ADDRESS_IO_MASK & (u32) IO_SPACE_LIMIT; + } else { + l &= PCI_BASE_ADDRESS_MEM_MASK; ++ sz &= PCI_BASE_ADDRESS_MEM_MASK; + mask = (u32)PCI_BASE_ADDRESS_MEM_MASK; + } + } else { + res->flags |= (l & IORESOURCE_ROM_ENABLE); + l &= PCI_ROM_ADDRESS_MASK; ++ sz &= PCI_ROM_ADDRESS_MASK; + mask = (u32)PCI_ROM_ADDRESS_MASK; + } + diff --git a/queue-3.18/series b/queue-3.18/series index 2c22855306b..2d46426f6fa 100644 --- a/queue-3.18/series +++ b/queue-3.18/series @@ -29,3 +29,11 @@ powerpc-secondary-cpus-must-set-cpu_callin_map-after-setting-active-and-online.p powerpc-powernv-switch-off-mmu-before-entering-nap-sleep-rvwinkle-mode.patch powerpc-perf-hv-24x7-use-per-cpu-page-buffer.patch powerpc-add-little-endian-flag-to-syscall_get_arch.patch +bluetooth-ath3k-add-support-of-mci-13d3-3408-bt-device.patch +bluetooth-6lowpan-fix-skb_unshare-behaviour.patch +bluetooth-fix-le-connection-timeout-deadlock.patch +bluetooth-fix-check-for-direct-advertising.patch +bluetooth-clear-le-white-list-when-resetting-controller.patch +bluetooth-fix-controller-configuration-with-hci_quirk_invalid_bdaddr.patch +bluetooth-fix-accepting-connections-when-not-using-mgmt.patch +pci-restore-detection-of-read-only-bars.patch