From: John W. Linville Date: Wed, 13 Jun 2012 19:35:35 +0000 (-0400) Subject: Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless X-Git-Tag: v3.6-rc1~125^2~57^2~289 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=211c17aaee644bb808fbdeef547ac99db92c01ed;p=~emulex%2Finfiniband.git Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless Conflicts: drivers/net/wireless/ath/ath9k/main.c net/bluetooth/hci_event.c --- 211c17aaee644bb808fbdeef547ac99db92c01ed diff --cc net/bluetooth/hci_event.c index 47656beee14,94ad124a4ea..1ba929c05d0 --- a/net/bluetooth/hci_event.c +++ b/net/bluetooth/hci_event.c @@@ -3040,7 -3043,51 +3040,51 @@@ static void hci_extended_inquiry_result hci_dev_unlock(hdev); } + static void hci_key_refresh_complete_evt(struct hci_dev *hdev, + struct sk_buff *skb) + { + struct hci_ev_key_refresh_complete *ev = (void *) skb->data; + struct hci_conn *conn; + + BT_DBG("%s status %u handle %u", hdev->name, ev->status, + __le16_to_cpu(ev->handle)); + + hci_dev_lock(hdev); + + conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(ev->handle)); + if (!conn) + goto unlock; + + if (!ev->status) + conn->sec_level = conn->pending_sec_level; + + clear_bit(HCI_CONN_ENCRYPT_PEND, &conn->flags); + + if (ev->status && conn->state == BT_CONNECTED) { + hci_acl_disconn(conn, HCI_ERROR_AUTH_FAILURE); + hci_conn_put(conn); + goto unlock; + } + + if (conn->state == BT_CONFIG) { + if (!ev->status) + conn->state = BT_CONNECTED; + + hci_proto_connect_cfm(conn, ev->status); + hci_conn_put(conn); + } else { + hci_auth_cfm(conn, ev->status); + + hci_conn_hold(conn); + conn->disc_timeout = HCI_DISCONN_TIMEOUT; + hci_conn_put(conn); + } + + unlock: + hci_dev_unlock(hdev); + } + -static inline u8 hci_get_auth_req(struct hci_conn *conn) +static u8 hci_get_auth_req(struct hci_conn *conn) { /* If remote requests dedicated bonding follow that lead */ if (conn->remote_auth == 0x02 || conn->remote_auth == 0x03) {