Browse Source

Merge pull request #4852 from mysterywolf/rmovefifo

[kernel][ipc] 移除mutex RT_IPC_FLAG_FIFO 功能
Bernard Xiong 4 years ago
parent
commit
7c00795c71
1 changed files with 7 additions and 4 deletions
  1. 7 4
      src/ipc.c

+ 7 - 4
src/ipc.c

@@ -548,6 +548,8 @@ RTM_EXPORT(rt_sem_control);
  */
  */
 rt_err_t rt_mutex_init(rt_mutex_t mutex, const char *name, rt_uint8_t flag)
 rt_err_t rt_mutex_init(rt_mutex_t mutex, const char *name, rt_uint8_t flag)
 {
 {
+    (void)flag;
+
     /* parameter check */
     /* parameter check */
     RT_ASSERT(mutex != RT_NULL);
     RT_ASSERT(mutex != RT_NULL);
 
 
@@ -562,8 +564,8 @@ rt_err_t rt_mutex_init(rt_mutex_t mutex, const char *name, rt_uint8_t flag)
     mutex->original_priority = 0xFF;
     mutex->original_priority = 0xFF;
     mutex->hold  = 0;
     mutex->hold  = 0;
 
 
-    /* set flag */
-    mutex->parent.parent.flag = flag;
+    /* flag can only be RT_IPC_FLAG_PRIO. RT_IPC_FLAG_FIFO cannot solve the unbounded priority inversion problem */
+    mutex->parent.parent.flag = RT_IPC_FLAG_PRIO;
 
 
     return RT_EOK;
     return RT_EOK;
 }
 }
@@ -609,6 +611,7 @@ RTM_EXPORT(rt_mutex_detach);
 rt_mutex_t rt_mutex_create(const char *name, rt_uint8_t flag)
 rt_mutex_t rt_mutex_create(const char *name, rt_uint8_t flag)
 {
 {
     struct rt_mutex *mutex;
     struct rt_mutex *mutex;
+    (void)flag;
 
 
     RT_DEBUG_NOT_IN_INTERRUPT;
     RT_DEBUG_NOT_IN_INTERRUPT;
 
 
@@ -625,8 +628,8 @@ rt_mutex_t rt_mutex_create(const char *name, rt_uint8_t flag)
     mutex->original_priority  = 0xFF;
     mutex->original_priority  = 0xFF;
     mutex->hold               = 0;
     mutex->hold               = 0;
 
 
-    /* set flag */
-    mutex->parent.parent.flag = flag;
+    /* flag can only be RT_IPC_FLAG_PRIO. RT_IPC_FLAG_FIFO cannot solve the unbounded priority inversion problem */
+    mutex->parent.parent.flag = RT_IPC_FLAG_PRIO;
 
 
     return mutex;
     return mutex;
 }
 }