[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:
committed by
David S. Miller
parent
2eb25a6c34
commit
0d48d93947
@@ -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;
|
||||
|
Reference in New Issue
Block a user