Context |
Check |
Description |
tedd_an/pre-ci_am |
success
|
Success
|
tedd_an/CheckPatch |
success
|
CheckPatch PASS
|
tedd_an/GitLint |
fail
|
WARNING: I3 - ignore-body-lines: gitlint will be switching from using Python regex 'match' (match beginning) to 'search' (match anywhere) semantics. Please review your ignore-body-lines.regex option accordingly. To remove this warning, set general.regex-style-search=True. More details: https://jorisroovers.github.io/gitlint/configuration/#regex-style-search
1: T1 Title exceeds max length (81>80): "[RFC,v2] Bluetooth: MGMT: Make MGMT_OP_LOAD_CONN_PARAM update existing connection"
|
tedd_an/SubjectPrefix |
success
|
Gitlint PASS
|
tedd_an/BuildKernel |
fail
|
BuildKernel: FAIL:
net/bluetooth/mgmt.c: In function ‘conn_update_sync’:
net/bluetooth/mgmt.c:7881:2: error: ‘conn’ undeclared (first use in this function)
7881 | conn = hci_conn_hash_lookup_le(hdev, params->addr.bdaddr,
| ^~~~
net/bluetooth/mgmt.c:7881:2: note: each undeclared identifier is reported only once for each function it appears in
net/bluetooth/mgmt.c:7881:51: error: ‘bdaddr_t’ {aka ‘struct <anonymous>’} has no member named ‘bdaddr’
7881 | conn = hci_conn_hash_lookup_le(hdev, params->addr.bdaddr,
| ^
net/bluetooth/mgmt.c:7886:2: error: expected ‘;’ before ‘return’
7886 | return hci_le_conn_update_sync(hdev, conn, params);
| ^~~~~~
net/bluetooth/mgmt.c: In function ‘load_conn_param’:
net/bluetooth/mgmt.c:7960:13: error: ‘params’ undeclared (first use in this function); did you mean ‘param’?
7960 | if (!i && params == 1) {
| ^~~~~~
| param
net/bluetooth/mgmt.c:7992:15: error: ‘struct hci_conn’ has no member named ‘le_supervision_timeout’; did you mean ‘le_supv_timeout’?
7992 | conn->le_supervision_timeout != timeout))
| ^~~~~~~~~~~~~~~~~~~~~~
| le_supv_timeout
net/bluetooth/mgmt.c:7994:10: error: ‘hci_params’ undeclared (first use in this function); did you mean ‘hci_param’?
7994 | hci_params, NULL);
| ^~~~~~~~~~
| hci_param
In file included from net/bluetooth/mgmt.c:31:
net/bluetooth/mgmt.c: At top level:
./include/net/bluetooth/hci_core.h:1615:40: error: expected declaration specifiers or ‘...’ before ‘&’ token
1615 | #define hci_dev_unlock(d) mutex_unlock(&d->lock)
| ^
net/bluetooth/mgmt.c:7999:2: note: in expansion of macro ‘hci_dev_unlock’
7999 | hci_dev_unlock(hdev);
| ^~~~~~~~~~~~~~
net/bluetooth/mgmt.c:8001:2: error: expected identifier or ‘(’ before ‘return’
8001 | return mgmt_cmd_complete(sk, hdev->id, MGMT_OP_LOAD_CONN_PARAM, 0,
| ^~~~~~
net/bluetooth/mgmt.c:8003:1: error: expected identifier or ‘(’ before ‘}’ token
8003 | }
| ^
net/bluetooth/mgmt.c: In function ‘load_conn_param’:
net/bluetooth/mgmt.c:7997:2: error: control reaches end of non-void function [-Werror=return-type]
7997 | }
| ^
cc1: some warnings being treated as errors
make[4]: *** [scripts/Makefile.build:244: net/bluetooth/mgmt.o] Error 1
make[3]: *** [scripts/Makefile.build:485: net/bluetooth] Error 2
make[2]: *** [scripts/Makefile.build:485: net] Error 2
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [/github/workspace/src/src/Makefile:1919: .] Error 2
make: *** [Makefile:240: __sub-make] Error 2
|
tedd_an/CheckAllWarning |
fail
|
CheckAllWarning: FAIL:
net/bluetooth/mgmt.c: In function ‘conn_update_sync’:
net/bluetooth/mgmt.c:7881:2: error: ‘conn’ undeclared (first use in this function)
7881 | conn = hci_conn_hash_lookup_le(hdev, params->addr.bdaddr,
| ^~~~
net/bluetooth/mgmt.c:7881:2: note: each undeclared identifier is reported only once for each function it appears in
net/bluetooth/mgmt.c:7881:51: error: ‘bdaddr_t’ {aka ‘struct <anonymous>’} has no member named ‘bdaddr’
7881 | conn = hci_conn_hash_lookup_le(hdev, params->addr.bdaddr,
| ^
net/bluetooth/mgmt.c:7886:2: error: expected ‘;’ before ‘return’
7886 | return hci_le_conn_update_sync(hdev, conn, params);
| ^~~~~~
net/bluetooth/mgmt.c: In function ‘load_conn_param’:
net/bluetooth/mgmt.c:7960:13: error: ‘params’ undeclared (first use in this function); did you mean ‘param’?
7960 | if (!i && params == 1) {
| ^~~~~~
| param
net/bluetooth/mgmt.c:7992:15: error: ‘struct hci_conn’ has no member named ‘le_supervision_timeout’; did you mean ‘le_supv_timeout’?
7992 | conn->le_supervision_timeout != timeout))
| ^~~~~~~~~~~~~~~~~~~~~~
| le_supv_timeout
net/bluetooth/mgmt.c:7994:10: error: ‘hci_params’ undeclared (first use in this function); did you mean ‘hci_param’?
7994 | hci_params, NULL);
| ^~~~~~~~~~
| hci_param
In file included from net/bluetooth/mgmt.c:31:
net/bluetooth/mgmt.c: At top level:
./include/net/bluetooth/hci_core.h:1615:40: error: expected declaration specifiers or ‘...’ before ‘&’ token
1615 | #define hci_dev_unlock(d) mutex_unlock(&d->lock)
| ^
net/bluetooth/mgmt.c:7999:2: note: in expansion of macro ‘hci_dev_unlock’
7999 | hci_dev_unlock(hdev);
| ^~~~~~~~~~~~~~
net/bluetooth/mgmt.c:8001:2: error: expected identifier or ‘(’ before ‘return’
8001 | return mgmt_cmd_complete(sk, hdev->id, MGMT_OP_LOAD_CONN_PARAM, 0,
| ^~~~~~
net/bluetooth/mgmt.c:8003:1: error: expected identifier or ‘(’ before ‘}’ token
8003 | }
| ^
net/bluetooth/mgmt.c: In function ‘load_conn_param’:
net/bluetooth/mgmt.c:7997:2: error: control reaches end of non-void function [-Werror=return-type]
7997 | }
| ^
cc1: some warnings being treated as errors
make[4]: *** [scripts/Makefile.build:244: net/bluetooth/mgmt.o] Error 1
make[3]: *** [scripts/Makefile.build:485: net/bluetooth] Error 2
make[2]: *** [scripts/Makefile.build:485: net] Error 2
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [/github/workspace/src/src/Makefile:1919: .] Error 2
make: *** [Makefile:240: __sub-make] Error 2
|
tedd_an/CheckSparse |
fail
|
CheckSparse: FAIL:
net/bluetooth/af_bluetooth.c:226:25: warning: context imbalance in 'bt_accept_enqueue' - different lock contexts for basic block
drivers/bluetooth/hci_ag6xx.c:257:24: warning: restricted __le32 degrades to integer
drivers/bluetooth/hci_mrvl.c:170:23: warning: restricted __le16 degrades to integer
drivers/bluetooth/hci_mrvl.c:203:23: warning: restricted __le16 degrades to integer
net/bluetooth/hci_event.c: note: in included file (through include/net/bluetooth/hci_core.h):
./include/net/bluetooth/hci.h:2585:47: warning: array of flexible structures
./include/net/bluetooth/hci.h:2671:43: warning: array of flexible structures
net/bluetooth/mgmt.c: In function ‘conn_update_sync’:
net/bluetooth/mgmt.c:7881:2: error: ‘conn’ undeclared (first use in this function)
7881 | conn = hci_conn_hash_lookup_le(hdev, params->addr.bdaddr,
| ^~~~
net/bluetooth/mgmt.c:7881:2: note: each undeclared identifier is reported only once for each function it appears in
net/bluetooth/mgmt.c:7881:51: error: ‘bdaddr_t’ {aka ‘struct <anonymous>’} has no member named ‘bdaddr’
7881 | conn = hci_conn_hash_lookup_le(hdev, params->addr.bdaddr,
| ^
net/bluetooth/mgmt.c:7886:2: error: expected ‘;’ before ‘return’
7886 | return hci_le_conn_update_sync(hdev, conn, params);
| ^~~~~~
net/bluetooth/mgmt.c: In function ‘load_conn_param’:
net/bluetooth/mgmt.c:7960:13: error: ‘params’ undeclared (first use in this function); did you mean ‘param’?
7960 | if (!i && params == 1) {
| ^~~~~~
| param
net/bluetooth/mgmt.c:7992:15: error: ‘struct hci_conn’ has no member named ‘le_supervision_timeout’; did you mean ‘le_supv_timeout’?
7992 | conn->le_supervision_timeout != timeout))
| ^~~~~~~~~~~~~~~~~~~~~~
| le_supv_timeout
net/bluetooth/mgmt.c:7994:10: error: ‘hci_params’ undeclared (first use in this function); did you mean ‘hci_param’?
7994 | hci_params, NULL);
| ^~~~~~~~~~
| hci_param
In file included from net/bluetooth/mgmt.c:31:
net/bluetooth/mgmt.c: At top level:
./include/net/bluetooth/hci_core.h:1615:40: error: expected declaration specifiers or ‘...’ before ‘&’ token
1615 | #define hci_dev_unlock(d) mutex_unlock(&d->lock)
| ^
net/bluetooth/mgmt.c:7999:2: note: in expansion of macro ‘hci_dev_unlock’
7999 | hci_dev_unlock(hdev);
| ^~~~~~~~~~~~~~
net/bluetooth/mgmt.c:8001:2: error: expected identifier or ‘(’ before ‘return’
8001 | return mgmt_cmd_complete(sk, hdev->id, MGMT_OP_LOAD_CONN_PARAM, 0,
| ^~~~~~
net/bluetooth/mgmt.c:8003:1: error: expected identifier or ‘(’ before ‘}’ token
8003 | }
| ^
net/bluetooth/mgmt.c: In function ‘load_conn_param’:
net/bluetooth/mgmt.c:7997:2: error: control reaches end of non-void function [-Werror=return-type]
7997 | }
| ^
cc1: some warnings being treated as errors
make[4]: *** [scripts/Makefile.build:244: net/bluetooth/mgmt.o] Error 1
make[3]: *** [scripts/Makefile.build:485: net/bluetooth] Error 2
make[2]: *** [scripts/Makefile.build:485: net] Error 2
make[2]: *** Waiting for unfinished jobs....
drivers/bluetooth/hci_nokia.c:284:23: warning: incorrect type in assignment (different base types)
drivers/bluetooth/hci_nokia.c:284:23: expected unsigned short [usertype] baud
drivers/bluetooth/hci_nokia.c:284:23: got restricted __le16 [usertype]
drivers/bluetooth/hci_nokia.c:287:26: warning: incorrect type in assignment (different base types)
drivers/bluetooth/hci_nokia.c:287:26: expected unsigned short [usertype] sys_clk
drivers/bluetooth/hci_nokia.c:287:26: got restricted __le16 [usertype]
make[1]: *** [/github/workspace/src/src/Makefile:1919: .] Error 2
make: *** [Makefile:240: __sub-make] Error 2
|
tedd_an/CheckSmatch |
fail
|
CheckSparse: FAIL:
Segmentation fault (core dumped)
make[4]: *** [scripts/Makefile.build:244: net/bluetooth/hci_core.o] Error 139
make[4]: *** Deleting file 'net/bluetooth/hci_core.o'
make[3]: *** [scripts/Makefile.build:485: net/bluetooth] Error 2
make[2]: *** [scripts/Makefile.build:485: net] Error 2
make[2]: *** Waiting for unfinished jobs....
Segmentation fault (core dumped)
make[4]: *** [scripts/Makefile.build:244: drivers/bluetooth/bcm203x.o] Error 139
make[4]: *** Deleting file 'drivers/bluetooth/bcm203x.o'
make[4]: *** Waiting for unfinished jobs....
Segmentation fault (core dumped)
make[4]: *** [scripts/Makefile.build:244: drivers/bluetooth/bpa10x.o] Error 139
make[4]: *** Deleting file 'drivers/bluetooth/bpa10x.o'
make[3]: *** [scripts/Makefile.build:485: drivers/bluetooth] Error 2
make[2]: *** [scripts/Makefile.build:485: drivers] Error 2
make[1]: *** [/github/workspace/src/src/Makefile:1919: .] Error 2
make: *** [Makefile:240: __sub-make] Error 2
|
tedd_an/BuildKernel32 |
fail
|
BuildKernel32: FAIL:
net/bluetooth/mgmt.c: In function ‘conn_update_sync’:
net/bluetooth/mgmt.c:7881:2: error: ‘conn’ undeclared (first use in this function)
7881 | conn = hci_conn_hash_lookup_le(hdev, params->addr.bdaddr,
| ^~~~
net/bluetooth/mgmt.c:7881:2: note: each undeclared identifier is reported only once for each function it appears in
net/bluetooth/mgmt.c:7881:51: error: ‘bdaddr_t’ {aka ‘struct <anonymous>’} has no member named ‘bdaddr’
7881 | conn = hci_conn_hash_lookup_le(hdev, params->addr.bdaddr,
| ^
net/bluetooth/mgmt.c:7886:2: error: expected ‘;’ before ‘return’
7886 | return hci_le_conn_update_sync(hdev, conn, params);
| ^~~~~~
net/bluetooth/mgmt.c: In function ‘load_conn_param’:
net/bluetooth/mgmt.c:7960:13: error: ‘params’ undeclared (first use in this function); did you mean ‘param’?
7960 | if (!i && params == 1) {
| ^~~~~~
| param
net/bluetooth/mgmt.c:7992:15: error: ‘struct hci_conn’ has no member named ‘le_supervision_timeout’; did you mean ‘le_supv_timeout’?
7992 | conn->le_supervision_timeout != timeout))
| ^~~~~~~~~~~~~~~~~~~~~~
| le_supv_timeout
net/bluetooth/mgmt.c:7994:10: error: ‘hci_params’ undeclared (first use in this function); did you mean ‘hci_param’?
7994 | hci_params, NULL);
| ^~~~~~~~~~
| hci_param
In file included from net/bluetooth/mgmt.c:31:
net/bluetooth/mgmt.c: At top level:
./include/net/bluetooth/hci_core.h:1615:40: error: expected declaration specifiers or ‘...’ before ‘&’ token
1615 | #define hci_dev_unlock(d) mutex_unlock(&d->lock)
| ^
net/bluetooth/mgmt.c:7999:2: note: in expansion of macro ‘hci_dev_unlock’
7999 | hci_dev_unlock(hdev);
| ^~~~~~~~~~~~~~
net/bluetooth/mgmt.c:8001:2: error: expected identifier or ‘(’ before ‘return’
8001 | return mgmt_cmd_complete(sk, hdev->id, MGMT_OP_LOAD_CONN_PARAM, 0,
| ^~~~~~
net/bluetooth/mgmt.c:8003:1: error: expected identifier or ‘(’ before ‘}’ token
8003 | }
| ^
net/bluetooth/mgmt.c: In function ‘load_conn_param’:
net/bluetooth/mgmt.c:7997:2: error: control reaches end of non-void function [-Werror=return-type]
7997 | }
| ^
cc1: some warnings being treated as errors
make[4]: *** [scripts/Makefile.build:244: net/bluetooth/mgmt.o] Error 1
make[3]: *** [scripts/Makefile.build:485: net/bluetooth] Error 2
make[2]: *** [scripts/Makefile.build:485: net] Error 2
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [/github/workspace/src/src/Makefile:1919: .] Error 2
make: *** [Makefile:240: __sub-make] Error 2
|
tedd_an/TestRunnerSetup |
fail
|
Kernel Build FAIL:
net/bluetooth/mgmt.c: In function ‘conn_update_sync’:
net/bluetooth/mgmt.c:7881:2: error: ‘conn’ undeclared (first use in this function)
7881 | conn = hci_conn_hash_lookup_le(hdev, params->addr.bdaddr,
| ^~~~
net/bluetooth/mgmt.c:7881:2: note: each undeclared identifier is reported only once for each function it appears in
net/bluetooth/mgmt.c:7881:51: error: ‘bdaddr_t’ {aka ‘struct <anonymous>’} has no member named ‘bdaddr’
7881 | conn = hci_conn_hash_lookup_le(hdev, params->addr.bdaddr,
| ^
net/bluetooth/mgmt.c:7886:2: error: expected ‘;’ before ‘return’
7886 | return hci_le_conn_update_sync(hdev, conn, params);
| ^~~~~~
net/bluetooth/mgmt.c: In function ‘load_conn_param’:
net/bluetooth/mgmt.c:7960:13: error: ‘params’ undeclared (first use in this function); did you mean ‘param’?
7960 | if (!i && params == 1) {
| ^~~~~~
| param
net/bluetooth/mgmt.c:7992:15: error: ‘struct hci_conn’ has no member named ‘le_supervision_timeout’; did you mean ‘le_supv_timeout’?
7992 | conn->le_supervision_timeout != timeout))
| ^~~~~~~~~~~~~~~~~~~~~~
| le_supv_timeout
net/bluetooth/mgmt.c:7994:10: error: ‘hci_params’ undeclared (first use in this function); did you mean ‘hci_param’?
7994 | hci_params, NULL);
| ^~~~~~~~~~
| hci_param
In file included from net/bluetooth/mgmt.c:31:
net/bluetooth/mgmt.c: At top level:
./include/net/bluetooth/hci_core.h:1615:40: error: expected declaration specifiers or ‘...’ before ‘&’ token
1615 | #define hci_dev_unlock(d) mutex_unlock(&d->lock)
| ^
net/bluetooth/mgmt.c:7999:2: note: in expansion of macro ‘hci_dev_unlock’
7999 | hci_dev_unlock(hdev);
| ^~~~~~~~~~~~~~
net/bluetooth/mgmt.c:8001:2: error: expected identifier or ‘(’ before ‘return’
8001 | return mgmt_cmd_complete(sk, hdev->id, MGMT_OP_LOAD_CONN_PARAM, 0,
| ^~~~~~
net/bluetooth/mgmt.c:8003:1: error: expected identifier or ‘(’ before ‘}’ token
8003 | }
| ^
net/bluetooth/mgmt.c: In function ‘load_conn_param’:
net/bluetooth/mgmt.c:7997:2: error: control reaches end of non-void function [-Werror=return-type]
7997 | }
| ^
cc1: some warnings being treated as errors
make[4]: *** [scripts/Makefile.build:244: net/bluetooth/mgmt.o] Error 1
make[4]: *** Waiting for unfinished jobs....
make[3]: *** [scripts/Makefile.build:485: net/bluetooth] Error 2
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [scripts/Makefile.build:485: net] Error 2
make[1]: *** [/github/workspace/src/src/Makefile:1919: .] Error 2
make: *** [Makefile:240: __sub-make] Error 2
|
tedd_an/TestRunner_l2cap-tester |
fail
|
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
|
tedd_an/TestRunner_iso-tester |
fail
|
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
|
tedd_an/TestRunner_bnep-tester |
fail
|
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
|
tedd_an/TestRunner_mgmt-tester |
fail
|
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
|
tedd_an/TestRunner_rfcomm-tester |
fail
|
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
|
tedd_an/TestRunner_sco-tester |
fail
|
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
|
tedd_an/TestRunner_ioctl-tester |
fail
|
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
|
tedd_an/TestRunner_mesh-tester |
fail
|
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
|
tedd_an/TestRunner_smp-tester |
fail
|
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
|
tedd_an/TestRunner_userchan-tester |
fail
|
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
qemu: could not open kernel file '/github/workspace/src/src/arch/x86/boot/bzImage': No such file or directory
|
tedd_an/IncrementalBuild |
fail
|
[RFC,v2] Bluetooth: MGMT: Make MGMT_OP_LOAD_CONN_PARAM update existing connection
net/bluetooth/mgmt.c: In function ‘conn_update_sync’:
net/bluetooth/mgmt.c:7881:2: error: ‘conn’ undeclared (first use in this function)
7881 | conn = hci_conn_hash_lookup_le(hdev, params->addr.bdaddr,
| ^~~~
net/bluetooth/mgmt.c:7881:2: note: each undeclared identifier is reported only once for each function it appears in
net/bluetooth/mgmt.c:7881:51: error: ‘bdaddr_t’ {aka ‘struct <anonymous>’} has no member named ‘bdaddr’
7881 | conn = hci_conn_hash_lookup_le(hdev, params->addr.bdaddr,
| ^
net/bluetooth/mgmt.c:7886:2: error: expected ‘;’ before ‘return’
7886 | return hci_le_conn_update_sync(hdev, conn, params);
| ^~~~~~
net/bluetooth/mgmt.c: In function ‘load_conn_param’:
net/bluetooth/mgmt.c:7960:13: error: ‘params’ undeclared (first use in this function); did you mean ‘param’?
7960 | if (!i && params == 1) {
| ^~~~~~
| param
net/bluetooth/mgmt.c:7992:15: error: ‘struct hci_conn’ has no member named ‘le_supervision_timeout’; did you mean ‘le_supv_timeout’?
7992 | conn->le_supervision_timeout != timeout))
| ^~~~~~~~~~~~~~~~~~~~~~
| le_supv_timeout
net/bluetooth/mgmt.c:7994:10: error: ‘hci_params’ undeclared (first use in this function); did you mean ‘hci_param’?
7994 | hci_params, NULL);
| ^~~~~~~~~~
| hci_param
In file included from net/bluetooth/mgmt.c:31:
net/bluetooth/mgmt.c: At top level:
./include/net/bluetooth/hci_core.h:1615:40: error: expected declaration specifiers or ‘...’ before ‘&’ token
1615 | #define hci_dev_unlock(d) mutex_unlock(&d->lock)
| ^
net/bluetooth/mgmt.c:7999:2: note: in expansion of macro ‘hci_dev_unlock’
7999 | hci_dev_unlock(hdev);
| ^~~~~~~~~~~~~~
net/bluetooth/mgmt.c:8001:2: error: expected identifier or ‘(’ before ‘return’
8001 | return mgmt_cmd_complete(sk, hdev->id, MGMT_OP_LOAD_CONN_PARAM, 0,
| ^~~~~~
net/bluetooth/mgmt.c:8003:1: error: expected identifier or ‘(’ before ‘}’ token
8003 | }
| ^
net/bluetooth/mgmt.c: In function ‘load_conn_param’:
net/bluetooth/mgmt.c:7997:2: error: control reaches end of non-void function [-Werror=return-type]
7997 | }
| ^
cc1: some warnings being treated as errors
make[4]: *** [scripts/Makefile.build:244: net/bluetooth/mgmt.o] Error 1
make[3]: *** [scripts/Makefile.build:485: net/bluetooth] Error 2
make[2]: *** [scripts/Makefile.build:485: net] Error 2
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [/github/workspace/src/src/Makefile:1919: .] Error 2
make: *** [Makefile:240: __sub-make] Error 2
|
@@ -6712,3 +6712,21 @@ int hci_cancel_connect_sync(struct hci_dev *hdev, struct hci_conn *conn)
return -ENOENT;
}
+
+int hci_le_conn_update_sync(struct hci_dev *hdev, struct hci_conn *conn,
+ struct hci_conn_params *params)
+{
+ struct hci_cp_le_conn_update cp;
+
+ memset(&cp, 0, sizeof(cp));
+ cp.handle = cpu_to_le16(conn->handle);
+ cp.conn_interval_min = cpu_to_le16(params->conn_min_interval);
+ cp.conn_interval_max = cpu_to_le16(params->conn_max_interval);
+ cp.conn_latency = cpu_to_le16(params->conn_latency);
+ cp.supervision_timeout = cpu_to_le16(params->supervision_timeout);
+ cp.min_ce_len = cpu_to_le16(0x0000);
+ cp.max_ce_len = cpu_to_le16(0x0000);
+
+ return __hci_cmd_sync_status(hdev, HCI_OP_LE_CONN_UPDATE,
+ sizeof(cp), &cp, HCI_CMD_TIMEOUT);
+}
@@ -42,7 +42,7 @@
#include "aosp.h"
#define MGMT_VERSION 1
-#define MGMT_REVISION 22
+#define MGMT_REVISION 23
static const u16 mgmt_commands[] = {
MGMT_OP_READ_INDEX_LIST,
@@ -7874,6 +7874,18 @@ static int remove_device(struct sock *sk, struct hci_dev *hdev,
return err;
}
+static int conn_update_sync(struct hci_dev *hdev, void *data)
+{
+ struct hci_conn_params *params = data;
+
+ conn = hci_conn_hash_lookup_le(hdev, params->addr.bdaddr,
+ params->addr_type);
+ if (!conn)
+ return -ECANCELED
+
+ return hci_le_conn_update_sync(hdev, conn, params);
+}
+
static int load_conn_param(struct sock *sk, struct hci_dev *hdev, void *data,
u16 len)
{
@@ -7907,13 +7919,15 @@ static int load_conn_param(struct sock *sk, struct hci_dev *hdev, void *data,
hci_dev_lock(hdev);
- hci_conn_params_clear_disabled(hdev);
+ if (i > 1)
+ hci_conn_params_clear_disabled(hdev);
for (i = 0; i < param_count; i++) {
struct mgmt_conn_param *param = &cp->params[i];
struct hci_conn_params *hci_param;
u16 min, max, latency, timeout;
u8 addr_type;
+ bool update;
bt_dev_dbg(hdev, "Adding %pMR (type %u)", ¶m->addr.bdaddr,
param->addr.type);
@@ -7940,6 +7954,19 @@ static int load_conn_param(struct sock *sk, struct hci_dev *hdev, void *data,
continue;
}
+ /* Detect when the loading is for an existing parameter then
+ * attempt to trigger the connection update procedure.
+ */
+ if (!i && params == 1) {
+ hci_param = hci_conn_params_lookup(hdev,
+ ¶m->addr.bdaddr,
+ addr_type);
+ if (hci_param)
+ update = true;
+ else
+ hci_conn_params_clear_disabled(hdev);
+ }
+
hci_param = hci_conn_params_add(hdev, ¶m->addr.bdaddr,
addr_type);
if (!hci_param) {
@@ -7951,6 +7978,22 @@ static int load_conn_param(struct sock *sk, struct hci_dev *hdev, void *data,
hci_param->conn_max_interval = max;
hci_param->conn_latency = latency;
hci_param->supervision_timeout = timeout;
+
+ if (update) {
+ struct hci_conn *conn;
+
+ conn = hci_conn_hash_lookup_le(hdev,
+ params->addr.bdaddr,
+ addr_type);
+ if (conn && conn->role == HCI_ROLE_MASTER &&
+ (conn->le_conn_min_interval != min ||
+ conn->le_conn_max_interval != max ||
+ conn->le_conn_latency != latency ||
+ conn->le_supervision_timeout != timeout))
+ hci_cmd_sync_queue(hdev, conn_update_sync,
+ hci_params, NULL);
+ }
+ }
}
hci_dev_unlock(hdev);