Skip to content

Conversation

@sjanc
Copy link
Contributor

@sjanc sjanc commented Nov 26, 2025

Main goal here to cleanup how locking is being done in L2CAP code:

  • avoid double/nested locking
  • avoid lock-unlock-lock pattern due to public API calls from internal code
  • provide _nolock variants to be used internally
  • public API is locked wrapper around _nolock private API
  • avoid locking in FOO and unlocking in BAR function for code clarify

@github-actions github-actions bot added host size/M Medium PR labels Nov 26, 2025
@sjanc sjanc force-pushed the l2cap_coc_lock branch 4 times, most recently from e318c2d to 99caccb Compare November 27, 2025 12:44
@sjanc
Copy link
Contributor Author

sjanc commented Dec 5, 2025

#AutoPTS run mynewt L2CAP

@codecoup-tester
Copy link

Scheduled PR #2144 (comment), board: nrf52, estimated start time: 08:43:35, test case count: 99, estimated duration: 0:45:10

Test cases to be runL2CAP/COS/CED/BI-05-C
L2CAP/COS/CED/BI-09-C
L2CAP/COS/CED/BI-11-C
L2CAP/COS/CED/BI-13-C
L2CAP/COS/CED/BI-16-C
L2CAP/COS/CED/BI-17-C
L2CAP/COS/CED/BI-29-C
L2CAP/COS/CFC/BV-01-C
L2CAP/COS/CFC/BV-02-C
L2CAP/COS/CFC/BV-03-C
L2CAP/COS/CFC/BV-04-C
L2CAP/COS/CFC/BV-05-C
L2CAP/COS/ECFC/BV-01-C
L2CAP/COS/ECFC/BV-02-C
L2CAP/COS/ECFC/BV-03-C
L2CAP/COS/ECFC/BV-04-C
L2CAP/LE/CPU/BV-01-C
L2CAP/LE/CPU/BV-02-C
L2CAP/LE/CPU/BI-01-C
L2CAP/LE/CPU/BI-02-C
L2CAP/LE/REJ/BI-02-C
L2CAP/LE/CFC/BV-01-C
L2CAP/LE/CFC/BV-02-C
L2CAP/LE/CFC/BV-03-C
L2CAP/LE/CFC/BV-04-C
L2CAP/LE/CFC/BV-05-C
L2CAP/LE/CFC/BV-06-C
L2CAP/LE/CFC/BV-07-C
L2CAP/LE/CFC/BI-01-C
L2CAP/LE/CFC/BV-08-C
L2CAP/LE/CFC/BV-09-C
L2CAP/LE/CFC/BV-10-C
L2CAP/LE/CFC/BV-11-C
L2CAP/LE/CFC/BV-12-C
L2CAP/LE/CFC/BV-13-C
L2CAP/LE/CFC/BV-14-C
L2CAP/LE/CFC/BV-15-C
L2CAP/LE/CFC/BV-16-C
L2CAP/LE/CFC/BV-18-C
L2CAP/LE/CFC/BV-19-C
L2CAP/LE/CFC/BV-20-C
L2CAP/LE/CFC/BV-21-C
L2CAP/LE/CFC/BV-22-C
L2CAP/LE/CFC/BV-23-C
L2CAP/LE/CFC/BV-24-C
L2CAP/LE/CFC/BV-25-C
L2CAP/LE/CFC/BV-26-C
L2CAP/LE/CFC/BV-27-C
L2CAP/LE/CFC/BV-28-C
L2CAP/LE/CFC/BV-29-C
L2CAP/LE/CFC/BV-30-C
L2CAP/LE/CFC/BV-31-C
L2CAP/LE/CFC/BV-32-C
L2CAP/ECFC/BV-01-C
L2CAP/ECFC/BV-02-C
L2CAP/ECFC/BV-03-C
L2CAP/ECFC/BV-04-C
L2CAP/ECFC/BV-06-C
L2CAP/ECFC/BV-07-C
L2CAP/ECFC/BI-01-C
L2CAP/ECFC/BI-02-C
L2CAP/ECFC/BV-08-C
L2CAP/ECFC/BV-09-C
L2CAP/ECFC/BV-10-C
L2CAP/ECFC/BV-11-C
L2CAP/ECFC/BV-12-C
L2CAP/ECFC/BV-13-C
L2CAP/ECFC/BV-14-C
L2CAP/ECFC/BV-15-C
L2CAP/ECFC/BV-16-C
L2CAP/ECFC/BV-17-C
L2CAP/ECFC/BV-18-C
L2CAP/ECFC/BV-19-C
L2CAP/ECFC/BV-20-C
L2CAP/ECFC/BV-21-C
L2CAP/ECFC/BV-22-C
L2CAP/ECFC/BV-23-C
L2CAP/ECFC/BI-03-C
L2CAP/ECFC/BV-24-C
L2CAP/ECFC/BV-25-C
L2CAP/ECFC/BI-04-C
L2CAP/ECFC/BV-26-C
L2CAP/ECFC/BV-27-C
L2CAP/ECFC/BV-28-C
L2CAP/ECFC/BV-29-C
L2CAP/ECFC/BV-30-C
L2CAP/ECFC/BV-31-C
L2CAP/ECFC/BV-32-C
L2CAP/ECFC/BV-33-C
L2CAP/ECFC/BV-34-C
L2CAP/ECFC/BV-35-C
L2CAP/ECFC/BV-38-C
L2CAP/ECFC/BV-39-C
L2CAP/ECFC/BV-41-C
L2CAP/ECFC/BI-05-C
L2CAP/ECFC/BI-06-C
L2CAP/ECFC/BI-07-C
L2CAP/ECFC/BV-80-C
L2CAP/TIM/BV-03-C

@codecoup-tester
Copy link

AutoPTS Bot results:

Failed tests (6)L2CAP L2CAP/COS/CED/BI-29-C INDCSV
L2CAP L2CAP/ECFC/BV-20-C INDCSV
L2CAP L2CAP/ECFC/BV-22-C INDCSV
L2CAP L2CAP/ECFC/BV-33-C FAIL
L2CAP L2CAP/LE/CFC/BV-26-C FAIL
L2CAP L2CAP/TIM/BV-03-C INDCSV
Successful tests (94)L2CAP L2CAP/COS/CED/BI-05-C PASS
L2CAP L2CAP/COS/CED/BI-09-C PASS
L2CAP L2CAP/COS/CED/BI-11-C PASS
L2CAP L2CAP/COS/CED/BI-13-C PASS
L2CAP L2CAP/COS/CED/BI-16-C PASS
L2CAP L2CAP/COS/CED/BI-17-C PASS
L2CAP L2CAP/COS/CFC/BV-01-C PASS
L2CAP L2CAP/COS/CFC/BV-02-C PASS
L2CAP L2CAP/COS/CFC/BV-03-C PASS
L2CAP L2CAP/COS/CFC/BV-04-C PASS
L2CAP L2CAP/COS/CFC/BV-05-C PASS
L2CAP L2CAP/COS/ECFC/BV-01-C PASS - ERRATA Request ID 145333
L2CAP L2CAP/COS/ECFC/BV-02-C PASS
L2CAP L2CAP/COS/ECFC/BV-03-C PASS
L2CAP L2CAP/COS/ECFC/BV-04-C PASS
L2CAP L2CAP/ECFC/BI-01-C PASS
L2CAP L2CAP/ECFC/BI-02-C PASS - ERRATA Request ID 103343
L2CAP L2CAP/ECFC/BI-03-C PASS
L2CAP L2CAP/ECFC/BI-04-C PASS - ERRATA Request ID 173638
L2CAP L2CAP/ECFC/BI-05-C PASS
L2CAP L2CAP/ECFC/BI-06-C PASS
L2CAP L2CAP/ECFC/BI-07-C PASS
L2CAP L2CAP/ECFC/BV-01-C PASS
L2CAP L2CAP/ECFC/BV-02-C PASS
L2CAP L2CAP/ECFC/BV-03-C PASS
L2CAP L2CAP/ECFC/BV-04-C PASS
L2CAP L2CAP/ECFC/BV-06-C PASS
L2CAP L2CAP/ECFC/BV-07-C PASS
L2CAP L2CAP/ECFC/BV-08-C PASS
L2CAP L2CAP/ECFC/BV-09-C PASS
L2CAP L2CAP/ECFC/BV-10-C PASS
L2CAP L2CAP/ECFC/BV-11-C PASS
L2CAP L2CAP/ECFC/BV-12-C PASS
L2CAP L2CAP/ECFC/BV-13-C PASS
L2CAP L2CAP/ECFC/BV-14-C PASS
L2CAP L2CAP/ECFC/BV-15-C PASS
L2CAP L2CAP/ECFC/BV-16-C PASS
L2CAP L2CAP/ECFC/BV-17-C PASS
L2CAP L2CAP/ECFC/BV-18-C PASS
L2CAP L2CAP/ECFC/BV-19-C PASS
L2CAP L2CAP/ECFC/BV-21-C PASS
L2CAP L2CAP/ECFC/BV-23-C PASS
L2CAP L2CAP/ECFC/BV-24-C PASS
L2CAP L2CAP/ECFC/BV-25-C PASS
L2CAP L2CAP/ECFC/BV-26-C PASS
L2CAP L2CAP/ECFC/BV-27-C PASS
L2CAP L2CAP/ECFC/BV-28-C PASS
L2CAP L2CAP/ECFC/BV-29-C PASS
L2CAP L2CAP/ECFC/BV-30-C PASS
L2CAP L2CAP/ECFC/BV-31-C PASS
L2CAP L2CAP/ECFC/BV-32-C PASS
L2CAP L2CAP/ECFC/BV-34-C PASS
L2CAP L2CAP/ECFC/BV-35-C PASS
L2CAP L2CAP/ECFC/BV-38-C PASS
L2CAP L2CAP/ECFC/BV-39-C PASS
L2CAP L2CAP/ECFC/BV-41-C PASS
L2CAP L2CAP/ECFC/BV-80-C PASS
L2CAP L2CAP/LE/CFC/BI-01-C PASS
L2CAP L2CAP/LE/CFC/BV-01-C PASS
L2CAP L2CAP/LE/CFC/BV-02-C PASS
L2CAP L2CAP/LE/CFC/BV-03-C PASS
L2CAP L2CAP/LE/CFC/BV-04-C PASS
L2CAP L2CAP/LE/CFC/BV-05-C PASS
L2CAP L2CAP/LE/CFC/BV-06-C PASS
L2CAP L2CAP/LE/CFC/BV-07-C PASS
L2CAP L2CAP/LE/CFC/BV-08-C PASS
L2CAP L2CAP/LE/CFC/BV-09-C PASS
L2CAP L2CAP/LE/CFC/BV-10-C PASS
L2CAP L2CAP/LE/CFC/BV-11-C PASS
L2CAP L2CAP/LE/CFC/BV-12-C PASS
L2CAP L2CAP/LE/CFC/BV-13-C PASS
L2CAP L2CAP/LE/CFC/BV-14-C PASS
L2CAP L2CAP/LE/CFC/BV-15-C PASS
L2CAP L2CAP/LE/CFC/BV-16-C PASS
L2CAP L2CAP/LE/CFC/BV-18-C PASS
L2CAP L2CAP/LE/CFC/BV-19-C PASS
L2CAP L2CAP/LE/CFC/BV-20-C PASS
L2CAP L2CAP/LE/CFC/BV-21-C PASS
L2CAP L2CAP/LE/CFC/BV-22-C PASS
L2CAP L2CAP/LE/CFC/BV-23-C PASS
L2CAP L2CAP/LE/CFC/BV-24-C PASS
L2CAP L2CAP/LE/CFC/BV-25-C PASS
L2CAP L2CAP/LE/CFC/BV-27-C PASS
L2CAP L2CAP/LE/CFC/BV-28-C PASS
L2CAP L2CAP/LE/CFC/BV-29-C PASS
L2CAP L2CAP/LE/CFC/BV-30-C PASS
L2CAP L2CAP/LE/CFC/BV-31-C PASS
L2CAP L2CAP/LE/CFC/BV-32-C PASS
L2CAP L2CAP/LE/CID/BI-01-C PASS
L2CAP L2CAP/LE/CPU/BI-01-C PASS
L2CAP L2CAP/LE/CPU/BI-02-C PASS
L2CAP L2CAP/LE/CPU/BV-01-C PASS
L2CAP L2CAP/LE/CPU/BV-02-C PASS
L2CAP L2CAP/LE/REJ/BI-02-C PASS

Main goal here to cleanup how locking is being done in L2CAP code:
 - avoid double/nested locking
 - avoid lock-unlock-lock pattern due to public API calls from
   internal code
 - provide _nolock variants to be used internally
 - public API is locked wrapper around _nolock private API
 - avoid locking in FOO and unlocking in BAR function for code clarify
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants