|
@@ -56,10 +56,8 @@ static u32 *get_indicator(void)
|
|
|
int i;
|
|
|
|
|
|
for (i = 0; i < TIQDIO_NR_NONSHARED_IND; i++)
|
|
|
- if (!atomic_read(&q_indicators[i].count)) {
|
|
|
- atomic_set(&q_indicators[i].count, 1);
|
|
|
+ if (!atomic_cmpxchg(&q_indicators[i].count, 0, 1))
|
|
|
return &q_indicators[i].ind;
|
|
|
- }
|
|
|
|
|
|
/* use the shared indicator */
|
|
|
atomic_inc(&q_indicators[TIQDIO_SHARED_IND].count);
|