From: Tedd Ho-Jeong An <[email protected]>
This patch fixes the issue that the vendor name for all vendor HCI
command and event are display as Microsoft.
---
monitor/packet.c | 46 +++++++++++++++++++++++++++++++---------------
1 file changed, 31 insertions(+), 15 deletions(-)
diff --git a/monitor/packet.c b/monitor/packet.c
index 692012029..c4e5182f0 100644
--- a/monitor/packet.c
+++ b/monitor/packet.c
@@ -9821,7 +9821,7 @@ static const char *get_supported_command(int bit)
return NULL;
}
-static const char *current_vendor_str(void)
+static const char *current_vendor_str(uint16_t ocf)
{
uint16_t manufacturer, msft_opcode;
@@ -9833,7 +9833,8 @@ static const char *current_vendor_str(void)
msft_opcode = BT_HCI_CMD_NOP;
}
- if (msft_opcode != BT_HCI_CMD_NOP)
+ if (msft_opcode != BT_HCI_CMD_NOP &&
+ cmd_opcode_ocf(msft_opcode) == ocf)
return "Microsoft";
switch (manufacturer) {
@@ -9877,22 +9878,16 @@ static const struct vendor_ocf *current_vendor_ocf(uint16_t ocf)
static const struct vendor_evt *current_vendor_evt(const void *data,
int *consumed_size)
{
- uint16_t manufacturer, msft_opcode;
+ uint16_t manufacturer;
uint8_t evt = *((const uint8_t *) data);
/* A regular vendor event consumes 1 byte. */
*consumed_size = 1;
- if (index_current < MAX_INDEX) {
+ if (index_current < MAX_INDEX)
manufacturer = index_list[index_current].manufacturer;
- msft_opcode = index_list[index_current].msft_opcode;
- } else {
+ else
manufacturer = fallback_manufacturer;
- msft_opcode = BT_HCI_CMD_NOP;
- }
-
- if (msft_opcode != BT_HCI_CMD_NOP)
- return NULL;
switch (manufacturer) {
case 2:
@@ -9904,6 +9899,27 @@ static const struct vendor_evt *current_vendor_evt(const void *data,
return NULL;
}
+static const char *current_vendor_evt_str(void)
+{
+ uint16_t manufacturer;
+
+ if (index_current < MAX_INDEX)
+ manufacturer = index_list[index_current].manufacturer;
+ else
+ manufacturer = fallback_manufacturer;
+
+ switch (manufacturer) {
+ case 2:
+ return "Intel";
+ case 15:
+ return "Broadcom";
+ case 93:
+ return "Realtek";
+ }
+
+ return NULL;
+}
+
static void inquiry_complete_evt(uint16_t index, const void *data, uint8_t size)
{
const struct bt_hci_evt_inquiry_complete *evt = data;
@@ -10084,7 +10100,7 @@ static void cmd_complete_evt(uint16_t index, const void *data, uint8_t size)
const struct vendor_ocf *vnd = current_vendor_ocf(ocf);
if (vnd) {
- const char *str = current_vendor_str();
+ const char *str = current_vendor_str(ocf);
if (str) {
snprintf(vendor_str, sizeof(vendor_str),
@@ -10176,7 +10192,7 @@ static void cmd_status_evt(uint16_t index, const void *data, uint8_t size)
const struct vendor_ocf *vnd = current_vendor_ocf(ocf);
if (vnd) {
- const char *str = current_vendor_str();
+ const char *str = current_vendor_str(ocf);
if (str) {
snprintf(vendor_str, sizeof(vendor_str),
@@ -11618,7 +11634,7 @@ static void vendor_evt(uint16_t index, const void *data, uint8_t size)
const struct vendor_evt *vnd = current_vendor_evt(data, &consumed_size);
if (vnd) {
- const char *str = current_vendor_str();
+ const char *str = current_vendor_evt_str();
if (str) {
snprintf(vendor_str, sizeof(vendor_str),
@@ -12020,7 +12036,7 @@ void packet_hci_command(struct timeval *tv, struct ucred *cred, uint16_t index,
const struct vendor_ocf *vnd = current_vendor_ocf(ocf);
if (vnd) {
- const char *str = current_vendor_str();
+ const char *str = current_vendor_str(ocf);
if (str) {
snprintf(vendor_str, sizeof(vendor_str),
--
2.34.1
This is automated email and please do not reply to this email!
Dear submitter,
Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=685453
---Test result---
Test Summary:
CheckPatch PASS 0.80 seconds
GitLint PASS 0.49 seconds
Prep - Setup ELL PASS 36.16 seconds
Build - Prep PASS 0.92 seconds
Build - Configure PASS 12.32 seconds
Build - Make PASS 1245.81 seconds
Make Check PASS 13.27 seconds
Make Check w/Valgrind PASS 389.89 seconds
Make Distcheck PASS 332.00 seconds
Build w/ext ELL - Configure PASS 11.34 seconds
Build w/ext ELL - Make PASS 117.60 seconds
Incremental Build w/ patches PASS 0.00 seconds
Scan Build PASS 807.95 seconds
---
Regards,
Linux Bluetooth
Hello:
This patch was applied to bluetooth/bluez.git (master)
by Luiz Augusto von Dentz <[email protected]>:
On Fri, 14 Oct 2022 11:57:20 -0700 you wrote:
> From: Tedd Ho-Jeong An <[email protected]>
>
> This patch fixes the issue that the vendor name for all vendor HCI
> command and event are display as Microsoft.
> ---
> monitor/packet.c | 46 +++++++++++++++++++++++++++++++---------------
> 1 file changed, 31 insertions(+), 15 deletions(-)
Here is the summary with links:
- [BlueZ,v2] monitor: Fix incorrect vendor name for vendor cmd and evt
https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=1096a99cadfa
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html