|
@@ -30,8 +30,7 @@ static inline int waking_non_zero(struct semaphore *sem)
|
|
|
unsigned long flags;
|
|
|
int ret = 0;
|
|
|
|
|
|
- local_save_flags(flags);
|
|
|
- local_irq_disable();
|
|
|
+ local_irq_save(flags);
|
|
|
if (read(&sem->waking) > 0) {
|
|
|
dec(&sem->waking);
|
|
|
ret = 1;
|
|
@@ -46,8 +45,7 @@ static inline int waking_non_zero_interruptible(struct semaphore *sem,
|
|
|
int ret = 0;
|
|
|
unsigned long flags;
|
|
|
|
|
|
- local_save_flags(flags);
|
|
|
- local_irq_disable();
|
|
|
+ local_irq_save(flags);
|
|
|
if (read(&sem->waking) > 0) {
|
|
|
dec(&sem->waking);
|
|
|
ret = 1;
|
|
@@ -64,8 +62,7 @@ static inline int waking_non_zero_trylock(struct semaphore *sem)
|
|
|
int ret = 1;
|
|
|
unsigned long flags;
|
|
|
|
|
|
- local_save_flags(flags);
|
|
|
- local_irq_disable();
|
|
|
+ local_irq_save(flags);
|
|
|
if (read(&sem->waking) <= 0)
|
|
|
inc(&sem->count);
|
|
|
else {
|