rt-thread icon indicating copy to clipboard operation
rt-thread copied to clipboard

[Bug]components/drivers/pm/pm.c rt_pm_device_register API would be hang when RT_USING_SMP is configured

Open michael-vinke opened this issue 9 months ago • 0 comments

RT-Thread Version

5.1.0

Hardware Type/Architectures

riscv

Develop Toolchain

GCC

Describe the bug

  1. define RT_USING_SMP macro
  2. using rt_pm_device_register API at components initialization context
  3. the API would be hang at RT_KERNEL_REALLOC calling Solution: put the RT_KERNEL_REALLOC calling out of critical region, just like as below: device_pm = (struct rt_device_pm *)RT_KERNEL_REALLOC(_pm.device_pm, (_pm.device_pm_number + 1) * sizeof(struct rt_device_pm)); if (device_pm != RT_NULL) { level = rt_hw_interrupt_disable(); _pm.device_pm = device_pm; _pm.device_pm[_pm.device_pm_number].device = device; _pm.device_pm[_pm.device_pm_number].ops = ops; _pm.device_pm_number += 1; rt_hw_interrupt_enable(level); }

Other additional context

No response

michael-vinke avatar Mar 05 '25 03:03 michael-vinke