aboutsummaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2015-04-07 11:47:52 -0400
committerDavid S. Miller <davem@davemloft.net>2015-04-07 11:47:52 -0400
commit7abccdba25be45630eede85053496f1f48d36ec8 (patch)
treefd87c8b84b1c5fa2f5d1cc9ba36d33855f2a0a6b /include/net
parentc85d6975ef923cffdd56de3e0e6aba0977282cff (diff)
parent38c8af60046edab4c9db5f26e79746b1bd52c837 (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.h23
-rw-r--r--include/net/bluetooth/hci_core.h7
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
274struct hci_dev; 277struct hci_dev;
275 278
276typedef void (*hci_req_complete_t)(struct hci_dev *hdev, u8 status, u16 opcode); 279typedef void (*hci_req_complete_t)(struct hci_dev *hdev, u8 status, u16 opcode);
280typedef void (*hci_req_complete_skb_t)(struct hci_dev *hdev, u8 status,
281 u16 opcode, struct sk_buff *skb);
282
283struct 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
278struct bt_skb_cb { 290struct 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,
1284int hci_register_cb(struct hci_cb *hcb); 1284int hci_register_cb(struct hci_cb *hcb);
1285int hci_unregister_cb(struct hci_cb *hcb); 1285int hci_unregister_cb(struct hci_cb *hcb);
1286 1286
1287bool hci_req_pending(struct hci_dev *hdev);
1288
1289struct sk_buff *__hci_cmd_sync(struct hci_dev *hdev, u16 opcode, u32 plen, 1287struct 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);
1291struct sk_buff *__hci_cmd_sync_ev(struct hci_dev *hdev, u16 opcode, u32 plen, 1289struct 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);
1393void mgmt_set_class_of_dev_complete(struct hci_dev *hdev, u8 *dev_class, 1391void mgmt_set_class_of_dev_complete(struct hci_dev *hdev, u8 *dev_class,
1394 u8 status); 1392 u8 status);
1395void mgmt_set_local_name_complete(struct hci_dev *hdev, u8 *name, u8 status); 1393void mgmt_set_local_name_complete(struct hci_dev *hdev, u8 *name, u8 status);
1396void mgmt_read_local_oob_data_complete(struct hci_dev *hdev, u8 *hash192,
1397 u8 *rand192, u8 *hash256, u8 *rand256,
1398 u8 status);
1399void mgmt_device_found(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 link_type, 1394void 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);