diff options
-rw-r--r-- | net/bluetooth/mgmt.c | 459 |
1 files changed, 230 insertions, 229 deletions
diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c index f65516420a31..6f20b78e1965 100644 --- a/net/bluetooth/mgmt.c +++ b/net/bluetooth/mgmt.c | |||
@@ -249,7 +249,7 @@ static int mgmt_event(u16 event, struct hci_dev *hdev, void *data, u16 data_len, | |||
249 | return 0; | 249 | return 0; |
250 | } | 250 | } |
251 | 251 | ||
252 | static int cmd_status(struct sock *sk, u16 index, u16 cmd, u8 status) | 252 | static int mgmt_cmd_status(struct sock *sk, u16 index, u16 cmd, u8 status) |
253 | { | 253 | { |
254 | struct sk_buff *skb; | 254 | struct sk_buff *skb; |
255 | struct mgmt_hdr *hdr; | 255 | struct mgmt_hdr *hdr; |
@@ -1396,14 +1396,14 @@ static int set_powered(struct sock *sk, struct hci_dev *hdev, void *data, | |||
1396 | BT_DBG("request for %s", hdev->name); | 1396 | BT_DBG("request for %s", hdev->name); |
1397 | 1397 | ||
1398 | if (cp->val != 0x00 && cp->val != 0x01) | 1398 | if (cp->val != 0x00 && cp->val != 0x01) |
1399 | return cmd_status(sk, hdev->id, MGMT_OP_SET_POWERED, | 1399 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_POWERED, |
1400 | MGMT_STATUS_INVALID_PARAMS); | 1400 | MGMT_STATUS_INVALID_PARAMS); |
1401 | 1401 | ||
1402 | hci_dev_lock(hdev); | 1402 | hci_dev_lock(hdev); |
1403 | 1403 | ||
1404 | if (mgmt_pending_find(MGMT_OP_SET_POWERED, hdev)) { | 1404 | if (mgmt_pending_find(MGMT_OP_SET_POWERED, hdev)) { |
1405 | err = cmd_status(sk, hdev->id, MGMT_OP_SET_POWERED, | 1405 | err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_POWERED, |
1406 | MGMT_STATUS_BUSY); | 1406 | MGMT_STATUS_BUSY); |
1407 | goto failed; | 1407 | goto failed; |
1408 | } | 1408 | } |
1409 | 1409 | ||
@@ -1492,7 +1492,7 @@ static void cmd_status_rsp(struct pending_cmd *cmd, void *data) | |||
1492 | { | 1492 | { |
1493 | u8 *status = data; | 1493 | u8 *status = data; |
1494 | 1494 | ||
1495 | cmd_status(cmd->sk, cmd->index, cmd->opcode, *status); | 1495 | mgmt_cmd_status(cmd->sk, cmd->index, cmd->opcode, *status); |
1496 | mgmt_pending_remove(cmd); | 1496 | mgmt_pending_remove(cmd); |
1497 | } | 1497 | } |
1498 | 1498 | ||
@@ -1560,7 +1560,7 @@ static void set_discoverable_complete(struct hci_dev *hdev, u8 status, | |||
1560 | 1560 | ||
1561 | if (status) { | 1561 | if (status) { |
1562 | u8 mgmt_err = mgmt_status(status); | 1562 | u8 mgmt_err = mgmt_status(status); |
1563 | cmd_status(cmd->sk, cmd->index, cmd->opcode, mgmt_err); | 1563 | mgmt_cmd_status(cmd->sk, cmd->index, cmd->opcode, mgmt_err); |
1564 | clear_bit(HCI_LIMITED_DISCOVERABLE, &hdev->dev_flags); | 1564 | clear_bit(HCI_LIMITED_DISCOVERABLE, &hdev->dev_flags); |
1565 | goto remove_cmd; | 1565 | goto remove_cmd; |
1566 | } | 1566 | } |
@@ -1616,12 +1616,12 @@ static int set_discoverable(struct sock *sk, struct hci_dev *hdev, void *data, | |||
1616 | 1616 | ||
1617 | if (!test_bit(HCI_LE_ENABLED, &hdev->dev_flags) && | 1617 | if (!test_bit(HCI_LE_ENABLED, &hdev->dev_flags) && |
1618 | !test_bit(HCI_BREDR_ENABLED, &hdev->dev_flags)) | 1618 | !test_bit(HCI_BREDR_ENABLED, &hdev->dev_flags)) |
1619 | return cmd_status(sk, hdev->id, MGMT_OP_SET_DISCOVERABLE, | 1619 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_DISCOVERABLE, |
1620 | MGMT_STATUS_REJECTED); | 1620 | MGMT_STATUS_REJECTED); |
1621 | 1621 | ||
1622 | if (cp->val != 0x00 && cp->val != 0x01 && cp->val != 0x02) | 1622 | if (cp->val != 0x00 && cp->val != 0x01 && cp->val != 0x02) |
1623 | return cmd_status(sk, hdev->id, MGMT_OP_SET_DISCOVERABLE, | 1623 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_DISCOVERABLE, |
1624 | MGMT_STATUS_INVALID_PARAMS); | 1624 | MGMT_STATUS_INVALID_PARAMS); |
1625 | 1625 | ||
1626 | timeout = __le16_to_cpu(cp->timeout); | 1626 | timeout = __le16_to_cpu(cp->timeout); |
1627 | 1627 | ||
@@ -1630,27 +1630,27 @@ static int set_discoverable(struct sock *sk, struct hci_dev *hdev, void *data, | |||
1630 | */ | 1630 | */ |
1631 | if ((cp->val == 0x00 && timeout > 0) || | 1631 | if ((cp->val == 0x00 && timeout > 0) || |
1632 | (cp->val == 0x02 && timeout == 0)) | 1632 | (cp->val == 0x02 && timeout == 0)) |
1633 | return cmd_status(sk, hdev->id, MGMT_OP_SET_DISCOVERABLE, | 1633 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_DISCOVERABLE, |
1634 | MGMT_STATUS_INVALID_PARAMS); | 1634 | MGMT_STATUS_INVALID_PARAMS); |
1635 | 1635 | ||
1636 | hci_dev_lock(hdev); | 1636 | hci_dev_lock(hdev); |
1637 | 1637 | ||
1638 | if (!hdev_is_powered(hdev) && timeout > 0) { | 1638 | if (!hdev_is_powered(hdev) && timeout > 0) { |
1639 | err = cmd_status(sk, hdev->id, MGMT_OP_SET_DISCOVERABLE, | 1639 | err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_DISCOVERABLE, |
1640 | MGMT_STATUS_NOT_POWERED); | 1640 | MGMT_STATUS_NOT_POWERED); |
1641 | goto failed; | 1641 | goto failed; |
1642 | } | 1642 | } |
1643 | 1643 | ||
1644 | if (mgmt_pending_find(MGMT_OP_SET_DISCOVERABLE, hdev) || | 1644 | if (mgmt_pending_find(MGMT_OP_SET_DISCOVERABLE, hdev) || |
1645 | mgmt_pending_find(MGMT_OP_SET_CONNECTABLE, hdev)) { | 1645 | mgmt_pending_find(MGMT_OP_SET_CONNECTABLE, hdev)) { |
1646 | err = cmd_status(sk, hdev->id, MGMT_OP_SET_DISCOVERABLE, | 1646 | err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_DISCOVERABLE, |
1647 | MGMT_STATUS_BUSY); | 1647 | MGMT_STATUS_BUSY); |
1648 | goto failed; | 1648 | goto failed; |
1649 | } | 1649 | } |
1650 | 1650 | ||
1651 | if (!test_bit(HCI_CONNECTABLE, &hdev->dev_flags)) { | 1651 | if (!test_bit(HCI_CONNECTABLE, &hdev->dev_flags)) { |
1652 | err = cmd_status(sk, hdev->id, MGMT_OP_SET_DISCOVERABLE, | 1652 | err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_DISCOVERABLE, |
1653 | MGMT_STATUS_REJECTED); | 1653 | MGMT_STATUS_REJECTED); |
1654 | goto failed; | 1654 | goto failed; |
1655 | } | 1655 | } |
1656 | 1656 | ||
@@ -1819,7 +1819,7 @@ static void set_connectable_complete(struct hci_dev *hdev, u8 status, | |||
1819 | 1819 | ||
1820 | if (status) { | 1820 | if (status) { |
1821 | u8 mgmt_err = mgmt_status(status); | 1821 | u8 mgmt_err = mgmt_status(status); |
1822 | cmd_status(cmd->sk, cmd->index, cmd->opcode, mgmt_err); | 1822 | mgmt_cmd_status(cmd->sk, cmd->index, cmd->opcode, mgmt_err); |
1823 | goto remove_cmd; | 1823 | goto remove_cmd; |
1824 | } | 1824 | } |
1825 | 1825 | ||
@@ -1894,12 +1894,12 @@ static int set_connectable(struct sock *sk, struct hci_dev *hdev, void *data, | |||
1894 | 1894 | ||
1895 | if (!test_bit(HCI_LE_ENABLED, &hdev->dev_flags) && | 1895 | if (!test_bit(HCI_LE_ENABLED, &hdev->dev_flags) && |
1896 | !test_bit(HCI_BREDR_ENABLED, &hdev->dev_flags)) | 1896 | !test_bit(HCI_BREDR_ENABLED, &hdev->dev_flags)) |
1897 | return cmd_status(sk, hdev->id, MGMT_OP_SET_CONNECTABLE, | 1897 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_CONNECTABLE, |
1898 | MGMT_STATUS_REJECTED); | 1898 | MGMT_STATUS_REJECTED); |
1899 | 1899 | ||
1900 | if (cp->val != 0x00 && cp->val != 0x01) | 1900 | if (cp->val != 0x00 && cp->val != 0x01) |
1901 | return cmd_status(sk, hdev->id, MGMT_OP_SET_CONNECTABLE, | 1901 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_CONNECTABLE, |
1902 | MGMT_STATUS_INVALID_PARAMS); | 1902 | MGMT_STATUS_INVALID_PARAMS); |
1903 | 1903 | ||
1904 | hci_dev_lock(hdev); | 1904 | hci_dev_lock(hdev); |
1905 | 1905 | ||
@@ -1910,8 +1910,8 @@ static int set_connectable(struct sock *sk, struct hci_dev *hdev, void *data, | |||
1910 | 1910 | ||
1911 | if (mgmt_pending_find(MGMT_OP_SET_DISCOVERABLE, hdev) || | 1911 | if (mgmt_pending_find(MGMT_OP_SET_DISCOVERABLE, hdev) || |
1912 | mgmt_pending_find(MGMT_OP_SET_CONNECTABLE, hdev)) { | 1912 | mgmt_pending_find(MGMT_OP_SET_CONNECTABLE, hdev)) { |
1913 | err = cmd_status(sk, hdev->id, MGMT_OP_SET_CONNECTABLE, | 1913 | err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_CONNECTABLE, |
1914 | MGMT_STATUS_BUSY); | 1914 | MGMT_STATUS_BUSY); |
1915 | goto failed; | 1915 | goto failed; |
1916 | } | 1916 | } |
1917 | 1917 | ||
@@ -1996,8 +1996,8 @@ static int set_bondable(struct sock *sk, struct hci_dev *hdev, void *data, | |||
1996 | BT_DBG("request for %s", hdev->name); | 1996 | BT_DBG("request for %s", hdev->name); |
1997 | 1997 | ||
1998 | if (cp->val != 0x00 && cp->val != 0x01) | 1998 | if (cp->val != 0x00 && cp->val != 0x01) |
1999 | return cmd_status(sk, hdev->id, MGMT_OP_SET_BONDABLE, | 1999 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_BONDABLE, |
2000 | MGMT_STATUS_INVALID_PARAMS); | 2000 | MGMT_STATUS_INVALID_PARAMS); |
2001 | 2001 | ||
2002 | hci_dev_lock(hdev); | 2002 | hci_dev_lock(hdev); |
2003 | 2003 | ||
@@ -2030,12 +2030,12 @@ static int set_link_security(struct sock *sk, struct hci_dev *hdev, void *data, | |||
2030 | 2030 | ||
2031 | status = mgmt_bredr_support(hdev); | 2031 | status = mgmt_bredr_support(hdev); |
2032 | if (status) | 2032 | if (status) |
2033 | return cmd_status(sk, hdev->id, MGMT_OP_SET_LINK_SECURITY, | 2033 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_LINK_SECURITY, |
2034 | status); | 2034 | status); |
2035 | 2035 | ||
2036 | if (cp->val != 0x00 && cp->val != 0x01) | 2036 | if (cp->val != 0x00 && cp->val != 0x01) |
2037 | return cmd_status(sk, hdev->id, MGMT_OP_SET_LINK_SECURITY, | 2037 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_LINK_SECURITY, |
2038 | MGMT_STATUS_INVALID_PARAMS); | 2038 | MGMT_STATUS_INVALID_PARAMS); |
2039 | 2039 | ||
2040 | hci_dev_lock(hdev); | 2040 | hci_dev_lock(hdev); |
2041 | 2041 | ||
@@ -2059,8 +2059,8 @@ static int set_link_security(struct sock *sk, struct hci_dev *hdev, void *data, | |||
2059 | } | 2059 | } |
2060 | 2060 | ||
2061 | if (mgmt_pending_find(MGMT_OP_SET_LINK_SECURITY, hdev)) { | 2061 | if (mgmt_pending_find(MGMT_OP_SET_LINK_SECURITY, hdev)) { |
2062 | err = cmd_status(sk, hdev->id, MGMT_OP_SET_LINK_SECURITY, | 2062 | err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_LINK_SECURITY, |
2063 | MGMT_STATUS_BUSY); | 2063 | MGMT_STATUS_BUSY); |
2064 | goto failed; | 2064 | goto failed; |
2065 | } | 2065 | } |
2066 | 2066 | ||
@@ -2099,15 +2099,15 @@ static int set_ssp(struct sock *sk, struct hci_dev *hdev, void *data, u16 len) | |||
2099 | 2099 | ||
2100 | status = mgmt_bredr_support(hdev); | 2100 | status = mgmt_bredr_support(hdev); |
2101 | if (status) | 2101 | if (status) |
2102 | return cmd_status(sk, hdev->id, MGMT_OP_SET_SSP, status); | 2102 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_SSP, status); |
2103 | 2103 | ||
2104 | if (!lmp_ssp_capable(hdev)) | 2104 | if (!lmp_ssp_capable(hdev)) |
2105 | return cmd_status(sk, hdev->id, MGMT_OP_SET_SSP, | 2105 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_SSP, |
2106 | MGMT_STATUS_NOT_SUPPORTED); | 2106 | MGMT_STATUS_NOT_SUPPORTED); |
2107 | 2107 | ||
2108 | if (cp->val != 0x00 && cp->val != 0x01) | 2108 | if (cp->val != 0x00 && cp->val != 0x01) |
2109 | return cmd_status(sk, hdev->id, MGMT_OP_SET_SSP, | 2109 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_SSP, |
2110 | MGMT_STATUS_INVALID_PARAMS); | 2110 | MGMT_STATUS_INVALID_PARAMS); |
2111 | 2111 | ||
2112 | hci_dev_lock(hdev); | 2112 | hci_dev_lock(hdev); |
2113 | 2113 | ||
@@ -2138,8 +2138,8 @@ static int set_ssp(struct sock *sk, struct hci_dev *hdev, void *data, u16 len) | |||
2138 | } | 2138 | } |
2139 | 2139 | ||
2140 | if (mgmt_pending_find(MGMT_OP_SET_SSP, hdev)) { | 2140 | if (mgmt_pending_find(MGMT_OP_SET_SSP, hdev)) { |
2141 | err = cmd_status(sk, hdev->id, MGMT_OP_SET_SSP, | 2141 | err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_SSP, |
2142 | MGMT_STATUS_BUSY); | 2142 | MGMT_STATUS_BUSY); |
2143 | goto failed; | 2143 | goto failed; |
2144 | } | 2144 | } |
2145 | 2145 | ||
@@ -2180,25 +2180,25 @@ static int set_hs(struct sock *sk, struct hci_dev *hdev, void *data, u16 len) | |||
2180 | 2180 | ||
2181 | status = mgmt_bredr_support(hdev); | 2181 | status = mgmt_bredr_support(hdev); |
2182 | if (status) | 2182 | if (status) |
2183 | return cmd_status(sk, hdev->id, MGMT_OP_SET_HS, status); | 2183 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_HS, status); |
2184 | 2184 | ||
2185 | if (!lmp_ssp_capable(hdev)) | 2185 | if (!lmp_ssp_capable(hdev)) |
2186 | return cmd_status(sk, hdev->id, MGMT_OP_SET_HS, | 2186 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_HS, |
2187 | MGMT_STATUS_NOT_SUPPORTED); | 2187 | MGMT_STATUS_NOT_SUPPORTED); |
2188 | 2188 | ||
2189 | if (!test_bit(HCI_SSP_ENABLED, &hdev->dev_flags)) | 2189 | if (!test_bit(HCI_SSP_ENABLED, &hdev->dev_flags)) |
2190 | return cmd_status(sk, hdev->id, MGMT_OP_SET_HS, | 2190 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_HS, |
2191 | MGMT_STATUS_REJECTED); | 2191 | MGMT_STATUS_REJECTED); |
2192 | 2192 | ||
2193 | if (cp->val != 0x00 && cp->val != 0x01) | 2193 | if (cp->val != 0x00 && cp->val != 0x01) |
2194 | return cmd_status(sk, hdev->id, MGMT_OP_SET_HS, | 2194 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_HS, |
2195 | MGMT_STATUS_INVALID_PARAMS); | 2195 | MGMT_STATUS_INVALID_PARAMS); |
2196 | 2196 | ||
2197 | hci_dev_lock(hdev); | 2197 | hci_dev_lock(hdev); |
2198 | 2198 | ||
2199 | if (mgmt_pending_find(MGMT_OP_SET_SSP, hdev)) { | 2199 | if (mgmt_pending_find(MGMT_OP_SET_SSP, hdev)) { |
2200 | err = cmd_status(sk, hdev->id, MGMT_OP_SET_HS, | 2200 | err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_HS, |
2201 | MGMT_STATUS_BUSY); | 2201 | MGMT_STATUS_BUSY); |
2202 | goto unlock; | 2202 | goto unlock; |
2203 | } | 2203 | } |
2204 | 2204 | ||
@@ -2206,8 +2206,8 @@ static int set_hs(struct sock *sk, struct hci_dev *hdev, void *data, u16 len) | |||
2206 | changed = !test_and_set_bit(HCI_HS_ENABLED, &hdev->dev_flags); | 2206 | changed = !test_and_set_bit(HCI_HS_ENABLED, &hdev->dev_flags); |
2207 | } else { | 2207 | } else { |
2208 | if (hdev_is_powered(hdev)) { | 2208 | if (hdev_is_powered(hdev)) { |
2209 | err = cmd_status(sk, hdev->id, MGMT_OP_SET_HS, | 2209 | err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_HS, |
2210 | MGMT_STATUS_REJECTED); | 2210 | MGMT_STATUS_REJECTED); |
2211 | goto unlock; | 2211 | goto unlock; |
2212 | } | 2212 | } |
2213 | 2213 | ||
@@ -2278,17 +2278,17 @@ static int set_le(struct sock *sk, struct hci_dev *hdev, void *data, u16 len) | |||
2278 | BT_DBG("request for %s", hdev->name); | 2278 | BT_DBG("request for %s", hdev->name); |
2279 | 2279 | ||
2280 | if (!lmp_le_capable(hdev)) | 2280 | if (!lmp_le_capable(hdev)) |
2281 | return cmd_status(sk, hdev->id, MGMT_OP_SET_LE, | 2281 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_LE, |
2282 | MGMT_STATUS_NOT_SUPPORTED); | 2282 | MGMT_STATUS_NOT_SUPPORTED); |
2283 | 2283 | ||
2284 | if (cp->val != 0x00 && cp->val != 0x01) | 2284 | if (cp->val != 0x00 && cp->val != 0x01) |
2285 | return cmd_status(sk, hdev->id, MGMT_OP_SET_LE, | 2285 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_LE, |
2286 | MGMT_STATUS_INVALID_PARAMS); | 2286 | MGMT_STATUS_INVALID_PARAMS); |
2287 | 2287 | ||
2288 | /* LE-only devices do not allow toggling LE on/off */ | 2288 | /* LE-only devices do not allow toggling LE on/off */ |
2289 | if (!test_bit(HCI_BREDR_ENABLED, &hdev->dev_flags)) | 2289 | if (!test_bit(HCI_BREDR_ENABLED, &hdev->dev_flags)) |
2290 | return cmd_status(sk, hdev->id, MGMT_OP_SET_LE, | 2290 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_LE, |
2291 | MGMT_STATUS_REJECTED); | 2291 | MGMT_STATUS_REJECTED); |
2292 | 2292 | ||
2293 | hci_dev_lock(hdev); | 2293 | hci_dev_lock(hdev); |
2294 | 2294 | ||
@@ -2320,8 +2320,8 @@ static int set_le(struct sock *sk, struct hci_dev *hdev, void *data, u16 len) | |||
2320 | 2320 | ||
2321 | if (mgmt_pending_find(MGMT_OP_SET_LE, hdev) || | 2321 | if (mgmt_pending_find(MGMT_OP_SET_LE, hdev) || |
2322 | mgmt_pending_find(MGMT_OP_SET_ADVERTISING, hdev)) { | 2322 | mgmt_pending_find(MGMT_OP_SET_ADVERTISING, hdev)) { |
2323 | err = cmd_status(sk, hdev->id, MGMT_OP_SET_LE, | 2323 | err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_LE, |
2324 | MGMT_STATUS_BUSY); | 2324 | MGMT_STATUS_BUSY); |
2325 | goto unlock; | 2325 | goto unlock; |
2326 | } | 2326 | } |
2327 | 2327 | ||
@@ -2436,8 +2436,8 @@ static int add_uuid(struct sock *sk, struct hci_dev *hdev, void *data, u16 len) | |||
2436 | hci_dev_lock(hdev); | 2436 | hci_dev_lock(hdev); |
2437 | 2437 | ||
2438 | if (pending_eir_or_class(hdev)) { | 2438 | if (pending_eir_or_class(hdev)) { |
2439 | err = cmd_status(sk, hdev->id, MGMT_OP_ADD_UUID, | 2439 | err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_ADD_UUID, |
2440 | MGMT_STATUS_BUSY); | 2440 | MGMT_STATUS_BUSY); |
2441 | goto failed; | 2441 | goto failed; |
2442 | } | 2442 | } |
2443 | 2443 | ||
@@ -2517,8 +2517,8 @@ static int remove_uuid(struct sock *sk, struct hci_dev *hdev, void *data, | |||
2517 | hci_dev_lock(hdev); | 2517 | hci_dev_lock(hdev); |
2518 | 2518 | ||
2519 | if (pending_eir_or_class(hdev)) { | 2519 | if (pending_eir_or_class(hdev)) { |
2520 | err = cmd_status(sk, hdev->id, MGMT_OP_REMOVE_UUID, | 2520 | err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_REMOVE_UUID, |
2521 | MGMT_STATUS_BUSY); | 2521 | MGMT_STATUS_BUSY); |
2522 | goto unlock; | 2522 | goto unlock; |
2523 | } | 2523 | } |
2524 | 2524 | ||
@@ -2546,8 +2546,8 @@ static int remove_uuid(struct sock *sk, struct hci_dev *hdev, void *data, | |||
2546 | } | 2546 | } |
2547 | 2547 | ||
2548 | if (found == 0) { | 2548 | if (found == 0) { |
2549 | err = cmd_status(sk, hdev->id, MGMT_OP_REMOVE_UUID, | 2549 | err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_REMOVE_UUID, |
2550 | MGMT_STATUS_INVALID_PARAMS); | 2550 | MGMT_STATUS_INVALID_PARAMS); |
2551 | goto unlock; | 2551 | goto unlock; |
2552 | } | 2552 | } |
2553 | 2553 | ||
@@ -2598,20 +2598,20 @@ static int set_dev_class(struct sock *sk, struct hci_dev *hdev, void *data, | |||
2598 | BT_DBG("request for %s", hdev->name); | 2598 | BT_DBG("request for %s", hdev->name); |
2599 | 2599 | ||
2600 | if (!lmp_bredr_capable(hdev)) | 2600 | if (!lmp_bredr_capable(hdev)) |
2601 | return cmd_status(sk, hdev->id, MGMT_OP_SET_DEV_CLASS, | 2601 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_DEV_CLASS, |
2602 | MGMT_STATUS_NOT_SUPPORTED); | 2602 | MGMT_STATUS_NOT_SUPPORTED); |
2603 | 2603 | ||
2604 | hci_dev_lock(hdev); | 2604 | hci_dev_lock(hdev); |
2605 | 2605 | ||
2606 | if (pending_eir_or_class(hdev)) { | 2606 | if (pending_eir_or_class(hdev)) { |
2607 | err = cmd_status(sk, hdev->id, MGMT_OP_SET_DEV_CLASS, | 2607 | err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_DEV_CLASS, |
2608 | MGMT_STATUS_BUSY); | 2608 | MGMT_STATUS_BUSY); |
2609 | goto unlock; | 2609 | goto unlock; |
2610 | } | 2610 | } |
2611 | 2611 | ||
2612 | if ((cp->minor & 0x03) != 0 || (cp->major & 0xe0) != 0) { | 2612 | if ((cp->minor & 0x03) != 0 || (cp->major & 0xe0) != 0) { |
2613 | err = cmd_status(sk, hdev->id, MGMT_OP_SET_DEV_CLASS, | 2613 | err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_DEV_CLASS, |
2614 | MGMT_STATUS_INVALID_PARAMS); | 2614 | MGMT_STATUS_INVALID_PARAMS); |
2615 | goto unlock; | 2615 | goto unlock; |
2616 | } | 2616 | } |
2617 | 2617 | ||
@@ -2671,15 +2671,15 @@ static int load_link_keys(struct sock *sk, struct hci_dev *hdev, void *data, | |||
2671 | BT_DBG("request for %s", hdev->name); | 2671 | BT_DBG("request for %s", hdev->name); |
2672 | 2672 | ||
2673 | if (!lmp_bredr_capable(hdev)) | 2673 | if (!lmp_bredr_capable(hdev)) |
2674 | return cmd_status(sk, hdev->id, MGMT_OP_LOAD_LINK_KEYS, | 2674 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_LOAD_LINK_KEYS, |
2675 | MGMT_STATUS_NOT_SUPPORTED); | 2675 | MGMT_STATUS_NOT_SUPPORTED); |
2676 | 2676 | ||
2677 | key_count = __le16_to_cpu(cp->key_count); | 2677 | key_count = __le16_to_cpu(cp->key_count); |
2678 | if (key_count > max_key_count) { | 2678 | if (key_count > max_key_count) { |
2679 | BT_ERR("load_link_keys: too big key_count value %u", | 2679 | BT_ERR("load_link_keys: too big key_count value %u", |
2680 | key_count); | 2680 | key_count); |
2681 | return cmd_status(sk, hdev->id, MGMT_OP_LOAD_LINK_KEYS, | 2681 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_LOAD_LINK_KEYS, |
2682 | MGMT_STATUS_INVALID_PARAMS); | 2682 | MGMT_STATUS_INVALID_PARAMS); |
2683 | } | 2683 | } |
2684 | 2684 | ||
2685 | expected_len = sizeof(*cp) + key_count * | 2685 | expected_len = sizeof(*cp) + key_count * |
@@ -2687,13 +2687,13 @@ static int load_link_keys(struct sock *sk, struct hci_dev *hdev, void *data, | |||
2687 | if (expected_len != len) { | 2687 | if (expected_len != len) { |
2688 | BT_ERR("load_link_keys: expected %u bytes, got %u bytes", | 2688 | BT_ERR("load_link_keys: expected %u bytes, got %u bytes", |
2689 | expected_len, len); | 2689 | expected_len, len); |
2690 | return cmd_status(sk, hdev->id, MGMT_OP_LOAD_LINK_KEYS, | 2690 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_LOAD_LINK_KEYS, |
2691 | MGMT_STATUS_INVALID_PARAMS); | 2691 | MGMT_STATUS_INVALID_PARAMS); |
2692 | } | 2692 | } |
2693 | 2693 | ||
2694 | if (cp->debug_keys != 0x00 && cp->debug_keys != 0x01) | 2694 | if (cp->debug_keys != 0x00 && cp->debug_keys != 0x01) |
2695 | return cmd_status(sk, hdev->id, MGMT_OP_LOAD_LINK_KEYS, | 2695 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_LOAD_LINK_KEYS, |
2696 | MGMT_STATUS_INVALID_PARAMS); | 2696 | MGMT_STATUS_INVALID_PARAMS); |
2697 | 2697 | ||
2698 | BT_DBG("%s debug_keys %u key_count %u", hdev->name, cp->debug_keys, | 2698 | BT_DBG("%s debug_keys %u key_count %u", hdev->name, cp->debug_keys, |
2699 | key_count); | 2699 | key_count); |
@@ -2702,8 +2702,9 @@ static int load_link_keys(struct sock *sk, struct hci_dev *hdev, void *data, | |||
2702 | struct mgmt_link_key_info *key = &cp->keys[i]; | 2702 | struct mgmt_link_key_info *key = &cp->keys[i]; |
2703 | 2703 | ||
2704 | if (key->addr.type != BDADDR_BREDR || key->type > 0x08) | 2704 | if (key->addr.type != BDADDR_BREDR || key->type > 0x08) |
2705 | return cmd_status(sk, hdev->id, MGMT_OP_LOAD_LINK_KEYS, | 2705 | return mgmt_cmd_status(sk, hdev->id, |
2706 | MGMT_STATUS_INVALID_PARAMS); | 2706 | MGMT_OP_LOAD_LINK_KEYS, |
2707 | MGMT_STATUS_INVALID_PARAMS); | ||
2707 | } | 2708 | } |
2708 | 2709 | ||
2709 | hci_dev_lock(hdev); | 2710 | hci_dev_lock(hdev); |
@@ -2961,8 +2962,8 @@ static int get_connections(struct sock *sk, struct hci_dev *hdev, void *data, | |||
2961 | hci_dev_lock(hdev); | 2962 | hci_dev_lock(hdev); |
2962 | 2963 | ||
2963 | if (!hdev_is_powered(hdev)) { | 2964 | if (!hdev_is_powered(hdev)) { |
2964 | err = cmd_status(sk, hdev->id, MGMT_OP_GET_CONNECTIONS, | 2965 | err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_GET_CONNECTIONS, |
2965 | MGMT_STATUS_NOT_POWERED); | 2966 | MGMT_STATUS_NOT_POWERED); |
2966 | goto unlock; | 2967 | goto unlock; |
2967 | } | 2968 | } |
2968 | 2969 | ||
@@ -3038,15 +3039,15 @@ static int pin_code_reply(struct sock *sk, struct hci_dev *hdev, void *data, | |||
3038 | hci_dev_lock(hdev); | 3039 | hci_dev_lock(hdev); |
3039 | 3040 | ||
3040 | if (!hdev_is_powered(hdev)) { | 3041 | if (!hdev_is_powered(hdev)) { |
3041 | err = cmd_status(sk, hdev->id, MGMT_OP_PIN_CODE_REPLY, | 3042 | err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_PIN_CODE_REPLY, |
3042 | MGMT_STATUS_NOT_POWERED); | 3043 | MGMT_STATUS_NOT_POWERED); |
3043 | goto failed; | 3044 | goto failed; |
3044 | } | 3045 | } |
3045 | 3046 | ||
3046 | conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &cp->addr.bdaddr); | 3047 | conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &cp->addr.bdaddr); |
3047 | if (!conn) { | 3048 | if (!conn) { |
3048 | err = cmd_status(sk, hdev->id, MGMT_OP_PIN_CODE_REPLY, | 3049 | err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_PIN_CODE_REPLY, |
3049 | MGMT_STATUS_NOT_CONNECTED); | 3050 | MGMT_STATUS_NOT_CONNECTED); |
3050 | goto failed; | 3051 | goto failed; |
3051 | } | 3052 | } |
3052 | 3053 | ||
@@ -3059,8 +3060,8 @@ static int pin_code_reply(struct sock *sk, struct hci_dev *hdev, void *data, | |||
3059 | 3060 | ||
3060 | err = send_pin_code_neg_reply(sk, hdev, &ncp); | 3061 | err = send_pin_code_neg_reply(sk, hdev, &ncp); |
3061 | if (err >= 0) | 3062 | if (err >= 0) |
3062 | err = cmd_status(sk, hdev->id, MGMT_OP_PIN_CODE_REPLY, | 3063 | err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_PIN_CODE_REPLY, |
3063 | MGMT_STATUS_INVALID_PARAMS); | 3064 | MGMT_STATUS_INVALID_PARAMS); |
3064 | 3065 | ||
3065 | goto failed; | 3066 | goto failed; |
3066 | } | 3067 | } |
@@ -3344,23 +3345,23 @@ static int cancel_pair_device(struct sock *sk, struct hci_dev *hdev, void *data, | |||
3344 | hci_dev_lock(hdev); | 3345 | hci_dev_lock(hdev); |
3345 | 3346 | ||
3346 | if (!hdev_is_powered(hdev)) { | 3347 | if (!hdev_is_powered(hdev)) { |
3347 | err = cmd_status(sk, hdev->id, MGMT_OP_CANCEL_PAIR_DEVICE, | 3348 | err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_CANCEL_PAIR_DEVICE, |
3348 | MGMT_STATUS_NOT_POWERED); | 3349 | MGMT_STATUS_NOT_POWERED); |
3349 | goto unlock; | 3350 | goto unlock; |
3350 | } | 3351 | } |
3351 | 3352 | ||
3352 | cmd = mgmt_pending_find(MGMT_OP_PAIR_DEVICE, hdev); | 3353 | cmd = mgmt_pending_find(MGMT_OP_PAIR_DEVICE, hdev); |
3353 | if (!cmd) { | 3354 | if (!cmd) { |
3354 | err = cmd_status(sk, hdev->id, MGMT_OP_CANCEL_PAIR_DEVICE, | 3355 | err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_CANCEL_PAIR_DEVICE, |
3355 | MGMT_STATUS_INVALID_PARAMS); | 3356 | MGMT_STATUS_INVALID_PARAMS); |
3356 | goto unlock; | 3357 | goto unlock; |
3357 | } | 3358 | } |
3358 | 3359 | ||
3359 | conn = cmd->user_data; | 3360 | conn = cmd->user_data; |
3360 | 3361 | ||
3361 | if (bacmp(&addr->bdaddr, &conn->dst) != 0) { | 3362 | if (bacmp(&addr->bdaddr, &conn->dst) != 0) { |
3362 | err = cmd_status(sk, hdev->id, MGMT_OP_CANCEL_PAIR_DEVICE, | 3363 | err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_CANCEL_PAIR_DEVICE, |
3363 | MGMT_STATUS_INVALID_PARAMS); | 3364 | MGMT_STATUS_INVALID_PARAMS); |
3364 | goto unlock; | 3365 | goto unlock; |
3365 | } | 3366 | } |
3366 | 3367 | ||
@@ -3464,8 +3465,8 @@ static int user_confirm_reply(struct sock *sk, struct hci_dev *hdev, void *data, | |||
3464 | BT_DBG(""); | 3465 | BT_DBG(""); |
3465 | 3466 | ||
3466 | if (len != sizeof(*cp)) | 3467 | if (len != sizeof(*cp)) |
3467 | return cmd_status(sk, hdev->id, MGMT_OP_USER_CONFIRM_REPLY, | 3468 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_USER_CONFIRM_REPLY, |
3468 | MGMT_STATUS_INVALID_PARAMS); | 3469 | MGMT_STATUS_INVALID_PARAMS); |
3469 | 3470 | ||
3470 | return user_pairing_resp(sk, hdev, &cp->addr, | 3471 | return user_pairing_resp(sk, hdev, &cp->addr, |
3471 | MGMT_OP_USER_CONFIRM_REPLY, | 3472 | MGMT_OP_USER_CONFIRM_REPLY, |
@@ -3534,8 +3535,8 @@ static void set_name_complete(struct hci_dev *hdev, u8 status, u16 opcode) | |||
3534 | cp = cmd->param; | 3535 | cp = cmd->param; |
3535 | 3536 | ||
3536 | if (status) | 3537 | if (status) |
3537 | cmd_status(cmd->sk, hdev->id, MGMT_OP_SET_LOCAL_NAME, | 3538 | mgmt_cmd_status(cmd->sk, hdev->id, MGMT_OP_SET_LOCAL_NAME, |
3538 | mgmt_status(status)); | 3539 | mgmt_status(status)); |
3539 | else | 3540 | else |
3540 | cmd_complete(cmd->sk, hdev->id, MGMT_OP_SET_LOCAL_NAME, 0, | 3541 | cmd_complete(cmd->sk, hdev->id, MGMT_OP_SET_LOCAL_NAME, 0, |
3541 | cp, sizeof(*cp)); | 3542 | cp, sizeof(*cp)); |
@@ -3626,20 +3627,20 @@ static int read_local_oob_data(struct sock *sk, struct hci_dev *hdev, | |||
3626 | hci_dev_lock(hdev); | 3627 | hci_dev_lock(hdev); |
3627 | 3628 | ||
3628 | if (!hdev_is_powered(hdev)) { | 3629 | if (!hdev_is_powered(hdev)) { |
3629 | err = cmd_status(sk, hdev->id, MGMT_OP_READ_LOCAL_OOB_DATA, | 3630 | err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_READ_LOCAL_OOB_DATA, |
3630 | MGMT_STATUS_NOT_POWERED); | 3631 | MGMT_STATUS_NOT_POWERED); |
3631 | goto unlock; | 3632 | goto unlock; |
3632 | } | 3633 | } |
3633 | 3634 | ||
3634 | if (!lmp_ssp_capable(hdev)) { | 3635 | if (!lmp_ssp_capable(hdev)) { |
3635 | err = cmd_status(sk, hdev->id, MGMT_OP_READ_LOCAL_OOB_DATA, | 3636 | err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_READ_LOCAL_OOB_DATA, |
3636 | MGMT_STATUS_NOT_SUPPORTED); | 3637 | MGMT_STATUS_NOT_SUPPORTED); |
3637 | goto unlock; | 3638 | goto unlock; |
3638 | } | 3639 | } |
3639 | 3640 | ||
3640 | if (mgmt_pending_find(MGMT_OP_READ_LOCAL_OOB_DATA, hdev)) { | 3641 | if (mgmt_pending_find(MGMT_OP_READ_LOCAL_OOB_DATA, hdev)) { |
3641 | err = cmd_status(sk, hdev->id, MGMT_OP_READ_LOCAL_OOB_DATA, | 3642 | err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_READ_LOCAL_OOB_DATA, |
3642 | MGMT_STATUS_BUSY); | 3643 | MGMT_STATUS_BUSY); |
3643 | goto unlock; | 3644 | goto unlock; |
3644 | } | 3645 | } |
3645 | 3646 | ||
@@ -3758,8 +3759,8 @@ static int add_remote_oob_data(struct sock *sk, struct hci_dev *hdev, | |||
3758 | status, &cp->addr, sizeof(cp->addr)); | 3759 | status, &cp->addr, sizeof(cp->addr)); |
3759 | } else { | 3760 | } else { |
3760 | BT_ERR("add_remote_oob_data: invalid length of %u bytes", len); | 3761 | BT_ERR("add_remote_oob_data: invalid length of %u bytes", len); |
3761 | err = cmd_status(sk, hdev->id, MGMT_OP_ADD_REMOTE_OOB_DATA, | 3762 | err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_ADD_REMOTE_OOB_DATA, |
3762 | MGMT_STATUS_INVALID_PARAMS); | 3763 | MGMT_STATUS_INVALID_PARAMS); |
3763 | } | 3764 | } |
3764 | 3765 | ||
3765 | unlock: | 3766 | unlock: |
@@ -4352,8 +4353,8 @@ static int set_device_id(struct sock *sk, struct hci_dev *hdev, void *data, | |||
4352 | source = __le16_to_cpu(cp->source); | 4353 | source = __le16_to_cpu(cp->source); |
4353 | 4354 | ||
4354 | if (source > 0x0002) | 4355 | if (source > 0x0002) |
4355 | return cmd_status(sk, hdev->id, MGMT_OP_SET_DEVICE_ID, | 4356 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_DEVICE_ID, |
4356 | MGMT_STATUS_INVALID_PARAMS); | 4357 | MGMT_STATUS_INVALID_PARAMS); |
4357 | 4358 | ||
4358 | hci_dev_lock(hdev); | 4359 | hci_dev_lock(hdev); |
4359 | 4360 | ||
@@ -4418,12 +4419,12 @@ static int set_advertising(struct sock *sk, struct hci_dev *hdev, void *data, | |||
4418 | 4419 | ||
4419 | status = mgmt_le_support(hdev); | 4420 | status = mgmt_le_support(hdev); |
4420 | if (status) | 4421 | if (status) |
4421 | return cmd_status(sk, hdev->id, MGMT_OP_SET_ADVERTISING, | 4422 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_ADVERTISING, |
4422 | status); | 4423 | status); |
4423 | 4424 | ||
4424 | if (cp->val != 0x00 && cp->val != 0x01) | 4425 | if (cp->val != 0x00 && cp->val != 0x01) |
4425 | return cmd_status(sk, hdev->id, MGMT_OP_SET_ADVERTISING, | 4426 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_ADVERTISING, |
4426 | MGMT_STATUS_INVALID_PARAMS); | 4427 | MGMT_STATUS_INVALID_PARAMS); |
4427 | 4428 | ||
4428 | hci_dev_lock(hdev); | 4429 | hci_dev_lock(hdev); |
4429 | 4430 | ||
@@ -4458,8 +4459,8 @@ static int set_advertising(struct sock *sk, struct hci_dev *hdev, void *data, | |||
4458 | 4459 | ||
4459 | if (mgmt_pending_find(MGMT_OP_SET_ADVERTISING, hdev) || | 4460 | if (mgmt_pending_find(MGMT_OP_SET_ADVERTISING, hdev) || |
4460 | mgmt_pending_find(MGMT_OP_SET_LE, hdev)) { | 4461 | mgmt_pending_find(MGMT_OP_SET_LE, hdev)) { |
4461 | err = cmd_status(sk, hdev->id, MGMT_OP_SET_ADVERTISING, | 4462 | err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_ADVERTISING, |
4462 | MGMT_STATUS_BUSY); | 4463 | MGMT_STATUS_BUSY); |
4463 | goto unlock; | 4464 | goto unlock; |
4464 | } | 4465 | } |
4465 | 4466 | ||
@@ -4494,24 +4495,24 @@ static int set_static_address(struct sock *sk, struct hci_dev *hdev, | |||
4494 | BT_DBG("%s", hdev->name); | 4495 | BT_DBG("%s", hdev->name); |
4495 | 4496 | ||
4496 | if (!lmp_le_capable(hdev)) | 4497 | if (!lmp_le_capable(hdev)) |
4497 | return cmd_status(sk, hdev->id, MGMT_OP_SET_STATIC_ADDRESS, | 4498 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_STATIC_ADDRESS, |
4498 | MGMT_STATUS_NOT_SUPPORTED); | 4499 | MGMT_STATUS_NOT_SUPPORTED); |
4499 | 4500 | ||
4500 | if (hdev_is_powered(hdev)) | 4501 | if (hdev_is_powered(hdev)) |
4501 | return cmd_status(sk, hdev->id, MGMT_OP_SET_STATIC_ADDRESS, | 4502 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_STATIC_ADDRESS, |
4502 | MGMT_STATUS_REJECTED); | 4503 | MGMT_STATUS_REJECTED); |
4503 | 4504 | ||
4504 | if (bacmp(&cp->bdaddr, BDADDR_ANY)) { | 4505 | if (bacmp(&cp->bdaddr, BDADDR_ANY)) { |
4505 | if (!bacmp(&cp->bdaddr, BDADDR_NONE)) | 4506 | if (!bacmp(&cp->bdaddr, BDADDR_NONE)) |
4506 | return cmd_status(sk, hdev->id, | 4507 | return mgmt_cmd_status(sk, hdev->id, |
4507 | MGMT_OP_SET_STATIC_ADDRESS, | 4508 | MGMT_OP_SET_STATIC_ADDRESS, |
4508 | MGMT_STATUS_INVALID_PARAMS); | 4509 | MGMT_STATUS_INVALID_PARAMS); |
4509 | 4510 | ||
4510 | /* Two most significant bits shall be set */ | 4511 | /* Two most significant bits shall be set */ |
4511 | if ((cp->bdaddr.b[5] & 0xc0) != 0xc0) | 4512 | if ((cp->bdaddr.b[5] & 0xc0) != 0xc0) |
4512 | return cmd_status(sk, hdev->id, | 4513 | return mgmt_cmd_status(sk, hdev->id, |
4513 | MGMT_OP_SET_STATIC_ADDRESS, | 4514 | MGMT_OP_SET_STATIC_ADDRESS, |
4514 | MGMT_STATUS_INVALID_PARAMS); | 4515 | MGMT_STATUS_INVALID_PARAMS); |
4515 | } | 4516 | } |
4516 | 4517 | ||
4517 | hci_dev_lock(hdev); | 4518 | hci_dev_lock(hdev); |
@@ -4539,24 +4540,24 @@ static int set_scan_params(struct sock *sk, struct hci_dev *hdev, | |||
4539 | BT_DBG("%s", hdev->name); | 4540 | BT_DBG("%s", hdev->name); |
4540 | 4541 | ||
4541 | if (!lmp_le_capable(hdev)) | 4542 | if (!lmp_le_capable(hdev)) |
4542 | return cmd_status(sk, hdev->id, MGMT_OP_SET_SCAN_PARAMS, | 4543 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_SCAN_PARAMS, |
4543 | MGMT_STATUS_NOT_SUPPORTED); | 4544 | MGMT_STATUS_NOT_SUPPORTED); |
4544 | 4545 | ||
4545 | interval = __le16_to_cpu(cp->interval); | 4546 | interval = __le16_to_cpu(cp->interval); |
4546 | 4547 | ||
4547 | if (interval < 0x0004 || interval > 0x4000) | 4548 | if (interval < 0x0004 || interval > 0x4000) |
4548 | return cmd_status(sk, hdev->id, MGMT_OP_SET_SCAN_PARAMS, | 4549 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_SCAN_PARAMS, |
4549 | MGMT_STATUS_INVALID_PARAMS); | 4550 | MGMT_STATUS_INVALID_PARAMS); |
4550 | 4551 | ||
4551 | window = __le16_to_cpu(cp->window); | 4552 | window = __le16_to_cpu(cp->window); |
4552 | 4553 | ||
4553 | if (window < 0x0004 || window > 0x4000) | 4554 | if (window < 0x0004 || window > 0x4000) |
4554 | return cmd_status(sk, hdev->id, MGMT_OP_SET_SCAN_PARAMS, | 4555 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_SCAN_PARAMS, |
4555 | MGMT_STATUS_INVALID_PARAMS); | 4556 | MGMT_STATUS_INVALID_PARAMS); |
4556 | 4557 | ||
4557 | if (window > interval) | 4558 | if (window > interval) |
4558 | return cmd_status(sk, hdev->id, MGMT_OP_SET_SCAN_PARAMS, | 4559 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_SCAN_PARAMS, |
4559 | MGMT_STATUS_INVALID_PARAMS); | 4560 | MGMT_STATUS_INVALID_PARAMS); |
4560 | 4561 | ||
4561 | hci_dev_lock(hdev); | 4562 | hci_dev_lock(hdev); |
4562 | 4563 | ||
@@ -4599,8 +4600,8 @@ static void fast_connectable_complete(struct hci_dev *hdev, u8 status, | |||
4599 | goto unlock; | 4600 | goto unlock; |
4600 | 4601 | ||
4601 | if (status) { | 4602 | if (status) { |
4602 | cmd_status(cmd->sk, hdev->id, MGMT_OP_SET_FAST_CONNECTABLE, | 4603 | mgmt_cmd_status(cmd->sk, hdev->id, MGMT_OP_SET_FAST_CONNECTABLE, |
4603 | mgmt_status(status)); | 4604 | mgmt_status(status)); |
4604 | } else { | 4605 | } else { |
4605 | struct mgmt_mode *cp = cmd->param; | 4606 | struct mgmt_mode *cp = cmd->param; |
4606 | 4607 | ||
@@ -4631,26 +4632,26 @@ static int set_fast_connectable(struct sock *sk, struct hci_dev *hdev, | |||
4631 | 4632 | ||
4632 | if (!test_bit(HCI_BREDR_ENABLED, &hdev->dev_flags) || | 4633 | if (!test_bit(HCI_BREDR_ENABLED, &hdev->dev_flags) || |
4633 | hdev->hci_ver < BLUETOOTH_VER_1_2) | 4634 | hdev->hci_ver < BLUETOOTH_VER_1_2) |
4634 | return cmd_status(sk, hdev->id, MGMT_OP_SET_FAST_CONNECTABLE, | 4635 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_FAST_CONNECTABLE, |
4635 | MGMT_STATUS_NOT_SUPPORTED); | 4636 | MGMT_STATUS_NOT_SUPPORTED); |
4636 | 4637 | ||
4637 | if (cp->val != 0x00 && cp->val != 0x01) | 4638 | if (cp->val != 0x00 && cp->val != 0x01) |
4638 | return cmd_status(sk, hdev->id, MGMT_OP_SET_FAST_CONNECTABLE, | 4639 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_FAST_CONNECTABLE, |
4639 | MGMT_STATUS_INVALID_PARAMS); | 4640 | MGMT_STATUS_INVALID_PARAMS); |
4640 | 4641 | ||
4641 | if (!hdev_is_powered(hdev)) | 4642 | if (!hdev_is_powered(hdev)) |
4642 | return cmd_status(sk, hdev->id, MGMT_OP_SET_FAST_CONNECTABLE, | 4643 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_FAST_CONNECTABLE, |
4643 | MGMT_STATUS_NOT_POWERED); | 4644 | MGMT_STATUS_NOT_POWERED); |
4644 | 4645 | ||
4645 | if (!test_bit(HCI_CONNECTABLE, &hdev->dev_flags)) | 4646 | if (!test_bit(HCI_CONNECTABLE, &hdev->dev_flags)) |
4646 | return cmd_status(sk, hdev->id, MGMT_OP_SET_FAST_CONNECTABLE, | 4647 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_FAST_CONNECTABLE, |
4647 | MGMT_STATUS_REJECTED); | 4648 | MGMT_STATUS_REJECTED); |
4648 | 4649 | ||
4649 | hci_dev_lock(hdev); | 4650 | hci_dev_lock(hdev); |
4650 | 4651 | ||
4651 | if (mgmt_pending_find(MGMT_OP_SET_FAST_CONNECTABLE, hdev)) { | 4652 | if (mgmt_pending_find(MGMT_OP_SET_FAST_CONNECTABLE, hdev)) { |
4652 | err = cmd_status(sk, hdev->id, MGMT_OP_SET_FAST_CONNECTABLE, | 4653 | err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_FAST_CONNECTABLE, |
4653 | MGMT_STATUS_BUSY); | 4654 | MGMT_STATUS_BUSY); |
4654 | goto unlock; | 4655 | goto unlock; |
4655 | } | 4656 | } |
4656 | 4657 | ||
@@ -4673,8 +4674,8 @@ static int set_fast_connectable(struct sock *sk, struct hci_dev *hdev, | |||
4673 | 4674 | ||
4674 | err = hci_req_run(&req, fast_connectable_complete); | 4675 | err = hci_req_run(&req, fast_connectable_complete); |
4675 | if (err < 0) { | 4676 | if (err < 0) { |
4676 | err = cmd_status(sk, hdev->id, MGMT_OP_SET_FAST_CONNECTABLE, | 4677 | err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_FAST_CONNECTABLE, |
4677 | MGMT_STATUS_FAILED); | 4678 | MGMT_STATUS_FAILED); |
4678 | mgmt_pending_remove(cmd); | 4679 | mgmt_pending_remove(cmd); |
4679 | } | 4680 | } |
4680 | 4681 | ||
@@ -4704,7 +4705,7 @@ static void set_bredr_complete(struct hci_dev *hdev, u8 status, u16 opcode) | |||
4704 | */ | 4705 | */ |
4705 | clear_bit(HCI_BREDR_ENABLED, &hdev->dev_flags); | 4706 | clear_bit(HCI_BREDR_ENABLED, &hdev->dev_flags); |
4706 | 4707 | ||
4707 | cmd_status(cmd->sk, cmd->index, cmd->opcode, mgmt_err); | 4708 | mgmt_cmd_status(cmd->sk, cmd->index, cmd->opcode, mgmt_err); |
4708 | } else { | 4709 | } else { |
4709 | send_settings_rsp(cmd->sk, MGMT_OP_SET_BREDR, hdev); | 4710 | send_settings_rsp(cmd->sk, MGMT_OP_SET_BREDR, hdev); |
4710 | new_settings(hdev, cmd->sk); | 4711 | new_settings(hdev, cmd->sk); |
@@ -4726,16 +4727,16 @@ static int set_bredr(struct sock *sk, struct hci_dev *hdev, void *data, u16 len) | |||
4726 | BT_DBG("request for %s", hdev->name); | 4727 | BT_DBG("request for %s", hdev->name); |
4727 | 4728 | ||
4728 | if (!lmp_bredr_capable(hdev) || !lmp_le_capable(hdev)) | 4729 | if (!lmp_bredr_capable(hdev) || !lmp_le_capable(hdev)) |
4729 | return cmd_status(sk, hdev->id, MGMT_OP_SET_BREDR, | 4730 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_BREDR, |
4730 | MGMT_STATUS_NOT_SUPPORTED); | 4731 | MGMT_STATUS_NOT_SUPPORTED); |
4731 | 4732 | ||
4732 | if (!test_bit(HCI_LE_ENABLED, &hdev->dev_flags)) | 4733 | if (!test_bit(HCI_LE_ENABLED, &hdev->dev_flags)) |
4733 | return cmd_status(sk, hdev->id, MGMT_OP_SET_BREDR, | 4734 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_BREDR, |
4734 | MGMT_STATUS_REJECTED); | 4735 | MGMT_STATUS_REJECTED); |
4735 | 4736 | ||
4736 | if (cp->val != 0x00 && cp->val != 0x01) | 4737 | if (cp->val != 0x00 && cp->val != 0x01) |
4737 | return cmd_status(sk, hdev->id, MGMT_OP_SET_BREDR, | 4738 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_BREDR, |
4738 | MGMT_STATUS_INVALID_PARAMS); | 4739 | MGMT_STATUS_INVALID_PARAMS); |
4739 | 4740 | ||
4740 | hci_dev_lock(hdev); | 4741 | hci_dev_lock(hdev); |
4741 | 4742 | ||
@@ -4765,8 +4766,8 @@ static int set_bredr(struct sock *sk, struct hci_dev *hdev, void *data, u16 len) | |||
4765 | 4766 | ||
4766 | /* Reject disabling when powered on */ | 4767 | /* Reject disabling when powered on */ |
4767 | if (!cp->val) { | 4768 | if (!cp->val) { |
4768 | err = cmd_status(sk, hdev->id, MGMT_OP_SET_BREDR, | 4769 | err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_BREDR, |
4769 | MGMT_STATUS_REJECTED); | 4770 | MGMT_STATUS_REJECTED); |
4770 | goto unlock; | 4771 | goto unlock; |
4771 | } else { | 4772 | } else { |
4772 | /* When configuring a dual-mode controller to operate | 4773 | /* When configuring a dual-mode controller to operate |
@@ -4786,15 +4787,15 @@ static int set_bredr(struct sock *sk, struct hci_dev *hdev, void *data, u16 len) | |||
4786 | if (!test_bit(HCI_BREDR_ENABLED, &hdev->dev_flags) && | 4787 | if (!test_bit(HCI_BREDR_ENABLED, &hdev->dev_flags) && |
4787 | (bacmp(&hdev->static_addr, BDADDR_ANY) || | 4788 | (bacmp(&hdev->static_addr, BDADDR_ANY) || |
4788 | test_bit(HCI_SC_ENABLED, &hdev->dev_flags))) { | 4789 | test_bit(HCI_SC_ENABLED, &hdev->dev_flags))) { |
4789 | err = cmd_status(sk, hdev->id, MGMT_OP_SET_BREDR, | 4790 | err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_BREDR, |
4790 | MGMT_STATUS_REJECTED); | 4791 | MGMT_STATUS_REJECTED); |
4791 | goto unlock; | 4792 | goto unlock; |
4792 | } | 4793 | } |
4793 | } | 4794 | } |
4794 | 4795 | ||
4795 | if (mgmt_pending_find(MGMT_OP_SET_BREDR, hdev)) { | 4796 | if (mgmt_pending_find(MGMT_OP_SET_BREDR, hdev)) { |
4796 | err = cmd_status(sk, hdev->id, MGMT_OP_SET_BREDR, | 4797 | err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_BREDR, |
4797 | MGMT_STATUS_BUSY); | 4798 | MGMT_STATUS_BUSY); |
4798 | goto unlock; | 4799 | goto unlock; |
4799 | } | 4800 | } |
4800 | 4801 | ||
@@ -4842,8 +4843,8 @@ static void sc_enable_complete(struct hci_dev *hdev, u8 status, u16 opcode) | |||
4842 | goto unlock; | 4843 | goto unlock; |
4843 | 4844 | ||
4844 | if (status) { | 4845 | if (status) { |
4845 | cmd_status(cmd->sk, cmd->index, cmd->opcode, | 4846 | mgmt_cmd_status(cmd->sk, cmd->index, cmd->opcode, |
4846 | mgmt_status(status)); | 4847 | mgmt_status(status)); |
4847 | goto remove; | 4848 | goto remove; |
4848 | } | 4849 | } |
4849 | 4850 | ||
@@ -4886,17 +4887,17 @@ static int set_secure_conn(struct sock *sk, struct hci_dev *hdev, | |||
4886 | 4887 | ||
4887 | if (!lmp_sc_capable(hdev) && | 4888 | if (!lmp_sc_capable(hdev) && |
4888 | !test_bit(HCI_LE_ENABLED, &hdev->dev_flags)) | 4889 | !test_bit(HCI_LE_ENABLED, &hdev->dev_flags)) |
4889 | return cmd_status(sk, hdev->id, MGMT_OP_SET_SECURE_CONN, | 4890 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_SECURE_CONN, |
4890 | MGMT_STATUS_NOT_SUPPORTED); | 4891 | MGMT_STATUS_NOT_SUPPORTED); |
4891 | 4892 | ||
4892 | if (test_bit(HCI_BREDR_ENABLED, &hdev->dev_flags) && | 4893 | if (test_bit(HCI_BREDR_ENABLED, &hdev->dev_flags) && |
4893 | lmp_sc_capable(hdev) && | 4894 | lmp_sc_capable(hdev) && |
4894 | !test_bit(HCI_SSP_ENABLED, &hdev->dev_flags)) | 4895 | !test_bit(HCI_SSP_ENABLED, &hdev->dev_flags)) |
4895 | return cmd_status(sk, hdev->id, MGMT_OP_SET_SECURE_CONN, | 4896 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_SECURE_CONN, |
4896 | MGMT_STATUS_REJECTED); | 4897 | MGMT_STATUS_REJECTED); |
4897 | 4898 | ||
4898 | if (cp->val != 0x00 && cp->val != 0x01 && cp->val != 0x02) | 4899 | if (cp->val != 0x00 && cp->val != 0x01 && cp->val != 0x02) |
4899 | return cmd_status(sk, hdev->id, MGMT_OP_SET_SECURE_CONN, | 4900 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_SECURE_CONN, |
4900 | MGMT_STATUS_INVALID_PARAMS); | 4901 | MGMT_STATUS_INVALID_PARAMS); |
4901 | 4902 | ||
4902 | hci_dev_lock(hdev); | 4903 | hci_dev_lock(hdev); |
@@ -4929,8 +4930,8 @@ static int set_secure_conn(struct sock *sk, struct hci_dev *hdev, | |||
4929 | } | 4930 | } |
4930 | 4931 | ||
4931 | if (mgmt_pending_find(MGMT_OP_SET_SECURE_CONN, hdev)) { | 4932 | if (mgmt_pending_find(MGMT_OP_SET_SECURE_CONN, hdev)) { |
4932 | err = cmd_status(sk, hdev->id, MGMT_OP_SET_SECURE_CONN, | 4933 | err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_SECURE_CONN, |
4933 | MGMT_STATUS_BUSY); | 4934 | MGMT_STATUS_BUSY); |
4934 | goto failed; | 4935 | goto failed; |
4935 | } | 4936 | } |
4936 | 4937 | ||
@@ -4971,8 +4972,8 @@ static int set_debug_keys(struct sock *sk, struct hci_dev *hdev, | |||
4971 | BT_DBG("request for %s", hdev->name); | 4972 | BT_DBG("request for %s", hdev->name); |
4972 | 4973 | ||
4973 | if (cp->val != 0x00 && cp->val != 0x01 && cp->val != 0x02) | 4974 | if (cp->val != 0x00 && cp->val != 0x01 && cp->val != 0x02) |
4974 | return cmd_status(sk, hdev->id, MGMT_OP_SET_DEBUG_KEYS, | 4975 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_DEBUG_KEYS, |
4975 | MGMT_STATUS_INVALID_PARAMS); | 4976 | MGMT_STATUS_INVALID_PARAMS); |
4976 | 4977 | ||
4977 | hci_dev_lock(hdev); | 4978 | hci_dev_lock(hdev); |
4978 | 4979 | ||
@@ -5019,16 +5020,16 @@ static int set_privacy(struct sock *sk, struct hci_dev *hdev, void *cp_data, | |||
5019 | BT_DBG("request for %s", hdev->name); | 5020 | BT_DBG("request for %s", hdev->name); |
5020 | 5021 | ||
5021 | if (!lmp_le_capable(hdev)) | 5022 | if (!lmp_le_capable(hdev)) |
5022 | return cmd_status(sk, hdev->id, MGMT_OP_SET_PRIVACY, | 5023 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_PRIVACY, |
5023 | MGMT_STATUS_NOT_SUPPORTED); | 5024 | MGMT_STATUS_NOT_SUPPORTED); |
5024 | 5025 | ||
5025 | if (cp->privacy != 0x00 && cp->privacy != 0x01) | 5026 | if (cp->privacy != 0x00 && cp->privacy != 0x01) |
5026 | return cmd_status(sk, hdev->id, MGMT_OP_SET_PRIVACY, | 5027 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_PRIVACY, |
5027 | MGMT_STATUS_INVALID_PARAMS); | 5028 | MGMT_STATUS_INVALID_PARAMS); |
5028 | 5029 | ||
5029 | if (hdev_is_powered(hdev)) | 5030 | if (hdev_is_powered(hdev)) |
5030 | return cmd_status(sk, hdev->id, MGMT_OP_SET_PRIVACY, | 5031 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_PRIVACY, |
5031 | MGMT_STATUS_REJECTED); | 5032 | MGMT_STATUS_REJECTED); |
5032 | 5033 | ||
5033 | hci_dev_lock(hdev); | 5034 | hci_dev_lock(hdev); |
5034 | 5035 | ||
@@ -5087,22 +5088,22 @@ static int load_irks(struct sock *sk, struct hci_dev *hdev, void *cp_data, | |||
5087 | BT_DBG("request for %s", hdev->name); | 5088 | BT_DBG("request for %s", hdev->name); |
5088 | 5089 | ||
5089 | if (!lmp_le_capable(hdev)) | 5090 | if (!lmp_le_capable(hdev)) |
5090 | return cmd_status(sk, hdev->id, MGMT_OP_LOAD_IRKS, | 5091 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_LOAD_IRKS, |
5091 | MGMT_STATUS_NOT_SUPPORTED); | 5092 | MGMT_STATUS_NOT_SUPPORTED); |
5092 | 5093 | ||
5093 | irk_count = __le16_to_cpu(cp->irk_count); | 5094 | irk_count = __le16_to_cpu(cp->irk_count); |
5094 | if (irk_count > max_irk_count) { | 5095 | if (irk_count > max_irk_count) { |
5095 | BT_ERR("load_irks: too big irk_count value %u", irk_count); | 5096 | BT_ERR("load_irks: too big irk_count value %u", irk_count); |
5096 | return cmd_status(sk, hdev->id, MGMT_OP_LOAD_IRKS, | 5097 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_LOAD_IRKS, |
5097 | MGMT_STATUS_INVALID_PARAMS); | 5098 | MGMT_STATUS_INVALID_PARAMS); |
5098 | } | 5099 | } |
5099 | 5100 | ||
5100 | expected_len = sizeof(*cp) + irk_count * sizeof(struct mgmt_irk_info); | 5101 | expected_len = sizeof(*cp) + irk_count * sizeof(struct mgmt_irk_info); |
5101 | if (expected_len != len) { | 5102 | if (expected_len != len) { |
5102 | BT_ERR("load_irks: expected %u bytes, got %u bytes", | 5103 | BT_ERR("load_irks: expected %u bytes, got %u bytes", |
5103 | expected_len, len); | 5104 | expected_len, len); |
5104 | return cmd_status(sk, hdev->id, MGMT_OP_LOAD_IRKS, | 5105 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_LOAD_IRKS, |
5105 | MGMT_STATUS_INVALID_PARAMS); | 5106 | MGMT_STATUS_INVALID_PARAMS); |
5106 | } | 5107 | } |
5107 | 5108 | ||
5108 | BT_DBG("%s irk_count %u", hdev->name, irk_count); | 5109 | BT_DBG("%s irk_count %u", hdev->name, irk_count); |
@@ -5111,9 +5112,9 @@ static int load_irks(struct sock *sk, struct hci_dev *hdev, void *cp_data, | |||
5111 | struct mgmt_irk_info *key = &cp->irks[i]; | 5112 | struct mgmt_irk_info *key = &cp->irks[i]; |
5112 | 5113 | ||
5113 | if (!irk_is_valid(key)) | 5114 | if (!irk_is_valid(key)) |
5114 | return cmd_status(sk, hdev->id, | 5115 | return mgmt_cmd_status(sk, hdev->id, |
5115 | MGMT_OP_LOAD_IRKS, | 5116 | MGMT_OP_LOAD_IRKS, |
5116 | MGMT_STATUS_INVALID_PARAMS); | 5117 | MGMT_STATUS_INVALID_PARAMS); |
5117 | } | 5118 | } |
5118 | 5119 | ||
5119 | hci_dev_lock(hdev); | 5120 | hci_dev_lock(hdev); |
@@ -5173,14 +5174,14 @@ static int load_long_term_keys(struct sock *sk, struct hci_dev *hdev, | |||
5173 | BT_DBG("request for %s", hdev->name); | 5174 | BT_DBG("request for %s", hdev->name); |
5174 | 5175 | ||
5175 | if (!lmp_le_capable(hdev)) | 5176 | if (!lmp_le_capable(hdev)) |
5176 | return cmd_status(sk, hdev->id, MGMT_OP_LOAD_LONG_TERM_KEYS, | 5177 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_LOAD_LONG_TERM_KEYS, |
5177 | MGMT_STATUS_NOT_SUPPORTED); | 5178 | MGMT_STATUS_NOT_SUPPORTED); |
5178 | 5179 | ||
5179 | key_count = __le16_to_cpu(cp->key_count); | 5180 | key_count = __le16_to_cpu(cp->key_count); |
5180 | if (key_count > max_key_count) { | 5181 | if (key_count > max_key_count) { |
5181 | BT_ERR("load_ltks: too big key_count value %u", key_count); | 5182 | BT_ERR("load_ltks: too big key_count value %u", key_count); |
5182 | return cmd_status(sk, hdev->id, MGMT_OP_LOAD_LONG_TERM_KEYS, | 5183 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_LOAD_LONG_TERM_KEYS, |
5183 | MGMT_STATUS_INVALID_PARAMS); | 5184 | MGMT_STATUS_INVALID_PARAMS); |
5184 | } | 5185 | } |
5185 | 5186 | ||
5186 | expected_len = sizeof(*cp) + key_count * | 5187 | expected_len = sizeof(*cp) + key_count * |
@@ -5188,8 +5189,8 @@ static int load_long_term_keys(struct sock *sk, struct hci_dev *hdev, | |||
5188 | if (expected_len != len) { | 5189 | if (expected_len != len) { |
5189 | BT_ERR("load_keys: expected %u bytes, got %u bytes", | 5190 | BT_ERR("load_keys: expected %u bytes, got %u bytes", |
5190 | expected_len, len); | 5191 | expected_len, len); |
5191 | return cmd_status(sk, hdev->id, MGMT_OP_LOAD_LONG_TERM_KEYS, | 5192 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_LOAD_LONG_TERM_KEYS, |
5192 | MGMT_STATUS_INVALID_PARAMS); | 5193 | MGMT_STATUS_INVALID_PARAMS); |
5193 | } | 5194 | } |
5194 | 5195 | ||
5195 | BT_DBG("%s key_count %u", hdev->name, key_count); | 5196 | BT_DBG("%s key_count %u", hdev->name, key_count); |
@@ -5198,9 +5199,9 @@ static int load_long_term_keys(struct sock *sk, struct hci_dev *hdev, | |||
5198 | struct mgmt_ltk_info *key = &cp->keys[i]; | 5199 | struct mgmt_ltk_info *key = &cp->keys[i]; |
5199 | 5200 | ||
5200 | if (!ltk_is_valid(key)) | 5201 | if (!ltk_is_valid(key)) |
5201 | return cmd_status(sk, hdev->id, | 5202 | return mgmt_cmd_status(sk, hdev->id, |
5202 | MGMT_OP_LOAD_LONG_TERM_KEYS, | 5203 | MGMT_OP_LOAD_LONG_TERM_KEYS, |
5203 | MGMT_STATUS_INVALID_PARAMS); | 5204 | MGMT_STATUS_INVALID_PARAMS); |
5204 | } | 5205 | } |
5205 | 5206 | ||
5206 | hci_dev_lock(hdev); | 5207 | hci_dev_lock(hdev); |
@@ -5945,15 +5946,15 @@ static int load_conn_param(struct sock *sk, struct hci_dev *hdev, void *data, | |||
5945 | int i; | 5946 | int i; |
5946 | 5947 | ||
5947 | if (!lmp_le_capable(hdev)) | 5948 | if (!lmp_le_capable(hdev)) |
5948 | return cmd_status(sk, hdev->id, MGMT_OP_LOAD_CONN_PARAM, | 5949 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_LOAD_CONN_PARAM, |
5949 | MGMT_STATUS_NOT_SUPPORTED); | 5950 | MGMT_STATUS_NOT_SUPPORTED); |
5950 | 5951 | ||
5951 | param_count = __le16_to_cpu(cp->param_count); | 5952 | param_count = __le16_to_cpu(cp->param_count); |
5952 | if (param_count > max_param_count) { | 5953 | if (param_count > max_param_count) { |
5953 | BT_ERR("load_conn_param: too big param_count value %u", | 5954 | BT_ERR("load_conn_param: too big param_count value %u", |
5954 | param_count); | 5955 | param_count); |
5955 | return cmd_status(sk, hdev->id, MGMT_OP_LOAD_CONN_PARAM, | 5956 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_LOAD_CONN_PARAM, |
5956 | MGMT_STATUS_INVALID_PARAMS); | 5957 | MGMT_STATUS_INVALID_PARAMS); |
5957 | } | 5958 | } |
5958 | 5959 | ||
5959 | expected_len = sizeof(*cp) + param_count * | 5960 | expected_len = sizeof(*cp) + param_count * |
@@ -5961,8 +5962,8 @@ static int load_conn_param(struct sock *sk, struct hci_dev *hdev, void *data, | |||
5961 | if (expected_len != len) { | 5962 | if (expected_len != len) { |
5962 | BT_ERR("load_conn_param: expected %u bytes, got %u bytes", | 5963 | BT_ERR("load_conn_param: expected %u bytes, got %u bytes", |
5963 | expected_len, len); | 5964 | expected_len, len); |
5964 | return cmd_status(sk, hdev->id, MGMT_OP_LOAD_CONN_PARAM, | 5965 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_LOAD_CONN_PARAM, |
5965 | MGMT_STATUS_INVALID_PARAMS); | 5966 | MGMT_STATUS_INVALID_PARAMS); |
5966 | } | 5967 | } |
5967 | 5968 | ||
5968 | BT_DBG("%s param_count %u", hdev->name, param_count); | 5969 | BT_DBG("%s param_count %u", hdev->name, param_count); |
@@ -6030,16 +6031,16 @@ static int set_external_config(struct sock *sk, struct hci_dev *hdev, | |||
6030 | BT_DBG("%s", hdev->name); | 6031 | BT_DBG("%s", hdev->name); |
6031 | 6032 | ||
6032 | if (hdev_is_powered(hdev)) | 6033 | if (hdev_is_powered(hdev)) |
6033 | return cmd_status(sk, hdev->id, MGMT_OP_SET_EXTERNAL_CONFIG, | 6034 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_EXTERNAL_CONFIG, |
6034 | MGMT_STATUS_REJECTED); | 6035 | MGMT_STATUS_REJECTED); |
6035 | 6036 | ||
6036 | if (cp->config != 0x00 && cp->config != 0x01) | 6037 | if (cp->config != 0x00 && cp->config != 0x01) |
6037 | return cmd_status(sk, hdev->id, MGMT_OP_SET_EXTERNAL_CONFIG, | 6038 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_EXTERNAL_CONFIG, |
6038 | MGMT_STATUS_INVALID_PARAMS); | 6039 | MGMT_STATUS_INVALID_PARAMS); |
6039 | 6040 | ||
6040 | if (!test_bit(HCI_QUIRK_EXTERNAL_CONFIG, &hdev->quirks)) | 6041 | if (!test_bit(HCI_QUIRK_EXTERNAL_CONFIG, &hdev->quirks)) |
6041 | return cmd_status(sk, hdev->id, MGMT_OP_SET_EXTERNAL_CONFIG, | 6042 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_EXTERNAL_CONFIG, |
6042 | MGMT_STATUS_NOT_SUPPORTED); | 6043 | MGMT_STATUS_NOT_SUPPORTED); |
6043 | 6044 | ||
6044 | hci_dev_lock(hdev); | 6045 | hci_dev_lock(hdev); |
6045 | 6046 | ||
@@ -6088,16 +6089,16 @@ static int set_public_address(struct sock *sk, struct hci_dev *hdev, | |||
6088 | BT_DBG("%s", hdev->name); | 6089 | BT_DBG("%s", hdev->name); |
6089 | 6090 | ||
6090 | if (hdev_is_powered(hdev)) | 6091 | if (hdev_is_powered(hdev)) |
6091 | return cmd_status(sk, hdev->id, MGMT_OP_SET_PUBLIC_ADDRESS, | 6092 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_PUBLIC_ADDRESS, |
6092 | MGMT_STATUS_REJECTED); | 6093 | MGMT_STATUS_REJECTED); |
6093 | 6094 | ||
6094 | if (!bacmp(&cp->bdaddr, BDADDR_ANY)) | 6095 | if (!bacmp(&cp->bdaddr, BDADDR_ANY)) |
6095 | return cmd_status(sk, hdev->id, MGMT_OP_SET_PUBLIC_ADDRESS, | 6096 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_PUBLIC_ADDRESS, |
6096 | MGMT_STATUS_INVALID_PARAMS); | 6097 | MGMT_STATUS_INVALID_PARAMS); |
6097 | 6098 | ||
6098 | if (!hdev->set_bdaddr) | 6099 | if (!hdev->set_bdaddr) |
6099 | return cmd_status(sk, hdev->id, MGMT_OP_SET_PUBLIC_ADDRESS, | 6100 | return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_PUBLIC_ADDRESS, |
6100 | MGMT_STATUS_NOT_SUPPORTED); | 6101 | MGMT_STATUS_NOT_SUPPORTED); |
6101 | 6102 | ||
6102 | hci_dev_lock(hdev); | 6103 | hci_dev_lock(hdev); |
6103 | 6104 | ||
@@ -6244,8 +6245,8 @@ int mgmt_control(struct hci_mgmt_chan *chan, struct sock *sk, | |||
6244 | if (opcode >= chan->handler_count || | 6245 | if (opcode >= chan->handler_count || |
6245 | chan->handlers[opcode].func == NULL) { | 6246 | chan->handlers[opcode].func == NULL) { |
6246 | BT_DBG("Unknown op %u", opcode); | 6247 | BT_DBG("Unknown op %u", opcode); |
6247 | err = cmd_status(sk, index, opcode, | 6248 | err = mgmt_cmd_status(sk, index, opcode, |
6248 | MGMT_STATUS_UNKNOWN_COMMAND); | 6249 | MGMT_STATUS_UNKNOWN_COMMAND); |
6249 | goto done; | 6250 | goto done; |
6250 | } | 6251 | } |
6251 | 6252 | ||
@@ -6254,39 +6255,39 @@ int mgmt_control(struct hci_mgmt_chan *chan, struct sock *sk, | |||
6254 | if (index != MGMT_INDEX_NONE) { | 6255 | if (index != MGMT_INDEX_NONE) { |
6255 | hdev = hci_dev_get(index); | 6256 | hdev = hci_dev_get(index); |
6256 | if (!hdev) { | 6257 | if (!hdev) { |
6257 | err = cmd_status(sk, index, opcode, | 6258 | err = mgmt_cmd_status(sk, index, opcode, |
6258 | MGMT_STATUS_INVALID_INDEX); | 6259 | MGMT_STATUS_INVALID_INDEX); |
6259 | goto done; | 6260 | goto done; |
6260 | } | 6261 | } |
6261 | 6262 | ||
6262 | if (test_bit(HCI_SETUP, &hdev->dev_flags) || | 6263 | if (test_bit(HCI_SETUP, &hdev->dev_flags) || |
6263 | test_bit(HCI_CONFIG, &hdev->dev_flags) || | 6264 | test_bit(HCI_CONFIG, &hdev->dev_flags) || |
6264 | test_bit(HCI_USER_CHANNEL, &hdev->dev_flags)) { | 6265 | test_bit(HCI_USER_CHANNEL, &hdev->dev_flags)) { |
6265 | err = cmd_status(sk, index, opcode, | 6266 | err = mgmt_cmd_status(sk, index, opcode, |
6266 | MGMT_STATUS_INVALID_INDEX); | 6267 | MGMT_STATUS_INVALID_INDEX); |
6267 | goto done; | 6268 | goto done; |
6268 | } | 6269 | } |
6269 | 6270 | ||
6270 | if (test_bit(HCI_UNCONFIGURED, &hdev->dev_flags) && | 6271 | if (test_bit(HCI_UNCONFIGURED, &hdev->dev_flags) && |
6271 | !(handler->flags & HCI_MGMT_UNCONFIGURED)) { | 6272 | !(handler->flags & HCI_MGMT_UNCONFIGURED)) { |
6272 | err = cmd_status(sk, index, opcode, | 6273 | err = mgmt_cmd_status(sk, index, opcode, |
6273 | MGMT_STATUS_INVALID_INDEX); | 6274 | MGMT_STATUS_INVALID_INDEX); |
6274 | goto done; | 6275 | goto done; |
6275 | } | 6276 | } |
6276 | } | 6277 | } |
6277 | 6278 | ||
6278 | no_hdev = (handler->flags & HCI_MGMT_NO_HDEV); | 6279 | no_hdev = (handler->flags & HCI_MGMT_NO_HDEV); |
6279 | if (no_hdev != !hdev) { | 6280 | if (no_hdev != !hdev) { |
6280 | err = cmd_status(sk, index, opcode, | 6281 | err = mgmt_cmd_status(sk, index, opcode, |
6281 | MGMT_STATUS_INVALID_INDEX); | 6282 | MGMT_STATUS_INVALID_INDEX); |
6282 | goto done; | 6283 | goto done; |
6283 | } | 6284 | } |
6284 | 6285 | ||
6285 | var_len = (handler->flags & HCI_MGMT_VAR_LEN); | 6286 | var_len = (handler->flags & HCI_MGMT_VAR_LEN); |
6286 | if ((var_len && len < handler->data_len) || | 6287 | if ((var_len && len < handler->data_len) || |
6287 | (!var_len && len != handler->data_len)) { | 6288 | (!var_len && len != handler->data_len)) { |
6288 | err = cmd_status(sk, index, opcode, | 6289 | err = mgmt_cmd_status(sk, index, opcode, |
6289 | MGMT_STATUS_INVALID_PARAMS); | 6290 | MGMT_STATUS_INVALID_PARAMS); |
6290 | goto done; | 6291 | goto done; |
6291 | } | 6292 | } |
6292 | 6293 | ||
@@ -6526,7 +6527,7 @@ void mgmt_set_powered_failed(struct hci_dev *hdev, int err) | |||
6526 | else | 6527 | else |
6527 | status = MGMT_STATUS_FAILED; | 6528 | status = MGMT_STATUS_FAILED; |
6528 | 6529 | ||
6529 | cmd_status(cmd->sk, hdev->id, MGMT_OP_SET_POWERED, status); | 6530 | mgmt_cmd_status(cmd->sk, hdev->id, MGMT_OP_SET_POWERED, status); |
6530 | 6531 | ||
6531 | mgmt_pending_remove(cmd); | 6532 | mgmt_pending_remove(cmd); |
6532 | } | 6533 | } |
@@ -7201,8 +7202,8 @@ void mgmt_read_local_oob_data_complete(struct hci_dev *hdev, u8 *hash192, | |||
7201 | return; | 7202 | return; |
7202 | 7203 | ||
7203 | if (status) { | 7204 | if (status) { |
7204 | cmd_status(cmd->sk, hdev->id, MGMT_OP_READ_LOCAL_OOB_DATA, | 7205 | mgmt_cmd_status(cmd->sk, hdev->id, MGMT_OP_READ_LOCAL_OOB_DATA, |
7205 | mgmt_status(status)); | 7206 | mgmt_status(status)); |
7206 | } else { | 7207 | } else { |
7207 | struct mgmt_rp_read_local_oob_data rp; | 7208 | struct mgmt_rp_read_local_oob_data rp; |
7208 | size_t rp_size = sizeof(rp); | 7209 | size_t rp_size = sizeof(rp); |