All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.8 305/715] Bluetooth: Remove BT_HS
Date: Sun, 24 Mar 2024 18:28:04 -0400	[thread overview]
Message-ID: <20240324223455.1342824-306-sashal@kernel.org> (raw)
In-Reply-To: <20240324223455.1342824-1-sashal@kernel.org>

From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>

[ Upstream commit e7b02296fb400ee64822fbdd81a0718449066333 ]

High Speed, Alternate MAC and PHY (AMP) extension, has been removed from
Bluetooth Core specification on 5.3:

https://www.bluetooth.com/blog/new-core-specification-v5-3-feature-enhancements/

Fixes: 244bc377591c ("Bluetooth: Add BT_HS config option")
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 include/net/bluetooth/hci.h   |    1 -
 include/net/bluetooth/l2cap.h |   42 --
 net/bluetooth/Kconfig         |    8 -
 net/bluetooth/Makefile        |    1 -
 net/bluetooth/a2mp.c          | 1054 --------------------------------
 net/bluetooth/a2mp.h          |  154 -----
 net/bluetooth/amp.c           |  590 ------------------
 net/bluetooth/amp.h           |   60 --
 net/bluetooth/hci_conn.c      |    4 -
 net/bluetooth/hci_event.c     |    2 -
 net/bluetooth/l2cap_core.c    | 1069 +--------------------------------
 net/bluetooth/l2cap_sock.c    |   18 +-
 net/bluetooth/mgmt.c          |   73 +--
 13 files changed, 20 insertions(+), 3056 deletions(-)
 delete mode 100644 net/bluetooth/a2mp.c
 delete mode 100644 net/bluetooth/a2mp.h
 delete mode 100644 net/bluetooth/amp.c
 delete mode 100644 net/bluetooth/amp.h

diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h
index f7918c7551834..0d231024570a3 100644
--- a/include/net/bluetooth/hci.h
+++ b/include/net/bluetooth/hci.h
@@ -393,7 +393,6 @@ enum {
 	HCI_LIMITED_PRIVACY,
 	HCI_RPA_EXPIRED,
 	HCI_RPA_RESOLVING,
-	HCI_HS_ENABLED,
 	HCI_LE_ENABLED,
 	HCI_ADVERTISING,
 	HCI_ADVERTISING_CONNECTABLE,
diff --git a/include/net/bluetooth/l2cap.h b/include/net/bluetooth/l2cap.h
index cf393e72d6ed6..92d7197f9a563 100644
--- a/include/net/bluetooth/l2cap.h
+++ b/include/net/bluetooth/l2cap.h
@@ -59,8 +59,6 @@
 #define L2CAP_WAIT_ACK_POLL_PERIOD	msecs_to_jiffies(200)
 #define L2CAP_WAIT_ACK_TIMEOUT		msecs_to_jiffies(10000)
 
-#define L2CAP_A2MP_DEFAULT_MTU		670
-
 /* L2CAP socket address */
 struct sockaddr_l2 {
 	sa_family_t	l2_family;
@@ -109,12 +107,6 @@ struct l2cap_conninfo {
 #define L2CAP_ECHO_RSP		0x09
 #define L2CAP_INFO_REQ		0x0a
 #define L2CAP_INFO_RSP		0x0b
-#define L2CAP_CREATE_CHAN_REQ	0x0c
-#define L2CAP_CREATE_CHAN_RSP	0x0d
-#define L2CAP_MOVE_CHAN_REQ	0x0e
-#define L2CAP_MOVE_CHAN_RSP	0x0f
-#define L2CAP_MOVE_CHAN_CFM	0x10
-#define L2CAP_MOVE_CHAN_CFM_RSP	0x11
 #define L2CAP_CONN_PARAM_UPDATE_REQ	0x12
 #define L2CAP_CONN_PARAM_UPDATE_RSP	0x13
 #define L2CAP_LE_CONN_REQ	0x14
@@ -144,7 +136,6 @@ struct l2cap_conninfo {
 /* L2CAP fixed channels */
 #define L2CAP_FC_SIG_BREDR	0x02
 #define L2CAP_FC_CONNLESS	0x04
-#define L2CAP_FC_A2MP		0x08
 #define L2CAP_FC_ATT		0x10
 #define L2CAP_FC_SIG_LE		0x20
 #define L2CAP_FC_SMP_LE		0x40
@@ -267,7 +258,6 @@ struct l2cap_conn_rsp {
 /* channel identifier */
 #define L2CAP_CID_SIGNALING	0x0001
 #define L2CAP_CID_CONN_LESS	0x0002
-#define L2CAP_CID_A2MP		0x0003
 #define L2CAP_CID_ATT		0x0004
 #define L2CAP_CID_LE_SIGNALING	0x0005
 #define L2CAP_CID_SMP		0x0006
@@ -282,7 +272,6 @@ struct l2cap_conn_rsp {
 #define L2CAP_CR_BAD_PSM	0x0002
 #define L2CAP_CR_SEC_BLOCK	0x0003
 #define L2CAP_CR_NO_MEM		0x0004
-#define L2CAP_CR_BAD_AMP	0x0005
 #define L2CAP_CR_INVALID_SCID	0x0006
 #define L2CAP_CR_SCID_IN_USE	0x0007
 
@@ -404,29 +393,6 @@ struct l2cap_info_rsp {
 	__u8        data[];
 } __packed;
 
-struct l2cap_create_chan_req {
-	__le16      psm;
-	__le16      scid;
-	__u8        amp_id;
-} __packed;
-
-struct l2cap_create_chan_rsp {
-	__le16      dcid;
-	__le16      scid;
-	__le16      result;
-	__le16      status;
-} __packed;
-
-struct l2cap_move_chan_req {
-	__le16      icid;
-	__u8        dest_amp_id;
-} __packed;
-
-struct l2cap_move_chan_rsp {
-	__le16      icid;
-	__le16      result;
-} __packed;
-
 #define L2CAP_MR_SUCCESS	0x0000
 #define L2CAP_MR_PEND		0x0001
 #define L2CAP_MR_BAD_ID		0x0002
@@ -539,8 +505,6 @@ struct l2cap_seq_list {
 
 struct l2cap_chan {
 	struct l2cap_conn	*conn;
-	struct hci_conn		*hs_hcon;
-	struct hci_chan		*hs_hchan;
 	struct kref	kref;
 	atomic_t	nesting;
 
@@ -591,12 +555,6 @@ struct l2cap_chan {
 	unsigned long	conn_state;
 	unsigned long	flags;
 
-	__u8		remote_amp_id;
-	__u8		local_amp_id;
-	__u8		move_id;
-	__u8		move_state;
-	__u8		move_role;
-
 	__u16		next_tx_seq;
 	__u16		expected_ack_seq;
 	__u16		expected_tx_seq;
diff --git a/net/bluetooth/Kconfig b/net/bluetooth/Kconfig
index da7cac0a1b716..6b2b65a667008 100644
--- a/net/bluetooth/Kconfig
+++ b/net/bluetooth/Kconfig
@@ -62,14 +62,6 @@ source "net/bluetooth/cmtp/Kconfig"
 
 source "net/bluetooth/hidp/Kconfig"
 
-config BT_HS
-	bool "Bluetooth High Speed (HS) features"
-	depends on BT_BREDR
-	help
-	  Bluetooth High Speed includes support for off-loading
-	  Bluetooth connections via 802.11 (wifi) physical layer
-	  available with Bluetooth version 3.0 or later.
-
 config BT_LE
 	bool "Bluetooth Low Energy (LE) features"
 	depends on BT
diff --git a/net/bluetooth/Makefile b/net/bluetooth/Makefile
index 141ac1fda0bfa..628d448d78be3 100644
--- a/net/bluetooth/Makefile
+++ b/net/bluetooth/Makefile
@@ -21,7 +21,6 @@ bluetooth-$(CONFIG_DEV_COREDUMP) += coredump.o
 
 bluetooth-$(CONFIG_BT_BREDR) += sco.o
 bluetooth-$(CONFIG_BT_LE) += iso.o
-bluetooth-$(CONFIG_BT_HS) += a2mp.o amp.o
 bluetooth-$(CONFIG_BT_LEDS) += leds.o
 bluetooth-$(CONFIG_BT_MSFTEXT) += msft.o
 bluetooth-$(CONFIG_BT_AOSPEXT) += aosp.o
diff --git a/net/bluetooth/a2mp.c b/net/bluetooth/a2mp.c
deleted file mode 100644
index e7adb8a98cf90..0000000000000
--- a/net/bluetooth/a2mp.c
+++ /dev/null
@@ -1,1054 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/*
-   Copyright (c) 2010,2011 Code Aurora Forum.  All rights reserved.
-   Copyright (c) 2011,2012 Intel Corp.
-
-*/
-
-#include <net/bluetooth/bluetooth.h>
-#include <net/bluetooth/hci_core.h>
-#include <net/bluetooth/l2cap.h>
-
-#include "hci_request.h"
-#include "a2mp.h"
-#include "amp.h"
-
-#define A2MP_FEAT_EXT	0x8000
-
-/* Global AMP Manager list */
-static LIST_HEAD(amp_mgr_list);
-static DEFINE_MUTEX(amp_mgr_list_lock);
-
-/* A2MP build & send command helper functions */
-static struct a2mp_cmd *__a2mp_build(u8 code, u8 ident, u16 len, void *data)
-{
-	struct a2mp_cmd *cmd;
-	int plen;
-
-	plen = sizeof(*cmd) + len;
-	cmd = kzalloc(plen, GFP_KERNEL);
-	if (!cmd)
-		return NULL;
-
-	cmd->code = code;
-	cmd->ident = ident;
-	cmd->len = cpu_to_le16(len);
-
-	memcpy(cmd->data, data, len);
-
-	return cmd;
-}
-
-static void a2mp_send(struct amp_mgr *mgr, u8 code, u8 ident, u16 len, void *data)
-{
-	struct l2cap_chan *chan = mgr->a2mp_chan;
-	struct a2mp_cmd *cmd;
-	u16 total_len = len + sizeof(*cmd);
-	struct kvec iv;
-	struct msghdr msg;
-
-	cmd = __a2mp_build(code, ident, len, data);
-	if (!cmd)
-		return;
-
-	iv.iov_base = cmd;
-	iv.iov_len = total_len;
-
-	memset(&msg, 0, sizeof(msg));
-
-	iov_iter_kvec(&msg.msg_iter, ITER_SOURCE, &iv, 1, total_len);
-
-	l2cap_chan_send(chan, &msg, total_len);
-
-	kfree(cmd);
-}
-
-static u8 __next_ident(struct amp_mgr *mgr)
-{
-	if (++mgr->ident == 0)
-		mgr->ident = 1;
-
-	return mgr->ident;
-}
-
-static struct amp_mgr *amp_mgr_lookup_by_state(u8 state)
-{
-	struct amp_mgr *mgr;
-
-	mutex_lock(&amp_mgr_list_lock);
-	list_for_each_entry(mgr, &amp_mgr_list, list) {
-		if (test_and_clear_bit(state, &mgr->state)) {
-			amp_mgr_get(mgr);
-			mutex_unlock(&amp_mgr_list_lock);
-			return mgr;
-		}
-	}
-	mutex_unlock(&amp_mgr_list_lock);
-
-	return NULL;
-}
-
-/* hci_dev_list shall be locked */
-static void __a2mp_add_cl(struct amp_mgr *mgr, struct a2mp_cl *cl)
-{
-	struct hci_dev *hdev;
-	int i = 1;
-
-	cl[0].id = AMP_ID_BREDR;
-	cl[0].type = AMP_TYPE_BREDR;
-	cl[0].status = AMP_STATUS_BLUETOOTH_ONLY;
-
-	list_for_each_entry(hdev, &hci_dev_list, list) {
-		if (hdev->dev_type == HCI_AMP) {
-			cl[i].id = hdev->id;
-			cl[i].type = hdev->amp_type;
-			if (test_bit(HCI_UP, &hdev->flags))
-				cl[i].status = hdev->amp_status;
-			else
-				cl[i].status = AMP_STATUS_POWERED_DOWN;
-			i++;
-		}
-	}
-}
-
-/* Processing A2MP messages */
-static int a2mp_command_rej(struct amp_mgr *mgr, struct sk_buff *skb,
-			    struct a2mp_cmd *hdr)
-{
-	struct a2mp_cmd_rej *rej = (void *) skb->data;
-
-	if (le16_to_cpu(hdr->len) < sizeof(*rej))
-		return -EINVAL;
-
-	BT_DBG("ident %u reason %d", hdr->ident, le16_to_cpu(rej->reason));
-
-	skb_pull(skb, sizeof(*rej));
-
-	return 0;
-}
-
-static int a2mp_discover_req(struct amp_mgr *mgr, struct sk_buff *skb,
-			     struct a2mp_cmd *hdr)
-{
-	struct a2mp_discov_req *req = (void *) skb->data;
-	u16 len = le16_to_cpu(hdr->len);
-	struct a2mp_discov_rsp *rsp;
-	u16 ext_feat;
-	u8 num_ctrl;
-	struct hci_dev *hdev;
-
-	if (len < sizeof(*req))
-		return -EINVAL;
-
-	skb_pull(skb, sizeof(*req));
-
-	ext_feat = le16_to_cpu(req->ext_feat);
-
-	BT_DBG("mtu %d efm 0x%4.4x", le16_to_cpu(req->mtu), ext_feat);
-
-	/* check that packet is not broken for now */
-	while (ext_feat & A2MP_FEAT_EXT) {
-		if (len < sizeof(ext_feat))
-			return -EINVAL;
-
-		ext_feat = get_unaligned_le16(skb->data);
-		BT_DBG("efm 0x%4.4x", ext_feat);
-		len -= sizeof(ext_feat);
-		skb_pull(skb, sizeof(ext_feat));
-	}
-
-	read_lock(&hci_dev_list_lock);
-
-	/* at minimum the BR/EDR needs to be listed */
-	num_ctrl = 1;
-
-	list_for_each_entry(hdev, &hci_dev_list, list) {
-		if (hdev->dev_type == HCI_AMP)
-			num_ctrl++;
-	}
-
-	len = struct_size(rsp, cl, num_ctrl);
-	rsp = kmalloc(len, GFP_ATOMIC);
-	if (!rsp) {
-		read_unlock(&hci_dev_list_lock);
-		return -ENOMEM;
-	}
-
-	rsp->mtu = cpu_to_le16(L2CAP_A2MP_DEFAULT_MTU);
-	rsp->ext_feat = 0;
-
-	__a2mp_add_cl(mgr, rsp->cl);
-
-	read_unlock(&hci_dev_list_lock);
-
-	a2mp_send(mgr, A2MP_DISCOVER_RSP, hdr->ident, len, rsp);
-
-	kfree(rsp);
-	return 0;
-}
-
-static int a2mp_discover_rsp(struct amp_mgr *mgr, struct sk_buff *skb,
-			     struct a2mp_cmd *hdr)
-{
-	struct a2mp_discov_rsp *rsp = (void *) skb->data;
-	u16 len = le16_to_cpu(hdr->len);
-	struct a2mp_cl *cl;
-	u16 ext_feat;
-	bool found = false;
-
-	if (len < sizeof(*rsp))
-		return -EINVAL;
-
-	len -= sizeof(*rsp);
-	skb_pull(skb, sizeof(*rsp));
-
-	ext_feat = le16_to_cpu(rsp->ext_feat);
-
-	BT_DBG("mtu %d efm 0x%4.4x", le16_to_cpu(rsp->mtu), ext_feat);
-
-	/* check that packet is not broken for now */
-	while (ext_feat & A2MP_FEAT_EXT) {
-		if (len < sizeof(ext_feat))
-			return -EINVAL;
-
-		ext_feat = get_unaligned_le16(skb->data);
-		BT_DBG("efm 0x%4.4x", ext_feat);
-		len -= sizeof(ext_feat);
-		skb_pull(skb, sizeof(ext_feat));
-	}
-
-	cl = (void *) skb->data;
-	while (len >= sizeof(*cl)) {
-		BT_DBG("Remote AMP id %u type %u status %u", cl->id, cl->type,
-		       cl->status);
-
-		if (cl->id != AMP_ID_BREDR && cl->type != AMP_TYPE_BREDR) {
-			struct a2mp_info_req req;
-
-			found = true;
-
-			memset(&req, 0, sizeof(req));
-
-			req.id = cl->id;
-			a2mp_send(mgr, A2MP_GETINFO_REQ, __next_ident(mgr),
-				  sizeof(req), &req);
-		}
-
-		len -= sizeof(*cl);
-		cl = skb_pull(skb, sizeof(*cl));
-	}
-
-	/* Fall back to L2CAP init sequence */
-	if (!found) {
-		struct l2cap_conn *conn = mgr->l2cap_conn;
-		struct l2cap_chan *chan;
-
-		mutex_lock(&conn->chan_lock);
-
-		list_for_each_entry(chan, &conn->chan_l, list) {
-
-			BT_DBG("chan %p state %s", chan,
-			       state_to_string(chan->state));
-
-			if (chan->scid == L2CAP_CID_A2MP)
-				continue;
-
-			l2cap_chan_lock(chan);
-
-			if (chan->state == BT_CONNECT)
-				l2cap_send_conn_req(chan);
-
-			l2cap_chan_unlock(chan);
-		}
-
-		mutex_unlock(&conn->chan_lock);
-	}
-
-	return 0;
-}
-
-static int a2mp_change_notify(struct amp_mgr *mgr, struct sk_buff *skb,
-			      struct a2mp_cmd *hdr)
-{
-	struct a2mp_cl *cl = (void *) skb->data;
-
-	while (skb->len >= sizeof(*cl)) {
-		BT_DBG("Controller id %u type %u status %u", cl->id, cl->type,
-		       cl->status);
-		cl = skb_pull(skb, sizeof(*cl));
-	}
-
-	/* TODO send A2MP_CHANGE_RSP */
-
-	return 0;
-}
-
-static void read_local_amp_info_complete(struct hci_dev *hdev, u8 status,
-					 u16 opcode)
-{
-	BT_DBG("%s status 0x%2.2x", hdev->name, status);
-
-	a2mp_send_getinfo_rsp(hdev);
-}
-
-static int a2mp_getinfo_req(struct amp_mgr *mgr, struct sk_buff *skb,
-			    struct a2mp_cmd *hdr)
-{
-	struct a2mp_info_req *req  = (void *) skb->data;
-	struct hci_dev *hdev;
-	struct hci_request hreq;
-	int err = 0;
-
-	if (le16_to_cpu(hdr->len) < sizeof(*req))
-		return -EINVAL;
-
-	BT_DBG("id %u", req->id);
-
-	hdev = hci_dev_get(req->id);
-	if (!hdev || hdev->dev_type != HCI_AMP) {
-		struct a2mp_info_rsp rsp;
-
-		memset(&rsp, 0, sizeof(rsp));
-
-		rsp.id = req->id;
-		rsp.status = A2MP_STATUS_INVALID_CTRL_ID;
-
-		a2mp_send(mgr, A2MP_GETINFO_RSP, hdr->ident, sizeof(rsp),
-			  &rsp);
-
-		goto done;
-	}
-
-	set_bit(READ_LOC_AMP_INFO, &mgr->state);
-	hci_req_init(&hreq, hdev);
-	hci_req_add(&hreq, HCI_OP_READ_LOCAL_AMP_INFO, 0, NULL);
-	err = hci_req_run(&hreq, read_local_amp_info_complete);
-	if (err < 0)
-		a2mp_send_getinfo_rsp(hdev);
-
-done:
-	if (hdev)
-		hci_dev_put(hdev);
-
-	skb_pull(skb, sizeof(*req));
-	return 0;
-}
-
-static int a2mp_getinfo_rsp(struct amp_mgr *mgr, struct sk_buff *skb,
-			    struct a2mp_cmd *hdr)
-{
-	struct a2mp_info_rsp *rsp = (struct a2mp_info_rsp *) skb->data;
-	struct a2mp_amp_assoc_req req;
-	struct amp_ctrl *ctrl;
-
-	if (le16_to_cpu(hdr->len) < sizeof(*rsp))
-		return -EINVAL;
-
-	BT_DBG("id %u status 0x%2.2x", rsp->id, rsp->status);
-
-	if (rsp->status)
-		return -EINVAL;
-
-	ctrl = amp_ctrl_add(mgr, rsp->id);
-	if (!ctrl)
-		return -ENOMEM;
-
-	memset(&req, 0, sizeof(req));
-
-	req.id = rsp->id;
-	a2mp_send(mgr, A2MP_GETAMPASSOC_REQ, __next_ident(mgr), sizeof(req),
-		  &req);
-
-	skb_pull(skb, sizeof(*rsp));
-	return 0;
-}
-
-static int a2mp_getampassoc_req(struct amp_mgr *mgr, struct sk_buff *skb,
-				struct a2mp_cmd *hdr)
-{
-	struct a2mp_amp_assoc_req *req = (void *) skb->data;
-	struct hci_dev *hdev;
-	struct amp_mgr *tmp;
-
-	if (le16_to_cpu(hdr->len) < sizeof(*req))
-		return -EINVAL;
-
-	BT_DBG("id %u", req->id);
-
-	/* Make sure that other request is not processed */
-	tmp = amp_mgr_lookup_by_state(READ_LOC_AMP_ASSOC);
-
-	hdev = hci_dev_get(req->id);
-	if (!hdev || hdev->amp_type == AMP_TYPE_BREDR || tmp) {
-		struct a2mp_amp_assoc_rsp rsp;
-
-		memset(&rsp, 0, sizeof(rsp));
-		rsp.id = req->id;
-
-		if (tmp) {
-			rsp.status = A2MP_STATUS_COLLISION_OCCURED;
-			amp_mgr_put(tmp);
-		} else {
-			rsp.status = A2MP_STATUS_INVALID_CTRL_ID;
-		}
-
-		a2mp_send(mgr, A2MP_GETAMPASSOC_RSP, hdr->ident, sizeof(rsp),
-			  &rsp);
-
-		goto done;
-	}
-
-	amp_read_loc_assoc(hdev, mgr);
-
-done:
-	if (hdev)
-		hci_dev_put(hdev);
-
-	skb_pull(skb, sizeof(*req));
-	return 0;
-}
-
-static int a2mp_getampassoc_rsp(struct amp_mgr *mgr, struct sk_buff *skb,
-				struct a2mp_cmd *hdr)
-{
-	struct a2mp_amp_assoc_rsp *rsp = (void *) skb->data;
-	u16 len = le16_to_cpu(hdr->len);
-	struct hci_dev *hdev;
-	struct amp_ctrl *ctrl;
-	struct hci_conn *hcon;
-	size_t assoc_len;
-
-	if (len < sizeof(*rsp))
-		return -EINVAL;
-
-	assoc_len = len - sizeof(*rsp);
-
-	BT_DBG("id %u status 0x%2.2x assoc len %zu", rsp->id, rsp->status,
-	       assoc_len);
-
-	if (rsp->status)
-		return -EINVAL;
-
-	/* Save remote ASSOC data */
-	ctrl = amp_ctrl_lookup(mgr, rsp->id);
-	if (ctrl) {
-		u8 *assoc;
-
-		assoc = kmemdup(rsp->amp_assoc, assoc_len, GFP_KERNEL);
-		if (!assoc) {
-			amp_ctrl_put(ctrl);
-			return -ENOMEM;
-		}
-
-		ctrl->assoc = assoc;
-		ctrl->assoc_len = assoc_len;
-		ctrl->assoc_rem_len = assoc_len;
-		ctrl->assoc_len_so_far = 0;
-
-		amp_ctrl_put(ctrl);
-	}
-
-	/* Create Phys Link */
-	hdev = hci_dev_get(rsp->id);
-	if (!hdev)
-		return -EINVAL;
-
-	hcon = phylink_add(hdev, mgr, rsp->id, true);
-	if (!hcon)
-		goto done;
-
-	BT_DBG("Created hcon %p: loc:%u -> rem:%u", hcon, hdev->id, rsp->id);
-
-	mgr->bredr_chan->remote_amp_id = rsp->id;
-
-	amp_create_phylink(hdev, mgr, hcon);
-
-done:
-	hci_dev_put(hdev);
-	skb_pull(skb, len);
-	return 0;
-}
-
-static int a2mp_createphyslink_req(struct amp_mgr *mgr, struct sk_buff *skb,
-				   struct a2mp_cmd *hdr)
-{
-	struct a2mp_physlink_req *req = (void *) skb->data;
-	struct a2mp_physlink_rsp rsp;
-	struct hci_dev *hdev;
-	struct hci_conn *hcon;
-	struct amp_ctrl *ctrl;
-
-	if (le16_to_cpu(hdr->len) < sizeof(*req))
-		return -EINVAL;
-
-	BT_DBG("local_id %u, remote_id %u", req->local_id, req->remote_id);
-
-	memset(&rsp, 0, sizeof(rsp));
-
-	rsp.local_id = req->remote_id;
-	rsp.remote_id = req->local_id;
-
-	hdev = hci_dev_get(req->remote_id);
-	if (!hdev || hdev->amp_type == AMP_TYPE_BREDR) {
-		rsp.status = A2MP_STATUS_INVALID_CTRL_ID;
-		goto send_rsp;
-	}
-
-	ctrl = amp_ctrl_lookup(mgr, rsp.remote_id);
-	if (!ctrl) {
-		ctrl = amp_ctrl_add(mgr, rsp.remote_id);
-		if (ctrl) {
-			amp_ctrl_get(ctrl);
-		} else {
-			rsp.status = A2MP_STATUS_UNABLE_START_LINK_CREATION;
-			goto send_rsp;
-		}
-	}
-
-	if (ctrl) {
-		size_t assoc_len = le16_to_cpu(hdr->len) - sizeof(*req);
-		u8 *assoc;
-
-		assoc = kmemdup(req->amp_assoc, assoc_len, GFP_KERNEL);
-		if (!assoc) {
-			amp_ctrl_put(ctrl);
-			hci_dev_put(hdev);
-			return -ENOMEM;
-		}
-
-		ctrl->assoc = assoc;
-		ctrl->assoc_len = assoc_len;
-		ctrl->assoc_rem_len = assoc_len;
-		ctrl->assoc_len_so_far = 0;
-
-		amp_ctrl_put(ctrl);
-	}
-
-	hcon = phylink_add(hdev, mgr, req->local_id, false);
-	if (hcon) {
-		amp_accept_phylink(hdev, mgr, hcon);
-		rsp.status = A2MP_STATUS_SUCCESS;
-	} else {
-		rsp.status = A2MP_STATUS_UNABLE_START_LINK_CREATION;
-	}
-
-send_rsp:
-	if (hdev)
-		hci_dev_put(hdev);
-
-	/* Reply error now and success after HCI Write Remote AMP Assoc
-	   command complete with success status
-	 */
-	if (rsp.status != A2MP_STATUS_SUCCESS) {
-		a2mp_send(mgr, A2MP_CREATEPHYSLINK_RSP, hdr->ident,
-			  sizeof(rsp), &rsp);
-	} else {
-		set_bit(WRITE_REMOTE_AMP_ASSOC, &mgr->state);
-		mgr->ident = hdr->ident;
-	}
-
-	skb_pull(skb, le16_to_cpu(hdr->len));
-	return 0;
-}
-
-static int a2mp_discphyslink_req(struct amp_mgr *mgr, struct sk_buff *skb,
-				 struct a2mp_cmd *hdr)
-{
-	struct a2mp_physlink_req *req = (void *) skb->data;
-	struct a2mp_physlink_rsp rsp;
-	struct hci_dev *hdev;
-	struct hci_conn *hcon;
-
-	if (le16_to_cpu(hdr->len) < sizeof(*req))
-		return -EINVAL;
-
-	BT_DBG("local_id %u remote_id %u", req->local_id, req->remote_id);
-
-	memset(&rsp, 0, sizeof(rsp));
-
-	rsp.local_id = req->remote_id;
-	rsp.remote_id = req->local_id;
-	rsp.status = A2MP_STATUS_SUCCESS;
-
-	hdev = hci_dev_get(req->remote_id);
-	if (!hdev) {
-		rsp.status = A2MP_STATUS_INVALID_CTRL_ID;
-		goto send_rsp;
-	}
-
-	hcon = hci_conn_hash_lookup_ba(hdev, AMP_LINK,
-				       &mgr->l2cap_conn->hcon->dst);
-	if (!hcon) {
-		bt_dev_err(hdev, "no phys link exist");
-		rsp.status = A2MP_STATUS_NO_PHYSICAL_LINK_EXISTS;
-		goto clean;
-	}
-
-	/* TODO Disconnect Phys Link here */
-
-clean:
-	hci_dev_put(hdev);
-
-send_rsp:
-	a2mp_send(mgr, A2MP_DISCONNPHYSLINK_RSP, hdr->ident, sizeof(rsp), &rsp);
-
-	skb_pull(skb, sizeof(*req));
-	return 0;
-}
-
-static inline int a2mp_cmd_rsp(struct amp_mgr *mgr, struct sk_buff *skb,
-			       struct a2mp_cmd *hdr)
-{
-	BT_DBG("ident %u code 0x%2.2x", hdr->ident, hdr->code);
-
-	skb_pull(skb, le16_to_cpu(hdr->len));
-	return 0;
-}
-
-/* Handle A2MP signalling */
-static int a2mp_chan_recv_cb(struct l2cap_chan *chan, struct sk_buff *skb)
-{
-	struct a2mp_cmd *hdr;
-	struct amp_mgr *mgr = chan->data;
-	int err = 0;
-
-	amp_mgr_get(mgr);
-
-	while (skb->len >= sizeof(*hdr)) {
-		u16 len;
-
-		hdr = (void *) skb->data;
-		len = le16_to_cpu(hdr->len);
-
-		BT_DBG("code 0x%2.2x id %u len %u", hdr->code, hdr->ident, len);
-
-		skb_pull(skb, sizeof(*hdr));
-
-		if (len > skb->len || !hdr->ident) {
-			err = -EINVAL;
-			break;
-		}
-
-		mgr->ident = hdr->ident;
-
-		switch (hdr->code) {
-		case A2MP_COMMAND_REJ:
-			a2mp_command_rej(mgr, skb, hdr);
-			break;
-
-		case A2MP_DISCOVER_REQ:
-			err = a2mp_discover_req(mgr, skb, hdr);
-			break;
-
-		case A2MP_CHANGE_NOTIFY:
-			err = a2mp_change_notify(mgr, skb, hdr);
-			break;
-
-		case A2MP_GETINFO_REQ:
-			err = a2mp_getinfo_req(mgr, skb, hdr);
-			break;
-
-		case A2MP_GETAMPASSOC_REQ:
-			err = a2mp_getampassoc_req(mgr, skb, hdr);
-			break;
-
-		case A2MP_CREATEPHYSLINK_REQ:
-			err = a2mp_createphyslink_req(mgr, skb, hdr);
-			break;
-
-		case A2MP_DISCONNPHYSLINK_REQ:
-			err = a2mp_discphyslink_req(mgr, skb, hdr);
-			break;
-
-		case A2MP_DISCOVER_RSP:
-			err = a2mp_discover_rsp(mgr, skb, hdr);
-			break;
-
-		case A2MP_GETINFO_RSP:
-			err = a2mp_getinfo_rsp(mgr, skb, hdr);
-			break;
-
-		case A2MP_GETAMPASSOC_RSP:
-			err = a2mp_getampassoc_rsp(mgr, skb, hdr);
-			break;
-
-		case A2MP_CHANGE_RSP:
-		case A2MP_CREATEPHYSLINK_RSP:
-		case A2MP_DISCONNPHYSLINK_RSP:
-			err = a2mp_cmd_rsp(mgr, skb, hdr);
-			break;
-
-		default:
-			BT_ERR("Unknown A2MP sig cmd 0x%2.2x", hdr->code);
-			err = -EINVAL;
-			break;
-		}
-	}
-
-	if (err) {
-		struct a2mp_cmd_rej rej;
-
-		memset(&rej, 0, sizeof(rej));
-
-		rej.reason = cpu_to_le16(0);
-		hdr = (void *) skb->data;
-
-		BT_DBG("Send A2MP Rej: cmd 0x%2.2x err %d", hdr->code, err);
-
-		a2mp_send(mgr, A2MP_COMMAND_REJ, hdr->ident, sizeof(rej),
-			  &rej);
-	}
-
-	/* Always free skb and return success error code to prevent
-	   from sending L2CAP Disconnect over A2MP channel */
-	kfree_skb(skb);
-
-	amp_mgr_put(mgr);
-
-	return 0;
-}
-
-static void a2mp_chan_close_cb(struct l2cap_chan *chan)
-{
-	l2cap_chan_put(chan);
-}
-
-static void a2mp_chan_state_change_cb(struct l2cap_chan *chan, int state,
-				      int err)
-{
-	struct amp_mgr *mgr = chan->data;
-
-	if (!mgr)
-		return;
-
-	BT_DBG("chan %p state %s", chan, state_to_string(state));
-
-	chan->state = state;
-
-	switch (state) {
-	case BT_CLOSED:
-		if (mgr)
-			amp_mgr_put(mgr);
-		break;
-	}
-}
-
-static struct sk_buff *a2mp_chan_alloc_skb_cb(struct l2cap_chan *chan,
-					      unsigned long hdr_len,
-					      unsigned long len, int nb)
-{
-	struct sk_buff *skb;
-
-	skb = bt_skb_alloc(hdr_len + len, GFP_KERNEL);
-	if (!skb)
-		return ERR_PTR(-ENOMEM);
-
-	return skb;
-}
-
-static const struct l2cap_ops a2mp_chan_ops = {
-	.name = "L2CAP A2MP channel",
-	.recv = a2mp_chan_recv_cb,
-	.close = a2mp_chan_close_cb,
-	.state_change = a2mp_chan_state_change_cb,
-	.alloc_skb = a2mp_chan_alloc_skb_cb,
-
-	/* Not implemented for A2MP */
-	.new_connection = l2cap_chan_no_new_connection,
-	.teardown = l2cap_chan_no_teardown,
-	.ready = l2cap_chan_no_ready,
-	.defer = l2cap_chan_no_defer,
-	.resume = l2cap_chan_no_resume,
-	.set_shutdown = l2cap_chan_no_set_shutdown,
-	.get_sndtimeo = l2cap_chan_no_get_sndtimeo,
-};
-
-static struct l2cap_chan *a2mp_chan_open(struct l2cap_conn *conn, bool locked)
-{
-	struct l2cap_chan *chan;
-	int err;
-
-	chan = l2cap_chan_create();
-	if (!chan)
-		return NULL;
-
-	BT_DBG("chan %p", chan);
-
-	chan->chan_type = L2CAP_CHAN_FIXED;
-	chan->scid = L2CAP_CID_A2MP;
-	chan->dcid = L2CAP_CID_A2MP;
-	chan->omtu = L2CAP_A2MP_DEFAULT_MTU;
-	chan->imtu = L2CAP_A2MP_DEFAULT_MTU;
-	chan->flush_to = L2CAP_DEFAULT_FLUSH_TO;
-
-	chan->ops = &a2mp_chan_ops;
-
-	l2cap_chan_set_defaults(chan);
-	chan->remote_max_tx = chan->max_tx;
-	chan->remote_tx_win = chan->tx_win;
-
-	chan->retrans_timeout = L2CAP_DEFAULT_RETRANS_TO;
-	chan->monitor_timeout = L2CAP_DEFAULT_MONITOR_TO;
-
-	skb_queue_head_init(&chan->tx_q);
-
-	chan->mode = L2CAP_MODE_ERTM;
-
-	err = l2cap_ertm_init(chan);
-	if (err < 0) {
-		l2cap_chan_del(chan, 0);
-		return NULL;
-	}
-
-	chan->conf_state = 0;
-
-	if (locked)
-		__l2cap_chan_add(conn, chan);
-	else
-		l2cap_chan_add(conn, chan);
-
-	chan->remote_mps = chan->omtu;
-	chan->mps = chan->omtu;
-
-	chan->state = BT_CONNECTED;
-
-	return chan;
-}
-
-/* AMP Manager functions */
-struct amp_mgr *amp_mgr_get(struct amp_mgr *mgr)
-{
-	BT_DBG("mgr %p orig refcnt %d", mgr, kref_read(&mgr->kref));
-
-	kref_get(&mgr->kref);
-
-	return mgr;
-}
-
-static void amp_mgr_destroy(struct kref *kref)
-{
-	struct amp_mgr *mgr = container_of(kref, struct amp_mgr, kref);
-
-	BT_DBG("mgr %p", mgr);
-
-	mutex_lock(&amp_mgr_list_lock);
-	list_del(&mgr->list);
-	mutex_unlock(&amp_mgr_list_lock);
-
-	amp_ctrl_list_flush(mgr);
-	kfree(mgr);
-}
-
-int amp_mgr_put(struct amp_mgr *mgr)
-{
-	BT_DBG("mgr %p orig refcnt %d", mgr, kref_read(&mgr->kref));
-
-	return kref_put(&mgr->kref, &amp_mgr_destroy);
-}
-
-static struct amp_mgr *amp_mgr_create(struct l2cap_conn *conn, bool locked)
-{
-	struct amp_mgr *mgr;
-	struct l2cap_chan *chan;
-
-	mgr = kzalloc(sizeof(*mgr), GFP_KERNEL);
-	if (!mgr)
-		return NULL;
-
-	BT_DBG("conn %p mgr %p", conn, mgr);
-
-	mgr->l2cap_conn = conn;
-
-	chan = a2mp_chan_open(conn, locked);
-	if (!chan) {
-		kfree(mgr);
-		return NULL;
-	}
-
-	mgr->a2mp_chan = chan;
-	chan->data = mgr;
-
-	conn->hcon->amp_mgr = mgr;
-
-	kref_init(&mgr->kref);
-
-	/* Remote AMP ctrl list initialization */
-	INIT_LIST_HEAD(&mgr->amp_ctrls);
-	mutex_init(&mgr->amp_ctrls_lock);
-
-	mutex_lock(&amp_mgr_list_lock);
-	list_add(&mgr->list, &amp_mgr_list);
-	mutex_unlock(&amp_mgr_list_lock);
-
-	return mgr;
-}
-
-struct l2cap_chan *a2mp_channel_create(struct l2cap_conn *conn,
-				       struct sk_buff *skb)
-{
-	struct amp_mgr *mgr;
-
-	if (conn->hcon->type != ACL_LINK)
-		return NULL;
-
-	mgr = amp_mgr_create(conn, false);
-	if (!mgr) {
-		BT_ERR("Could not create AMP manager");
-		return NULL;
-	}
-
-	BT_DBG("mgr: %p chan %p", mgr, mgr->a2mp_chan);
-
-	return mgr->a2mp_chan;
-}
-
-void a2mp_send_getinfo_rsp(struct hci_dev *hdev)
-{
-	struct amp_mgr *mgr;
-	struct a2mp_info_rsp rsp;
-
-	mgr = amp_mgr_lookup_by_state(READ_LOC_AMP_INFO);
-	if (!mgr)
-		return;
-
-	BT_DBG("%s mgr %p", hdev->name, mgr);
-
-	memset(&rsp, 0, sizeof(rsp));
-
-	rsp.id = hdev->id;
-	rsp.status = A2MP_STATUS_INVALID_CTRL_ID;
-
-	if (hdev->amp_type != AMP_TYPE_BREDR) {
-		rsp.status = 0;
-		rsp.total_bw = cpu_to_le32(hdev->amp_total_bw);
-		rsp.max_bw = cpu_to_le32(hdev->amp_max_bw);
-		rsp.min_latency = cpu_to_le32(hdev->amp_min_latency);
-		rsp.pal_cap = cpu_to_le16(hdev->amp_pal_cap);
-		rsp.assoc_size = cpu_to_le16(hdev->amp_assoc_size);
-	}
-
-	a2mp_send(mgr, A2MP_GETINFO_RSP, mgr->ident, sizeof(rsp), &rsp);
-	amp_mgr_put(mgr);
-}
-
-void a2mp_send_getampassoc_rsp(struct hci_dev *hdev, u8 status)
-{
-	struct amp_mgr *mgr;
-	struct amp_assoc *loc_assoc = &hdev->loc_assoc;
-	struct a2mp_amp_assoc_rsp *rsp;
-	size_t len;
-
-	mgr = amp_mgr_lookup_by_state(READ_LOC_AMP_ASSOC);
-	if (!mgr)
-		return;
-
-	BT_DBG("%s mgr %p", hdev->name, mgr);
-
-	len = sizeof(struct a2mp_amp_assoc_rsp) + loc_assoc->len;
-	rsp = kzalloc(len, GFP_KERNEL);
-	if (!rsp) {
-		amp_mgr_put(mgr);
-		return;
-	}
-
-	rsp->id = hdev->id;
-
-	if (status) {
-		rsp->status = A2MP_STATUS_INVALID_CTRL_ID;
-	} else {
-		rsp->status = A2MP_STATUS_SUCCESS;
-		memcpy(rsp->amp_assoc, loc_assoc->data, loc_assoc->len);
-	}
-
-	a2mp_send(mgr, A2MP_GETAMPASSOC_RSP, mgr->ident, len, rsp);
-	amp_mgr_put(mgr);
-	kfree(rsp);
-}
-
-void a2mp_send_create_phy_link_req(struct hci_dev *hdev, u8 status)
-{
-	struct amp_mgr *mgr;
-	struct amp_assoc *loc_assoc = &hdev->loc_assoc;
-	struct a2mp_physlink_req *req;
-	struct l2cap_chan *bredr_chan;
-	size_t len;
-
-	mgr = amp_mgr_lookup_by_state(READ_LOC_AMP_ASSOC_FINAL);
-	if (!mgr)
-		return;
-
-	len = sizeof(*req) + loc_assoc->len;
-
-	BT_DBG("%s mgr %p assoc_len %zu", hdev->name, mgr, len);
-
-	req = kzalloc(len, GFP_KERNEL);
-	if (!req) {
-		amp_mgr_put(mgr);
-		return;
-	}
-
-	bredr_chan = mgr->bredr_chan;
-	if (!bredr_chan)
-		goto clean;
-
-	req->local_id = hdev->id;
-	req->remote_id = bredr_chan->remote_amp_id;
-	memcpy(req->amp_assoc, loc_assoc->data, loc_assoc->len);
-
-	a2mp_send(mgr, A2MP_CREATEPHYSLINK_REQ, __next_ident(mgr), len, req);
-
-clean:
-	amp_mgr_put(mgr);
-	kfree(req);
-}
-
-void a2mp_send_create_phy_link_rsp(struct hci_dev *hdev, u8 status)
-{
-	struct amp_mgr *mgr;
-	struct a2mp_physlink_rsp rsp;
-	struct hci_conn *hs_hcon;
-
-	mgr = amp_mgr_lookup_by_state(WRITE_REMOTE_AMP_ASSOC);
-	if (!mgr)
-		return;
-
-	memset(&rsp, 0, sizeof(rsp));
-
-	hs_hcon = hci_conn_hash_lookup_state(hdev, AMP_LINK, BT_CONNECT);
-	if (!hs_hcon) {
-		rsp.status = A2MP_STATUS_UNABLE_START_LINK_CREATION;
-	} else {
-		rsp.remote_id = hs_hcon->remote_id;
-		rsp.status = A2MP_STATUS_SUCCESS;
-	}
-
-	BT_DBG("%s mgr %p hs_hcon %p status %u", hdev->name, mgr, hs_hcon,
-	       status);
-
-	rsp.local_id = hdev->id;
-	a2mp_send(mgr, A2MP_CREATEPHYSLINK_RSP, mgr->ident, sizeof(rsp), &rsp);
-	amp_mgr_put(mgr);
-}
-
-void a2mp_discover_amp(struct l2cap_chan *chan)
-{
-	struct l2cap_conn *conn = chan->conn;
-	struct amp_mgr *mgr = conn->hcon->amp_mgr;
-	struct a2mp_discov_req req;
-
-	BT_DBG("chan %p conn %p mgr %p", chan, conn, mgr);
-
-	if (!mgr) {
-		mgr = amp_mgr_create(conn, true);
-		if (!mgr)
-			return;
-	}
-
-	mgr->bredr_chan = chan;
-
-	memset(&req, 0, sizeof(req));
-
-	req.mtu = cpu_to_le16(L2CAP_A2MP_DEFAULT_MTU);
-	req.ext_feat = 0;
-	a2mp_send(mgr, A2MP_DISCOVER_REQ, 1, sizeof(req), &req);
-}
diff --git a/net/bluetooth/a2mp.h b/net/bluetooth/a2mp.h
deleted file mode 100644
index 2fd253a61a2a1..0000000000000
--- a/net/bluetooth/a2mp.h
+++ /dev/null
@@ -1,154 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-/*
-   Copyright (c) 2010,2011 Code Aurora Forum.  All rights reserved.
-   Copyright (c) 2011,2012 Intel Corp.
-
-*/
-
-#ifndef __A2MP_H
-#define __A2MP_H
-
-#include <net/bluetooth/l2cap.h>
-
-enum amp_mgr_state {
-	READ_LOC_AMP_INFO,
-	READ_LOC_AMP_ASSOC,
-	READ_LOC_AMP_ASSOC_FINAL,
-	WRITE_REMOTE_AMP_ASSOC,
-};
-
-struct amp_mgr {
-	struct list_head	list;
-	struct l2cap_conn	*l2cap_conn;
-	struct l2cap_chan	*a2mp_chan;
-	struct l2cap_chan	*bredr_chan;
-	struct kref		kref;
-	__u8			ident;
-	__u8			handle;
-	unsigned long		state;
-	unsigned long		flags;
-
-	struct list_head	amp_ctrls;
-	struct mutex		amp_ctrls_lock;
-};
-
-struct a2mp_cmd {
-	__u8	code;
-	__u8	ident;
-	__le16	len;
-	__u8	data[];
-} __packed;
-
-/* A2MP command codes */
-#define A2MP_COMMAND_REJ         0x01
-struct a2mp_cmd_rej {
-	__le16	reason;
-	__u8	data[];
-} __packed;
-
-#define A2MP_DISCOVER_REQ        0x02
-struct a2mp_discov_req {
-	__le16	mtu;
-	__le16	ext_feat;
-} __packed;
-
-struct a2mp_cl {
-	__u8	id;
-	__u8	type;
-	__u8	status;
-} __packed;
-
-#define A2MP_DISCOVER_RSP        0x03
-struct a2mp_discov_rsp {
-	__le16     mtu;
-	__le16     ext_feat;
-	struct a2mp_cl cl[];
-} __packed;
-
-#define A2MP_CHANGE_NOTIFY       0x04
-#define A2MP_CHANGE_RSP          0x05
-
-#define A2MP_GETINFO_REQ         0x06
-struct a2mp_info_req {
-	__u8       id;
-} __packed;
-
-#define A2MP_GETINFO_RSP         0x07
-struct a2mp_info_rsp {
-	__u8	id;
-	__u8	status;
-	__le32	total_bw;
-	__le32	max_bw;
-	__le32	min_latency;
-	__le16	pal_cap;
-	__le16	assoc_size;
-} __packed;
-
-#define A2MP_GETAMPASSOC_REQ     0x08
-struct a2mp_amp_assoc_req {
-	__u8	id;
-} __packed;
-
-#define A2MP_GETAMPASSOC_RSP     0x09
-struct a2mp_amp_assoc_rsp {
-	__u8	id;
-	__u8	status;
-	__u8	amp_assoc[];
-} __packed;
-
-#define A2MP_CREATEPHYSLINK_REQ  0x0A
-#define A2MP_DISCONNPHYSLINK_REQ 0x0C
-struct a2mp_physlink_req {
-	__u8	local_id;
-	__u8	remote_id;
-	__u8	amp_assoc[];
-} __packed;
-
-#define A2MP_CREATEPHYSLINK_RSP  0x0B
-#define A2MP_DISCONNPHYSLINK_RSP 0x0D
-struct a2mp_physlink_rsp {
-	__u8	local_id;
-	__u8	remote_id;
-	__u8	status;
-} __packed;
-
-/* A2MP response status */
-#define A2MP_STATUS_SUCCESS			0x00
-#define A2MP_STATUS_INVALID_CTRL_ID		0x01
-#define A2MP_STATUS_UNABLE_START_LINK_CREATION	0x02
-#define A2MP_STATUS_NO_PHYSICAL_LINK_EXISTS	0x02
-#define A2MP_STATUS_COLLISION_OCCURED		0x03
-#define A2MP_STATUS_DISCONN_REQ_RECVD		0x04
-#define A2MP_STATUS_PHYS_LINK_EXISTS		0x05
-#define A2MP_STATUS_SECURITY_VIOLATION		0x06
-
-struct amp_mgr *amp_mgr_get(struct amp_mgr *mgr);
-
-#if IS_ENABLED(CONFIG_BT_HS)
-int amp_mgr_put(struct amp_mgr *mgr);
-struct l2cap_chan *a2mp_channel_create(struct l2cap_conn *conn,
-				       struct sk_buff *skb);
-void a2mp_discover_amp(struct l2cap_chan *chan);
-#else
-static inline int amp_mgr_put(struct amp_mgr *mgr)
-{
-	return 0;
-}
-
-static inline struct l2cap_chan *a2mp_channel_create(struct l2cap_conn *conn,
-						     struct sk_buff *skb)
-{
-	return NULL;
-}
-
-static inline void a2mp_discover_amp(struct l2cap_chan *chan)
-{
-}
-#endif
-
-void a2mp_send_getinfo_rsp(struct hci_dev *hdev);
-void a2mp_send_getampassoc_rsp(struct hci_dev *hdev, u8 status);
-void a2mp_send_create_phy_link_req(struct hci_dev *hdev, u8 status);
-void a2mp_send_create_phy_link_rsp(struct hci_dev *hdev, u8 status);
-
-#endif /* __A2MP_H */
diff --git a/net/bluetooth/amp.c b/net/bluetooth/amp.c
deleted file mode 100644
index 5d698f19868c5..0000000000000
--- a/net/bluetooth/amp.c
+++ /dev/null
@@ -1,590 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/*
-   Copyright (c) 2011,2012 Intel Corp.
-
-*/
-
-#include <net/bluetooth/bluetooth.h>
-#include <net/bluetooth/hci.h>
-#include <net/bluetooth/hci_core.h>
-#include <crypto/hash.h>
-
-#include "hci_request.h"
-#include "a2mp.h"
-#include "amp.h"
-
-/* Remote AMP Controllers interface */
-void amp_ctrl_get(struct amp_ctrl *ctrl)
-{
-	BT_DBG("ctrl %p orig refcnt %d", ctrl,
-	       kref_read(&ctrl->kref));
-
-	kref_get(&ctrl->kref);
-}
-
-static void amp_ctrl_destroy(struct kref *kref)
-{
-	struct amp_ctrl *ctrl = container_of(kref, struct amp_ctrl, kref);
-
-	BT_DBG("ctrl %p", ctrl);
-
-	kfree(ctrl->assoc);
-	kfree(ctrl);
-}
-
-int amp_ctrl_put(struct amp_ctrl *ctrl)
-{
-	BT_DBG("ctrl %p orig refcnt %d", ctrl,
-	       kref_read(&ctrl->kref));
-
-	return kref_put(&ctrl->kref, &amp_ctrl_destroy);
-}
-
-struct amp_ctrl *amp_ctrl_add(struct amp_mgr *mgr, u8 id)
-{
-	struct amp_ctrl *ctrl;
-
-	ctrl = kzalloc(sizeof(*ctrl), GFP_KERNEL);
-	if (!ctrl)
-		return NULL;
-
-	kref_init(&ctrl->kref);
-	ctrl->id = id;
-
-	mutex_lock(&mgr->amp_ctrls_lock);
-	list_add(&ctrl->list, &mgr->amp_ctrls);
-	mutex_unlock(&mgr->amp_ctrls_lock);
-
-	BT_DBG("mgr %p ctrl %p", mgr, ctrl);
-
-	return ctrl;
-}
-
-void amp_ctrl_list_flush(struct amp_mgr *mgr)
-{
-	struct amp_ctrl *ctrl, *n;
-
-	BT_DBG("mgr %p", mgr);
-
-	mutex_lock(&mgr->amp_ctrls_lock);
-	list_for_each_entry_safe(ctrl, n, &mgr->amp_ctrls, list) {
-		list_del(&ctrl->list);
-		amp_ctrl_put(ctrl);
-	}
-	mutex_unlock(&mgr->amp_ctrls_lock);
-}
-
-struct amp_ctrl *amp_ctrl_lookup(struct amp_mgr *mgr, u8 id)
-{
-	struct amp_ctrl *ctrl;
-
-	BT_DBG("mgr %p id %u", mgr, id);
-
-	mutex_lock(&mgr->amp_ctrls_lock);
-	list_for_each_entry(ctrl, &mgr->amp_ctrls, list) {
-		if (ctrl->id == id) {
-			amp_ctrl_get(ctrl);
-			mutex_unlock(&mgr->amp_ctrls_lock);
-			return ctrl;
-		}
-	}
-	mutex_unlock(&mgr->amp_ctrls_lock);
-
-	return NULL;
-}
-
-/* Physical Link interface */
-static u8 __next_handle(struct amp_mgr *mgr)
-{
-	if (++mgr->handle == 0)
-		mgr->handle = 1;
-
-	return mgr->handle;
-}
-
-struct hci_conn *phylink_add(struct hci_dev *hdev, struct amp_mgr *mgr,
-			     u8 remote_id, bool out)
-{
-	bdaddr_t *dst = &mgr->l2cap_conn->hcon->dst;
-	struct hci_conn *hcon;
-	u8 role = out ? HCI_ROLE_MASTER : HCI_ROLE_SLAVE;
-
-	hcon = hci_conn_add(hdev, AMP_LINK, dst, role, __next_handle(mgr));
-	if (!hcon)
-		return NULL;
-
-	BT_DBG("hcon %p dst %pMR", hcon, dst);
-
-	hcon->state = BT_CONNECT;
-	hcon->attempt++;
-	hcon->remote_id = remote_id;
-	hcon->amp_mgr = amp_mgr_get(mgr);
-
-	return hcon;
-}
-
-/* AMP crypto key generation interface */
-static int hmac_sha256(u8 *key, u8 ksize, char *plaintext, u8 psize, u8 *output)
-{
-	struct crypto_shash *tfm;
-	struct shash_desc *shash;
-	int ret;
-
-	if (!ksize)
-		return -EINVAL;
-
-	tfm = crypto_alloc_shash("hmac(sha256)", 0, 0);
-	if (IS_ERR(tfm)) {
-		BT_DBG("crypto_alloc_ahash failed: err %ld", PTR_ERR(tfm));
-		return PTR_ERR(tfm);
-	}
-
-	ret = crypto_shash_setkey(tfm, key, ksize);
-	if (ret) {
-		BT_DBG("crypto_ahash_setkey failed: err %d", ret);
-		goto failed;
-	}
-
-	shash = kzalloc(sizeof(*shash) + crypto_shash_descsize(tfm),
-			GFP_KERNEL);
-	if (!shash) {
-		ret = -ENOMEM;
-		goto failed;
-	}
-
-	shash->tfm = tfm;
-
-	ret = crypto_shash_digest(shash, plaintext, psize, output);
-
-	kfree(shash);
-
-failed:
-	crypto_free_shash(tfm);
-	return ret;
-}
-
-int phylink_gen_key(struct hci_conn *conn, u8 *data, u8 *len, u8 *type)
-{
-	struct hci_dev *hdev = conn->hdev;
-	struct link_key *key;
-	u8 keybuf[HCI_AMP_LINK_KEY_SIZE];
-	u8 gamp_key[HCI_AMP_LINK_KEY_SIZE];
-	int err;
-
-	if (!hci_conn_check_link_mode(conn))
-		return -EACCES;
-
-	BT_DBG("conn %p key_type %d", conn, conn->key_type);
-
-	/* Legacy key */
-	if (conn->key_type < 3) {
-		bt_dev_err(hdev, "legacy key type %u", conn->key_type);
-		return -EACCES;
-	}
-
-	*type = conn->key_type;
-	*len = HCI_AMP_LINK_KEY_SIZE;
-
-	key = hci_find_link_key(hdev, &conn->dst);
-	if (!key) {
-		BT_DBG("No Link key for conn %p dst %pMR", conn, &conn->dst);
-		return -EACCES;
-	}
-
-	/* BR/EDR Link Key concatenated together with itself */
-	memcpy(&keybuf[0], key->val, HCI_LINK_KEY_SIZE);
-	memcpy(&keybuf[HCI_LINK_KEY_SIZE], key->val, HCI_LINK_KEY_SIZE);
-
-	/* Derive Generic AMP Link Key (gamp) */
-	err = hmac_sha256(keybuf, HCI_AMP_LINK_KEY_SIZE, "gamp", 4, gamp_key);
-	if (err) {
-		bt_dev_err(hdev, "could not derive Generic AMP Key: err %d", err);
-		return err;
-	}
-
-	if (conn->key_type == HCI_LK_DEBUG_COMBINATION) {
-		BT_DBG("Use Generic AMP Key (gamp)");
-		memcpy(data, gamp_key, HCI_AMP_LINK_KEY_SIZE);
-		return err;
-	}
-
-	/* Derive Dedicated AMP Link Key: "802b" is 802.11 PAL keyID */
-	return hmac_sha256(gamp_key, HCI_AMP_LINK_KEY_SIZE, "802b", 4, data);
-}
-
-static void read_local_amp_assoc_complete(struct hci_dev *hdev, u8 status,
-					  u16 opcode, struct sk_buff *skb)
-{
-	struct hci_rp_read_local_amp_assoc *rp = (void *)skb->data;
-	struct amp_assoc *assoc = &hdev->loc_assoc;
-	size_t rem_len, frag_len;
-
-	BT_DBG("%s status 0x%2.2x", hdev->name, rp->status);
-
-	if (rp->status)
-		goto send_rsp;
-
-	frag_len = skb->len - sizeof(*rp);
-	rem_len = __le16_to_cpu(rp->rem_len);
-
-	if (rem_len > frag_len) {
-		BT_DBG("frag_len %zu rem_len %zu", frag_len, rem_len);
-
-		memcpy(assoc->data + assoc->offset, rp->frag, frag_len);
-		assoc->offset += frag_len;
-
-		/* Read other fragments */
-		amp_read_loc_assoc_frag(hdev, rp->phy_handle);
-
-		return;
-	}
-
-	memcpy(assoc->data + assoc->offset, rp->frag, rem_len);
-	assoc->len = assoc->offset + rem_len;
-	assoc->offset = 0;
-
-send_rsp:
-	/* Send A2MP Rsp when all fragments are received */
-	a2mp_send_getampassoc_rsp(hdev, rp->status);
-	a2mp_send_create_phy_link_req(hdev, rp->status);
-}
-
-void amp_read_loc_assoc_frag(struct hci_dev *hdev, u8 phy_handle)
-{
-	struct hci_cp_read_local_amp_assoc cp;
-	struct amp_assoc *loc_assoc = &hdev->loc_assoc;
-	struct hci_request req;
-	int err;
-
-	BT_DBG("%s handle %u", hdev->name, phy_handle);
-
-	cp.phy_handle = phy_handle;
-	cp.max_len = cpu_to_le16(hdev->amp_assoc_size);
-	cp.len_so_far = cpu_to_le16(loc_assoc->offset);
-
-	hci_req_init(&req, hdev);
-	hci_req_add(&req, HCI_OP_READ_LOCAL_AMP_ASSOC, sizeof(cp), &cp);
-	err = hci_req_run_skb(&req, read_local_amp_assoc_complete);
-	if (err < 0)
-		a2mp_send_getampassoc_rsp(hdev, A2MP_STATUS_INVALID_CTRL_ID);
-}
-
-void amp_read_loc_assoc(struct hci_dev *hdev, struct amp_mgr *mgr)
-{
-	struct hci_cp_read_local_amp_assoc cp;
-	struct hci_request req;
-	int err;
-
-	memset(&hdev->loc_assoc, 0, sizeof(struct amp_assoc));
-	memset(&cp, 0, sizeof(cp));
-
-	cp.max_len = cpu_to_le16(hdev->amp_assoc_size);
-
-	set_bit(READ_LOC_AMP_ASSOC, &mgr->state);
-	hci_req_init(&req, hdev);
-	hci_req_add(&req, HCI_OP_READ_LOCAL_AMP_ASSOC, sizeof(cp), &cp);
-	err = hci_req_run_skb(&req, read_local_amp_assoc_complete);
-	if (err < 0)
-		a2mp_send_getampassoc_rsp(hdev, A2MP_STATUS_INVALID_CTRL_ID);
-}
-
-void amp_read_loc_assoc_final_data(struct hci_dev *hdev,
-				   struct hci_conn *hcon)
-{
-	struct hci_cp_read_local_amp_assoc cp;
-	struct amp_mgr *mgr = hcon->amp_mgr;
-	struct hci_request req;
-	int err;
-
-	if (!mgr)
-		return;
-
-	cp.phy_handle = hcon->handle;
-	cp.len_so_far = cpu_to_le16(0);
-	cp.max_len = cpu_to_le16(hdev->amp_assoc_size);
-
-	set_bit(READ_LOC_AMP_ASSOC_FINAL, &mgr->state);
-
-	/* Read Local AMP Assoc final link information data */
-	hci_req_init(&req, hdev);
-	hci_req_add(&req, HCI_OP_READ_LOCAL_AMP_ASSOC, sizeof(cp), &cp);
-	err = hci_req_run_skb(&req, read_local_amp_assoc_complete);
-	if (err < 0)
-		a2mp_send_getampassoc_rsp(hdev, A2MP_STATUS_INVALID_CTRL_ID);
-}
-
-static void write_remote_amp_assoc_complete(struct hci_dev *hdev, u8 status,
-					    u16 opcode, struct sk_buff *skb)
-{
-	struct hci_rp_write_remote_amp_assoc *rp = (void *)skb->data;
-
-	BT_DBG("%s status 0x%2.2x phy_handle 0x%2.2x",
-	       hdev->name, rp->status, rp->phy_handle);
-
-	if (rp->status)
-		return;
-
-	amp_write_rem_assoc_continue(hdev, rp->phy_handle);
-}
-
-/* Write AMP Assoc data fragments, returns true with last fragment written*/
-static bool amp_write_rem_assoc_frag(struct hci_dev *hdev,
-				     struct hci_conn *hcon)
-{
-	struct hci_cp_write_remote_amp_assoc *cp;
-	struct amp_mgr *mgr = hcon->amp_mgr;
-	struct amp_ctrl *ctrl;
-	struct hci_request req;
-	u16 frag_len, len;
-
-	ctrl = amp_ctrl_lookup(mgr, hcon->remote_id);
-	if (!ctrl)
-		return false;
-
-	if (!ctrl->assoc_rem_len) {
-		BT_DBG("all fragments are written");
-		ctrl->assoc_rem_len = ctrl->assoc_len;
-		ctrl->assoc_len_so_far = 0;
-
-		amp_ctrl_put(ctrl);
-		return true;
-	}
-
-	frag_len = min_t(u16, 248, ctrl->assoc_rem_len);
-	len = frag_len + sizeof(*cp);
-
-	cp = kzalloc(len, GFP_KERNEL);
-	if (!cp) {
-		amp_ctrl_put(ctrl);
-		return false;
-	}
-
-	BT_DBG("hcon %p ctrl %p frag_len %u assoc_len %u rem_len %u",
-	       hcon, ctrl, frag_len, ctrl->assoc_len, ctrl->assoc_rem_len);
-
-	cp->phy_handle = hcon->handle;
-	cp->len_so_far = cpu_to_le16(ctrl->assoc_len_so_far);
-	cp->rem_len = cpu_to_le16(ctrl->assoc_rem_len);
-	memcpy(cp->frag, ctrl->assoc, frag_len);
-
-	ctrl->assoc_len_so_far += frag_len;
-	ctrl->assoc_rem_len -= frag_len;
-
-	amp_ctrl_put(ctrl);
-
-	hci_req_init(&req, hdev);
-	hci_req_add(&req, HCI_OP_WRITE_REMOTE_AMP_ASSOC, len, cp);
-	hci_req_run_skb(&req, write_remote_amp_assoc_complete);
-
-	kfree(cp);
-
-	return false;
-}
-
-void amp_write_rem_assoc_continue(struct hci_dev *hdev, u8 handle)
-{
-	struct hci_conn *hcon;
-
-	BT_DBG("%s phy handle 0x%2.2x", hdev->name, handle);
-
-	hcon = hci_conn_hash_lookup_handle(hdev, handle);
-	if (!hcon)
-		return;
-
-	/* Send A2MP create phylink rsp when all fragments are written */
-	if (amp_write_rem_assoc_frag(hdev, hcon))
-		a2mp_send_create_phy_link_rsp(hdev, 0);
-}
-
-void amp_write_remote_assoc(struct hci_dev *hdev, u8 handle)
-{
-	struct hci_conn *hcon;
-
-	BT_DBG("%s phy handle 0x%2.2x", hdev->name, handle);
-
-	hcon = hci_conn_hash_lookup_handle(hdev, handle);
-	if (!hcon)
-		return;
-
-	BT_DBG("%s phy handle 0x%2.2x hcon %p", hdev->name, handle, hcon);
-
-	amp_write_rem_assoc_frag(hdev, hcon);
-}
-
-static void create_phylink_complete(struct hci_dev *hdev, u8 status,
-				    u16 opcode)
-{
-	struct hci_cp_create_phy_link *cp;
-
-	BT_DBG("%s status 0x%2.2x", hdev->name, status);
-
-	cp = hci_sent_cmd_data(hdev, HCI_OP_CREATE_PHY_LINK);
-	if (!cp)
-		return;
-
-	hci_dev_lock(hdev);
-
-	if (status) {
-		struct hci_conn *hcon;
-
-		hcon = hci_conn_hash_lookup_handle(hdev, cp->phy_handle);
-		if (hcon)
-			hci_conn_del(hcon);
-	} else {
-		amp_write_remote_assoc(hdev, cp->phy_handle);
-	}
-
-	hci_dev_unlock(hdev);
-}
-
-void amp_create_phylink(struct hci_dev *hdev, struct amp_mgr *mgr,
-			struct hci_conn *hcon)
-{
-	struct hci_cp_create_phy_link cp;
-	struct hci_request req;
-
-	cp.phy_handle = hcon->handle;
-
-	BT_DBG("%s hcon %p phy handle 0x%2.2x", hdev->name, hcon,
-	       hcon->handle);
-
-	if (phylink_gen_key(mgr->l2cap_conn->hcon, cp.key, &cp.key_len,
-			    &cp.key_type)) {
-		BT_DBG("Cannot create link key");
-		return;
-	}
-
-	hci_req_init(&req, hdev);
-	hci_req_add(&req, HCI_OP_CREATE_PHY_LINK, sizeof(cp), &cp);
-	hci_req_run(&req, create_phylink_complete);
-}
-
-static void accept_phylink_complete(struct hci_dev *hdev, u8 status,
-				    u16 opcode)
-{
-	struct hci_cp_accept_phy_link *cp;
-
-	BT_DBG("%s status 0x%2.2x", hdev->name, status);
-
-	if (status)
-		return;
-
-	cp = hci_sent_cmd_data(hdev, HCI_OP_ACCEPT_PHY_LINK);
-	if (!cp)
-		return;
-
-	amp_write_remote_assoc(hdev, cp->phy_handle);
-}
-
-void amp_accept_phylink(struct hci_dev *hdev, struct amp_mgr *mgr,
-			struct hci_conn *hcon)
-{
-	struct hci_cp_accept_phy_link cp;
-	struct hci_request req;
-
-	cp.phy_handle = hcon->handle;
-
-	BT_DBG("%s hcon %p phy handle 0x%2.2x", hdev->name, hcon,
-	       hcon->handle);
-
-	if (phylink_gen_key(mgr->l2cap_conn->hcon, cp.key, &cp.key_len,
-			    &cp.key_type)) {
-		BT_DBG("Cannot create link key");
-		return;
-	}
-
-	hci_req_init(&req, hdev);
-	hci_req_add(&req, HCI_OP_ACCEPT_PHY_LINK, sizeof(cp), &cp);
-	hci_req_run(&req, accept_phylink_complete);
-}
-
-void amp_physical_cfm(struct hci_conn *bredr_hcon, struct hci_conn *hs_hcon)
-{
-	struct hci_dev *bredr_hdev = hci_dev_hold(bredr_hcon->hdev);
-	struct amp_mgr *mgr = hs_hcon->amp_mgr;
-	struct l2cap_chan *bredr_chan;
-
-	BT_DBG("bredr_hcon %p hs_hcon %p mgr %p", bredr_hcon, hs_hcon, mgr);
-
-	if (!bredr_hdev || !mgr || !mgr->bredr_chan)
-		return;
-
-	bredr_chan = mgr->bredr_chan;
-
-	l2cap_chan_lock(bredr_chan);
-
-	set_bit(FLAG_EFS_ENABLE, &bredr_chan->flags);
-	bredr_chan->remote_amp_id = hs_hcon->remote_id;
-	bredr_chan->local_amp_id = hs_hcon->hdev->id;
-	bredr_chan->hs_hcon = hs_hcon;
-	bredr_chan->conn->mtu = hs_hcon->hdev->block_mtu;
-
-	__l2cap_physical_cfm(bredr_chan, 0);
-
-	l2cap_chan_unlock(bredr_chan);
-
-	hci_dev_put(bredr_hdev);
-}
-
-void amp_create_logical_link(struct l2cap_chan *chan)
-{
-	struct hci_conn *hs_hcon = chan->hs_hcon;
-	struct hci_cp_create_accept_logical_link cp;
-	struct hci_dev *hdev;
-
-	BT_DBG("chan %p hs_hcon %p dst %pMR", chan, hs_hcon,
-	       &chan->conn->hcon->dst);
-
-	if (!hs_hcon)
-		return;
-
-	hdev = hci_dev_hold(chan->hs_hcon->hdev);
-	if (!hdev)
-		return;
-
-	cp.phy_handle = hs_hcon->handle;
-
-	cp.tx_flow_spec.id = chan->local_id;
-	cp.tx_flow_spec.stype = chan->local_stype;
-	cp.tx_flow_spec.msdu = cpu_to_le16(chan->local_msdu);
-	cp.tx_flow_spec.sdu_itime = cpu_to_le32(chan->local_sdu_itime);
-	cp.tx_flow_spec.acc_lat = cpu_to_le32(chan->local_acc_lat);
-	cp.tx_flow_spec.flush_to = cpu_to_le32(chan->local_flush_to);
-
-	cp.rx_flow_spec.id = chan->remote_id;
-	cp.rx_flow_spec.stype = chan->remote_stype;
-	cp.rx_flow_spec.msdu = cpu_to_le16(chan->remote_msdu);
-	cp.rx_flow_spec.sdu_itime = cpu_to_le32(chan->remote_sdu_itime);
-	cp.rx_flow_spec.acc_lat = cpu_to_le32(chan->remote_acc_lat);
-	cp.rx_flow_spec.flush_to = cpu_to_le32(chan->remote_flush_to);
-
-	if (hs_hcon->out)
-		hci_send_cmd(hdev, HCI_OP_CREATE_LOGICAL_LINK, sizeof(cp),
-			     &cp);
-	else
-		hci_send_cmd(hdev, HCI_OP_ACCEPT_LOGICAL_LINK, sizeof(cp),
-			     &cp);
-
-	hci_dev_put(hdev);
-}
-
-void amp_disconnect_logical_link(struct hci_chan *hchan)
-{
-	struct hci_conn *hcon = hchan->conn;
-	struct hci_cp_disconn_logical_link cp;
-
-	if (hcon->state != BT_CONNECTED) {
-		BT_DBG("hchan %p not connected", hchan);
-		return;
-	}
-
-	cp.log_handle = cpu_to_le16(hchan->handle);
-	hci_send_cmd(hcon->hdev, HCI_OP_DISCONN_LOGICAL_LINK, sizeof(cp), &cp);
-}
-
-void amp_destroy_logical_link(struct hci_chan *hchan, u8 reason)
-{
-	BT_DBG("hchan %p", hchan);
-
-	hci_chan_del(hchan);
-}
diff --git a/net/bluetooth/amp.h b/net/bluetooth/amp.h
deleted file mode 100644
index 97c87abd129f6..0000000000000
--- a/net/bluetooth/amp.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-/*
-   Copyright (c) 2011,2012 Intel Corp.
-
-*/
-
-#ifndef __AMP_H
-#define __AMP_H
-
-struct amp_ctrl {
-	struct list_head	list;
-	struct kref		kref;
-	__u8			id;
-	__u16			assoc_len_so_far;
-	__u16			assoc_rem_len;
-	__u16			assoc_len;
-	__u8			*assoc;
-};
-
-int amp_ctrl_put(struct amp_ctrl *ctrl);
-void amp_ctrl_get(struct amp_ctrl *ctrl);
-struct amp_ctrl *amp_ctrl_add(struct amp_mgr *mgr, u8 id);
-struct amp_ctrl *amp_ctrl_lookup(struct amp_mgr *mgr, u8 id);
-void amp_ctrl_list_flush(struct amp_mgr *mgr);
-
-struct hci_conn *phylink_add(struct hci_dev *hdev, struct amp_mgr *mgr,
-			     u8 remote_id, bool out);
-
-int phylink_gen_key(struct hci_conn *hcon, u8 *data, u8 *len, u8 *type);
-
-void amp_read_loc_assoc_frag(struct hci_dev *hdev, u8 phy_handle);
-void amp_read_loc_assoc(struct hci_dev *hdev, struct amp_mgr *mgr);
-void amp_read_loc_assoc_final_data(struct hci_dev *hdev,
-				   struct hci_conn *hcon);
-void amp_create_phylink(struct hci_dev *hdev, struct amp_mgr *mgr,
-			struct hci_conn *hcon);
-void amp_accept_phylink(struct hci_dev *hdev, struct amp_mgr *mgr,
-			struct hci_conn *hcon);
-
-#if IS_ENABLED(CONFIG_BT_HS)
-void amp_create_logical_link(struct l2cap_chan *chan);
-void amp_disconnect_logical_link(struct hci_chan *hchan);
-#else
-static inline void amp_create_logical_link(struct l2cap_chan *chan)
-{
-}
-
-static inline void amp_disconnect_logical_link(struct hci_chan *hchan)
-{
-}
-#endif
-
-void amp_write_remote_assoc(struct hci_dev *hdev, u8 handle);
-void amp_write_rem_assoc_continue(struct hci_dev *hdev, u8 handle);
-void amp_physical_cfm(struct hci_conn *bredr_hcon, struct hci_conn *hs_hcon);
-void amp_create_logical_link(struct l2cap_chan *chan);
-void amp_disconnect_logical_link(struct hci_chan *hchan);
-void amp_destroy_logical_link(struct hci_chan *hchan, u8 reason);
-
-#endif /* __AMP_H */
diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c
index a41d2693f4d8c..fc4d72f83ac25 100644
--- a/net/bluetooth/hci_conn.c
+++ b/net/bluetooth/hci_conn.c
@@ -36,7 +36,6 @@
 
 #include "hci_request.h"
 #include "smp.h"
-#include "a2mp.h"
 #include "eir.h"
 
 struct sco_param {
@@ -1175,9 +1174,6 @@ void hci_conn_del(struct hci_conn *conn)
 		}
 	}
 
-	if (conn->amp_mgr)
-		amp_mgr_put(conn->amp_mgr);
-
 	skb_queue_purge(&conn->data_q);
 
 	/* Remove the connection from the list and cleanup its remaining
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
index 1f63f77661dce..55daada8dc15d 100644
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -36,8 +36,6 @@
 #include "hci_request.h"
 #include "hci_debugfs.h"
 #include "hci_codec.h"
-#include "a2mp.h"
-#include "amp.h"
 #include "smp.h"
 #include "msft.h"
 #include "eir.h"
diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
index 656f49b299d20..ab5a9d42fae71 100644
--- a/net/bluetooth/l2cap_core.c
+++ b/net/bluetooth/l2cap_core.c
@@ -39,8 +39,6 @@
 #include <net/bluetooth/l2cap.h>
 
 #include "smp.h"
-#include "a2mp.h"
-#include "amp.h"
 
 #define LE_FLOWCTL_MAX_CREDITS 65535
 
@@ -167,24 +165,6 @@ static struct l2cap_chan *__l2cap_get_chan_by_ident(struct l2cap_conn *conn,
 	return NULL;
 }
 
-static struct l2cap_chan *l2cap_get_chan_by_ident(struct l2cap_conn *conn,
-						  u8 ident)
-{
-	struct l2cap_chan *c;
-
-	mutex_lock(&conn->chan_lock);
-	c = __l2cap_get_chan_by_ident(conn, ident);
-	if (c) {
-		/* Only lock if chan reference is not 0 */
-		c = l2cap_chan_hold_unless_zero(c);
-		if (c)
-			l2cap_chan_lock(c);
-	}
-	mutex_unlock(&conn->chan_lock);
-
-	return c;
-}
-
 static struct l2cap_chan *__l2cap_global_chan_by_addr(__le16 psm, bdaddr_t *src,
 						      u8 src_type)
 {
@@ -651,7 +631,6 @@ void l2cap_chan_del(struct l2cap_chan *chan, int err)
 	chan->ops->teardown(chan, err);
 
 	if (conn) {
-		struct amp_mgr *mgr = conn->hcon->amp_mgr;
 		/* Delete from channel list */
 		list_del(&chan->list);
 
@@ -666,16 +645,6 @@ void l2cap_chan_del(struct l2cap_chan *chan, int err)
 		if (chan->chan_type != L2CAP_CHAN_FIXED ||
 		    test_bit(FLAG_HOLD_HCI_CONN, &chan->flags))
 			hci_conn_drop(conn->hcon);
-
-		if (mgr && mgr->bredr_chan == chan)
-			mgr->bredr_chan = NULL;
-	}
-
-	if (chan->hs_hchan) {
-		struct hci_chan *hs_hchan = chan->hs_hchan;
-
-		BT_DBG("chan %p disconnect hs_hchan %p", chan, hs_hchan);
-		amp_disconnect_logical_link(hs_hchan);
 	}
 
 	if (test_bit(CONF_NOT_COMPLETE, &chan->conf_state))
@@ -977,12 +946,6 @@ static void l2cap_send_cmd(struct l2cap_conn *conn, u8 ident, u8 code, u16 len,
 	hci_send_acl(conn->hchan, skb, flags);
 }
 
-static bool __chan_is_moving(struct l2cap_chan *chan)
-{
-	return chan->move_state != L2CAP_MOVE_STABLE &&
-	       chan->move_state != L2CAP_MOVE_WAIT_PREPARE;
-}
-
 static void l2cap_do_send(struct l2cap_chan *chan, struct sk_buff *skb)
 {
 	struct hci_conn *hcon = chan->conn->hcon;
@@ -991,15 +954,6 @@ static void l2cap_do_send(struct l2cap_chan *chan, struct sk_buff *skb)
 	BT_DBG("chan %p, skb %p len %d priority %u", chan, skb, skb->len,
 	       skb->priority);
 
-	if (chan->hs_hcon && !__chan_is_moving(chan)) {
-		if (chan->hs_hchan)
-			hci_send_acl(chan->hs_hchan, skb, ACL_COMPLETE);
-		else
-			kfree_skb(skb);
-
-		return;
-	}
-
 	/* Use NO_FLUSH for LE links (where this is the only option) or
 	 * if the BR/EDR link supports it and flushing has not been
 	 * explicitly requested (through FLAG_FLUSHABLE).
@@ -1180,9 +1134,6 @@ static void l2cap_send_sframe(struct l2cap_chan *chan,
 	if (!control->sframe)
 		return;
 
-	if (__chan_is_moving(chan))
-		return;
-
 	if (test_and_clear_bit(CONN_SEND_FBIT, &chan->conn_state) &&
 	    !control->poll)
 		control->final = 1;
@@ -1237,40 +1188,6 @@ static inline int __l2cap_no_conn_pending(struct l2cap_chan *chan)
 	return !test_bit(CONF_CONNECT_PEND, &chan->conf_state);
 }
 
-static bool __amp_capable(struct l2cap_chan *chan)
-{
-	struct l2cap_conn *conn = chan->conn;
-	struct hci_dev *hdev;
-	bool amp_available = false;
-
-	if (!(conn->local_fixed_chan & L2CAP_FC_A2MP))
-		return false;
-
-	if (!(conn->remote_fixed_chan & L2CAP_FC_A2MP))
-		return false;
-
-	read_lock(&hci_dev_list_lock);
-	list_for_each_entry(hdev, &hci_dev_list, list) {
-		if (hdev->amp_type != AMP_TYPE_BREDR &&
-		    test_bit(HCI_UP, &hdev->flags)) {
-			amp_available = true;
-			break;
-		}
-	}
-	read_unlock(&hci_dev_list_lock);
-
-	if (chan->chan_policy == BT_CHANNEL_POLICY_AMP_PREFERRED)
-		return amp_available;
-
-	return false;
-}
-
-static bool l2cap_check_efs(struct l2cap_chan *chan)
-{
-	/* Check EFS parameters */
-	return true;
-}
-
 void l2cap_send_conn_req(struct l2cap_chan *chan)
 {
 	struct l2cap_conn *conn = chan->conn;
@@ -1286,76 +1203,6 @@ void l2cap_send_conn_req(struct l2cap_chan *chan)
 	l2cap_send_cmd(conn, chan->ident, L2CAP_CONN_REQ, sizeof(req), &req);
 }
 
-static void l2cap_send_create_chan_req(struct l2cap_chan *chan, u8 amp_id)
-{
-	struct l2cap_create_chan_req req;
-	req.scid = cpu_to_le16(chan->scid);
-	req.psm  = chan->psm;
-	req.amp_id = amp_id;
-
-	chan->ident = l2cap_get_ident(chan->conn);
-
-	l2cap_send_cmd(chan->conn, chan->ident, L2CAP_CREATE_CHAN_REQ,
-		       sizeof(req), &req);
-}
-
-static void l2cap_move_setup(struct l2cap_chan *chan)
-{
-	struct sk_buff *skb;
-
-	BT_DBG("chan %p", chan);
-
-	if (chan->mode != L2CAP_MODE_ERTM)
-		return;
-
-	__clear_retrans_timer(chan);
-	__clear_monitor_timer(chan);
-	__clear_ack_timer(chan);
-
-	chan->retry_count = 0;
-	skb_queue_walk(&chan->tx_q, skb) {
-		if (bt_cb(skb)->l2cap.retries)
-			bt_cb(skb)->l2cap.retries = 1;
-		else
-			break;
-	}
-
-	chan->expected_tx_seq = chan->buffer_seq;
-
-	clear_bit(CONN_REJ_ACT, &chan->conn_state);
-	clear_bit(CONN_SREJ_ACT, &chan->conn_state);
-	l2cap_seq_list_clear(&chan->retrans_list);
-	l2cap_seq_list_clear(&chan->srej_list);
-	skb_queue_purge(&chan->srej_q);
-
-	chan->tx_state = L2CAP_TX_STATE_XMIT;
-	chan->rx_state = L2CAP_RX_STATE_MOVE;
-
-	set_bit(CONN_REMOTE_BUSY, &chan->conn_state);
-}
-
-static void l2cap_move_done(struct l2cap_chan *chan)
-{
-	u8 move_role = chan->move_role;
-	BT_DBG("chan %p", chan);
-
-	chan->move_state = L2CAP_MOVE_STABLE;
-	chan->move_role = L2CAP_MOVE_ROLE_NONE;
-
-	if (chan->mode != L2CAP_MODE_ERTM)
-		return;
-
-	switch (move_role) {
-	case L2CAP_MOVE_ROLE_INITIATOR:
-		l2cap_tx(chan, NULL, NULL, L2CAP_EV_EXPLICIT_POLL);
-		chan->rx_state = L2CAP_RX_STATE_WAIT_F;
-		break;
-	case L2CAP_MOVE_ROLE_RESPONDER:
-		chan->rx_state = L2CAP_RX_STATE_WAIT_P;
-		break;
-	}
-}
-
 static void l2cap_chan_ready(struct l2cap_chan *chan)
 {
 	/* The channel may have already been flagged as connected in
@@ -1505,10 +1352,7 @@ static void l2cap_le_start(struct l2cap_chan *chan)
 
 static void l2cap_start_connection(struct l2cap_chan *chan)
 {
-	if (__amp_capable(chan)) {
-		BT_DBG("chan %p AMP capable: discover AMPs", chan);
-		a2mp_discover_amp(chan);
-	} else if (chan->conn->hcon->type == LE_LINK) {
+	if (chan->conn->hcon->type == LE_LINK) {
 		l2cap_le_start(chan);
 	} else {
 		l2cap_send_conn_req(chan);
@@ -1611,11 +1455,6 @@ static void l2cap_send_disconn_req(struct l2cap_chan *chan, int err)
 		__clear_ack_timer(chan);
 	}
 
-	if (chan->scid == L2CAP_CID_A2MP) {
-		l2cap_state_change(chan, BT_DISCONN);
-		return;
-	}
-
 	req.dcid = cpu_to_le16(chan->dcid);
 	req.scid = cpu_to_le16(chan->scid);
 	l2cap_send_cmd(conn, l2cap_get_ident(conn), L2CAP_DISCONN_REQ,
@@ -1754,11 +1593,6 @@ static void l2cap_conn_ready(struct l2cap_conn *conn)
 
 		l2cap_chan_lock(chan);
 
-		if (chan->scid == L2CAP_CID_A2MP) {
-			l2cap_chan_unlock(chan);
-			continue;
-		}
-
 		if (hcon->type == LE_LINK) {
 			l2cap_le_start(chan);
 		} else if (chan->chan_type != L2CAP_CHAN_CONN_ORIENTED) {
@@ -2067,9 +1901,6 @@ static void l2cap_streaming_send(struct l2cap_chan *chan,
 
 	BT_DBG("chan %p, skbs %p", chan, skbs);
 
-	if (__chan_is_moving(chan))
-		return;
-
 	skb_queue_splice_tail_init(skbs, &chan->tx_q);
 
 	while (!skb_queue_empty(&chan->tx_q)) {
@@ -2112,9 +1943,6 @@ static int l2cap_ertm_send(struct l2cap_chan *chan)
 	if (test_bit(CONN_REMOTE_BUSY, &chan->conn_state))
 		return 0;
 
-	if (__chan_is_moving(chan))
-		return 0;
-
 	while (chan->tx_send_head &&
 	       chan->unacked_frames < chan->remote_tx_win &&
 	       chan->tx_state == L2CAP_TX_STATE_XMIT) {
@@ -2180,9 +2008,6 @@ static void l2cap_ertm_resend(struct l2cap_chan *chan)
 	if (test_bit(CONN_REMOTE_BUSY, &chan->conn_state))
 		return;
 
-	if (__chan_is_moving(chan))
-		return;
-
 	while (chan->retrans_list.head != L2CAP_SEQ_LIST_CLEAR) {
 		seq = l2cap_seq_list_pop(&chan->retrans_list);
 
@@ -2522,8 +2347,7 @@ static int l2cap_segment_sdu(struct l2cap_chan *chan,
 	pdu_len = chan->conn->mtu;
 
 	/* Constrain PDU size for BR/EDR connections */
-	if (!chan->hs_hcon)
-		pdu_len = min_t(size_t, pdu_len, L2CAP_BREDR_MAX_PAYLOAD);
+	pdu_len = min_t(size_t, pdu_len, L2CAP_BREDR_MAX_PAYLOAD);
 
 	/* Adjust for largest possible L2CAP overhead. */
 	if (chan->fcs)
@@ -3287,11 +3111,6 @@ int l2cap_ertm_init(struct l2cap_chan *chan)
 
 	skb_queue_head_init(&chan->tx_q);
 
-	chan->local_amp_id = AMP_ID_BREDR;
-	chan->move_id = AMP_ID_BREDR;
-	chan->move_state = L2CAP_MOVE_STABLE;
-	chan->move_role = L2CAP_MOVE_ROLE_NONE;
-
 	if (chan->mode != L2CAP_MODE_ERTM)
 		return 0;
 
@@ -3326,52 +3145,19 @@ static inline __u8 l2cap_select_mode(__u8 mode, __u16 remote_feat_mask)
 
 static inline bool __l2cap_ews_supported(struct l2cap_conn *conn)
 {
-	return ((conn->local_fixed_chan & L2CAP_FC_A2MP) &&
-		(conn->feat_mask & L2CAP_FEAT_EXT_WINDOW));
+	return (conn->feat_mask & L2CAP_FEAT_EXT_WINDOW);
 }
 
 static inline bool __l2cap_efs_supported(struct l2cap_conn *conn)
 {
-	return ((conn->local_fixed_chan & L2CAP_FC_A2MP) &&
-		(conn->feat_mask & L2CAP_FEAT_EXT_FLOW));
+	return (conn->feat_mask & L2CAP_FEAT_EXT_FLOW);
 }
 
 static void __l2cap_set_ertm_timeouts(struct l2cap_chan *chan,
 				      struct l2cap_conf_rfc *rfc)
 {
-	if (chan->local_amp_id != AMP_ID_BREDR && chan->hs_hcon) {
-		u64 ertm_to = chan->hs_hcon->hdev->amp_be_flush_to;
-
-		/* Class 1 devices have must have ERTM timeouts
-		 * exceeding the Link Supervision Timeout.  The
-		 * default Link Supervision Timeout for AMP
-		 * controllers is 10 seconds.
-		 *
-		 * Class 1 devices use 0xffffffff for their
-		 * best-effort flush timeout, so the clamping logic
-		 * will result in a timeout that meets the above
-		 * requirement.  ERTM timeouts are 16-bit values, so
-		 * the maximum timeout is 65.535 seconds.
-		 */
-
-		/* Convert timeout to milliseconds and round */
-		ertm_to = DIV_ROUND_UP_ULL(ertm_to, 1000);
-
-		/* This is the recommended formula for class 2 devices
-		 * that start ERTM timers when packets are sent to the
-		 * controller.
-		 */
-		ertm_to = 3 * ertm_to + 500;
-
-		if (ertm_to > 0xffff)
-			ertm_to = 0xffff;
-
-		rfc->retrans_timeout = cpu_to_le16((u16) ertm_to);
-		rfc->monitor_timeout = rfc->retrans_timeout;
-	} else {
-		rfc->retrans_timeout = cpu_to_le16(L2CAP_DEFAULT_RETRANS_TO);
-		rfc->monitor_timeout = cpu_to_le16(L2CAP_DEFAULT_MONITOR_TO);
-	}
+	rfc->retrans_timeout = cpu_to_le16(L2CAP_DEFAULT_RETRANS_TO);
+	rfc->monitor_timeout = cpu_to_le16(L2CAP_DEFAULT_MONITOR_TO);
 }
 
 static inline void l2cap_txwin_setup(struct l2cap_chan *chan)
@@ -3623,13 +3409,7 @@ static int l2cap_parse_conf_req(struct l2cap_chan *chan, void *data, size_t data
 		case L2CAP_CONF_EWS:
 			if (olen != 2)
 				break;
-			if (!(chan->conn->local_fixed_chan & L2CAP_FC_A2MP))
-				return -ECONNREFUSED;
-			set_bit(FLAG_EXT_CTRL, &chan->flags);
-			set_bit(CONF_EWS_RECV, &chan->conf_state);
-			chan->tx_win_max = L2CAP_DEFAULT_EXT_WINDOW;
-			chan->remote_tx_win = val;
-			break;
+			return -ECONNREFUSED;
 
 		default:
 			if (hint)
@@ -4027,11 +3807,7 @@ void __l2cap_connect_rsp_defer(struct l2cap_chan *chan)
 	rsp.dcid   = cpu_to_le16(chan->scid);
 	rsp.result = cpu_to_le16(L2CAP_CR_SUCCESS);
 	rsp.status = cpu_to_le16(L2CAP_CS_NO_INFO);
-
-	if (chan->hs_hcon)
-		rsp_code = L2CAP_CREATE_CHAN_RSP;
-	else
-		rsp_code = L2CAP_CONN_RSP;
+	rsp_code = L2CAP_CONN_RSP;
 
 	BT_DBG("chan %p rsp_code %u", chan, rsp_code);
 
@@ -4190,7 +3966,6 @@ static struct l2cap_chan *l2cap_connect(struct l2cap_conn *conn,
 	chan->dst_type = bdaddr_dst_type(conn->hcon);
 	chan->psm  = psm;
 	chan->dcid = scid;
-	chan->local_amp_id = amp_id;
 
 	__l2cap_chan_add(conn, chan);
 
@@ -4516,10 +4291,7 @@ static inline int l2cap_config_req(struct l2cap_conn *conn,
 		/* check compatibility */
 
 		/* Send rsp for BR/EDR channel */
-		if (!chan->hs_hcon)
-			l2cap_send_efs_conf_rsp(chan, rsp, cmd->ident, flags);
-		else
-			chan->ident = cmd->ident;
+		l2cap_send_efs_conf_rsp(chan, rsp, cmd->ident, flags);
 	}
 
 unlock:
@@ -4571,15 +4343,7 @@ static inline int l2cap_config_rsp(struct l2cap_conn *conn,
 				goto done;
 			}
 
-			if (!chan->hs_hcon) {
-				l2cap_send_efs_conf_rsp(chan, buf, cmd->ident,
-							0);
-			} else {
-				if (l2cap_check_efs(chan)) {
-					amp_create_logical_link(chan);
-					chan->ident = cmd->ident;
-				}
-			}
+			l2cap_send_efs_conf_rsp(chan, buf, cmd->ident, 0);
 		}
 		goto done;
 
@@ -4750,9 +4514,6 @@ static inline int l2cap_information_req(struct l2cap_conn *conn,
 		if (!disable_ertm)
 			feat_mask |= L2CAP_FEAT_ERTM | L2CAP_FEAT_STREAMING
 				| L2CAP_FEAT_FCS;
-		if (conn->local_fixed_chan & L2CAP_FC_A2MP)
-			feat_mask |= L2CAP_FEAT_EXT_FLOW
-				| L2CAP_FEAT_EXT_WINDOW;
 
 		put_unaligned_le32(feat_mask, rsp->data);
 		l2cap_send_cmd(conn, cmd->ident, L2CAP_INFO_RSP, sizeof(buf),
@@ -4841,751 +4602,6 @@ static inline int l2cap_information_rsp(struct l2cap_conn *conn,
 	return 0;
 }
 
-static int l2cap_create_channel_req(struct l2cap_conn *conn,
-				    struct l2cap_cmd_hdr *cmd,
-				    u16 cmd_len, void *data)
-{
-	struct l2cap_create_chan_req *req = data;
-	struct l2cap_create_chan_rsp rsp;
-	struct l2cap_chan *chan;
-	struct hci_dev *hdev;
-	u16 psm, scid;
-
-	if (cmd_len != sizeof(*req))
-		return -EPROTO;
-
-	if (!(conn->local_fixed_chan & L2CAP_FC_A2MP))
-		return -EINVAL;
-
-	psm = le16_to_cpu(req->psm);
-	scid = le16_to_cpu(req->scid);
-
-	BT_DBG("psm 0x%2.2x, scid 0x%4.4x, amp_id %d", psm, scid, req->amp_id);
-
-	/* For controller id 0 make BR/EDR connection */
-	if (req->amp_id == AMP_ID_BREDR) {
-		l2cap_connect(conn, cmd, data, L2CAP_CREATE_CHAN_RSP,
-			      req->amp_id);
-		return 0;
-	}
-
-	/* Validate AMP controller id */
-	hdev = hci_dev_get(req->amp_id);
-	if (!hdev)
-		goto error;
-
-	if (hdev->dev_type != HCI_AMP || !test_bit(HCI_UP, &hdev->flags)) {
-		hci_dev_put(hdev);
-		goto error;
-	}
-
-	chan = l2cap_connect(conn, cmd, data, L2CAP_CREATE_CHAN_RSP,
-			     req->amp_id);
-	if (chan) {
-		struct amp_mgr *mgr = conn->hcon->amp_mgr;
-		struct hci_conn *hs_hcon;
-
-		hs_hcon = hci_conn_hash_lookup_ba(hdev, AMP_LINK,
-						  &conn->hcon->dst);
-		if (!hs_hcon) {
-			hci_dev_put(hdev);
-			cmd_reject_invalid_cid(conn, cmd->ident, chan->scid,
-					       chan->dcid);
-			return 0;
-		}
-
-		BT_DBG("mgr %p bredr_chan %p hs_hcon %p", mgr, chan, hs_hcon);
-
-		mgr->bredr_chan = chan;
-		chan->hs_hcon = hs_hcon;
-		chan->fcs = L2CAP_FCS_NONE;
-		conn->mtu = hdev->block_mtu;
-	}
-
-	hci_dev_put(hdev);
-
-	return 0;
-
-error:
-	rsp.dcid = 0;
-	rsp.scid = cpu_to_le16(scid);
-	rsp.result = cpu_to_le16(L2CAP_CR_BAD_AMP);
-	rsp.status = cpu_to_le16(L2CAP_CS_NO_INFO);
-
-	l2cap_send_cmd(conn, cmd->ident, L2CAP_CREATE_CHAN_RSP,
-		       sizeof(rsp), &rsp);
-
-	return 0;
-}
-
-static void l2cap_send_move_chan_req(struct l2cap_chan *chan, u8 dest_amp_id)
-{
-	struct l2cap_move_chan_req req;
-	u8 ident;
-
-	BT_DBG("chan %p, dest_amp_id %d", chan, dest_amp_id);
-
-	ident = l2cap_get_ident(chan->conn);
-	chan->ident = ident;
-
-	req.icid = cpu_to_le16(chan->scid);
-	req.dest_amp_id = dest_amp_id;
-
-	l2cap_send_cmd(chan->conn, ident, L2CAP_MOVE_CHAN_REQ, sizeof(req),
-		       &req);
-
-	__set_chan_timer(chan, L2CAP_MOVE_TIMEOUT);
-}
-
-static void l2cap_send_move_chan_rsp(struct l2cap_chan *chan, u16 result)
-{
-	struct l2cap_move_chan_rsp rsp;
-
-	BT_DBG("chan %p, result 0x%4.4x", chan, result);
-
-	rsp.icid = cpu_to_le16(chan->dcid);
-	rsp.result = cpu_to_le16(result);
-
-	l2cap_send_cmd(chan->conn, chan->ident, L2CAP_MOVE_CHAN_RSP,
-		       sizeof(rsp), &rsp);
-}
-
-static void l2cap_send_move_chan_cfm(struct l2cap_chan *chan, u16 result)
-{
-	struct l2cap_move_chan_cfm cfm;
-
-	BT_DBG("chan %p, result 0x%4.4x", chan, result);
-
-	chan->ident = l2cap_get_ident(chan->conn);
-
-	cfm.icid = cpu_to_le16(chan->scid);
-	cfm.result = cpu_to_le16(result);
-
-	l2cap_send_cmd(chan->conn, chan->ident, L2CAP_MOVE_CHAN_CFM,
-		       sizeof(cfm), &cfm);
-
-	__set_chan_timer(chan, L2CAP_MOVE_TIMEOUT);
-}
-
-static void l2cap_send_move_chan_cfm_icid(struct l2cap_conn *conn, u16 icid)
-{
-	struct l2cap_move_chan_cfm cfm;
-
-	BT_DBG("conn %p, icid 0x%4.4x", conn, icid);
-
-	cfm.icid = cpu_to_le16(icid);
-	cfm.result = cpu_to_le16(L2CAP_MC_UNCONFIRMED);
-
-	l2cap_send_cmd(conn, l2cap_get_ident(conn), L2CAP_MOVE_CHAN_CFM,
-		       sizeof(cfm), &cfm);
-}
-
-static void l2cap_send_move_chan_cfm_rsp(struct l2cap_conn *conn, u8 ident,
-					 u16 icid)
-{
-	struct l2cap_move_chan_cfm_rsp rsp;
-
-	BT_DBG("icid 0x%4.4x", icid);
-
-	rsp.icid = cpu_to_le16(icid);
-	l2cap_send_cmd(conn, ident, L2CAP_MOVE_CHAN_CFM_RSP, sizeof(rsp), &rsp);
-}
-
-static void __release_logical_link(struct l2cap_chan *chan)
-{
-	chan->hs_hchan = NULL;
-	chan->hs_hcon = NULL;
-
-	/* Placeholder - release the logical link */
-}
-
-static void l2cap_logical_fail(struct l2cap_chan *chan)
-{
-	/* Logical link setup failed */
-	if (chan->state != BT_CONNECTED) {
-		/* Create channel failure, disconnect */
-		l2cap_send_disconn_req(chan, ECONNRESET);
-		return;
-	}
-
-	switch (chan->move_role) {
-	case L2CAP_MOVE_ROLE_RESPONDER:
-		l2cap_move_done(chan);
-		l2cap_send_move_chan_rsp(chan, L2CAP_MR_NOT_SUPP);
-		break;
-	case L2CAP_MOVE_ROLE_INITIATOR:
-		if (chan->move_state == L2CAP_MOVE_WAIT_LOGICAL_COMP ||
-		    chan->move_state == L2CAP_MOVE_WAIT_LOGICAL_CFM) {
-			/* Remote has only sent pending or
-			 * success responses, clean up
-			 */
-			l2cap_move_done(chan);
-		}
-
-		/* Other amp move states imply that the move
-		 * has already aborted
-		 */
-		l2cap_send_move_chan_cfm(chan, L2CAP_MC_UNCONFIRMED);
-		break;
-	}
-}
-
-static void l2cap_logical_finish_create(struct l2cap_chan *chan,
-					struct hci_chan *hchan)
-{
-	struct l2cap_conf_rsp rsp;
-
-	chan->hs_hchan = hchan;
-	chan->hs_hcon->l2cap_data = chan->conn;
-
-	l2cap_send_efs_conf_rsp(chan, &rsp, chan->ident, 0);
-
-	if (test_bit(CONF_INPUT_DONE, &chan->conf_state)) {
-		int err;
-
-		set_default_fcs(chan);
-
-		err = l2cap_ertm_init(chan);
-		if (err < 0)
-			l2cap_send_disconn_req(chan, -err);
-		else
-			l2cap_chan_ready(chan);
-	}
-}
-
-static void l2cap_logical_finish_move(struct l2cap_chan *chan,
-				      struct hci_chan *hchan)
-{
-	chan->hs_hcon = hchan->conn;
-	chan->hs_hcon->l2cap_data = chan->conn;
-
-	BT_DBG("move_state %d", chan->move_state);
-
-	switch (chan->move_state) {
-	case L2CAP_MOVE_WAIT_LOGICAL_COMP:
-		/* Move confirm will be sent after a success
-		 * response is received
-		 */
-		chan->move_state = L2CAP_MOVE_WAIT_RSP_SUCCESS;
-		break;
-	case L2CAP_MOVE_WAIT_LOGICAL_CFM:
-		if (test_bit(CONN_LOCAL_BUSY, &chan->conn_state)) {
-			chan->move_state = L2CAP_MOVE_WAIT_LOCAL_BUSY;
-		} else if (chan->move_role == L2CAP_MOVE_ROLE_INITIATOR) {
-			chan->move_state = L2CAP_MOVE_WAIT_CONFIRM_RSP;
-			l2cap_send_move_chan_cfm(chan, L2CAP_MC_CONFIRMED);
-		} else if (chan->move_role == L2CAP_MOVE_ROLE_RESPONDER) {
-			chan->move_state = L2CAP_MOVE_WAIT_CONFIRM;
-			l2cap_send_move_chan_rsp(chan, L2CAP_MR_SUCCESS);
-		}
-		break;
-	default:
-		/* Move was not in expected state, free the channel */
-		__release_logical_link(chan);
-
-		chan->move_state = L2CAP_MOVE_STABLE;
-	}
-}
-
-/* Call with chan locked */
-void l2cap_logical_cfm(struct l2cap_chan *chan, struct hci_chan *hchan,
-		       u8 status)
-{
-	BT_DBG("chan %p, hchan %p, status %d", chan, hchan, status);
-
-	if (status) {
-		l2cap_logical_fail(chan);
-		__release_logical_link(chan);
-		return;
-	}
-
-	if (chan->state != BT_CONNECTED) {
-		/* Ignore logical link if channel is on BR/EDR */
-		if (chan->local_amp_id != AMP_ID_BREDR)
-			l2cap_logical_finish_create(chan, hchan);
-	} else {
-		l2cap_logical_finish_move(chan, hchan);
-	}
-}
-
-void l2cap_move_start(struct l2cap_chan *chan)
-{
-	BT_DBG("chan %p", chan);
-
-	if (chan->local_amp_id == AMP_ID_BREDR) {
-		if (chan->chan_policy != BT_CHANNEL_POLICY_AMP_PREFERRED)
-			return;
-		chan->move_role = L2CAP_MOVE_ROLE_INITIATOR;
-		chan->move_state = L2CAP_MOVE_WAIT_PREPARE;
-		/* Placeholder - start physical link setup */
-	} else {
-		chan->move_role = L2CAP_MOVE_ROLE_INITIATOR;
-		chan->move_state = L2CAP_MOVE_WAIT_RSP_SUCCESS;
-		chan->move_id = 0;
-		l2cap_move_setup(chan);
-		l2cap_send_move_chan_req(chan, 0);
-	}
-}
-
-static void l2cap_do_create(struct l2cap_chan *chan, int result,
-			    u8 local_amp_id, u8 remote_amp_id)
-{
-	BT_DBG("chan %p state %s %u -> %u", chan, state_to_string(chan->state),
-	       local_amp_id, remote_amp_id);
-
-	chan->fcs = L2CAP_FCS_NONE;
-
-	/* Outgoing channel on AMP */
-	if (chan->state == BT_CONNECT) {
-		if (result == L2CAP_CR_SUCCESS) {
-			chan->local_amp_id = local_amp_id;
-			l2cap_send_create_chan_req(chan, remote_amp_id);
-		} else {
-			/* Revert to BR/EDR connect */
-			l2cap_send_conn_req(chan);
-		}
-
-		return;
-	}
-
-	/* Incoming channel on AMP */
-	if (__l2cap_no_conn_pending(chan)) {
-		struct l2cap_conn_rsp rsp;
-		char buf[128];
-		rsp.scid = cpu_to_le16(chan->dcid);
-		rsp.dcid = cpu_to_le16(chan->scid);
-
-		if (result == L2CAP_CR_SUCCESS) {
-			/* Send successful response */
-			rsp.result = cpu_to_le16(L2CAP_CR_SUCCESS);
-			rsp.status = cpu_to_le16(L2CAP_CS_NO_INFO);
-		} else {
-			/* Send negative response */
-			rsp.result = cpu_to_le16(L2CAP_CR_NO_MEM);
-			rsp.status = cpu_to_le16(L2CAP_CS_NO_INFO);
-		}
-
-		l2cap_send_cmd(chan->conn, chan->ident, L2CAP_CREATE_CHAN_RSP,
-			       sizeof(rsp), &rsp);
-
-		if (result == L2CAP_CR_SUCCESS) {
-			l2cap_state_change(chan, BT_CONFIG);
-			set_bit(CONF_REQ_SENT, &chan->conf_state);
-			l2cap_send_cmd(chan->conn, l2cap_get_ident(chan->conn),
-				       L2CAP_CONF_REQ,
-				       l2cap_build_conf_req(chan, buf, sizeof(buf)), buf);
-			chan->num_conf_req++;
-		}
-	}
-}
-
-static void l2cap_do_move_initiate(struct l2cap_chan *chan, u8 local_amp_id,
-				   u8 remote_amp_id)
-{
-	l2cap_move_setup(chan);
-	chan->move_id = local_amp_id;
-	chan->move_state = L2CAP_MOVE_WAIT_RSP;
-
-	l2cap_send_move_chan_req(chan, remote_amp_id);
-}
-
-static void l2cap_do_move_respond(struct l2cap_chan *chan, int result)
-{
-	struct hci_chan *hchan = NULL;
-
-	/* Placeholder - get hci_chan for logical link */
-
-	if (hchan) {
-		if (hchan->state == BT_CONNECTED) {
-			/* Logical link is ready to go */
-			chan->hs_hcon = hchan->conn;
-			chan->hs_hcon->l2cap_data = chan->conn;
-			chan->move_state = L2CAP_MOVE_WAIT_CONFIRM;
-			l2cap_send_move_chan_rsp(chan, L2CAP_MR_SUCCESS);
-
-			l2cap_logical_cfm(chan, hchan, L2CAP_MR_SUCCESS);
-		} else {
-			/* Wait for logical link to be ready */
-			chan->move_state = L2CAP_MOVE_WAIT_LOGICAL_CFM;
-		}
-	} else {
-		/* Logical link not available */
-		l2cap_send_move_chan_rsp(chan, L2CAP_MR_NOT_ALLOWED);
-	}
-}
-
-static void l2cap_do_move_cancel(struct l2cap_chan *chan, int result)
-{
-	if (chan->move_role == L2CAP_MOVE_ROLE_RESPONDER) {
-		u8 rsp_result;
-		if (result == -EINVAL)
-			rsp_result = L2CAP_MR_BAD_ID;
-		else
-			rsp_result = L2CAP_MR_NOT_ALLOWED;
-
-		l2cap_send_move_chan_rsp(chan, rsp_result);
-	}
-
-	chan->move_role = L2CAP_MOVE_ROLE_NONE;
-	chan->move_state = L2CAP_MOVE_STABLE;
-
-	/* Restart data transmission */
-	l2cap_ertm_send(chan);
-}
-
-/* Invoke with locked chan */
-void __l2cap_physical_cfm(struct l2cap_chan *chan, int result)
-{
-	u8 local_amp_id = chan->local_amp_id;
-	u8 remote_amp_id = chan->remote_amp_id;
-
-	BT_DBG("chan %p, result %d, local_amp_id %d, remote_amp_id %d",
-	       chan, result, local_amp_id, remote_amp_id);
-
-	if (chan->state == BT_DISCONN || chan->state == BT_CLOSED)
-		return;
-
-	if (chan->state != BT_CONNECTED) {
-		l2cap_do_create(chan, result, local_amp_id, remote_amp_id);
-	} else if (result != L2CAP_MR_SUCCESS) {
-		l2cap_do_move_cancel(chan, result);
-	} else {
-		switch (chan->move_role) {
-		case L2CAP_MOVE_ROLE_INITIATOR:
-			l2cap_do_move_initiate(chan, local_amp_id,
-					       remote_amp_id);
-			break;
-		case L2CAP_MOVE_ROLE_RESPONDER:
-			l2cap_do_move_respond(chan, result);
-			break;
-		default:
-			l2cap_do_move_cancel(chan, result);
-			break;
-		}
-	}
-}
-
-static inline int l2cap_move_channel_req(struct l2cap_conn *conn,
-					 struct l2cap_cmd_hdr *cmd,
-					 u16 cmd_len, void *data)
-{
-	struct l2cap_move_chan_req *req = data;
-	struct l2cap_move_chan_rsp rsp;
-	struct l2cap_chan *chan;
-	u16 icid = 0;
-	u16 result = L2CAP_MR_NOT_ALLOWED;
-
-	if (cmd_len != sizeof(*req))
-		return -EPROTO;
-
-	icid = le16_to_cpu(req->icid);
-
-	BT_DBG("icid 0x%4.4x, dest_amp_id %d", icid, req->dest_amp_id);
-
-	if (!(conn->local_fixed_chan & L2CAP_FC_A2MP))
-		return -EINVAL;
-
-	chan = l2cap_get_chan_by_dcid(conn, icid);
-	if (!chan) {
-		rsp.icid = cpu_to_le16(icid);
-		rsp.result = cpu_to_le16(L2CAP_MR_NOT_ALLOWED);
-		l2cap_send_cmd(conn, cmd->ident, L2CAP_MOVE_CHAN_RSP,
-			       sizeof(rsp), &rsp);
-		return 0;
-	}
-
-	chan->ident = cmd->ident;
-
-	if (chan->scid < L2CAP_CID_DYN_START ||
-	    chan->chan_policy == BT_CHANNEL_POLICY_BREDR_ONLY ||
-	    (chan->mode != L2CAP_MODE_ERTM &&
-	     chan->mode != L2CAP_MODE_STREAMING)) {
-		result = L2CAP_MR_NOT_ALLOWED;
-		goto send_move_response;
-	}
-
-	if (chan->local_amp_id == req->dest_amp_id) {
-		result = L2CAP_MR_SAME_ID;
-		goto send_move_response;
-	}
-
-	if (req->dest_amp_id != AMP_ID_BREDR) {
-		struct hci_dev *hdev;
-		hdev = hci_dev_get(req->dest_amp_id);
-		if (!hdev || hdev->dev_type != HCI_AMP ||
-		    !test_bit(HCI_UP, &hdev->flags)) {
-			if (hdev)
-				hci_dev_put(hdev);
-
-			result = L2CAP_MR_BAD_ID;
-			goto send_move_response;
-		}
-		hci_dev_put(hdev);
-	}
-
-	/* Detect a move collision.  Only send a collision response
-	 * if this side has "lost", otherwise proceed with the move.
-	 * The winner has the larger bd_addr.
-	 */
-	if ((__chan_is_moving(chan) ||
-	     chan->move_role != L2CAP_MOVE_ROLE_NONE) &&
-	    bacmp(&conn->hcon->src, &conn->hcon->dst) > 0) {
-		result = L2CAP_MR_COLLISION;
-		goto send_move_response;
-	}
-
-	chan->move_role = L2CAP_MOVE_ROLE_RESPONDER;
-	l2cap_move_setup(chan);
-	chan->move_id = req->dest_amp_id;
-
-	if (req->dest_amp_id == AMP_ID_BREDR) {
-		/* Moving to BR/EDR */
-		if (test_bit(CONN_LOCAL_BUSY, &chan->conn_state)) {
-			chan->move_state = L2CAP_MOVE_WAIT_LOCAL_BUSY;
-			result = L2CAP_MR_PEND;
-		} else {
-			chan->move_state = L2CAP_MOVE_WAIT_CONFIRM;
-			result = L2CAP_MR_SUCCESS;
-		}
-	} else {
-		chan->move_state = L2CAP_MOVE_WAIT_PREPARE;
-		/* Placeholder - uncomment when amp functions are available */
-		/*amp_accept_physical(chan, req->dest_amp_id);*/
-		result = L2CAP_MR_PEND;
-	}
-
-send_move_response:
-	l2cap_send_move_chan_rsp(chan, result);
-
-	l2cap_chan_unlock(chan);
-	l2cap_chan_put(chan);
-
-	return 0;
-}
-
-static void l2cap_move_continue(struct l2cap_conn *conn, u16 icid, u16 result)
-{
-	struct l2cap_chan *chan;
-	struct hci_chan *hchan = NULL;
-
-	chan = l2cap_get_chan_by_scid(conn, icid);
-	if (!chan) {
-		l2cap_send_move_chan_cfm_icid(conn, icid);
-		return;
-	}
-
-	__clear_chan_timer(chan);
-	if (result == L2CAP_MR_PEND)
-		__set_chan_timer(chan, L2CAP_MOVE_ERTX_TIMEOUT);
-
-	switch (chan->move_state) {
-	case L2CAP_MOVE_WAIT_LOGICAL_COMP:
-		/* Move confirm will be sent when logical link
-		 * is complete.
-		 */
-		chan->move_state = L2CAP_MOVE_WAIT_LOGICAL_CFM;
-		break;
-	case L2CAP_MOVE_WAIT_RSP_SUCCESS:
-		if (result == L2CAP_MR_PEND) {
-			break;
-		} else if (test_bit(CONN_LOCAL_BUSY,
-				    &chan->conn_state)) {
-			chan->move_state = L2CAP_MOVE_WAIT_LOCAL_BUSY;
-		} else {
-			/* Logical link is up or moving to BR/EDR,
-			 * proceed with move
-			 */
-			chan->move_state = L2CAP_MOVE_WAIT_CONFIRM_RSP;
-			l2cap_send_move_chan_cfm(chan, L2CAP_MC_CONFIRMED);
-		}
-		break;
-	case L2CAP_MOVE_WAIT_RSP:
-		/* Moving to AMP */
-		if (result == L2CAP_MR_SUCCESS) {
-			/* Remote is ready, send confirm immediately
-			 * after logical link is ready
-			 */
-			chan->move_state = L2CAP_MOVE_WAIT_LOGICAL_CFM;
-		} else {
-			/* Both logical link and move success
-			 * are required to confirm
-			 */
-			chan->move_state = L2CAP_MOVE_WAIT_LOGICAL_COMP;
-		}
-
-		/* Placeholder - get hci_chan for logical link */
-		if (!hchan) {
-			/* Logical link not available */
-			l2cap_send_move_chan_cfm(chan, L2CAP_MC_UNCONFIRMED);
-			break;
-		}
-
-		/* If the logical link is not yet connected, do not
-		 * send confirmation.
-		 */
-		if (hchan->state != BT_CONNECTED)
-			break;
-
-		/* Logical link is already ready to go */
-
-		chan->hs_hcon = hchan->conn;
-		chan->hs_hcon->l2cap_data = chan->conn;
-
-		if (result == L2CAP_MR_SUCCESS) {
-			/* Can confirm now */
-			l2cap_send_move_chan_cfm(chan, L2CAP_MC_CONFIRMED);
-		} else {
-			/* Now only need move success
-			 * to confirm
-			 */
-			chan->move_state = L2CAP_MOVE_WAIT_RSP_SUCCESS;
-		}
-
-		l2cap_logical_cfm(chan, hchan, L2CAP_MR_SUCCESS);
-		break;
-	default:
-		/* Any other amp move state means the move failed. */
-		chan->move_id = chan->local_amp_id;
-		l2cap_move_done(chan);
-		l2cap_send_move_chan_cfm(chan, L2CAP_MC_UNCONFIRMED);
-	}
-
-	l2cap_chan_unlock(chan);
-	l2cap_chan_put(chan);
-}
-
-static void l2cap_move_fail(struct l2cap_conn *conn, u8 ident, u16 icid,
-			    u16 result)
-{
-	struct l2cap_chan *chan;
-
-	chan = l2cap_get_chan_by_ident(conn, ident);
-	if (!chan) {
-		/* Could not locate channel, icid is best guess */
-		l2cap_send_move_chan_cfm_icid(conn, icid);
-		return;
-	}
-
-	__clear_chan_timer(chan);
-
-	if (chan->move_role == L2CAP_MOVE_ROLE_INITIATOR) {
-		if (result == L2CAP_MR_COLLISION) {
-			chan->move_role = L2CAP_MOVE_ROLE_RESPONDER;
-		} else {
-			/* Cleanup - cancel move */
-			chan->move_id = chan->local_amp_id;
-			l2cap_move_done(chan);
-		}
-	}
-
-	l2cap_send_move_chan_cfm(chan, L2CAP_MC_UNCONFIRMED);
-
-	l2cap_chan_unlock(chan);
-	l2cap_chan_put(chan);
-}
-
-static int l2cap_move_channel_rsp(struct l2cap_conn *conn,
-				  struct l2cap_cmd_hdr *cmd,
-				  u16 cmd_len, void *data)
-{
-	struct l2cap_move_chan_rsp *rsp = data;
-	u16 icid, result;
-
-	if (cmd_len != sizeof(*rsp))
-		return -EPROTO;
-
-	icid = le16_to_cpu(rsp->icid);
-	result = le16_to_cpu(rsp->result);
-
-	BT_DBG("icid 0x%4.4x, result 0x%4.4x", icid, result);
-
-	if (result == L2CAP_MR_SUCCESS || result == L2CAP_MR_PEND)
-		l2cap_move_continue(conn, icid, result);
-	else
-		l2cap_move_fail(conn, cmd->ident, icid, result);
-
-	return 0;
-}
-
-static int l2cap_move_channel_confirm(struct l2cap_conn *conn,
-				      struct l2cap_cmd_hdr *cmd,
-				      u16 cmd_len, void *data)
-{
-	struct l2cap_move_chan_cfm *cfm = data;
-	struct l2cap_chan *chan;
-	u16 icid, result;
-
-	if (cmd_len != sizeof(*cfm))
-		return -EPROTO;
-
-	icid = le16_to_cpu(cfm->icid);
-	result = le16_to_cpu(cfm->result);
-
-	BT_DBG("icid 0x%4.4x, result 0x%4.4x", icid, result);
-
-	chan = l2cap_get_chan_by_dcid(conn, icid);
-	if (!chan) {
-		/* Spec requires a response even if the icid was not found */
-		l2cap_send_move_chan_cfm_rsp(conn, cmd->ident, icid);
-		return 0;
-	}
-
-	if (chan->move_state == L2CAP_MOVE_WAIT_CONFIRM) {
-		if (result == L2CAP_MC_CONFIRMED) {
-			chan->local_amp_id = chan->move_id;
-			if (chan->local_amp_id == AMP_ID_BREDR)
-				__release_logical_link(chan);
-		} else {
-			chan->move_id = chan->local_amp_id;
-		}
-
-		l2cap_move_done(chan);
-	}
-
-	l2cap_send_move_chan_cfm_rsp(conn, cmd->ident, icid);
-
-	l2cap_chan_unlock(chan);
-	l2cap_chan_put(chan);
-
-	return 0;
-}
-
-static inline int l2cap_move_channel_confirm_rsp(struct l2cap_conn *conn,
-						 struct l2cap_cmd_hdr *cmd,
-						 u16 cmd_len, void *data)
-{
-	struct l2cap_move_chan_cfm_rsp *rsp = data;
-	struct l2cap_chan *chan;
-	u16 icid;
-
-	if (cmd_len != sizeof(*rsp))
-		return -EPROTO;
-
-	icid = le16_to_cpu(rsp->icid);
-
-	BT_DBG("icid 0x%4.4x", icid);
-
-	chan = l2cap_get_chan_by_scid(conn, icid);
-	if (!chan)
-		return 0;
-
-	__clear_chan_timer(chan);
-
-	if (chan->move_state == L2CAP_MOVE_WAIT_CONFIRM_RSP) {
-		chan->local_amp_id = chan->move_id;
-
-		if (chan->local_amp_id == AMP_ID_BREDR && chan->hs_hchan)
-			__release_logical_link(chan);
-
-		l2cap_move_done(chan);
-	}
-
-	l2cap_chan_unlock(chan);
-	l2cap_chan_put(chan);
-
-	return 0;
-}
-
 static inline int l2cap_conn_param_update_req(struct l2cap_conn *conn,
 					      struct l2cap_cmd_hdr *cmd,
 					      u16 cmd_len, u8 *data)
@@ -5745,7 +4761,6 @@ static inline int l2cap_bredr_sig_cmd(struct l2cap_conn *conn,
 		break;
 
 	case L2CAP_CONN_RSP:
-	case L2CAP_CREATE_CHAN_RSP:
 		l2cap_connect_create_rsp(conn, cmd, cmd_len, data);
 		break;
 
@@ -5780,26 +4795,6 @@ static inline int l2cap_bredr_sig_cmd(struct l2cap_conn *conn,
 		l2cap_information_rsp(conn, cmd, cmd_len, data);
 		break;
 
-	case L2CAP_CREATE_CHAN_REQ:
-		err = l2cap_create_channel_req(conn, cmd, cmd_len, data);
-		break;
-
-	case L2CAP_MOVE_CHAN_REQ:
-		err = l2cap_move_channel_req(conn, cmd, cmd_len, data);
-		break;
-
-	case L2CAP_MOVE_CHAN_RSP:
-		l2cap_move_channel_rsp(conn, cmd, cmd_len, data);
-		break;
-
-	case L2CAP_MOVE_CHAN_CFM:
-		err = l2cap_move_channel_confirm(conn, cmd, cmd_len, data);
-		break;
-
-	case L2CAP_MOVE_CHAN_CFM_RSP:
-		l2cap_move_channel_confirm_rsp(conn, cmd, cmd_len, data);
-		break;
-
 	default:
 		BT_ERR("Unknown BR/EDR signaling command 0x%2.2x", cmd->code);
 		err = -EINVAL;
@@ -7051,8 +6046,8 @@ static int l2cap_rx_state_recv(struct l2cap_chan *chan,
 		if (control->final) {
 			clear_bit(CONN_REMOTE_BUSY, &chan->conn_state);
 
-			if (!test_and_clear_bit(CONN_REJ_ACT, &chan->conn_state) &&
-			    !__chan_is_moving(chan)) {
+			if (!test_and_clear_bit(CONN_REJ_ACT,
+						&chan->conn_state)) {
 				control->final = 0;
 				l2cap_retransmit_all(chan, control);
 			}
@@ -7245,11 +6240,7 @@ static int l2cap_finish_move(struct l2cap_chan *chan)
 	BT_DBG("chan %p", chan);
 
 	chan->rx_state = L2CAP_RX_STATE_RECV;
-
-	if (chan->hs_hcon)
-		chan->conn->mtu = chan->hs_hcon->hdev->block_mtu;
-	else
-		chan->conn->mtu = chan->conn->hcon->hdev->acl_mtu;
+	chan->conn->mtu = chan->conn->hcon->hdev->acl_mtu;
 
 	return l2cap_resegment(chan);
 }
@@ -7316,11 +6307,7 @@ static int l2cap_rx_state_wait_f(struct l2cap_chan *chan,
 	 */
 	chan->next_tx_seq = control->reqseq;
 	chan->unacked_frames = 0;
-
-	if (chan->hs_hcon)
-		chan->conn->mtu = chan->hs_hcon->hdev->block_mtu;
-	else
-		chan->conn->mtu = chan->conn->hcon->hdev->acl_mtu;
+	chan->conn->mtu = chan->conn->hcon->hdev->acl_mtu;
 
 	err = l2cap_resegment(chan);
 
@@ -7672,21 +6659,10 @@ static void l2cap_data_channel(struct l2cap_conn *conn, u16 cid,
 
 	chan = l2cap_get_chan_by_scid(conn, cid);
 	if (!chan) {
-		if (cid == L2CAP_CID_A2MP) {
-			chan = a2mp_channel_create(conn, skb);
-			if (!chan) {
-				kfree_skb(skb);
-				return;
-			}
-
-			l2cap_chan_hold(chan);
-			l2cap_chan_lock(chan);
-		} else {
-			BT_DBG("unknown cid 0x%4.4x", cid);
-			/* Drop packet and return */
-			kfree_skb(skb);
-			return;
-		}
+		BT_DBG("unknown cid 0x%4.4x", cid);
+		/* Drop packet and return */
+		kfree_skb(skb);
+		return;
 	}
 
 	BT_DBG("chan %p, len %d", chan, skb->len);
@@ -7887,10 +6863,6 @@ static struct l2cap_conn *l2cap_conn_add(struct hci_conn *hcon)
 
 	conn->local_fixed_chan = L2CAP_FC_SIG_BREDR | L2CAP_FC_CONNLESS;
 
-	if (hcon->type == ACL_LINK &&
-	    hci_dev_test_flag(hcon->hdev, HCI_HS_ENABLED))
-		conn->local_fixed_chan |= L2CAP_FC_A2MP;
-
 	if (hci_dev_test_flag(hcon->hdev, HCI_LE_ENABLED) &&
 	    (bredr_sc_enabled(hcon->hdev) ||
 	     hci_dev_test_flag(hcon->hdev, HCI_FORCE_BREDR_SMP)))
@@ -8355,11 +7327,6 @@ static void l2cap_security_cfm(struct hci_conn *hcon, u8 status, u8 encrypt)
 		BT_DBG("chan %p scid 0x%4.4x state %s", chan, chan->scid,
 		       state_to_string(chan->state));
 
-		if (chan->scid == L2CAP_CID_A2MP) {
-			l2cap_chan_unlock(chan);
-			continue;
-		}
-
 		if (!status && encrypt)
 			chan->sec_level = hcon->sec_level;
 
diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c
index e50d3d102078e..ee7a41d6994fc 100644
--- a/net/bluetooth/l2cap_sock.c
+++ b/net/bluetooth/l2cap_sock.c
@@ -1027,23 +1027,7 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
 			break;
 		}
 
-		if (opt > BT_CHANNEL_POLICY_AMP_PREFERRED) {
-			err = -EINVAL;
-			break;
-		}
-
-		if (chan->mode != L2CAP_MODE_ERTM &&
-		    chan->mode != L2CAP_MODE_STREAMING) {
-			err = -EOPNOTSUPP;
-			break;
-		}
-
-		chan->chan_policy = (u8) opt;
-
-		if (sk->sk_state == BT_CONNECTED &&
-		    chan->move_role == L2CAP_MOVE_ROLE_NONE)
-			l2cap_move_start(chan);
-
+		err = -EOPNOTSUPP;
 		break;
 
 	case BT_SNDMTU:
diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
index 688890f581cba..b2a272bc4d7c5 100644
--- a/net/bluetooth/mgmt.c
+++ b/net/bluetooth/mgmt.c
@@ -835,8 +835,6 @@ static u32 get_supported_settings(struct hci_dev *hdev)
 
 		if (lmp_ssp_capable(hdev)) {
 			settings |= MGMT_SETTING_SSP;
-			if (IS_ENABLED(CONFIG_BT_HS))
-				settings |= MGMT_SETTING_HS;
 		}
 
 		if (lmp_sc_capable(hdev))
@@ -901,9 +899,6 @@ static u32 get_current_settings(struct hci_dev *hdev)
 	if (hci_dev_test_flag(hdev, HCI_SSP_ENABLED))
 		settings |= MGMT_SETTING_SSP;
 
-	if (hci_dev_test_flag(hdev, HCI_HS_ENABLED))
-		settings |= MGMT_SETTING_HS;
-
 	if (hci_dev_test_flag(hdev, HCI_ADVERTISING))
 		settings |= MGMT_SETTING_ADVERTISING;
 
@@ -1930,7 +1925,6 @@ static void set_ssp_complete(struct hci_dev *hdev, void *data, int err)
 
 		if (enable && hci_dev_test_and_clear_flag(hdev,
 							  HCI_SSP_ENABLED)) {
-			hci_dev_clear_flag(hdev, HCI_HS_ENABLED);
 			new_settings(hdev, NULL);
 		}
 
@@ -1943,12 +1937,6 @@ static void set_ssp_complete(struct hci_dev *hdev, void *data, int err)
 		changed = !hci_dev_test_and_set_flag(hdev, HCI_SSP_ENABLED);
 	} else {
 		changed = hci_dev_test_and_clear_flag(hdev, HCI_SSP_ENABLED);
-
-		if (!changed)
-			changed = hci_dev_test_and_clear_flag(hdev,
-							      HCI_HS_ENABLED);
-		else
-			hci_dev_clear_flag(hdev, HCI_HS_ENABLED);
 	}
 
 	mgmt_pending_foreach(MGMT_OP_SET_SSP, hdev, settings_rsp, &match);
@@ -2012,11 +2000,6 @@ static int set_ssp(struct sock *sk, struct hci_dev *hdev, void *data, u16 len)
 		} else {
 			changed = hci_dev_test_and_clear_flag(hdev,
 							      HCI_SSP_ENABLED);
-			if (!changed)
-				changed = hci_dev_test_and_clear_flag(hdev,
-								      HCI_HS_ENABLED);
-			else
-				hci_dev_clear_flag(hdev, HCI_HS_ENABLED);
 		}
 
 		err = send_settings_rsp(sk, MGMT_OP_SET_SSP, hdev);
@@ -2062,63 +2045,10 @@ static int set_ssp(struct sock *sk, struct hci_dev *hdev, void *data, u16 len)
 
 static int set_hs(struct sock *sk, struct hci_dev *hdev, void *data, u16 len)
 {
-	struct mgmt_mode *cp = data;
-	bool changed;
-	u8 status;
-	int err;
-
 	bt_dev_dbg(hdev, "sock %p", sk);
 
-	if (!IS_ENABLED(CONFIG_BT_HS))
-		return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_HS,
+	return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_HS,
 				       MGMT_STATUS_NOT_SUPPORTED);
-
-	status = mgmt_bredr_support(hdev);
-	if (status)
-		return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_HS, status);
-
-	if (!lmp_ssp_capable(hdev))
-		return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_HS,
-				       MGMT_STATUS_NOT_SUPPORTED);
-
-	if (!hci_dev_test_flag(hdev, HCI_SSP_ENABLED))
-		return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_HS,
-				       MGMT_STATUS_REJECTED);
-
-	if (cp->val != 0x00 && cp->val != 0x01)
-		return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_HS,
-				       MGMT_STATUS_INVALID_PARAMS);
-
-	hci_dev_lock(hdev);
-
-	if (pending_find(MGMT_OP_SET_SSP, hdev)) {
-		err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_HS,
-				      MGMT_STATUS_BUSY);
-		goto unlock;
-	}
-
-	if (cp->val) {
-		changed = !hci_dev_test_and_set_flag(hdev, HCI_HS_ENABLED);
-	} else {
-		if (hdev_is_powered(hdev)) {
-			err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_HS,
-					      MGMT_STATUS_REJECTED);
-			goto unlock;
-		}
-
-		changed = hci_dev_test_and_clear_flag(hdev, HCI_HS_ENABLED);
-	}
-
-	err = send_settings_rsp(sk, MGMT_OP_SET_HS, hdev);
-	if (err < 0)
-		goto unlock;
-
-	if (changed)
-		err = new_settings(hdev, sk);
-
-unlock:
-	hci_dev_unlock(hdev);
-	return err;
 }
 
 static void set_le_complete(struct hci_dev *hdev, void *data, int err)
@@ -6766,7 +6696,6 @@ static int set_bredr(struct sock *sk, struct hci_dev *hdev, void *data, u16 len)
 			hci_dev_clear_flag(hdev, HCI_SSP_ENABLED);
 			hci_dev_clear_flag(hdev, HCI_LINK_SECURITY);
 			hci_dev_clear_flag(hdev, HCI_FAST_CONNECTABLE);
-			hci_dev_clear_flag(hdev, HCI_HS_ENABLED);
 		}
 
 		hci_dev_change_flag(hdev, HCI_BREDR_ENABLED);
-- 
2.43.0


  parent reply	other threads:[~2024-03-24 22:39 UTC|newest]

Thread overview: 743+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-24 22:22 [PATCH 6.8 000/715] 6.8.2-rc1 review Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 001/715] do_sys_name_to_handle(): use kzalloc() to fix kernel-infoleak Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 002/715] workqueue.c: Increase workqueue name length Sasha Levin
2024-03-26  9:36   ` Ron Economos
2024-03-27 13:43     ` Greg KH
2024-03-24 22:23 ` [PATCH 6.8 003/715] workqueue: Move pwq->max_active to wq->max_active Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 004/715] workqueue: Factor out pwq_is_empty() Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 005/715] workqueue: Replace pwq_activate_inactive_work() with [__]pwq_activate_work() Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 006/715] workqueue: Move nr_active handling into helpers Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 007/715] workqueue: Make wq_adjust_max_active() round-robin pwqs while activating Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 008/715] workqueue: RCU protect wq->dfl_pwq and implement accessors for it Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 009/715] workqueue: Introduce struct wq_node_nr_active Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 010/715] workqueue: Implement system-wide nr_active enforcement for unbound workqueues Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 011/715] workqueue: Don't call cpumask_test_cpu() with -1 CPU in wq_update_node_max_active() Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 012/715] iomap: clear the per-folio dirty bits on all writeback failures Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 013/715] fs: Fix rw_hint validation Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 014/715] io_uring: remove looping around handling traditional task_work Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 015/715] io_uring: remove unconditional looping in local task_work handling Sasha Levin
2024-04-02  8:12   ` Jiri Slaby
2024-04-02 13:41     ` Jens Axboe
2024-04-04  7:06       ` Jiri Slaby
2024-04-06  2:10         ` Jens Axboe
2024-03-24 22:23 ` [PATCH 6.8 016/715] s390/dasd: Use dev_*() for device log messages Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 017/715] s390/dasd: fix double module refcount decrement Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 018/715] fs/hfsplus: use better @opf description Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 019/715] md: fix kmemleak of rdev->serial Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 020/715] rcu/exp: Fix RCU expedited parallel grace period kworker allocation failure recovery Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 021/715] rcu/exp: Handle RCU expedited grace period kworker allocation failure Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 022/715] nbd: null check for nla_nest_start Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 023/715] fs/select: rework stack allocation hack for clang Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 024/715] block: fix deadlock between bd_link_disk_holder and partition scan Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 025/715] md: Don't clear MD_CLOSING when the raid is about to stop Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 026/715] kunit: Setup DMA masks on the kunit device Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 027/715] ovl: Always reject mounting over case-insensitive directories Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 028/715] kunit: test: Log the correct filter string in executor_test Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 029/715] lib/cmdline: Fix an invalid format specifier in an assertion msg Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 030/715] lib: memcpy_kunit: " Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 031/715] time: test: Fix incorrect format specifier Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 032/715] rtc: test: Fix invalid " Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 033/715] net: test: Fix printf format specifier in skb_segment kunit test Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 034/715] drm/xe/tests: Fix printf format specifiers in xe_migrate test Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 035/715] drm: tests: Fix invalid printf format specifiers in KUnit tests Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 036/715] md/raid1: factor out helpers to add rdev to conf Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 037/715] md/raid1: record nonrot rdevs while adding/removing rdevs " Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 038/715] md/raid1: fix choose next idle in read_balance() Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 039/715] io_uring/net: unify how recvmsg and sendmsg copy in the msghdr Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 040/715] io_uring/net: move receive multishot out of the generic msghdr path Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 041/715] io_uring/net: fix overflow check in io_recvmsg_mshot_prep() Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 042/715] nvme: host: fix double-free of struct nvme_id_ns in ns_update_nuse() Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 043/715] aoe: fix the potential use-after-free problem in aoecmd_cfg_pkts Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 044/715] x86/mm: Ensure input to pfn_to_kaddr() is treated as a 64-bit type Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 045/715] x86/resctrl: Remove hard-coded memory bandwidth limit Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 046/715] x86/resctrl: Read supported bandwidth sources from CPUID Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 047/715] x86/resctrl: Implement new mba_MBps throttling heuristic Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 048/715] x86/sme: Fix memory encryption setting if enabled by default and not overridden Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 049/715] timekeeping: Fix cross-timestamp interpolation on counter wrap Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 050/715] timekeeping: Fix cross-timestamp interpolation corner case decision Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 051/715] timekeeping: Fix cross-timestamp interpolation for non-x86 Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 052/715] x86/asm: Remove the __iomem annotation of movdir64b()'s dst argument Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 053/715] sched/fair: Take the scheduling domain into account in select_idle_smt() Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 054/715] sched/fair: Take the scheduling domain into account in select_idle_core() Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 055/715] wifi: ath10k: fix NULL pointer dereference in ath10k_wmi_tlv_op_pull_mgmt_tx_compl_ev() Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 056/715] wifi: b43: Stop/wake correct queue in DMA Tx path when QoS is disabled Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 057/715] wifi: b43: Stop/wake correct queue in PIO " Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 058/715] wifi: b43: Stop correct queue in DMA worker " Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 059/715] wifi: b43: Disable QoS for bcm4331 Sasha Levin
2024-03-24 22:23 ` [PATCH 6.8 060/715] wifi: wilc1000: fix declarations ordering Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 061/715] wifi: wilc1000: fix RCU usage in connect path Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 062/715] wifi: ath11k: add support to select 6 GHz regulatory type Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 063/715] wifi: ath11k: store cur_regulatory_info for each radio Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 064/715] wifi: ath11k: fix a possible dead lock caused by ab->base_lock Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 065/715] wifi: rtl8xxxu: add cancel_work_sync() for c2hcmd_work Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 066/715] wifi: wilc1000: do not realloc workqueue everytime an interface is added Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 067/715] wifi: wilc1000: fix multi-vif management when deleting a vif Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 068/715] wifi: mwifiex: debugfs: Drop unnecessary error check for debugfs_create_dir() Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 069/715] ARM: dts: renesas: r8a73a4: Fix external clocks and clock rate Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 070/715] arm64: dts: qcom: x1e80100: drop qcom,drv-count Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 071/715] arm64: dts: qcom: sc8180x: Hook up VDD_CX as GCC parent domain Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 072/715] arm64: dts: qcom: sc8180x: Fix up big CPU idle state entry latency Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 073/715] arm64: dts: qcom: sc8180x: Add missing CPU off state Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 074/715] arm64: dts: qcom: sc8180x: Fix eDP PHY power-domains Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 075/715] arm64: dts: qcom: sc8180x: Don't hold MDP core clock at FMAX Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 076/715] arm64: dts: qcom: sc8180x: Require LOW_SVS vote for MMCX if DISPCC is on Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 077/715] arm64: dts: qcom: sc8180x: Add missing CPU<->MDP_CFG path Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 078/715] arm64: dts: qcom: sc8180x: Shrink aoss_qmp register space size Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 079/715] cpufreq: brcmstb-avs-cpufreq: add check for cpufreq_cpu_get's return value Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 080/715] cpufreq: mediatek-hw: Wait for CPU supplies before probing Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 081/715] sock_diag: annotate data-races around sock_diag_handlers[family] Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 082/715] inet_diag: annotate data-races around inet_diag_table[] Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 083/715] bpftool: Silence build warning about calloc() Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 084/715] selftests/bpf: Fix potential premature unload in bpf_testmod Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 085/715] libbpf: Apply map_set_def_max_entries() for inner_maps on creation Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 086/715] selftest/bpf: Add map_in_maps with BPF_MAP_TYPE_PERF_EVENT_ARRAY values Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 087/715] bpftool: Fix wrong free call in do_show_link Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 088/715] wifi: ath12k: Fix issues in channel list update Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 089/715] selftests/bpf: Fix the flaky tc_redirect_dtime test Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 090/715] selftests/bpf: Wait for the netstamp_needed_key static key to be turned on Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 091/715] wifi: cfg80211: add RNR with reporting AP information Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 092/715] wifi: mac80211: use deflink and fix typo in link ID check Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 093/715] wifi: iwlwifi: change link id in time event to s8 Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 094/715] af_unix: Annotate data-race of gc_in_progress in wait_for_unix_gc() Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 095/715] arm64: dts: qcom: sm8450: Add missing interconnects to serial Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 096/715] soc: qcom: socinfo: rename PM2250 to PM4125 Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 097/715] arm64: dts: qcom: sc7280: Add static properties to cryptobam Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 098/715] arm64: dts: qcom: qcm6490-fairphone-fp5: Add missing reserved-memory Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 099/715] arm64: dts: qcom: sdm845-oneplus-common: improve DAI node naming Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 100/715] arm64: dts: qcom: rename PM2250 to PM4125 Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 101/715] cpufreq: mediatek-hw: Don't error out if supply is not found Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 102/715] libbpf: Fix faccessat() usage on Android Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 103/715] libbpf: fix __arg_ctx type enforcement for perf_event programs Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 104/715] pmdomain: qcom: rpmhpd: Drop SA8540P gfx.lvl Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 105/715] arm64: dts: qcom: sa8540p: Drop gfx.lvl as power-domain for gpucc Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 106/715] arm64: dts: renesas: r8a779g0: Restore sort order Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 107/715] arm64: dts: renesas: r8a779g0: Add missing SCIF_CLK2 Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 108/715] selftests/bpf: Disable IPv6 for lwt_redirect test Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 109/715] arm64: dts: imx8mm-kontron: Disable pullups for I2C signals on OSM-S i.MX8MM Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 110/715] arm64: dts: imx8mm-kontron: Disable pullups for I2C signals on SL/BL i.MX8MM Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 111/715] arm64: dts: imx8mm-kontron: Disable pullups for onboard UART signals on BL OSM-S board Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 112/715] arm64: dts: imx8mm-kontron: Disable pullups for onboard UART signals on BL board Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 113/715] arm64: dts: imx8mm-kontron: Disable pull resistors for SD card signals on BL OSM-S board Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 114/715] arm64: dts: imx8mm-kontron: Disable pull resistors for SD card signals on BL board Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 115/715] arm64: dts: imx8mm-kontron: Fix interrupt for RTC on OSM-S i.MX8MM module Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 116/715] arm64: dts: imx8qm: Align edma3 power-domains resources indentation Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 117/715] arm64: dts: imx8qm: Correct edma3 power-domains and interrupt numbers Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 118/715] libbpf: Add missing LIBBPF_API annotation to libbpf_set_memlock_rlim API Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 119/715] libbpf: Add bpf_token_create() API Sasha Levin
2024-03-25  5:40   ` Jiri Slaby
2024-03-25 11:17     ` Thorsten Leemhuis
2024-03-25 13:41       ` Thorsten Leemhuis
2024-03-25 13:56       ` Sasha Levin
2024-03-24 22:24 ` [PATCH 6.8 120/715] libbpf: Add btf__new_split() API that was declared but not implemented Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 121/715] libbpf: Add missed btf_ext__raw_data() API Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 122/715] wifi: ath9k: delay all of ath9k_wmi_event_tasklet() until init is complete Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 123/715] wifi: ath11k: change to move WMI_VDEV_PARAM_SET_HEMU_MODE before WMI_PEER_ASSOC_CMDID Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 124/715] wifi: ath12k: fix fetching MCBC flag for QCN9274 Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 125/715] wifi: iwlwifi: mvm: report beacon protection failures Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 126/715] wifi: iwlwifi: dbg-tlv: ensure NUL termination Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 127/715] wifi: iwlwifi: acpi: fix WPFC reading Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 128/715] wifi: iwlwifi: mvm: initialize rates in FW earlier Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 129/715] wifi: iwlwifi: fix EWRD table validity check Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 130/715] wifi: iwlwifi: mvm: d3: fix IPN byte order Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 131/715] wifi: iwlwifi: always have 'uats_enabled' Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 132/715] wifi: iwlwifi: mvm: fix the TLC command after ADD_STA Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 133/715] wifi: iwlwifi: read BIOS PNVM only for non-Intel SKU Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 134/715] gpio: vf610: allow disabling the vf610 driver Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 135/715] selftests/bpf: trace_helpers.c: do not use poisoned type Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 136/715] bpf: make sure scalar args don't accept __arg_nonnull tag Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 137/715] bpf: don't emit warnings intended for global subprogs for static subprogs Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 138/715] arm64: dts: imx8mm-venice-gw71xx: fix USB OTG VBUS Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 139/715] pwm: atmel-hlcdc: Fix clock imbalance related to suspend support Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 140/715] net: blackhole_dev: fix build warning for ethh set but not used Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 141/715] spi: consolidate setting message->spi Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 142/715] spi: move split xfers for CS_WORD emulation Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 143/715] arm64: dts: ti: k3-am62p5-sk: Enable CPSW MDIO node Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 144/715] arm64: dts: ti: k3-j721s2: Fix power domain for VTM node Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 145/715] arm64: dts: ti: k3-j784s4: " Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 146/715] wifi: ath11k: initialize rx_mcs_80 and rx_mcs_160 before use Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 147/715] wifi: libertas: fix some memleaks in lbs_allocate_cmd_buffer() Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 148/715] arm64: dts: ti: k3-am69-sk: remove assigned-clock-parents for unused VP Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 149/715] libbpf: fix return value for PERF_EVENT __arg_ctx type fix up check Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 150/715] arm64: dts: ti: k3-am62p-mcu/wakeup: Disable MCU and wakeup R5FSS nodes Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 151/715] arm64: dts: qcom: x1e80100-qcp: Fix supplies for LDOs 3E and 2J Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 152/715] libbpf: Use OPTS_SET() macro in bpf_xdp_query() Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 153/715] wifi: wfx: fix memory leak when starting AP Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 154/715] arm64: dts: qcom: msm8998: declare VLS CLAMP register for USB3 PHY Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 155/715] arm64: dts: qcom: qcm2290: " Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 156/715] arm64: dts: qcom: sm6115: " Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 157/715] arm64: dts: qcom: sm8650: Fix UFS PHY clocks Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 158/715] wifi: ath12k: fix incorrect logic of calculating vdev_stats_id Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 159/715] printk: nbcon: Relocate 32bit seq macros Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 160/715] printk: ringbuffer: Do not skip non-finalized records with prb_next_seq() Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 161/715] printk: Wait for all reserved records with pr_flush() Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 162/715] printk: Add this_cpu_in_panic() Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 163/715] printk: ringbuffer: Cleanup reader terminology Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 164/715] printk: ringbuffer: Skip non-finalized records in panic Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 165/715] printk: Disable passing console lock owner completely during panic() Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 166/715] pwm: sti: Fix capture for st,pwm-num-chan < st,capture-num-chan Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 167/715] tools/resolve_btfids: Refactor set sorting with types from btf_ids.h Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 168/715] tools/resolve_btfids: Fix cross-compilation to non-host endianness Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 169/715] wifi: iwlwifi: support EHT for WH Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 170/715] wifi: iwlwifi: properly check if link is active Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 171/715] wifi: iwlwifi: mvm: fix erroneous queue index mask Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 172/715] wifi: iwlwifi: mvm: don't set the MFP flag for the GTK Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 173/715] wifi: iwlwifi: mvm: don't set replay counters to 0xff Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 174/715] s390/pai: fix attr_event_free upper limit for pai device drivers Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 175/715] s390/vdso: drop '-fPIC' from LDFLAGS Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 176/715] arm64: dts: qcom: qcm6490-idp: Correct the voltage setting for vph_pwr Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 177/715] arm64: dts: qcom: qcs6490-rb3gen2: " Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 178/715] selftests: forwarding: Add missing config entries Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 179/715] selftests: forwarding: Add missing multicast routing " Sasha Levin
2024-03-24 22:25 ` [PATCH 6.8 180/715] arm64: dts: qcom: sm6115: drop pipe clock selection Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 181/715] ipv6: mcast: remove one synchronize_net() barrier in ipv6_mc_down() Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 182/715] arm64: dts: mt8183: Move CrosEC base detection node to kukui-based DTs Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 183/715] arm64: dts: mediatek: mt7986: fix reference to PWM in fan node Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 184/715] arm64: dts: mediatek: mt7986: drop crypto's unneeded/invalid clock name Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 185/715] arm64: dts: mediatek: mt7986: fix SPI bus width properties Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 186/715] arm64: dts: mediatek: mt7986: fix SPI nodename Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 187/715] arm64: dts: mediatek: mt7986: drop "#clock-cells" from PWM Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 188/715] arm64: dts: mediatek: mt7986: add "#reset-cells" to infracfg Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 189/715] arm64: dts: mediatek: mt8192-asurada: Remove CrosEC base detection node Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 190/715] arm64: dts: mediatek: mt8192: fix vencoder clock name Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 191/715] arm64: dts: mediatek: mt8186: fix VENC power domain clocks Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 192/715] arm64: dts: mediatek: mt7622: add missing "device_type" to memory nodes Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 193/715] can: m_can: Start/Cancel polling timer together with interrupts Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 194/715] wifi: iwlwifi: mvm: Fix the listener MAC filter flags Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 195/715] bpf: Mark bpf_spin_{lock,unlock}() helpers with notrace correctly Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 196/715] bpf: don't infer PTR_TO_CTX for programs with unnamed context type Sasha Levin
2024-03-25 10:46   ` Miguel Ojeda
2024-03-24 22:26 ` [PATCH 6.8 197/715] arm64: dts: qcom: sdm845: Use the Low Power Island CX/MX for SLPI Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 198/715] soc: qcom: llcc: Check return value on Broadcast_OR reg read Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 199/715] ARM: dts: qcom: msm8974: correct qfprom node size Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 200/715] arm64: dts: mediatek: mt8186: Add missing clocks to ssusb power domains Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 201/715] arm64: dts: mediatek: mt8186: Add missing xhci clock to usb controllers Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 202/715] arm64: dts: ti: am65x: Fix dtbs_install for Rocktech OLDI overlay Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 203/715] cpufreq: qcom-hw: add CONFIG_COMMON_CLK dependency Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 204/715] wifi: wilc1000: prevent use-after-free on vif when cleaning up all interfaces Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 205/715] pwm: dwc: use pm_sleep_ptr() macro Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 206/715] arm64: dts: ti: k3-am69-sk: fix PMIC interrupt number Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 207/715] arm64: dts: ti: k3-j721e-sk: " Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 208/715] arm64: dts: ti: k3-am62-main: disable usb lpm Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 209/715] ACPI: processor_idle: Fix memory leak in acpi_processor_power_exit() Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 210/715] bus: tegra-aconnect: Update dependency to ARCH_TEGRA Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 211/715] iommu/amd: Mark interrupt as managed Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 212/715] wifi: brcmsmac: avoid function pointer casts Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 213/715] arm64: dts: qcom: sdm845-db845c: correct PCIe wake-gpios Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 214/715] arm64: dts: qcom: sm8150: " Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 215/715] powercap: dtpm_cpu: Fix error check against freq_qos_add_request() Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 216/715] net: ena: Remove ena_select_queue Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 217/715] arm64: dts: ti: k3-j7200-common-proc-board: Modify Pinmux for wkup_uart0 and mcu_uart0 Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 218/715] arm64: dts: ti: k3-j7200-common-proc-board: Remove clock-frequency from mcu_uart0 Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 219/715] arm64: dts: ti: k3-j721s2-common-proc-board: Remove Pinmux for CTS and RTS in wkup_uart0 Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 220/715] arm64: dts: ti: k3-j784s4-evm: " Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 221/715] arm64: dts: ti: k3-am64-main: Fix ITAP/OTAP values for MMC Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 222/715] arm64: dts: mt8195-cherry-tomato: change watchdog reset boot flow Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 223/715] arm64: dts: ti: Add common1 register space for AM65x SoC Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 224/715] arm64: dts: ti: Add common1 register space for AM62x SoC Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 225/715] firmware: arm_scmi: Fix double free in SMC transport cleanup path Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 226/715] wifi: cfg80211: set correct param change count in ML element Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 227/715] arm64: dts: ti: k3-j721e: Fix mux-reg-masks in hbmc_mux Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 228/715] arm64: dts: ti: k3-j784s4-main: Fix mux-reg-masks in serdes_ln_ctrl Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 229/715] arm64: dts: ti: k3-am62p: Fix memory ranges for DMSS Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 230/715] wifi: wilc1000: revert reset line logic flip Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 231/715] ARM: dts: arm: realview: Fix development chip ROM compatible value Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 232/715] memory: tegra: Correct DLA client names Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 233/715] wifi: mt76: mt7996: fix fw loading timeout Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 234/715] wifi: mt76: mt7925: fix connect to 80211b mode fail in 2Ghz band Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 235/715] wifi: mt76: mt7925: fix SAP no beacon issue in 5Ghz and 6Ghz band Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 236/715] wifi: mt76: mt7925: fix mcu query command fail Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 237/715] wifi: mt76: mt7925: fix wmm queue mapping Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 238/715] wifi: mt76: mt7925: fix fw download fail Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 239/715] wifi: mt76: mt7925: fix WoW failed in encrypted mode Sasha Levin
2024-03-24 22:26 ` [PATCH 6.8 240/715] wifi: mt76: mt7925: fix the wrong header translation config Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 241/715] wifi: mt76: mt7925: add flow to avoid chip bt function fail Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 242/715] wifi: mt76: mt7925: add support to set ifs time by mcu command Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 243/715] wifi: mt76: mt7925: update PCIe DMA settings Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 244/715] wifi: mt76: mt7996: check txs format before getting skb by pid Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 245/715] wifi: mt76: mt7996: fix TWT issues Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 246/715] wifi: mt76: mt7996: fix incorrect interpretation of EHT MCS caps Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 247/715] wifi: mt76: mt7996: fix HE beamformer phy cap for station vif Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 248/715] wifi: mt76: mt7996: fix efuse reading issue Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 249/715] wifi: mt76: mt7996: fix HIF_TXD_V2_1 value Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 250/715] wifi: mt76: mt792x: fix ethtool warning Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 251/715] wifi: mt76: mt7921e: fix use-after-free in free_irq() Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 252/715] wifi: mt76: mt7925e: " Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 253/715] wifi: mt76: mt7921: fix incorrect type conversion for CLC command Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 254/715] wifi: mt76: mt792x: fix a potential loading failure of the 6Ghz channel config from ACPI Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 255/715] wifi: mt76: fix the issue of missing txpwr settings from ch153 to ch177 Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 256/715] arm64: dts: renesas: rzg2l: Add missing interrupts to IRQC nodes Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 257/715] arm64: dts: renesas: r9a08g045: Add missing interrupts to IRQC node Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 258/715] arm64: dts: renesas: rzg3s-smarc-som: Guard Ethernet IRQ GPIO hogs Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 259/715] arm64: dts: renesas: r8a779a0: Correct avb[01] reg sizes Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 260/715] arm64: dts: renesas: r8a779g0: " Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 261/715] net: mctp: copy skb ext data when fragmenting Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 262/715] pstore: inode: Only d_invalidate() is needed Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 263/715] arm64: dts: allwinner: h6: Add RX DMA channel for SPDIF Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 264/715] ARM: dts: imx6dl-yapp4: Fix typo in the QCA switch register address Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 265/715] ARM: dts: imx6dl-yapp4: Move the internal switch PHYs under the switch node Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 266/715] arm64: dts: imx8mp: Set SPI NOR to max 40 MHz on Data Modul i.MX8M Plus eDM SBC Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 267/715] arm64: dts: imx8mp-evk: Fix hdmi@3d node Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 268/715] regulator: userspace-consumer: add module device table Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 269/715] gpiolib: Pass consumer device through to core in devm_fwnode_gpiod_get_index() Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 270/715] arm64: dts: marvell: reorder crypto interrupts on Armada SoCs Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 271/715] ACPI: resource: Do IRQ override on Lunnen Ground laptops Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 272/715] ACPI: resource: Add MAIBENBEN X577 to irq1_edge_low_force_override Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 273/715] ACPI: scan: Fix device check notification handling Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 274/715] arm64: dts: rockchip: add missing interrupt-names for rk356x vdpu Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 275/715] arm64: dts: rockchip: fix reset-names for rk356x i2s2 controller Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 276/715] arm64: dts: rockchip: drop rockchip,trcm-sync-tx-only from rk3588 i2s Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 277/715] iommu/arm-smmu-v3: Check that the RID domain is S1 in SVA Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 278/715] objtool: Fix UNWIND_HINT_{SAVE,RESTORE} across basic blocks Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 279/715] x86, relocs: Ignore relocations in .notes section Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 280/715] SUNRPC: fix a memleak in gss_import_v2_context Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 281/715] SUNRPC: fix some memleaks in gssx_dec_option_array Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 282/715] arm64: dts: qcom: sm8550: Fix SPMI channels size Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 283/715] arm64: dts: qcom: sm8650: " Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 284/715] mmc: wmt-sdmmc: remove an incorrect release_mem_region() call in the .remove function Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 285/715] ACPI: CPPC: enable AMD CPPC V2 support for family 17h processors Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 286/715] btrfs: fix race when detecting delalloc ranges during fiemap Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 287/715] wifi: rtw88: 8821cu: Fix firmware upload fail Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 288/715] wifi: rtw88: 8821c: Fix beacon loss and disconnect Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 289/715] wifi: rtw88: 8821c: Fix false alarm count Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 290/715] wifi: brcm80211: handle pmk_op allocation failure Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 291/715] riscv: dts: starfive: jh7100: fix root clock names Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 292/715] PCI: Make pci_dev_is_disconnected() helper public for other drivers Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 293/715] iommu/vt-d: Don't issue ATS Invalidation request when device is disconnected Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 294/715] iommu/vt-d: Use rbtree to track iommu probed devices Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 295/715] iommu/vt-d: Improve ITE fault handling if target device isn't present Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 296/715] iommu/vt-d: Use device rbtree in iopf reporting path Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 297/715] iommu: Add static iommu_ops->release_domain Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 298/715] iommu/vt-d: Fix NULL domain on device release Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 299/715] igc: Fix missing time sync events Sasha Levin
2024-03-24 22:27 ` [PATCH 6.8 300/715] igb: " Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 301/715] ice: fix stats being updated by way too large values Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 302/715] Bluetooth: Remove HCI_POWER_OFF_TIMEOUT Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 303/715] Bluetooth: mgmt: Remove leftover queuing of power_off work Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 304/715] Bluetooth: Remove superfluous call to hci_conn_check_pending() Sasha Levin
2024-03-24 22:28 ` Sasha Levin [this message]
2024-03-24 22:28 ` [PATCH 6.8 306/715] Bluetooth: hci_event: Fix not indicating new connection for BIG Sync Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 307/715] Bluetooth: hci_qca: don't use IS_ERR_OR_NULL() with gpiod_get_optional() Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 308/715] Bluetooth: hci_core: Cancel request on command timeout Sasha Levin
2024-03-30 14:59   ` Bluetooth broken for some people with 6.8.2 [Was: [PATCH 6.8 308/715] Bluetooth: hci_core: Cancel request on command timeout] Linux regression tracking (Thorsten Leemhuis)
2024-03-30 16:23     ` Greg KH
2024-03-30 17:22       ` Philippe Strauss
2024-03-30 21:23         ` Philippe Strauss
2024-04-02  6:42       ` Linux regression tracking (Thorsten Leemhuis)
2024-03-24 22:28 ` [PATCH 6.8 309/715] Bluetooth: hci_sync: Fix overwriting request callback Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 310/715] Bluetooth: hci_h5: Add ability to allocate memory for private data Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 311/715] Bluetooth: btrtl: fix out of bounds memory access Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 312/715] Bluetooth: hci_core: Fix possible buffer overflow Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 313/715] Bluetooth: msft: Fix memory leak Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 314/715] Bluetooth: btusb: " Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 315/715] Bluetooth: af_bluetooth: Fix deadlock Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 316/715] Bluetooth: fix use-after-free in accessing skb after sending it Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 317/715] sr9800: Add check for usbnet_get_endpoints Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 318/715] s390/cache: prevent rebuild of shared_cpu_list Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 319/715] bpf: Fix DEVMAP_HASH overflow check on 32-bit arches Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 320/715] bpf: Fix hashtab " Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 321/715] bpf: Fix stackmap " Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 322/715] net: dsa: microchip: make sure drive strength configuration is not lost by soft reset Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 323/715] dpll: spec: use proper enum for pin capabilities attribute Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 324/715] iommu: Fix compilation without CONFIG_IOMMU_INTEL Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 325/715] ipv6: fib6_rules: flush route cache when rule is changed Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 326/715] net: ip_tunnel: make sure to pull inner header in ip_tunnel_rcv() Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 327/715] octeontx2-af: Fix devlink params Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 328/715] net: phy: fix phy_get_internal_delay accessing an empty array Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 329/715] dpll: fix dpll_xa_ref_*_del() for multiple registrations Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 330/715] net: hns3: fix wrong judgment condition issue Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 331/715] net: hns3: fix kernel crash when 1588 is received on HIP08 devices Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 332/715] net: hns3: fix port duplex configure error in IMP reset Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 333/715] Bluetooth: Fix eir name length Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 334/715] net: phy: dp83822: Fix RGMII TX delay configuration Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 335/715] erofs: fix lockdep false positives on initializing erofs_pseudo_mnt Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 336/715] OPP: debugfs: Fix warning around icc_get_name() Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 337/715] tcp: fix incorrect parameter validation in the do_tcp_getsockopt() function Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 338/715] ipmr: fix incorrect parameter validation in the ip_mroute_getsockopt() function Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 339/715] l2tp: fix incorrect parameter validation in the pppol2tp_getsockopt() function Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 340/715] udp: fix incorrect parameter validation in the udp_lib_getsockopt() function Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 341/715] net: kcm: fix incorrect parameter validation in the kcm_getsockopt) function Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 342/715] net/x25: fix incorrect parameter validation in the x25_getsockopt() function Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 343/715] devlink: Fix length of eswitch inline-mode Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 344/715] r8152: fix unknown device for choose_configuration Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 345/715] nfp: flower: handle acti_netdevs allocation failure Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 346/715] bpf: hardcode BPF_PROG_PACK_SIZE to 2MB * num_possible_nodes() Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 347/715] dm raid: fix false positive for requeue needed during reshape Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 348/715] dm: call the resume method on internal suspend Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 349/715] fbdev/simplefb: change loglevel when the power domains cannot be parsed Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 350/715] drm/tegra: dsi: Add missing check for of_find_device_by_node Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 351/715] drm/tegra: dpaux: Fix PM disable depth imbalance in tegra_dpaux_probe Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 352/715] drm/tegra: dsi: Fix some error handling paths in tegra_dsi_probe() Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 353/715] drm/tegra: dsi: Fix missing pm_runtime_disable() in the error handling path of tegra_dsi_probe() Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 354/715] drm/tegra: hdmi: Fix some error handling paths in tegra_hdmi_probe() Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 355/715] drm/tegra: rgb: Fix some error handling paths in tegra_dc_rgb_probe() Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 356/715] drm/tegra: rgb: Fix missing clk_put() in the error handling paths of tegra_dc_rgb_probe() Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 357/715] drm/tegra: output: Fix missing i2c_put_adapter() in the error handling paths of tegra_output_probe() Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 358/715] drm/rockchip: inno_hdmi: Fix video timing Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 359/715] drm: Don't treat 0 as -1 in drm_fixp2int_ceil Sasha Levin
2024-03-24 22:28 ` [PATCH 6.8 360/715] drm/vkms: Avoid reading beyond LUT array Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 361/715] drm/vmwgfx: fix a memleak in vmw_gmrid_man_get_node Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 362/715] drm/rockchip: lvds: do not overwrite error code Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 363/715] drm/rockchip: lvds: do not print scary message when probing defer Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 364/715] drm/panel-edp: use put_sync in unprepare Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 365/715] drm/lima: fix a memleak in lima_heap_alloc Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 366/715] ASoC: amd: acp: Add missing error handling in sof-mach Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 367/715] ASoC: SOF: amd: Fix memory leak in amd_sof_acp_probe() Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 368/715] ASoC: SOF: core: Skip firmware test for custom loaders Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 369/715] ASoC: SOF: amd: Compute file paths on firmware load Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 370/715] soundwire: stream: add missing const to Documentation Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 371/715] dmaengine: tegra210-adma: Update dependency to ARCH_TEGRA Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 372/715] media: tc358743: register v4l2 async device only after successful setup Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 373/715] media: cadence: csi2rx: use match fwnode for media link Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 374/715] PCI/DPC: Print all TLP Prefixes, not just the first Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 375/715] perf record: Fix possible incorrect free in record__switch_output() Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 376/715] perf record: Check conflict between '--timestamp-filename' option and pipe mode before recording Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 377/715] HID: lenovo: Add middleclick_workaround sysfs knob for cptkbd Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 378/715] drm/amd/display: Fix a potential buffer overflow in 'dp_dsc_clock_en_read()' Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 379/715] perf pmu: Treat the msr pmu as software Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 380/715] crypto: qat - avoid memcpy() overflow warning Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 381/715] ALSA: hda: cs35l41: Set Channel Index correctly when system is missing _DSD Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 382/715] drm/amd/display: Fix potential NULL pointer dereferences in 'dcn10_set_output_transfer_func()' Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 383/715] ASoC: sh: rz-ssi: Fix error message print Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 384/715] drm/vmwgfx: Fix vmw_du_get_cursor_mob fencing of newly-created MOBs Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 385/715] clk: renesas: r8a779g0: Fix PCIe clock name Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 386/715] pinctrl: renesas: rzg2l: Fix locking in rzg2l_dt_subnode_to_map() Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 387/715] pinctrl: renesas: r8a779g0: Add missing SCIF_CLK2 pin group/function Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 388/715] clk: samsung: exynos850: Propagate SPI IPCLK rate change Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 389/715] media: v4l2: cci: print leading 0 on error Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 390/715] perf evsel: Fix duplicate initialization of data->id in evsel__parse_sample() Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 391/715] PCI/AER: Fix rootport attribute paths in ABI docs Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 392/715] perf bpf: Clean up the generated/copied vmlinux.h Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 393/715] clk: meson: Add missing clocks to axg_clk_regmaps Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 394/715] media: em28xx: annotate unchecked call to media_device_register() Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 395/715] media: v4l2-tpg: fix some memleaks in tpg_alloc Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 396/715] media: v4l2-mem2mem: fix a memleak in v4l2_m2m_register_entity Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 397/715] media: dt-bindings: techwell,tw9900: Fix port schema ref Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 398/715] mtd: spinand: esmt: Extend IDs to 5 bytes Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 399/715] media: edia: dvbdev: fix a use-after-free Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 400/715] pinctrl: mediatek: Drop bogus slew rate register range for MT8186 Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 401/715] pinctrl: mediatek: Drop bogus slew rate register range for MT8192 Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 402/715] drm/amdgpu: Fix potential out-of-bounds access in 'amdgpu_discovery_reg_base_init()' Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 403/715] clk: qcom: reset: Commonize the de/assert functions Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 404/715] clk: qcom: reset: Ensure write completion on reset de/assertion Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 405/715] quota: Fix potential NULL pointer dereference Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 406/715] quota: Fix rcu annotations of inode dquot pointers Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 407/715] quota: Properly annotate i_dquot arrays with __rcu Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 408/715] ASoC: Intel: ssp-common: Add stub for sof_ssp_get_codec_name Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 409/715] PCI/P2PDMA: Fix a sleeping issue in a RCU read section Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 410/715] PCI: switchtec: Fix an error handling path in switchtec_pci_probe() Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 411/715] crypto: xilinx - call finalize with bh disabled Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 412/715] drivers/ps3: select VIDEO to provide cmdline functions Sasha Levin
2024-03-24 22:29   ` Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 413/715] perf thread_map: Free strlist on normal path in thread_map__new_by_tid_str() Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 414/715] perf srcline: Add missed addr2line closes Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 415/715] dt-bindings: msm: qcom, mdss: Include ommited fam-b compatible Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 416/715] drm/msm/dpu: fix the programming of INTF_CFG2_DATA_HCTL_EN Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 417/715] drm/msm/dpu: Only enable DSC_MODE_MULTIPLEX if dsc_merge is enabled Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 418/715] drm/radeon/ni: Fix wrong firmware size logging in ni_init_microcode() Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 419/715] drm/amd/display: fix NULL checks for adev->dm.dc in amdgpu_dm_fini() Sasha Levin
2024-03-24 22:29 ` [PATCH 6.8 420/715] clk: renesas: r8a779g0: Correct PFC/GPIO parent clocks Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 421/715] clk: renesas: r8a779f0: Correct PFC/GPIO parent clock Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 422/715] clk: renesas: r9a07g04[34]: Use SEL_SDHI1_STS status configuration for SD1 mux Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 423/715] ALSA: seq: fix function cast warnings Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 424/715] perf expr: Fix "has_event" function for metric style events Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 425/715] perf stat: Avoid metric-only segv Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 426/715] perf metric: Don't remove scale from counts Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 427/715] ASoC: meson: aiu: fix function pointer type mismatch Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 428/715] ASoC: meson: t9015: " Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 429/715] powerpc: Force inlining of arch_vmap_p{u/m}d_supported() Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 430/715] ASoC: SOF: Add some bounds checking to firmware data Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 431/715] drm: ci: use clk_ignore_unused for apq8016 Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 432/715] NTB: fix possible name leak in ntb_register_device() Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 433/715] media: cedrus: h265: Fix configuring bitstream size Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 434/715] media: sun8i-di: Fix coefficient writes Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 435/715] media: sun8i-di: Fix power on/off sequences Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 436/715] media: sun8i-di: Fix chroma difference threshold Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 437/715] staging: media: starfive: Set 16 bpp for capture_raw device Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 438/715] media: imx: csc/scaler: fix v4l2_ctrl_handler memory leak Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 439/715] media: go7007: add check of return value of go7007_read_addr() Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 440/715] media: pvrusb2: remove redundant NULL check Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 441/715] media: videobuf2: Add missing doc comment for waiting_in_dqbuf Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 442/715] media: pvrusb2: fix pvr2_stream_callback casts Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 443/715] clk: qcom: dispcc-sdm845: Adjust internal GDSC wait times Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 444/715] drm/amd/display: Add 'replay' NULL check in 'edp_set_replay_allow_active()' Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 445/715] drm/panel: boe-tv101wum-nl6: make use of prepare_prev_first Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 446/715] drm/msm/dpu: finalise global state object Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 447/715] drm/mediatek: dsi: Fix DSI RGB666 formats and definitions Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 448/715] PCI: Mark 3ware-9650SE Root Port Extended Tags as broken Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 449/715] powerpc/ps3: Fix lv1 hcall assembly for ELFv2 calling convention Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 450/715] drm/bridge: adv7511: fix crash on irq during probe Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 451/715] pinctrl: renesas: Allow the compiler to optimize away sh_pfc_pm Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 452/715] clk: hisilicon: hi3519: Release the correct number of gates in hi3519_clk_unregister() Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 453/715] clk: hisilicon: hi3559a: Fix an erroneous devm_kfree() Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 454/715] clk: mediatek: mt8135: Fix an error handling path in clk_mt8135_apmixed_probe() Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 455/715] clk: mediatek: mt7622-apmixedsys: " Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 456/715] clk: mediatek: mt8183: Correct parent of CLK_INFRA_SSPM_32K_SELF Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 457/715] clk: mediatek: mt7981-topckgen: flag SGM_REG_SEL as critical Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 458/715] drm/tegra: put drm_gem_object ref on error in tegra_fb_create Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 459/715] tty: mips_ejtag_fdc: Fix passing incompatible pointer type warning Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 460/715] media: ivsc: csi: Swap SINK and SOURCE pads Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 461/715] media: i2c: imx290: Fix IMX920 typo Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 462/715] mfd: syscon: Call of_node_put() only when of_parse_phandle() takes a ref Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 463/715] mfd: altera-sysmgr: " Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 464/715] perf print-events: make is_event_supported() more robust Sasha Levin
2024-03-24 22:30   ` Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 465/715] crypto: arm/sha - fix function cast warnings Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 466/715] crypto: ccp - Avoid discarding errors in psp_send_platform_access_msg() Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 467/715] crypto: qat - remove unused macros in qat_comp_alg.c Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 468/715] crypto: qat - removed unused macro in adf_cnv_dbgfs.c Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 469/715] crypto: qat - avoid division by zero Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 470/715] crypto: qat - remove double initialization of value Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 471/715] crypto: qat - fix ring to service map for dcc in 4xxx Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 472/715] crypto: qat - fix ring to service map for dcc in 420xx Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 473/715] crypto: jitter - fix CRYPTO_JITTERENTROPY help text Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 474/715] drm/tidss: Fix initial plane zpos values Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 475/715] drm/tidss: Fix sync-lost issue with two displays Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 476/715] clk: imx: imx8mp: Fix SAI_MCLK_SEL definition Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 477/715] mtd: maps: physmap-core: fix flash size larger than 32-bit Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 478/715] mtd: rawnand: lpc32xx_mlc: fix irq handler prototype Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 479/715] mtd: rawnand: brcmnand: exec_op helper functions return type fixes Sasha Levin
2024-03-24 22:30 ` [PATCH 6.8 480/715] ASoC: meson: axg-tdm-interface: fix mclk setup without mclk-fs Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 481/715] ASoC: meson: axg-tdm-interface: add frame rate constraint Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 482/715] drm/msm/a6xx: specify UBWC config for sc7180 Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 483/715] drm/msm/a7xx: Fix LLC typo Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 484/715] dt-bindings: arm-smmu: fix SM8[45]50 GPU SMMU if condition Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 485/715] perf pmu: Fix a potential memory leak in perf_pmu__lookup() Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 486/715] HID: amd_sfh: Update HPD sensor structure elements Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 487/715] HID: amd_sfh: Avoid disabling the interrupt Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 488/715] drm/amdgpu: Fix missing break in ATOM_ARG_IMM Case of atom_get_src_int() Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 489/715] media: pvrusb2: fix uaf in pvr2_context_set_notify Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 490/715] media: dvb-frontends: avoid stack overflow warnings with clang Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 491/715] media: go7007: fix a memleak in go7007_load_encoder Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 492/715] media: ttpci: fix two memleaks in budget_av_attach Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 493/715] media: mediatek: vcodec: avoid -Wcast-function-type-strict warning Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 494/715] arm64: ftrace: Don't forbid CALL_OPS+CC_OPTIMIZE_FOR_SIZE with Clang Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 495/715] drm/tests: helpers: Include missing drm_drv header Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 496/715] drm/amd/pm: Fix esm reg mask use to get pcie speed Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 497/715] gpio: nomadik: fix offset bug in nmk_pmx_set() Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 498/715] drm/mediatek: Fix a null pointer crash in mtk_drm_crtc_finish_page_flip Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 499/715] mfd: cs42l43: Fix wrong register defaults Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 500/715] powerpc/32: fix ADB_CUDA kconfig warning Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 501/715] powerpc/pseries: Fix potential memleak in papr_get_attr() Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 502/715] powerpc/hv-gpci: Fix the H_GET_PERF_COUNTER_INFO hcall return value checks Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 503/715] clk: qcom: gcc-ipq5018: fix 'enable_reg' offset of 'gcc_gmac0_sys_clk' Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 504/715] clk: qcom: gcc-ipq5018: fix 'halt_reg' offset of 'gcc_pcie1_pipe_clk' Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 505/715] clk: qcom: gcc-ipq5018: fix register offset for GCC_UBI0_AXI_ARES reset Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 506/715] perf vendor events amd: Fix Zen 4 cache latency events Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 507/715] drm/msm/dpu: allow certain formats for CDM for DP Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 508/715] drm/msm/dpu: add division of drm_display_mode's hskew parameter Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 509/715] media: usbtv: Remove useless locks in usbtv_video_free() Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 510/715] drm/xe: Fix ref counting leak on page fault Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 511/715] drm/xe: Replace 'grouped target' in Makefile with pattern rule Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 512/715] lib/stackdepot: fix first entry having a 0-handle Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 513/715] lib/stackdepot: off by one in depot_fetch_stack() Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 514/715] modules: wait do_free_init correctly Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 515/715] mfd: cs42l43: Fix wrong GPIO_FN_SEL and SPI_CLK_CONFIG1 defaults Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 516/715] power: supply: mm8013: fix "not charging" detection Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 517/715] powerpc/embedded6xx: Fix no previous prototype for avr_uart_send() etc Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 518/715] powerpc/4xx: Fix warp_gpio_leds build failure Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 519/715] RISC-V: KVM: Forward SEED CSR access to user space Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 520/715] leds: aw2013: Unlock mutex before destroying it Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 521/715] leds: sgm3140: Add missing timer cleanup and flash gpio control Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 522/715] backlight: hx8357: Fix potential NULL pointer dereference Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 523/715] backlight: ktz8866: Correct the check for of_property_read_u32 Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 524/715] backlight: lm3630a: Initialize backlight_properties on init Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 525/715] backlight: lm3630a: Don't set bl->props.brightness in get_brightness Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 526/715] backlight: da9052: Fully initialize backlight_properties during probe Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 527/715] backlight: lm3639: " Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 528/715] backlight: lp8788: " Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 529/715] arch/powerpc: Remove <linux/fb.h> from backlight code Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 530/715] sparc32: Use generic cmpdi2/ucmpdi2 variants Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 531/715] mtd: maps: sun_uflash: Declare uflash_devinit static Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 532/715] sparc32: Do not select GENERIC_ISA_DMA Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 533/715] sparc32: Fix section mismatch in leon_pci_grpci Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 534/715] clk: Fix clk_core_get NULL dereference Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 535/715] clk: zynq: Prevent null pointer dereference caused by kmalloc failure Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 536/715] PCI: brcmstb: Fix broken brcm_pcie_mdio_write() polling Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 537/715] cifs: Fix writeback data corruption Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 538/715] ALSA: hda/realtek: fix ALC285 issues on HP Envy x360 laptops Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 539/715] ALSA: hda/tas2781: use dev_dbg in system_resume Sasha Levin
2024-03-24 22:31 ` [PATCH 6.8 540/715] ALSA: hda/tas2781: add lock to system_suspend Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 541/715] ALSA: hda/tas2781: do not reset cur_* values in runtime_suspend Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 542/715] ALSA: hda/tas2781: do not call pm_runtime_force_* in system_resume/suspend Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 543/715] ALSA: hda/tas2781: restore power state after system_resume Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 544/715] ALSA: scarlett2: Fix Scarlett 4th Gen 4i4 low-voltage detection Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 545/715] ALSA: scarlett2: Fix Scarlett 4th Gen autogain status values Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 546/715] ALSA: scarlett2: Fix Scarlett 4th Gen input gain range Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 547/715] ALSA: scarlett2: Fix Scarlett 4th Gen input gain range again Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 548/715] mips: cm: Convert __mips_cm_l2sync_phys_base() to weak function Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 549/715] platform/x86/intel/pmc/lnl: Remove SSRAM support Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 550/715] platform/x86/intel/pmc/arl: Put GNA device in D3 Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 551/715] platform/x86/amd/pmf: Do not use readl() for policy buffer access Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 552/715] ALSA: usb-audio: Stop parsing channels bits when all channels are found Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 553/715] phy: qcom: qmp-usb: split USB-C PHY driver Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 554/715] phy: qcom: qmp-usbc: add support for the Type-C handling Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 555/715] phy: qcom: qmp-usbc: handle CLAMP register in a correct way Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 556/715] scsi: hisi_sas: Fix a deadlock issue related to automatic dump Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 557/715] RDMA/irdma: Remove duplicate assignment Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 558/715] RDMA/srpt: Do not register event handler until srpt device is fully setup Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 559/715] f2fs: compress: fix to guarantee persisting compressed blocks by CP Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 560/715] f2fs: compress: fix to cover normal cluster write with cp_rwsem Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 561/715] f2fs: compress: fix to check unreleased compressed cluster Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 562/715] f2fs: compress: fix to avoid inconsistence bewteen i_blocks and dnode Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 563/715] f2fs: fix to remove unnecessary f2fs_bug_on() to avoid panic Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 564/715] f2fs: zone: fix to wait completion of last bio in zone correctly Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 565/715] f2fs: fix NULL pointer dereference in f2fs_submit_page_write() Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 566/715] f2fs: compress: fix to cover f2fs_disable_compressed_file() w/ i_sem Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 567/715] f2fs: fix to avoid potential panic during recovery Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 568/715] scsi: csiostor: Avoid function pointer casts Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 569/715] i3c: dw: Disable IBI IRQ depends on hot-join and SIR enabling Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 570/715] RDMA/hns: Fix mis-modifying default congestion control algorithm Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 571/715] RDMA/device: Fix a race between mad_client and cm_client init Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 572/715] RDMA/rtrs-clt: Check strnlen return len in sysfs mpath_policy_store() Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 573/715] scsi: bfa: Fix function pointer type mismatch for hcb_qe->cbfn Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 574/715] f2fs: fix to create selinux label during whiteout initialization Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 575/715] f2fs: compress: fix to check zstd compress level correctly in mount option Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 576/715] net: sunrpc: Fix an off by one in rpc_sockaddr2uaddr() Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 577/715] NFSv4.2: fix nfs4_listxattr kernel BUG at mm/usercopy.c:102 Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 578/715] NFSv4.2: fix listxattr maximum XDR buffer size Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 579/715] f2fs: compress: fix to check compress flag w/ .i_sem lock Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 580/715] f2fs: check number of blocks in a current section Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 581/715] watchdog: starfive: Check pm_runtime_enabled() before decrementing usage counter Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 582/715] watchdog: stm32_iwdg: initialize default timeout Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 583/715] f2fs: fix to use correct segment type in f2fs_allocate_data_block() Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 584/715] f2fs: ro: compress: fix to avoid caching unaligned extent Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 585/715] RDMA/mana_ib: Fix bug in creation of dma regions Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 586/715] RDMA/mana_ib: Introduce mdev_to_gc helper function Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 587/715] RDMA/mana_ib: Introduce mana_ib_get_netdev " Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 588/715] RDMA/mana_ib: Introduce mana_ib_install_cq_cb " Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 589/715] RDMA/mana_ib: Use virtual address in dma regions for MRs Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 590/715] Input: iqs7222 - add support for IQS7222D v1.1 and v1.2 Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 591/715] NFS: Fix nfs_netfs_issue_read() xarray locking for writeback interrupt Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 592/715] NFS: Fix an off by one in root_nfs_cat() Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 593/715] NFSv4.1/pnfs: fix NFS with TLS in pnfs Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 594/715] ACPI: HMAT: Remove register of memory node for generic target Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 595/715] f2fs: compress: relocate some judgments in f2fs_reserve_compress_blocks Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 596/715] f2fs: compress: fix reserve_cblocks counting error when out of space Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 597/715] f2fs: fix to truncate meta inode pages forcely Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 598/715] f2fs: zone: fix to remove pow2 check condition for zoned block device Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 599/715] cxl: Fix the incorrect assignment of SSLBIS entry pointer initial location Sasha Levin
2024-03-24 22:32 ` [PATCH 6.8 600/715] perf/x86/amd/core: Avoid register reset when CPU is dead Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 601/715] afs: Revert "afs: Hide silly-rename files from userspace" Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 602/715] afs: Don't cache preferred address Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 603/715] afs: Fix occasional rmdir-then-VNOVNODE with generic/011 Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 604/715] f2fs: fix to avoid use-after-free issue in f2fs_filemap_fault Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 605/715] nfs: fix panic when nfs4_ff_layout_prepare_ds() fails Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 606/715] ovl: relax WARN_ON in ovl_verify_area() Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 607/715] io_uring/net: correct the type of variable Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 608/715] remoteproc: stm32: Fix incorrect type in assignment for va Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 609/715] remoteproc: stm32: Fix incorrect type assignment returned by stm32_rproc_get_loaded_rsc_tablef Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 610/715] iio: pressure: mprls0025pa fix off-by-one enum Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 611/715] usb: phy: generic: Get the vbus supply Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 612/715] tty: vt: fix 20 vs 0x20 typo in EScsiignore Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 613/715] serial: max310x: fix syntax error in IRQ error message Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 614/715] tty: serial: samsung: fix tx_empty() to return TIOCSER_TEMT Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 615/715] arm64: dts: broadcom: bcmbca: bcm4908: drop invalid switch cells Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 616/715] coresight: Fix issue where a source device's helpers aren't disabled Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 617/715] coresight: etm4x: Set skip_power_up in etm4_init_arch_data function Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 618/715] xhci: Add interrupt pending autoclear flag to each interrupter Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 619/715] xhci: make isoc_bei_interval variable interrupter specific Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 620/715] xhci: remove unnecessary event_ring_deq parameter from xhci_handle_event() Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 621/715] xhci: update event ring dequeue pointer position to controller correctly Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 622/715] coccinelle: device_attr_show: Remove useless expression STR Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 623/715] kconfig: fix infinite loop when expanding a macro at the end of file Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 624/715] iio: gts-helper: Fix division loop Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 625/715] bus: mhi: ep: check the correct variable in mhi_ep_register_controller() Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 626/715] hwtracing: hisi_ptt: Move type check to the beginning of hisi_ptt_pmu_event_init() Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 627/715] rtc: mt6397: select IRQ_DOMAIN instead of depending on it Sasha Levin
2024-03-24 22:33   ` Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 628/715] rtc: max31335: fix interrupt status reg Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 629/715] serial: 8250_exar: Don't remove GPIO device on suspend Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 630/715] staging: greybus: fix get_channel_from_mode() failure path Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 631/715] mei: vsc: Call wake_up() in the threaded IRQ handler Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 632/715] mei: vsc: Don't use sleeping condition in wait_event_timeout() Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 633/715] usb: gadget: net2272: Use irqflags in the call to net2272_probe_fin Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 634/715] char: xilinx_hwicap: Fix NULL vs IS_ERR() bug Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 635/715] x86/hyperv: Use per cpu initial stack for vtl context Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 636/715] ASoC: tlv320adc3xxx: Don't strip remove function when driver is builtin Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 637/715] thermal/drivers/mediatek/lvts_thermal: Fix a memory leak in an error handling path Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 638/715] thermal/drivers/qoriq: Fix getting tmu range Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 639/715] io_uring: don't save/restore iowait state Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 640/715] spi: lpspi: Avoid potential use-after-free in probe() Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 641/715] spi: Restore delays for non-GPIO chip select Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 642/715] ASoC: rockchip: i2s-tdm: Fix inaccurate sampling rates Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 643/715] nouveau: reset the bo resource bus info after an eviction Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 644/715] tcp: Fix NEW_SYN_RECV handling in inet_twsk_purge() Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 645/715] rds: tcp: Fix use-after-free of net in reqsk_timer_handler() Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 646/715] octeontx2-af: Use matching wake_up API variant in CGX command interface Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 647/715] s390/vtime: fix average steal time calculation Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 648/715] net/sched: taprio: proper TCA_TAPRIO_TC_ENTRY_INDEX check Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 649/715] devlink: Fix devlink parallel commands processing Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 650/715] riscv: Only check online cpus for emulated accesses Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 651/715] soc: fsl: dpio: fix kcalloc() argument order Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 652/715] cpufreq: Fix per-policy boost behavior on SoCs using cpufreq_boost_set_sw() Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 653/715] io_uring: Fix release of pinned pages when __io_uaddr_map fails Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 654/715] tcp: Fix refcnt handling in __inet_hash_connect() Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 655/715] vmxnet3: Fix missing reserved tailroom Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 656/715] hsr: Fix uninit-value access in hsr_get_node() Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 657/715] net: txgbe: fix clk_name exceed MAX_DEV_ID limits Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 658/715] spi: spi-mem: add statistics support to ->exec_op() calls Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 659/715] spi: Fix error code checking in spi_mem_exec_op() Sasha Levin
2024-03-24 22:33 ` [PATCH 6.8 660/715] nvme: fix reconnection fail due to reserved tag allocation Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 661/715] drm/xe: Invalidate userptr VMA on page pin fault Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 662/715] drm/xe: Skip VMAs pin when requesting signal to the last XE_EXEC Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 663/715] net: mediatek: mtk_eth_soc: clear MAC_MCR_FORCE_LINK only when MAC is up Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 664/715] net: ethernet: mtk_eth_soc: fix PPE hanging issue Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 665/715] io_uring: fix poll_remove stalled req completion Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 666/715] ASoC: SOF: amd: Move signed_fw_image to struct acp_quirk_entry Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 667/715] ASoC: SOF: amd: Skip IRAM/DRAM size modification for Steam Deck OLED Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 668/715] riscv: Fix compilation error with FAST_GUP and rv32 Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 669/715] xen/evtchn: avoid WARN() when unbinding an event channel Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 670/715] xen/events: increment refcnt only if event channel is refcounted Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 671/715] packet: annotate data-races around ignore_outgoing Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 672/715] xfrm: Allow UDP encapsulation only in offload modes Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 673/715] net: veth: do not manipulate GRO when using XDP Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 674/715] net: dsa: mt7530: prevent possible incorrect XTAL frequency selection Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 675/715] spi: spi-imx: fix off-by-one in mx51 CPU mode burst length Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 676/715] drm: Fix drm_fixp2int_round() making it add 0.5 Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 677/715] virtio: uapi: Drop __packed attribute in linux/virtio_pci.h Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 678/715] vdpa_sim: reset must not run Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 679/715] vdpa/mlx5: Allow CVQ size changes Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 680/715] virtio: packed: fix unmap leak for indirect desc table Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 681/715] net: move dev->state into net_device_read_txrx group Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 682/715] wireguard: receive: annotate data-race around receiving_counter.counter Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 683/715] rds: introduce acquire/release ordering in acquire/release_in_xmit() Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 684/715] hsr: Handle failures in module init Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 685/715] ipv4: raw: Fix sending packets from raw sockets via IPsec tunnels Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 686/715] nouveau/gsp: don't check devinit disable on GSP Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 687/715] ceph: stop copying to iter at EOF on sync reads Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 688/715] net: phy: fix phy_read_poll_timeout argument type in genphy_loopback Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 689/715] dm-integrity: fix a memory leak when rechecking the data Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 690/715] net/bnx2x: Prevent access to a freed page in page_pool Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 691/715] devlink: fix port new reply cmd type Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 692/715] octeontx2: Detect the mbox up or down message via register Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 693/715] octeontx2-pf: Wait till detach_resources msg is complete Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 694/715] octeontx2-pf: Use default max_active works instead of one Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 695/715] octeontx2-pf: Send UP messages to VF only when VF is up Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 696/715] octeontx2-af: Use separate handlers for interrupts Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 697/715] drm/amdgpu: add MMHUB 3.3.1 support Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 698/715] drm/amdgpu: fix mmhub client id out-of-bounds access Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 699/715] drm/amdgpu: drop setting buffer funcs in sdma442 Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 700/715] riscv: Fix syscall wrapper for >word-size arguments Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 701/715] netfilter: nft_set_pipapo: release elements in clone only from destroy path Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 702/715] netfilter: nf_tables: do not compare internal table flags on updates Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 703/715] rcu: add a helper to report consolidated flavor QS Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 704/715] net: report RCU QS on threaded NAPI repolling Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 705/715] bpf: report RCU QS in cpumap kthread Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 706/715] net: dsa: mt7530: fix link-local frames that ingress vlan filtering ports Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 707/715] net: dsa: mt7530: fix handling of all link-local frames Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 708/715] netfilter: nf_tables: Fix a memory leak in nf_tables_updchain Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 709/715] spi: spi-mt65xx: Fix NULL pointer access in interrupt handler Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 710/715] selftests: forwarding: Fix ping failure due to short timeout Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 711/715] dm io: Support IO priority Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 712/715] dm-integrity: align the outgoing bio in integrity_recheck Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 713/715] x86/efistub: Clear decompressor BSS in native EFI entrypoint Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 714/715] x86/efistub: Don't clear BSS twice in mixed mode Sasha Levin
2024-03-24 22:34 ` [PATCH 6.8 715/715] Linux 6.8.2-rc1 Sasha Levin
2024-03-25  9:55 ` [PATCH 6.8 000/715] 6.8.2-rc1 review Bagas Sanjaya
2024-03-25 10:14 ` Naresh Kamboju
2024-03-25 11:12   ` Sasha Levin
2024-03-25 11:26 ` Holger Hoffstätte
2024-03-25 19:14 ` Pavel Machek
2024-03-26  6:27   ` Jiri Slaby
2024-04-03 10:02 ` Jon Hunter
2024-04-03 11:14   ` Linux regression tracking (Thorsten Leemhuis)

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240324223455.1342824-306-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luiz.von.dentz@intel.com \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.