Search Linux Wireless

Re: [PATCH v6 2/4] Bluetooth: btmrvl: get rid of struct btmrvl_cmd

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Bing,

> Replace this proprietary structure with the standard one
> (struct hci_command_hdr).
> 
> Signed-off-by: Amitkumar Karwar <akarwar@xxxxxxxxxxx>
> Signed-off-by: Bing Zhao <bzhao@xxxxxxxxxxx>
> ---
> v6: remove proprietary struct btmrvl_cmd
> 
> drivers/bluetooth/btmrvl_drv.h  |  6 ------
> drivers/bluetooth/btmrvl_main.c | 12 ++++++------
> 2 files changed, 6 insertions(+), 12 deletions(-)
> 
> diff --git a/drivers/bluetooth/btmrvl_drv.h b/drivers/bluetooth/btmrvl_drv.h
> index 27068d1..42f7028 100644
> --- a/drivers/bluetooth/btmrvl_drv.h
> +++ b/drivers/bluetooth/btmrvl_drv.h
> @@ -116,12 +116,6 @@ struct btmrvl_private {
> #define PS_SLEEP			0x01
> #define PS_AWAKE			0x00
> 
> -struct btmrvl_cmd {
> -	__le16 ocf_ogf;
> -	u8 length;
> -	u8 data[4];
> -} __packed;
> -
> struct btmrvl_event {
> 	u8 ec;		/* event counter */
> 	u8 length;
> diff --git a/drivers/bluetooth/btmrvl_main.c b/drivers/bluetooth/btmrvl_main.c
> index d9d4229..a4da7c8 100644
> --- a/drivers/bluetooth/btmrvl_main.c
> +++ b/drivers/bluetooth/btmrvl_main.c
> @@ -170,20 +170,20 @@ static int btmrvl_send_sync_cmd(struct btmrvl_private *priv, u16 cmd_no,
> 				const void *param, u8 len)
> {
> 	struct sk_buff *skb;
> -	struct btmrvl_cmd *cmd;
> +	struct hci_command_hdr *hdr;
> 
> -	skb = bt_skb_alloc(sizeof(*cmd), GFP_ATOMIC);
> +	skb = bt_skb_alloc(HCI_COMMAND_HDR_SIZE + len, GFP_ATOMIC);
> 	if (skb == NULL) {
> 		BT_ERR("No free skb");
> 		return -ENOMEM;
> 	}
> 
> -	cmd = (struct btmrvl_cmd *) skb_put(skb, sizeof(*cmd));
> -	cmd->ocf_ogf = cpu_to_le16(hci_opcode_pack(OGF, cmd_no));
> -	cmd->length = len;
> +	hdr = (struct hci_command_hdr *)skb_put(skb, HCI_COMMAND_HDR_SIZE);
> +	hdr->opcode = cpu_to_le16(hci_opcode_pack(OGF, cmd_no));
> +	hdr->plen = len;

I like this change a lot since it makes the code much simpler. Now if you would also just use the full 16-bit opcode instead of this pack function it would become dead simple. Especially then you can use __constant_cpu_to_le16.

Regards

Marcel

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux