[dm][hwspinlock] support hwspinlock#11030
Conversation
|
👋 感谢您对 RT-Thread 的贡献!Thank you for your contribution to RT-Thread! 为确保代码符合 RT-Thread 的编码规范,请在你的仓库中执行以下步骤运行代码格式化工作流(如果格式化CI运行失败)。 🛠 操作步骤 | Steps
完成后,提交将自动更新至 如有问题欢迎联系我们,再次感谢您的贡献!💐 |
📌 Code Review Assignment🏷️ Tag: componentsReviewers: Maihuanyi Changed Files (Click to expand)
📊 Current Review Status (Last Updated: 2025-12-10 18:10 CST)
📝 Review Instructions
|
There was a problem hiding this comment.
Pull request overview
This PR adds a hardware spinlock (hwspinlock) driver framework to RT-Thread, providing hardware-assisted synchronization and mutual exclusion between heterogeneous processors. The implementation follows RT-Thread's device manager (dm) architecture pattern.
Key Changes:
- Adds hwspinlock driver framework with bank-based lock management
- Implements OFW (Open Firmware) integration for device tree support
- Provides both raw lock APIs and device-oriented get/put interfaces
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 13 comments.
Show a summary per file
| File | Description |
|---|---|
| components/drivers/hwspinlock/hwspinlock.c | Core implementation of hwspinlock driver with registration, lock/unlock operations, and OFW integration |
| components/drivers/hwspinlock/hwspinlock_dm.h | Internal header defining hwspinlock data structures, ops interface, and helper macros |
| components/drivers/hwspinlock/Kconfig | Configuration file enabling hwspinlock support with DM and OFW dependencies |
| components/drivers/hwspinlock/SConscript | Build script for compiling hwspinlock driver module |
| components/drivers/Kconfig | Adds hwspinlock Kconfig integration to main drivers configuration |
| components/drivers/include/rtdevice.h | Includes hwspinlock.h header (but the file doesn't exist yet) |
Critical Issues Found:
- Missing public API header file (drivers/hwspinlock.h)
- Uninitialized
hwlock->bankpointer causing NULL dereferences - Incorrect
hwlock->usedflag inrt_hwspinlock_put(should be FALSE, not TRUE) - Missing bounds checking for array access in
hwspinlock_get - Missing reference count increment in
hwspinlock_get - Missing list removal in
rt_hwspinlock_bank_unregister - Race condition in
rt_hwspinlock_put(missing spinlock protection)
Hardware spinlock modules provide hardware assistance for synchronization and mutual exclusion between heterogeneous processors and those not operating under a single, shared operating system. Signed-off-by: GuEe-GUI <2991707448@qq.com>
|
@Rbb666 AI 相关要求已修改 |
拉取/合并请求描述:(PR description)
[
Hardware spinlock modules provide hardware assistance for synchronization and mutual exclusion between heterogeneous processors and those not operating under a single, shared operating system.
]
当前拉取/合并请求的状态 Intent for your PR
必须选择一项 Choose one (Mandatory):
代码质量 Code Quality:
我在这个拉取/合并请求中已经考虑了 As part of this pull request, I've considered the following:
#if 0代码,不包含已经被注释了的代码 All redundant code is removed and cleaned up