Re: [PATCH v1] Bluetooth:btintel: Do no pass vendor events to stack

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

 



Hi Kiran,

On Mon, Oct 14, 2024 at 4:41 AM Kiran K <kiran.k@xxxxxxxxx> wrote:
>
> During firmware download, vendor specific events like boot up and
> secure send result are generated. These events can be safely processed at
> the driver level. Passing on these events to stack prints unnecessary
> below warning log.
>
> --
> Bluetooth: hci0: Malformed MSFT vendor event: 0x02
> --
>
> Signed-off-by: Kiran K <kiran.k@xxxxxxxxx>

We need the Fixes tag.

> ---
>  drivers/bluetooth/btintel.c      | 6 ++++--
>  drivers/bluetooth/btintel_pcie.c | 9 ++++++---
>  2 files changed, 10 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/bluetooth/btintel.c b/drivers/bluetooth/btintel.c
> index 432f723e3869..652a5595fb16 100644
> --- a/drivers/bluetooth/btintel.c
> +++ b/drivers/bluetooth/btintel.c
> @@ -3383,7 +3383,8 @@ int btintel_recv_event(struct hci_dev *hdev, struct sk_buff *skb)
>                                  * indicating that the bootup completed.
>                                  */
>                                 btintel_bootup(hdev, ptr, len);
> -                               break;
> +                               kfree_skb(skb);
> +                               return 0;
>                         case 0x06:
>                                 /* When the firmware loading completes the
>                                  * device sends out a vendor specific event
> @@ -3391,7 +3392,8 @@ int btintel_recv_event(struct hci_dev *hdev, struct sk_buff *skb)
>                                  * loading.
>                                  */
>                                 btintel_secure_send_result(hdev, ptr, len);
> -                               break;
> +                               kfree_skb(skb);
> +                               return 0;

Perhaps we should have a common way to drop the skb e.g. goto drop.

>                         }
>                 }
>
> diff --git a/drivers/bluetooth/btintel_pcie.c b/drivers/bluetooth/btintel_pcie.c
> index d581a539d439..b2eeb6838247 100644
> --- a/drivers/bluetooth/btintel_pcie.c
> +++ b/drivers/bluetooth/btintel_pcie.c
> @@ -551,7 +551,8 @@ static int btintel_pcie_recv_event(struct hci_dev *hdev, struct sk_buff *skb)
>                                 if (btintel_pcie_in_op(data)) {
>                                         btintel_pcie_wr_sleep_cntrl(data, BTINTEL_PCIE_STATE_D0);
>                                         data->alive_intr_ctxt = BTINTEL_PCIE_INTEL_HCI_RESET2;
> -                                       break;
> +                                       kfree_skb(skb);
> +                                       return 0;
>                                 }
>
>                                 if (btintel_pcie_in_iml(data)) {
> @@ -568,7 +569,8 @@ static int btintel_pcie_recv_event(struct hci_dev *hdev, struct sk_buff *skb)
>                                                 btintel_wake_up_flag(data->hdev,
>                                                                      INTEL_WAIT_FOR_D0);
>                                 }
> -                               break;
> +                               kfree_skb(skb);
> +                               return 0;
>                         case 0x06:
>                                 /* When the firmware loading completes the
>                                  * device sends out a vendor specific event
> @@ -576,7 +578,8 @@ static int btintel_pcie_recv_event(struct hci_dev *hdev, struct sk_buff *skb)
>                                  * loading.
>                                  */
>                                 btintel_secure_send_result(hdev, ptr, len);
> -                               break;
> +                               kfree_skb(skb);
> +                               return 0;

Ditto.

>                         }
>                 }
>
> --
> 2.40.1
>
>


-- 
Luiz Augusto von Dentz





[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux