diff options
| author | David S. Miller <davem@davemloft.net> | 2015-04-07 11:47:52 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2015-04-07 11:47:52 -0400 |
| commit | 7abccdba25be45630eede85053496f1f48d36ec8 (patch) | |
| tree | fd87c8b84b1c5fa2f5d1cc9ba36d33855f2a0a6b /include/net | |
| parent | c85d6975ef923cffdd56de3e0e6aba0977282cff (diff) | |
| parent | 38c8af60046edab4c9db5f26e79746b1bd52c837 (diff) | |
Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next
Johan Hedberg says:
====================
pull request: bluetooth-next 2015-04-04
Here's what's probably the last bluetooth-next pull request for 4.1:
- Fixes for LE advertising data & advertising parameters
- Fix for race condition with HCI_RESET flag
- New BNEPGETSUPPFEAT ioctl, needed for certification
- New HCI request callback type to get the resulting skb
- Cleanups to use BIT() macro wherever possible
- Consolidate Broadcom device entries in the btusb HCI driver
- Check for valid flags in CMTP, HIDP & BNEP
- Disallow local privacy & OOB data combo to prevent a potential race
- Expose SMP & ECDH selftest results through debugfs
- Expose current Device ID info through debugfs
Please let me know if there are any issues pulling. Thanks.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net')
| -rw-r--r-- | include/net/bluetooth/bluetooth.h | 23 | ||||
| -rw-r--r-- | include/net/bluetooth/hci_core.h | 7 |
2 files changed, 17 insertions, 13 deletions
diff --git a/include/net/bluetooth/bluetooth.h b/include/net/bluetooth/bluetooth.h index 33a5e00025aa..7dba80546f16 100644 --- a/include/net/bluetooth/bluetooth.h +++ b/include/net/bluetooth/bluetooth.h | |||
| @@ -269,11 +269,23 @@ struct l2cap_ctrl { | |||
| 269 | __u16 reqseq; | 269 | __u16 reqseq; |
| 270 | __u16 txseq; | 270 | __u16 txseq; |
| 271 | __u8 retries; | 271 | __u8 retries; |
| 272 | __le16 psm; | ||
| 273 | bdaddr_t bdaddr; | ||
| 274 | struct l2cap_chan *chan; | ||
| 272 | }; | 275 | }; |
| 273 | 276 | ||
| 274 | struct hci_dev; | 277 | struct hci_dev; |
| 275 | 278 | ||
| 276 | typedef void (*hci_req_complete_t)(struct hci_dev *hdev, u8 status, u16 opcode); | 279 | typedef void (*hci_req_complete_t)(struct hci_dev *hdev, u8 status, u16 opcode); |
| 280 | typedef void (*hci_req_complete_skb_t)(struct hci_dev *hdev, u8 status, | ||
| 281 | u16 opcode, struct sk_buff *skb); | ||
| 282 | |||
| 283 | struct req_ctrl { | ||
| 284 | bool start; | ||
| 285 | u8 event; | ||
| 286 | hci_req_complete_t complete; | ||
| 287 | hci_req_complete_skb_t complete_skb; | ||
| 288 | }; | ||
| 277 | 289 | ||
| 278 | struct bt_skb_cb { | 290 | struct bt_skb_cb { |
| 279 | __u8 pkt_type; | 291 | __u8 pkt_type; |
| @@ -281,13 +293,10 @@ struct bt_skb_cb { | |||
| 281 | __u16 opcode; | 293 | __u16 opcode; |
| 282 | __u16 expect; | 294 | __u16 expect; |
| 283 | __u8 incoming:1; | 295 | __u8 incoming:1; |
| 284 | __u8 req_start:1; | 296 | union { |
| 285 | u8 req_event; | 297 | struct l2cap_ctrl l2cap; |
| 286 | hci_req_complete_t req_complete; | 298 | struct req_ctrl req; |
| 287 | struct l2cap_chan *chan; | 299 | }; |
| 288 | struct l2cap_ctrl control; | ||
| 289 | bdaddr_t bdaddr; | ||
| 290 | __le16 psm; | ||
| 291 | }; | 300 | }; |
| 292 | #define bt_cb(skb) ((struct bt_skb_cb *)((skb)->cb)) | 301 | #define bt_cb(skb) ((struct bt_skb_cb *)((skb)->cb)) |
| 293 | 302 | ||
diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h index 540c07feece7..93fd3e756b8a 100644 --- a/include/net/bluetooth/hci_core.h +++ b/include/net/bluetooth/hci_core.h | |||
| @@ -326,7 +326,6 @@ struct hci_dev { | |||
| 326 | struct sk_buff_head raw_q; | 326 | struct sk_buff_head raw_q; |
| 327 | struct sk_buff_head cmd_q; | 327 | struct sk_buff_head cmd_q; |
| 328 | 328 | ||
| 329 | struct sk_buff *recv_evt; | ||
| 330 | struct sk_buff *sent_cmd; | 329 | struct sk_buff *sent_cmd; |
| 331 | struct sk_buff *reassembly[NUM_REASSEMBLY]; | 330 | struct sk_buff *reassembly[NUM_REASSEMBLY]; |
| 332 | 331 | ||
| @@ -334,6 +333,7 @@ struct hci_dev { | |||
| 334 | wait_queue_head_t req_wait_q; | 333 | wait_queue_head_t req_wait_q; |
| 335 | __u32 req_status; | 334 | __u32 req_status; |
| 336 | __u32 req_result; | 335 | __u32 req_result; |
| 336 | struct sk_buff *req_skb; | ||
| 337 | 337 | ||
| 338 | void *smp_data; | 338 | void *smp_data; |
| 339 | void *smp_bredr_data; | 339 | void *smp_bredr_data; |
| @@ -1284,8 +1284,6 @@ static inline int hci_check_conn_params(u16 min, u16 max, u16 latency, | |||
| 1284 | int hci_register_cb(struct hci_cb *hcb); | 1284 | int hci_register_cb(struct hci_cb *hcb); |
| 1285 | int hci_unregister_cb(struct hci_cb *hcb); | 1285 | int hci_unregister_cb(struct hci_cb *hcb); |
| 1286 | 1286 | ||
| 1287 | bool hci_req_pending(struct hci_dev *hdev); | ||
| 1288 | |||
| 1289 | struct sk_buff *__hci_cmd_sync(struct hci_dev *hdev, u16 opcode, u32 plen, | 1287 | struct sk_buff *__hci_cmd_sync(struct hci_dev *hdev, u16 opcode, u32 plen, |
| 1290 | const void *param, u32 timeout); | 1288 | const void *param, u32 timeout); |
| 1291 | struct sk_buff *__hci_cmd_sync_ev(struct hci_dev *hdev, u16 opcode, u32 plen, | 1289 | struct sk_buff *__hci_cmd_sync_ev(struct hci_dev *hdev, u16 opcode, u32 plen, |
| @@ -1393,9 +1391,6 @@ void mgmt_ssp_enable_complete(struct hci_dev *hdev, u8 enable, u8 status); | |||
| 1393 | void mgmt_set_class_of_dev_complete(struct hci_dev *hdev, u8 *dev_class, | 1391 | void mgmt_set_class_of_dev_complete(struct hci_dev *hdev, u8 *dev_class, |
| 1394 | u8 status); | 1392 | u8 status); |
| 1395 | void mgmt_set_local_name_complete(struct hci_dev *hdev, u8 *name, u8 status); | 1393 | void mgmt_set_local_name_complete(struct hci_dev *hdev, u8 *name, u8 status); |
| 1396 | void mgmt_read_local_oob_data_complete(struct hci_dev *hdev, u8 *hash192, | ||
| 1397 | u8 *rand192, u8 *hash256, u8 *rand256, | ||
| 1398 | u8 status); | ||
| 1399 | void mgmt_device_found(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 link_type, | 1394 | void mgmt_device_found(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 link_type, |
| 1400 | u8 addr_type, u8 *dev_class, s8 rssi, u32 flags, | 1395 | u8 addr_type, u8 *dev_class, s8 rssi, u32 flags, |
| 1401 | u8 *eir, u16 eir_len, u8 *scan_rsp, u8 scan_rsp_len); | 1396 | u8 *eir, u16 eir_len, u8 *scan_rsp, u8 scan_rsp_len); |
