}
        for (i = 0; i < TSNEP_RING_SIZE; i++) {
                entry = &tx->entry[i];
-               next_entry = &tx->entry[(i + 1) % TSNEP_RING_SIZE];
+               next_entry = &tx->entry[(i + 1) & TSNEP_RING_MASK];
                entry->desc->next = __cpu_to_le64(next_entry->desc_dma);
        }
 
        int i;
 
        for (i = 0; i < count; i++) {
-               entry = &tx->entry[(tx->write + i) % TSNEP_RING_SIZE];
+               entry = &tx->entry[(tx->write + i) & TSNEP_RING_MASK];
 
                if (!i) {
                        len = skb_headlen(skb);
        int i;
 
        for (i = 0; i < count; i++) {
-               entry = &tx->entry[(index + i) % TSNEP_RING_SIZE];
+               entry = &tx->entry[(index + i) & TSNEP_RING_MASK];
 
                if (entry->len) {
                        if (entry->type & TSNEP_TX_TYPE_SKB)
                skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS;
 
        for (i = 0; i < count; i++)
-               tsnep_tx_activate(tx, (tx->write + i) % TSNEP_RING_SIZE, length,
+               tsnep_tx_activate(tx, (tx->write + i) & TSNEP_RING_MASK, length,
                                  i == count - 1);
-       tx->write = (tx->write + count) % TSNEP_RING_SIZE;
+       tx->write = (tx->write + count) & TSNEP_RING_MASK;
 
        skb_tx_timestamp(skb);
 
        frag = NULL;
        len = xdpf->len;
        for (i = 0; i < count; i++) {
-               entry = &tx->entry[(tx->write + i) % TSNEP_RING_SIZE];
+               entry = &tx->entry[(tx->write + i) & TSNEP_RING_MASK];
                if (type & TSNEP_TX_TYPE_XDP_NDO) {
                        data = unlikely(frag) ? skb_frag_address(frag) :
                                                xdpf->data;
        length = retval;
 
        for (i = 0; i < count; i++)
-               tsnep_tx_activate(tx, (tx->write + i) % TSNEP_RING_SIZE, length,
+               tsnep_tx_activate(tx, (tx->write + i) & TSNEP_RING_MASK, length,
                                  i == count - 1);
-       tx->write = (tx->write + count) % TSNEP_RING_SIZE;
+       tx->write = (tx->write + count) & TSNEP_RING_MASK;
 
        /* descriptor properties shall be valid before hardware is notified */
        dma_wmb();
                /* xdpf is union with skb */
                entry->skb = NULL;
 
-               tx->read = (tx->read + count) % TSNEP_RING_SIZE;
+               tx->read = (tx->read + count) & TSNEP_RING_MASK;
 
                tx->packets++;
                tx->bytes += length + ETH_FCS_LEN;
 
        for (i = 0; i < TSNEP_RING_SIZE; i++) {
                entry = &rx->entry[i];
-               next_entry = &rx->entry[(i + 1) % TSNEP_RING_SIZE];
+               next_entry = &rx->entry[(i + 1) & TSNEP_RING_MASK];
                entry->desc->next = __cpu_to_le64(next_entry->desc_dma);
        }
 
        int retval;
 
        for (i = 0; i < count && !alloc_failed; i++) {
-               index = (rx->write + i) % TSNEP_RING_SIZE;
+               index = (rx->write + i) & TSNEP_RING_MASK;
 
                retval = tsnep_rx_alloc_buffer(rx, index);
                if (unlikely(retval)) {
        }
 
        if (enable) {
-               rx->write = (rx->write + i) % TSNEP_RING_SIZE;
+               rx->write = (rx->write + i) & TSNEP_RING_MASK;
 
                /* descriptor properties shall be valid before hardware is
                 * notified
                                 * empty RX ring, thus buffer cannot be used for
                                 * RX processing
                                 */
-                               rx->read = (rx->read + 1) % TSNEP_RING_SIZE;
+                               rx->read = (rx->read + 1) & TSNEP_RING_MASK;
                                desc_available++;
 
                                rx->dropped++;
                 */
                length -= TSNEP_RX_INLINE_METADATA_SIZE;
 
-               rx->read = (rx->read + 1) % TSNEP_RING_SIZE;
+               rx->read = (rx->read + 1) & TSNEP_RING_MASK;
                desc_available++;
 
                if (prog) {