Commit ec2b559d authored by Julian Wiedmann's avatar Julian Wiedmann Committed by David S. Miller

s390/qeth: use QDIO_BUFNR()

qdio.h recently gained a new helper macro that handles wrap-around on a
QDIO queue, consistently use it across all of qeth.
Signed-off-by: default avatarJulian Wiedmann <jwi@linux.ibm.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 8b664cd1
...@@ -3121,7 +3121,7 @@ static void qeth_queue_input_buffer(struct qeth_card *card, int index) ...@@ -3121,7 +3121,7 @@ static void qeth_queue_input_buffer(struct qeth_card *card, int index)
for (i = queue->next_buf_to_init; for (i = queue->next_buf_to_init;
i < queue->next_buf_to_init + count; ++i) { i < queue->next_buf_to_init + count; ++i) {
if (qeth_init_input_buffer(card, if (qeth_init_input_buffer(card,
&queue->bufs[i % QDIO_MAX_BUFFERS_PER_Q])) { &queue->bufs[QDIO_BUFNR(i)])) {
break; break;
} else { } else {
newcount++; newcount++;
...@@ -3163,8 +3163,8 @@ static void qeth_queue_input_buffer(struct qeth_card *card, int index) ...@@ -3163,8 +3163,8 @@ static void qeth_queue_input_buffer(struct qeth_card *card, int index)
if (rc) { if (rc) {
QETH_CARD_TEXT(card, 2, "qinberr"); QETH_CARD_TEXT(card, 2, "qinberr");
} }
queue->next_buf_to_init = (queue->next_buf_to_init + count) % queue->next_buf_to_init = QDIO_BUFNR(queue->next_buf_to_init +
QDIO_MAX_BUFFERS_PER_Q; count);
} }
} }
...@@ -3212,7 +3212,7 @@ static int qeth_prep_flush_pack_buffer(struct qeth_qdio_out_q *queue) ...@@ -3212,7 +3212,7 @@ static int qeth_prep_flush_pack_buffer(struct qeth_qdio_out_q *queue)
/* it's a packing buffer */ /* it's a packing buffer */
atomic_set(&buffer->state, QETH_QDIO_BUF_PRIMED); atomic_set(&buffer->state, QETH_QDIO_BUF_PRIMED);
queue->next_buf_to_fill = queue->next_buf_to_fill =
(queue->next_buf_to_fill + 1) % QDIO_MAX_BUFFERS_PER_Q; QDIO_BUFNR(queue->next_buf_to_fill + 1);
return 1; return 1;
} }
return 0; return 0;
...@@ -3266,7 +3266,8 @@ static void qeth_flush_buffers(struct qeth_qdio_out_q *queue, int index, ...@@ -3266,7 +3266,8 @@ static void qeth_flush_buffers(struct qeth_qdio_out_q *queue, int index,
unsigned int qdio_flags; unsigned int qdio_flags;
for (i = index; i < index + count; ++i) { for (i = index; i < index + count; ++i) {
int bidx = i % QDIO_MAX_BUFFERS_PER_Q; unsigned int bidx = QDIO_BUFNR(i);
buf = queue->bufs[bidx]; buf = queue->bufs[bidx];
buf->buffer->element[buf->next_element_to_fill - 1].eflags |= buf->buffer->element[buf->next_element_to_fill - 1].eflags |=
SBAL_EFLAGS_LAST_ENTRY; SBAL_EFLAGS_LAST_ENTRY;
...@@ -3434,8 +3435,7 @@ static void qeth_qdio_cq_handler(struct qeth_card *card, unsigned int qdio_err, ...@@ -3434,8 +3435,7 @@ static void qeth_qdio_cq_handler(struct qeth_card *card, unsigned int qdio_err,
} }
for (i = first_element; i < first_element + count; ++i) { for (i = first_element; i < first_element + count; ++i) {
int bidx = i % QDIO_MAX_BUFFERS_PER_Q; struct qdio_buffer *buffer = cq->qdio_bufs[QDIO_BUFNR(i)];
struct qdio_buffer *buffer = cq->qdio_bufs[bidx];
int e = 0; int e = 0;
while ((e < QDIO_MAX_ELEMENTS_PER_BUFFER) && while ((e < QDIO_MAX_ELEMENTS_PER_BUFFER) &&
...@@ -3456,8 +3456,8 @@ static void qeth_qdio_cq_handler(struct qeth_card *card, unsigned int qdio_err, ...@@ -3456,8 +3456,8 @@ static void qeth_qdio_cq_handler(struct qeth_card *card, unsigned int qdio_err,
"QDIO reported an error, rc=%i\n", rc); "QDIO reported an error, rc=%i\n", rc);
QETH_CARD_TEXT(card, 2, "qcqherr"); QETH_CARD_TEXT(card, 2, "qcqherr");
} }
card->qdio.c_q->next_buf_to_init = (card->qdio.c_q->next_buf_to_init
+ count) % QDIO_MAX_BUFFERS_PER_Q; cq->next_buf_to_init = QDIO_BUFNR(cq->next_buf_to_init + count);
} }
static void qeth_qdio_input_handler(struct ccw_device *ccwdev, static void qeth_qdio_input_handler(struct ccw_device *ccwdev,
...@@ -3483,7 +3483,6 @@ static void qeth_qdio_output_handler(struct ccw_device *ccwdev, ...@@ -3483,7 +3483,6 @@ static void qeth_qdio_output_handler(struct ccw_device *ccwdev,
{ {
struct qeth_card *card = (struct qeth_card *) card_ptr; struct qeth_card *card = (struct qeth_card *) card_ptr;
struct qeth_qdio_out_q *queue = card->qdio.out_qs[__queue]; struct qeth_qdio_out_q *queue = card->qdio.out_qs[__queue];
struct qeth_qdio_out_buffer *buffer;
struct net_device *dev = card->dev; struct net_device *dev = card->dev;
struct netdev_queue *txq; struct netdev_queue *txq;
int i; int i;
...@@ -3497,10 +3496,10 @@ static void qeth_qdio_output_handler(struct ccw_device *ccwdev, ...@@ -3497,10 +3496,10 @@ static void qeth_qdio_output_handler(struct ccw_device *ccwdev,
} }
for (i = first_element; i < (first_element + count); ++i) { for (i = first_element; i < (first_element + count); ++i) {
int bidx = i % QDIO_MAX_BUFFERS_PER_Q; struct qeth_qdio_out_buffer *buf = queue->bufs[QDIO_BUFNR(i)];
buffer = queue->bufs[bidx];
qeth_handle_send_error(card, buffer, qdio_error); qeth_handle_send_error(card, buf, qdio_error);
qeth_clear_output_buffer(queue, buffer, qdio_error, 0); qeth_clear_output_buffer(queue, buf, qdio_error, 0);
} }
atomic_sub(count, &queue->used_buffers); atomic_sub(count, &queue->used_buffers);
...@@ -3932,8 +3931,7 @@ int qeth_do_send_packet(struct qeth_card *card, struct qeth_qdio_out_q *queue, ...@@ -3932,8 +3931,7 @@ int qeth_do_send_packet(struct qeth_card *card, struct qeth_qdio_out_q *queue,
atomic_set(&buffer->state, QETH_QDIO_BUF_PRIMED); atomic_set(&buffer->state, QETH_QDIO_BUF_PRIMED);
flush_count++; flush_count++;
queue->next_buf_to_fill = queue->next_buf_to_fill =
(queue->next_buf_to_fill + 1) % QDIO_BUFNR(queue->next_buf_to_fill + 1);
QDIO_MAX_BUFFERS_PER_Q;
buffer = queue->bufs[queue->next_buf_to_fill]; buffer = queue->bufs[queue->next_buf_to_fill];
/* We stepped forward, so sanity-check again: */ /* We stepped forward, so sanity-check again: */
...@@ -3966,8 +3964,8 @@ int qeth_do_send_packet(struct qeth_card *card, struct qeth_qdio_out_q *queue, ...@@ -3966,8 +3964,8 @@ int qeth_do_send_packet(struct qeth_card *card, struct qeth_qdio_out_q *queue,
if (!queue->do_pack || stopped || next_element >= queue->max_elements) { if (!queue->do_pack || stopped || next_element >= queue->max_elements) {
flush_count++; flush_count++;
atomic_set(&buffer->state, QETH_QDIO_BUF_PRIMED); atomic_set(&buffer->state, QETH_QDIO_BUF_PRIMED);
queue->next_buf_to_fill = (queue->next_buf_to_fill + 1) % queue->next_buf_to_fill =
QDIO_MAX_BUFFERS_PER_Q; QDIO_BUFNR(queue->next_buf_to_fill + 1);
} }
if (flush_count) if (flush_count)
...@@ -5199,8 +5197,7 @@ int qeth_poll(struct napi_struct *napi, int budget) ...@@ -5199,8 +5197,7 @@ int qeth_poll(struct napi_struct *napi, int budget)
card->rx.b_count--; card->rx.b_count--;
if (card->rx.b_count) { if (card->rx.b_count) {
card->rx.b_index = card->rx.b_index =
(card->rx.b_index + 1) % QDIO_BUFNR(card->rx.b_index + 1);
QDIO_MAX_BUFFERS_PER_Q;
card->rx.b_element = card->rx.b_element =
&card->qdio.in_q &card->qdio.in_q
->bufs[card->rx.b_index] ->bufs[card->rx.b_index]
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment