Commit 7a9898c6 authored by Andrei Emeltchenko's avatar Andrei Emeltchenko Committed by Gustavo Padovan
Browse files

Bluetooth: AMP: Clean up logical link create / accept



Use chan->hs_hcon instead of lookup by dst address.

Signed-off-by: default avatarAndrei Emeltchenko <andrei.emeltchenko@intel.com>
Signed-off-by: default avatarGustavo Padovan <gustavo.padovan@collabora.co.uk>
parent 8e05e3ba
Loading
Loading
Loading
Loading
+5 −12
Original line number Diff line number Diff line
@@ -405,26 +405,20 @@ void amp_physical_cfm(struct hci_conn *bredr_hcon, struct hci_conn *hs_hcon)

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_conn *hcon;
	struct hci_dev *hdev;

	BT_DBG("chan %p", chan);
	BT_DBG("chan %p hs_hcon %p dst %pMR", chan, hs_hcon, chan->conn->dst);

	if (!chan->hs_hcon)
	if (!hs_hcon)
		return;

	hdev = hci_dev_hold(chan->hs_hcon->hdev);
	if (!hdev)
		return;

	BT_DBG("chan %p dst %pMR", chan, chan->conn->dst);

	hcon = hci_conn_hash_lookup_ba(hdev, AMP_LINK, chan->conn->dst);
	if (!hcon)
		goto done;

	cp.phy_handle = hcon->handle;
	cp.phy_handle = hs_hcon->handle;

	cp.tx_flow_spec.id = chan->local_id;
	cp.tx_flow_spec.stype = chan->local_stype;
@@ -440,14 +434,13 @@ void amp_create_logical_link(struct l2cap_chan *chan)
	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 (hcon->out)
	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);

done:
	hci_dev_put(hdev);
}