bluetooth: hci_bcsp.c small cleanups
PATCH 1/1 bluetooth: hci_bcsp.c small cleanups
Use the get_unaligned_be16 to get the crc from the packet, create a small helper function for this.
Fix a shadowed variable sparse warning:drivers/bluetooth/hci_bcsp.c:218:26: warning: symbol 'hdr' shadows an earlier one drivers/bluetooth/hci_bcsp.c:187:5: originally declared here
Signed-off-by Harvey Harrison <[email protected]>
--- drivers/bluetooth/hci_bcsp.c | 18 ++++++++++-------- 1 files changed, 10 insertions(+), 8 deletions(-)
drivers/bluetooth/hci_bcsp.c +10 -8
@@ -40,6 +40,7 @@#include <linux/ioctl.h> #include <linux/skbuff.h> #include <linux/bitrev.h> +#include <asm/unaligned.h> #include <net/bluetooth/bluetooth.h> #include <net/bluetooth/hci_core.h>
@@ -215,10 +216,10 @@ static struct sk_buff *bcsp_prepare_pkt(struct bcsp_struct *bcsp, u8 *data, }if (hciextn && chan ==5 ) { -struct hci_command_hdr *hdr = (struct hci_command_hdr *) data; +__le16 opcode = ((struct hci_command_hdr *)data)->opcode;/* Vendor specific commands */ -if (hci_opcode_ogf (__le16_to_cpu (hdr->opcode)) ==0x3f ) { +if (hci_opcode_ogf (__le16_to_cpu (opcode)) ==0x3f ) {u8 desc = *(data +HCI_COMMAND_HDR_SIZE );if ((desc &0xf0 ) ==0xc0 ) { data +=HCI_COMMAND_HDR_SIZE +1 ;
@@ -546,6 +547,11 @@ static void bcsp_complete_rx_pkt(struct hci_uart *hu) bcsp->rx_skb =NULL ; } +static u16 bscp_get_crc (struct bcsp_struct *bcsp) +{ +return get_unaligned_be16 (&bcsp->rx_skb->data[bcsp->rx_skb->len -2 ]); +} +/* Recv data */ static int bcsp_recv (struct hci_uart *hu,void *data,int count) {
@@ -604,14 +610,10 @@ static int bcsp_recv(struct hci_uart *hu, void *data, int count)continue ;case BCSP_W4_CRC : -if (bitrev16 (bcsp->message_crc) != - (bcsp->rx_skb->data[bcsp->rx_skb->len -2 ] <<8 ) + - bcsp->rx_skb->data[bcsp->rx_skb->len -1 ]) { - +if (bitrev16 (bcsp->message_crc) !=bscp_get_crc (bcsp)) {BT_ERR ("Checksum failed: computed %04x received %04x" ,bitrev16 (bcsp->message_crc), - (bcsp->rx_skb-> data[bcsp->rx_skb->len -2 ] <<8 ) + - bcsp->rx_skb->data[bcsp->rx_skb->len -1 ]); +bscp_get_crc (bcsp));kfree_skb (bcsp->rx_skb); bcsp->rx_state =BCSP_W4_PKT_DELIMITER ;
Signature · 1 line
1.5.6.rc0.336.ge5422