diff options
| author | zhao maosheng <[email protected]> | 2024-08-01 11:20:14 +0800 |
|---|---|---|
| committer | Bernard Xiong <[email protected]> | 2024-08-09 12:54:10 +0800 |
| commit | f543160ead455096d0f5756ffd8876914dd4abdb (patch) | |
| tree | 896ffa6d9e610e41ad4c076b1414f80d1e11aaf5 | |
| parent | 8c5f24469c7a51066fa72298427841ec509dbc9b (diff) | |
fix rt_atomic_dec_and_test
| -rw-r--r-- | components/drivers/core/platform_ofw.c | 4 | ||||
| -rw-r--r-- | include/rtatomic.h | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/components/drivers/core/platform_ofw.c b/components/drivers/core/platform_ofw.c index f305fde62b..d1c0f774e0 100644 --- a/components/drivers/core/platform_ofw.c +++ b/components/drivers/core/platform_ofw.c @@ -206,6 +206,8 @@ static int platform_ofw_device_probe(void) if (ofw_node_root) { + rt_ofw_node_get(ofw_node_root); + err = platform_ofw_device_probe_once(ofw_node_root); rt_ofw_node_put(ofw_node_root); @@ -216,11 +218,13 @@ static int platform_ofw_device_probe(void) rt_ofw_node_put(node); } + rt_ofw_node_get(ofw_node_chosen); if ((node = rt_ofw_get_child_by_compatible(ofw_node_chosen, "simple-framebuffer"))) { platform_ofw_device_probe_once(node); rt_ofw_node_put(node); } + rt_ofw_node_get(ofw_node_chosen); } else { diff --git a/include/rtatomic.h b/include/rtatomic.h index 5363ee5426..b91145e40b 100644 --- a/include/rtatomic.h +++ b/include/rtatomic.h @@ -203,7 +203,7 @@ rt_inline rt_atomic_t rt_soft_atomic_compare_exchange_strong(volatile rt_atomic_ rt_inline rt_bool_t rt_atomic_dec_and_test(volatile rt_atomic_t *ptr) { - return rt_atomic_sub(ptr, 1) == 0; + return rt_atomic_sub(ptr, 1) == 1; } rt_inline rt_atomic_t rt_atomic_fetch_add_unless(volatile rt_atomic_t *ptr, rt_atomic_t a, rt_atomic_t u) |
