Skip to content

Commit ec2b559

Browse files
julianwiedmanndavem330
authored andcommitted
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: Julian Wiedmann <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 8b664cd commit ec2b559

File tree

1 file changed

+17
-20
lines changed

1 file changed

+17
-20
lines changed

drivers/s390/net/qeth_core_main.c

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3121,7 +3121,7 @@ static void qeth_queue_input_buffer(struct qeth_card *card, int index)
31213121
for (i = queue->next_buf_to_init;
31223122
i < queue->next_buf_to_init + count; ++i) {
31233123
if (qeth_init_input_buffer(card,
3124-
&queue->bufs[i % QDIO_MAX_BUFFERS_PER_Q])) {
3124+
&queue->bufs[QDIO_BUFNR(i)])) {
31253125
break;
31263126
} else {
31273127
newcount++;
@@ -3163,8 +3163,8 @@ static void qeth_queue_input_buffer(struct qeth_card *card, int index)
31633163
if (rc) {
31643164
QETH_CARD_TEXT(card, 2, "qinberr");
31653165
}
3166-
queue->next_buf_to_init = (queue->next_buf_to_init + count) %
3167-
QDIO_MAX_BUFFERS_PER_Q;
3166+
queue->next_buf_to_init = QDIO_BUFNR(queue->next_buf_to_init +
3167+
count);
31683168
}
31693169
}
31703170

@@ -3212,7 +3212,7 @@ static int qeth_prep_flush_pack_buffer(struct qeth_qdio_out_q *queue)
32123212
/* it's a packing buffer */
32133213
atomic_set(&buffer->state, QETH_QDIO_BUF_PRIMED);
32143214
queue->next_buf_to_fill =
3215-
(queue->next_buf_to_fill + 1) % QDIO_MAX_BUFFERS_PER_Q;
3215+
QDIO_BUFNR(queue->next_buf_to_fill + 1);
32163216
return 1;
32173217
}
32183218
return 0;
@@ -3266,7 +3266,8 @@ static void qeth_flush_buffers(struct qeth_qdio_out_q *queue, int index,
32663266
unsigned int qdio_flags;
32673267

32683268
for (i = index; i < index + count; ++i) {
3269-
int bidx = i % QDIO_MAX_BUFFERS_PER_Q;
3269+
unsigned int bidx = QDIO_BUFNR(i);
3270+
32703271
buf = queue->bufs[bidx];
32713272
buf->buffer->element[buf->next_element_to_fill - 1].eflags |=
32723273
SBAL_EFLAGS_LAST_ENTRY;
@@ -3434,8 +3435,7 @@ static void qeth_qdio_cq_handler(struct qeth_card *card, unsigned int qdio_err,
34343435
}
34353436

34363437
for (i = first_element; i < first_element + count; ++i) {
3437-
int bidx = i % QDIO_MAX_BUFFERS_PER_Q;
3438-
struct qdio_buffer *buffer = cq->qdio_bufs[bidx];
3438+
struct qdio_buffer *buffer = cq->qdio_bufs[QDIO_BUFNR(i)];
34393439
int e = 0;
34403440

34413441
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,
34563456
"QDIO reported an error, rc=%i\n", rc);
34573457
QETH_CARD_TEXT(card, 2, "qcqherr");
34583458
}
3459-
card->qdio.c_q->next_buf_to_init = (card->qdio.c_q->next_buf_to_init
3460-
+ count) % QDIO_MAX_BUFFERS_PER_Q;
3459+
3460+
cq->next_buf_to_init = QDIO_BUFNR(cq->next_buf_to_init + count);
34613461
}
34623462

34633463
static void qeth_qdio_input_handler(struct ccw_device *ccwdev,
@@ -3483,7 +3483,6 @@ static void qeth_qdio_output_handler(struct ccw_device *ccwdev,
34833483
{
34843484
struct qeth_card *card = (struct qeth_card *) card_ptr;
34853485
struct qeth_qdio_out_q *queue = card->qdio.out_qs[__queue];
3486-
struct qeth_qdio_out_buffer *buffer;
34873486
struct net_device *dev = card->dev;
34883487
struct netdev_queue *txq;
34893488
int i;
@@ -3497,10 +3496,10 @@ static void qeth_qdio_output_handler(struct ccw_device *ccwdev,
34973496
}
34983497

34993498
for (i = first_element; i < (first_element + count); ++i) {
3500-
int bidx = i % QDIO_MAX_BUFFERS_PER_Q;
3501-
buffer = queue->bufs[bidx];
3502-
qeth_handle_send_error(card, buffer, qdio_error);
3503-
qeth_clear_output_buffer(queue, buffer, qdio_error, 0);
3499+
struct qeth_qdio_out_buffer *buf = queue->bufs[QDIO_BUFNR(i)];
3500+
3501+
qeth_handle_send_error(card, buf, qdio_error);
3502+
qeth_clear_output_buffer(queue, buf, qdio_error, 0);
35043503
}
35053504

35063505
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,
39323931
atomic_set(&buffer->state, QETH_QDIO_BUF_PRIMED);
39333932
flush_count++;
39343933
queue->next_buf_to_fill =
3935-
(queue->next_buf_to_fill + 1) %
3936-
QDIO_MAX_BUFFERS_PER_Q;
3934+
QDIO_BUFNR(queue->next_buf_to_fill + 1);
39373935
buffer = queue->bufs[queue->next_buf_to_fill];
39383936

39393937
/* 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,
39663964
if (!queue->do_pack || stopped || next_element >= queue->max_elements) {
39673965
flush_count++;
39683966
atomic_set(&buffer->state, QETH_QDIO_BUF_PRIMED);
3969-
queue->next_buf_to_fill = (queue->next_buf_to_fill + 1) %
3970-
QDIO_MAX_BUFFERS_PER_Q;
3967+
queue->next_buf_to_fill =
3968+
QDIO_BUFNR(queue->next_buf_to_fill + 1);
39713969
}
39723970

39733971
if (flush_count)
@@ -5199,8 +5197,7 @@ int qeth_poll(struct napi_struct *napi, int budget)
51995197
card->rx.b_count--;
52005198
if (card->rx.b_count) {
52015199
card->rx.b_index =
5202-
(card->rx.b_index + 1) %
5203-
QDIO_MAX_BUFFERS_PER_Q;
5200+
QDIO_BUFNR(card->rx.b_index + 1);
52045201
card->rx.b_element =
52055202
&card->qdio.in_q
52065203
->bufs[card->rx.b_index]

0 commit comments

Comments
 (0)