hc
2023-11-22 f743a7adbd6e230d66a6206fa115b59fec2d88eb
kernel/include/linux/percpu-rwsem.h
....@@ -29,7 +29,7 @@
2929 extern int __percpu_down_read(struct percpu_rw_semaphore *, int);
3030 extern void __percpu_up_read(struct percpu_rw_semaphore *);
3131
32
-static inline void percpu_down_read_preempt_disable(struct percpu_rw_semaphore *sem)
32
+static inline void percpu_down_read(struct percpu_rw_semaphore *sem)
3333 {
3434 might_sleep();
3535
....@@ -47,16 +47,10 @@
4747 __this_cpu_inc(*sem->read_count);
4848 if (unlikely(!rcu_sync_is_idle(&sem->rss)))
4949 __percpu_down_read(sem, false); /* Unconditional memory barrier */
50
- barrier();
5150 /*
52
- * The barrier() prevents the compiler from
51
+ * The preempt_enable() prevents the compiler from
5352 * bleeding the critical section out.
5453 */
55
-}
56
-
57
-static inline void percpu_down_read(struct percpu_rw_semaphore *sem)
58
-{
59
- percpu_down_read_preempt_disable(sem);
6054 preempt_enable();
6155 }
6256
....@@ -83,13 +77,9 @@
8377 return ret;
8478 }
8579
86
-static inline void percpu_up_read_preempt_enable(struct percpu_rw_semaphore *sem)
80
+static inline void percpu_up_read(struct percpu_rw_semaphore *sem)
8781 {
88
- /*
89
- * The barrier() prevents the compiler from
90
- * bleeding the critical section out.
91
- */
92
- barrier();
82
+ preempt_disable();
9383 /*
9484 * Same as in percpu_down_read().
9585 */
....@@ -100,12 +90,6 @@
10090 preempt_enable();
10191
10292 rwsem_release(&sem->rw_sem.dep_map, 1, _RET_IP_);
103
-}
104
-
105
-static inline void percpu_up_read(struct percpu_rw_semaphore *sem)
106
-{
107
- preempt_disable();
108
- percpu_up_read_preempt_enable(sem);
10993 }
11094
11195 extern void percpu_down_write(struct percpu_rw_semaphore *);