diff mbox series

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

Message ID 20241014085602.711258-1-kiran.k@intel.com
State Superseded
Headers show
Series [v1] Bluetooth:btintel: Do no pass vendor events to stack | expand

Commit Message

Kiran K Oct. 14, 2024, 8:56 a.m. UTC
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@intel.com>
---
 drivers/bluetooth/btintel.c      | 6 ++++--
 drivers/bluetooth/btintel_pcie.c | 9 ++++++---
 2 files changed, 10 insertions(+), 5 deletions(-)

Comments

Luiz Augusto von Dentz Oct. 16, 2024, 3:52 p.m. UTC | #1
Hi Kiran,

On Mon, Oct 14, 2024 at 4:41 AM Kiran K <kiran.k@intel.com> 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@intel.com>

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
>
>
Kiran K Oct. 17, 2024, 9:58 a.m. UTC | #2
Hi Luiz,

>Subject: Re: [PATCH v1] Bluetooth:btintel: Do no pass vendor events to stack
>
>Hi Kiran,
>
>On Mon, Oct 14, 2024 at 4:41 AM Kiran K <kiran.k@intel.com> 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@intel.com>
>
>We need the Fixes tag.
>

Ack. I will include it in the v2 version of the patch.

>> ---
>>  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

Thanks,
Kiran
diff mbox series

Patch

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;
 			}
 		}
 
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;
 			}
 		}