aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/bluetooth
diff options
context:
space:
mode:
authorJohan Hedberg <johan.hedberg@intel.com>2015-03-30 23:21:02 +0300
committerMarcel Holtmann <marcel@holtmann.org>2015-03-30 23:20:53 +0200
commitdb6e3e8d016823c6b0f773c70a69ce65807d8a44 (patch)
tree89201941c7f39ed13d843de4c65ce8ab230e702e /include/net/bluetooth
parentBluetooth: Refactor L2CAP variables into l2cap_ctrl (diff)
downloadlinux-dev-db6e3e8d016823c6b0f773c70a69ce65807d8a44.tar.xz
linux-dev-db6e3e8d016823c6b0f773c70a69ce65807d8a44.zip
Bluetooth: Refactor HCI request variables into own struct
In order to shrink the size of bt_skb_cb, this patch moves the HCI request related variables into their own req_ctrl struct. Additionall the L2CAP and HCI request structs are placed inside the same union since they will never be used at the same time for the same skb. Signed-off-by: Johan Hedberg <johan.hedberg@intel.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'include/net/bluetooth')
-rw-r--r--include/net/bluetooth/bluetooth.h14
1 files changed, 10 insertions, 4 deletions
diff --git a/include/net/bluetooth/bluetooth.h b/include/net/bluetooth/bluetooth.h
index d8367cc7c76e..eeaff4b5cb62 100644
--- a/include/net/bluetooth/bluetooth.h
+++ b/include/net/bluetooth/bluetooth.h
@@ -278,16 +278,22 @@ struct hci_dev;
typedef void (*hci_req_complete_t)(struct hci_dev *hdev, u8 status, u16 opcode);
+struct req_ctrl {
+ bool start;
+ u8 event;
+ hci_req_complete_t complete;
+};
+
struct bt_skb_cb {
__u8 pkt_type;
__u8 force_active;
__u16 opcode;
__u16 expect;
__u8 incoming:1;
- __u8 req_start:1;
- u8 req_event;
- hci_req_complete_t req_complete;
- struct l2cap_ctrl l2cap;
+ union {
+ struct l2cap_ctrl l2cap;
+ struct req_ctrl req;
+ };
};
#define bt_cb(skb) ((struct bt_skb_cb *)((skb)->cb))