Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

s390/qdio: consider ERROR buffers for inbound-full condition

In the unlikely case that an ERROR buffer (presented by the HW)
consumed the last available slot on the input queue, increment the
corresponding statistics counter.

Signed-off-by: Julian Wiedmann <jwi@linux.vnet.ibm.com>
Reviewed-by: Benjamin Block <bblock@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>

authored by

Julian Wiedmann and committed by
Martin Schwidefsky
0b926ac3 edfb8d8f

+2 -1
+2 -1
drivers/s390/cio/qdio_main.c
··· 536 536 case SLSB_P_INPUT_ERROR: 537 537 process_buffer_error(q, count); 538 538 q->first_to_check = add_buf(q->first_to_check, count); 539 - atomic_sub(count, &q->nr_buf_used); 539 + if (atomic_sub_return(count, &q->nr_buf_used) == 0) 540 + qperf_inc(q, inbound_queue_full); 540 541 if (q->irq_ptr->perf_stat_enabled) 541 542 account_sbals_error(q, count); 542 543 break;