QDIO_MAX_BUFFERS_PER_Q
struct slibe slibe[QDIO_MAX_BUFFERS_PER_Q];
#define QDIO_MAX_BUFFERS_MASK (QDIO_MAX_BUFFERS_PER_Q - 1)
struct sl_element element[QDIO_MAX_BUFFERS_PER_Q];
u8 val[QDIO_MAX_BUFFERS_PER_Q];
struct qdio_buffer *sbal[QDIO_MAX_BUFFERS_PER_Q] ____cacheline_aligned;
for (i = 0; i < QDIO_MAX_BUFFERS_PER_Q; i++) {
if (bufnr >= QDIO_MAX_BUFFERS_PER_Q || count > QDIO_MAX_BUFFERS_PER_Q)
if (used == QDIO_MAX_BUFFERS_PER_Q)
} else if (count < QDIO_MAX_BUFFERS_PER_Q &&
if (bufnr >= QDIO_MAX_BUFFERS_PER_Q || count > QDIO_MAX_BUFFERS_PER_Q)
QDIO_MAX_BUFFERS_PER_Q);
QDIO_MAX_BUFFERS_PER_Q);
for (j = 0; j < QDIO_MAX_BUFFERS_PER_Q; j++)
for (j = 0; j < QDIO_MAX_BUFFERS_PER_Q; j++)
struct qdio_buffer *qdio_bufs[QDIO_MAX_BUFFERS_PER_Q];
struct qeth_qdio_buffer bufs[QDIO_MAX_BUFFERS_PER_Q];
struct qdio_buffer *qdio_bufs[QDIO_MAX_BUFFERS_PER_Q];
struct qeth_qdio_out_buffer *bufs[QDIO_MAX_BUFFERS_PER_Q];
return atomic_read(&queue->used_buffers) >= QDIO_MAX_BUFFERS_PER_Q;
for (j = 0; j < QDIO_MAX_BUFFERS_PER_Q; ++j) {
qdio_free_buffers(q->qdio_bufs, QDIO_MAX_BUFFERS_PER_Q);
if (qdio_alloc_buffers(q->qdio_bufs, QDIO_MAX_BUFFERS_PER_Q))
for (i = 0; i < QDIO_MAX_BUFFERS_PER_Q; i++) {
qdio_free_buffers(q->qdio_bufs, QDIO_MAX_BUFFERS_PER_Q);
for (j = 0; j < QDIO_MAX_BUFFERS_PER_Q; ++j) {
qdio_reset_buffers(card->qdio.in_q->qdio_bufs, QDIO_MAX_BUFFERS_PER_Q);
qdio_reset_buffers(queue->qdio_bufs, QDIO_MAX_BUFFERS_PER_Q);
qdio_free_buffers(q->qdio_bufs, QDIO_MAX_BUFFERS_PER_Q);
if (qdio_alloc_buffers(q->qdio_bufs, QDIO_MAX_BUFFERS_PER_Q)) {
for (i = 0; i < QDIO_MAX_BUFFERS_PER_Q; ++i)
QDIO_MAX_BUFFERS_PER_Q);
atomic_inc_return(&queue->used_buffers) >= QDIO_MAX_BUFFERS_PER_Q) {
atomic_inc_return(&queue->used_buffers) >= QDIO_MAX_BUFFERS_PER_Q) {
while (work_done < QDIO_MAX_BUFFERS_PER_Q) {
if (work_done >= QDIO_MAX_BUFFERS_PER_Q) {
param->rx_max_pending = QDIO_MAX_BUFFERS_PER_Q;
param->tx_max_pending = QDIO_MAX_BUFFERS_PER_Q;
param->tx_pending = QDIO_MAX_BUFFERS_PER_Q;
QDIO_MAX_BUFFERS_PER_Q;
sbal_idx = (idx + sbal_no) % QDIO_MAX_BUFFERS_PER_Q;
if (atomic_read(&qdio->req_q_free) < QDIO_MAX_BUFFERS_PER_Q)
q_req->sbal_last %= QDIO_MAX_BUFFERS_PER_Q;
qdio->req_q_idx %= QDIO_MAX_BUFFERS_PER_Q;
ret = qdio_alloc_buffers(qdio->req_q, QDIO_MAX_BUFFERS_PER_Q);
ret = qdio_alloc_buffers(qdio->res_q, QDIO_MAX_BUFFERS_PER_Q);
qdio_free_buffers(qdio->res_q, QDIO_MAX_BUFFERS_PER_Q);
qdio_free_buffers(qdio->req_q, QDIO_MAX_BUFFERS_PER_Q);
if (count < QDIO_MAX_BUFFERS_PER_Q) {
idx = (qdio->req_q_idx + count) % QDIO_MAX_BUFFERS_PER_Q;
count = QDIO_MAX_BUFFERS_PER_Q - count;
sbal_idx = i % QDIO_MAX_BUFFERS_PER_Q;
for (cc = 0; cc < QDIO_MAX_BUFFERS_PER_Q; cc++) {
if (qdio_add_bufs_to_input_queue(cdev, 0, 0, QDIO_MAX_BUFFERS_PER_Q))
atomic_set(&qdio->req_q_free, QDIO_MAX_BUFFERS_PER_Q);
qdio_free_buffers(qdio->req_q, QDIO_MAX_BUFFERS_PER_Q);
qdio_free_buffers(qdio->res_q, QDIO_MAX_BUFFERS_PER_Q);
used = QDIO_MAX_BUFFERS_PER_Q - atomic_read(&qdio->req_q_free);
if (atomic_read(&qdio->req_q_free) < QDIO_MAX_BUFFERS_PER_Q)
% QDIO_MAX_BUFFERS_PER_Q;
QDIO_MAX_BUFFERS_PER_Q;
struct qdio_buffer *res_q[QDIO_MAX_BUFFERS_PER_Q];
struct qdio_buffer *req_q[QDIO_MAX_BUFFERS_PER_Q];