s390/qdio: fix atomic_sub() misusage
get_inbound_buffer_frontier() makes use of the return value of atomic_sub() which shouldn't work, since atomic_sub() is supposed to return void. This only works on s390 because atomic_sub() gets mapped to atomic_sub_return() with a define without changing it's return value to void. So use atomic_sub_return() instead of atomic_sub() in qeth code before fixing atomic ops. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
Родитель
1ffa11abfe
Коммит
eddf0d5b31
|
@ -528,7 +528,7 @@ static int get_inbound_buffer_frontier(struct qdio_q *q)
|
|||
case SLSB_P_INPUT_PRIMED:
|
||||
inbound_primed(q, count);
|
||||
q->first_to_check = add_buf(q->first_to_check, count);
|
||||
if (atomic_sub(count, &q->nr_buf_used) == 0)
|
||||
if (atomic_sub_return(count, &q->nr_buf_used) == 0)
|
||||
qperf_inc(q, inbound_queue_full);
|
||||
if (q->irq_ptr->perf_stat_enabled)
|
||||
account_sbals(q, count);
|
||||
|
|
Загрузка…
Ссылка в новой задаче