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 | 37 ++++++++++++++++++++++++++++---------
1 file changed, 28 insertions(+), 9 deletions(-)
diff --git a/monitor/packet.c b/monitor/packet.c
index 692012029..d11d8808d 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) {
@@ -9891,9 +9892,6 @@ static const struct vendor_evt *current_vendor_evt(const void *data,
msft_opcode = BT_HCI_CMD_NOP;
}
- if (msft_opcode != BT_HCI_CMD_NOP)
- return NULL;
-
switch (manufacturer) {
case 2:
return intel_vendor_evt(data, consumed_size);
@@ -9904,6 +9902,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 +10103,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 +10195,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 +11637,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 +12039,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=685253
---Test result---
Test Summary:
CheckPatch PASS 1.06 seconds
GitLint PASS 0.74 seconds
Prep - Setup ELL PASS 26.18 seconds
Build - Prep PASS 0.67 seconds
Build - Configure PASS 8.13 seconds
Build - Make FAIL 145.92 seconds
Make Check FAIL 12.59 seconds
Make Check w/Valgrind FAIL 111.94 seconds
Make Distcheck PASS 233.42 seconds
Build w/ext ELL - Configure PASS 8.18 seconds
Build w/ext ELL - Make FAIL 54.77 seconds
Incremental Build w/ patches PASS 0.00 seconds
Scan Build FAIL 472.04 seconds
Details
##############################
Test: Build - Make - FAIL
Desc: Build the BlueZ source tree
Output:
tools/mgmt-tester.c: In function ‘main’:
tools/mgmt-tester.c:12514:5: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without
12514 | int main(int argc, char *argv[])
| ^~~~
monitor/packet.c: In function ‘current_vendor_evt’:
monitor/packet.c:9881:25: error: variable ‘msft_opcode’ set but not used [-Werror=unused-but-set-variable]
9881 | uint16_t manufacturer, msft_opcode;
| ^~~~~~~~~~~
cc1: all warnings being treated as errors
make[1]: *** [Makefile:7490: monitor/packet.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:4450: all] Error 2
##############################
Test: Make Check - FAIL
Desc: Run 'make check'
Output:
monitor/packet.c: In function ‘current_vendor_evt’:
monitor/packet.c:9881:25: error: variable ‘msft_opcode’ set but not used [-Werror=unused-but-set-variable]
9881 | uint16_t manufacturer, msft_opcode;
| ^~~~~~~~~~~
cc1: all warnings being treated as errors
make[1]: *** [Makefile:7490: monitor/packet.o] Error 1
make: *** [Makefile:11587: check] Error 2
##############################
Test: Make Check w/Valgrind - FAIL
Desc: Run 'make check' with Valgrind
Output:
tools/mgmt-tester.c: In function ‘main’:
tools/mgmt-tester.c:12514:5: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without
12514 | int main(int argc, char *argv[])
| ^~~~
monitor/packet.c: In function ‘current_vendor_evt’:
monitor/packet.c:9881:25: error: variable ‘msft_opcode’ set but not used [-Werror=unused-but-set-variable]
9881 | uint16_t manufacturer, msft_opcode;
| ^~~~~~~~~~~
cc1: all warnings being treated as errors
make[1]: *** [Makefile:7490: monitor/packet.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:4450: all] Error 2
##############################
Test: Build w/ext ELL - Make - FAIL
Desc: Build BlueZ source with '--enable-external-ell' configuration
Output:
monitor/packet.c: In function ‘current_vendor_evt’:
monitor/packet.c:9881:25: error: variable ‘msft_opcode’ set but not used [-Werror=unused-but-set-variable]
9881 | uint16_t manufacturer, msft_opcode;
| ^~~~~~~~~~~
cc1: all warnings being treated as errors
make[1]: *** [Makefile:7490: monitor/packet.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:4450: all] Error 2
##############################
Test: Scan Build - FAIL
Desc: Run Scan Build with patches
Output:
monitor/packet.c: In function ‘current_vendor_evt’:
monitor/packet.c:9881:25: error: variable ‘msft_opcode’ set but not used [-Werror=unused-but-set-variable]
9881 | uint16_t manufacturer, msft_opcode;
| ^~~~~~~~~~~
cc1: all warnings being treated as errors
make[1]: *** [Makefile:7490: monitor/packet.o] Error 1
make: *** [Makefile:4450: all] Error 2
---
Regards,
Linux Bluetooth