[Bluetooth]: Move packet type into the SKB control buffer

This patch moves the usage of packet type into the SKB control
buffer. After this patch it is now possible to shrink the sk_buff
structure and redefine its pkt_type.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Marcel Holtmann
2005-08-09 20:30:28 -07:00
committed by David S. Miller
parent 2eb25a6c34
commit 0d48d93947
15 changed files with 96 additions and 92 deletions

View File

@@ -107,7 +107,7 @@ static int vhci_send_frame(struct sk_buff *skb)
vhci = hdev->driver_data;
memcpy(skb_push(skb, 1), &skb->pkt_type, 1);
memcpy(skb_push(skb, 1), &bt_cb(skb)->pkt_type, 1);
skb_queue_tail(&vhci->readq, skb);
if (vhci->flags & VHCI_FASYNC)
@@ -141,7 +141,7 @@ static inline ssize_t vhci_get_user(struct vhci_data *vhci,
}
skb->dev = (void *) vhci->hdev;
skb->pkt_type = *((__u8 *) skb->data);
bt_cb(skb)->pkt_type = *((__u8 *) skb->data);
skb_pull(skb, 1);
hci_recv_frame(skb);
@@ -164,18 +164,18 @@ static inline ssize_t vhci_put_user(struct vhci_data *vhci,
vhci->hdev->stat.byte_tx += len;
switch (skb->pkt_type) {
case HCI_COMMAND_PKT:
vhci->hdev->stat.cmd_tx++;
break;
switch (bt_cb(skb)->pkt_type) {
case HCI_COMMAND_PKT:
vhci->hdev->stat.cmd_tx++;
break;
case HCI_ACLDATA_PKT:
vhci->hdev->stat.acl_tx++;
break;
case HCI_ACLDATA_PKT:
vhci->hdev->stat.acl_tx++;
break;
case HCI_SCODATA_PKT:
vhci->hdev->stat.cmd_tx++;
break;
case HCI_SCODATA_PKT:
vhci->hdev->stat.cmd_tx++;
break;
};
return total;