Bluetooth: Remove unneeded hci_conn_disconnect abstraction
authorMarcel Holtmann <marcel@holtmann.org>
Fri, 27 Jun 2014 11:45:09 +0000 (13:45 +0200)
committerMarcel Holtmann <marcel@holtmann.org>
Thu, 3 Jul 2014 15:42:48 +0000 (17:42 +0200)
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: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
net/bluetooth/hci_conn.c

index cc64fbe952fa2aaba0ce362c87a0f6cebeec3b2b..6d0fe3df2fa5b9a11a06f7db941eb2ae4ccaa17e 100644 (file)
@@ -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;