Commit 40051e46 authored by Marcel Holtmann's avatar Marcel Holtmann
Browse files

Bluetooth: Remove unneeded hci_conn_disconnect abstraction



The abstraction of disconnect operation via hci_conn_disconnect is not
needed and it does not add any readability. Handle the difference of
AMP physical channels and BR/EDR/LE connection in the timeout callback.

Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
Signed-off-by: default avatarJohan Hedberg <johan.hedberg@intel.com>
parent a2b1976b
Loading
Loading
Loading
Loading
+6 −16
Original line number Diff line number Diff line
@@ -271,21 +271,6 @@ void hci_sco_setup(struct hci_conn *conn, __u8 status)
	}
}

static void hci_conn_disconnect(struct hci_conn *conn)
{
	__u8 reason;

	switch (conn->type) {
	case AMP_LINK:
		hci_amp_disconn(conn);
		break;
	default:
		reason = hci_proto_disconn_ind(conn);
		hci_disconnect(conn, reason);
		break;
	}
}

static void hci_conn_timeout(struct work_struct *work)
{
	struct hci_conn *conn = container_of(work, struct hci_conn,
@@ -320,7 +305,12 @@ static void hci_conn_timeout(struct work_struct *work)
		break;
	case BT_CONFIG:
	case BT_CONNECTED:
		hci_conn_disconnect(conn);
		if (conn->type == AMP_LINK) {
			hci_amp_disconn(conn);
		} else {
			__u8 reason = hci_proto_disconn_ind(conn);
			hci_disconnect(conn, reason);
		}
		break;
	default:
		conn->state = BT_CLOSED;