cassini.c (597473720f4dc69749542bfcfed4a927a43d935e) | cassini.c (b54c9d5bd6e38edac9ce3a3f95f14a1292b5268d) |
---|---|
1// SPDX-License-Identifier: GPL-2.0+ 2/* cassini.c: Sun Microsystems Cassini(+) ethernet driver. 3 * 4 * Copyright (C) 2004 Sun Microsystems Inc. 5 * Copyright (C) 2003 Adrian Sun (asun@darksunrising.com) 6 * 7 * This driver uses the sungem driver (c) David Miller 8 * (davem@redhat.com) as its basis. --- 2020 unchanged lines hidden (view full) --- 2029 2030 skb_shinfo(skb)->nr_frags++; 2031 skb->data_len += hlen - swivel; 2032 skb->truesize += hlen - swivel; 2033 skb->len += hlen - swivel; 2034 2035 __skb_frag_set_page(frag, page->buffer); 2036 __skb_frag_ref(frag); | 1// SPDX-License-Identifier: GPL-2.0+ 2/* cassini.c: Sun Microsystems Cassini(+) ethernet driver. 3 * 4 * Copyright (C) 2004 Sun Microsystems Inc. 5 * Copyright (C) 2003 Adrian Sun (asun@darksunrising.com) 6 * 7 * This driver uses the sungem driver (c) David Miller 8 * (davem@redhat.com) as its basis. --- 2020 unchanged lines hidden (view full) --- 2029 2030 skb_shinfo(skb)->nr_frags++; 2031 skb->data_len += hlen - swivel; 2032 skb->truesize += hlen - swivel; 2033 skb->len += hlen - swivel; 2034 2035 __skb_frag_set_page(frag, page->buffer); 2036 __skb_frag_ref(frag); |
2037 frag->page_offset = off; | 2037 skb_frag_off_set(frag, off); |
2038 skb_frag_size_set(frag, hlen - swivel); 2039 2040 /* any more data? */ 2041 if ((words[0] & RX_COMP1_SPLIT_PKT) && ((dlen -= hlen) > 0)) { 2042 hlen = dlen; 2043 off = 0; 2044 2045 i = CAS_VAL(RX_COMP2_NEXT_INDEX, words[1]); --- 7 unchanged lines hidden (view full) --- 2053 2054 skb_shinfo(skb)->nr_frags++; 2055 skb->data_len += hlen; 2056 skb->len += hlen; 2057 frag++; 2058 2059 __skb_frag_set_page(frag, page->buffer); 2060 __skb_frag_ref(frag); | 2038 skb_frag_size_set(frag, hlen - swivel); 2039 2040 /* any more data? */ 2041 if ((words[0] & RX_COMP1_SPLIT_PKT) && ((dlen -= hlen) > 0)) { 2042 hlen = dlen; 2043 off = 0; 2044 2045 i = CAS_VAL(RX_COMP2_NEXT_INDEX, words[1]); --- 7 unchanged lines hidden (view full) --- 2053 2054 skb_shinfo(skb)->nr_frags++; 2055 skb->data_len += hlen; 2056 skb->len += hlen; 2057 frag++; 2058 2059 __skb_frag_set_page(frag, page->buffer); 2060 __skb_frag_ref(frag); |
2061 frag->page_offset = 0; | 2061 skb_frag_off_set(frag, 0); |
2062 skb_frag_size_set(frag, hlen); 2063 RX_USED_ADD(page, hlen + cp->crc_size); 2064 } 2065 2066 if (cp->crc_size) { 2067 addr = cas_page_map(page->buffer); 2068 crcaddr = addr + off + hlen; 2069 } --- 741 unchanged lines hidden (view full) --- 2811 2812 for (frag = 0; frag < nr_frags; frag++) { 2813 const skb_frag_t *fragp = &skb_shinfo(skb)->frags[frag]; 2814 2815 len = skb_frag_size(fragp); 2816 mapping = skb_frag_dma_map(&cp->pdev->dev, fragp, 0, len, 2817 DMA_TO_DEVICE); 2818 | 2062 skb_frag_size_set(frag, hlen); 2063 RX_USED_ADD(page, hlen + cp->crc_size); 2064 } 2065 2066 if (cp->crc_size) { 2067 addr = cas_page_map(page->buffer); 2068 crcaddr = addr + off + hlen; 2069 } --- 741 unchanged lines hidden (view full) --- 2811 2812 for (frag = 0; frag < nr_frags; frag++) { 2813 const skb_frag_t *fragp = &skb_shinfo(skb)->frags[frag]; 2814 2815 len = skb_frag_size(fragp); 2816 mapping = skb_frag_dma_map(&cp->pdev->dev, fragp, 0, len, 2817 DMA_TO_DEVICE); 2818 |
2819 tabort = cas_calc_tabort(cp, fragp->page_offset, len); | 2819 tabort = cas_calc_tabort(cp, skb_frag_off(fragp), len); |
2820 if (unlikely(tabort)) { 2821 void *addr; 2822 2823 /* NOTE: len is always > tabort */ 2824 cas_write_txd(cp, ring, entry, mapping, len - tabort, 2825 ctrl, 0); 2826 entry = TX_DESC_NEXT(ring, entry); 2827 2828 addr = cas_page_map(skb_frag_page(fragp)); 2829 memcpy(tx_tiny_buf(cp, ring, entry), | 2820 if (unlikely(tabort)) { 2821 void *addr; 2822 2823 /* NOTE: len is always > tabort */ 2824 cas_write_txd(cp, ring, entry, mapping, len - tabort, 2825 ctrl, 0); 2826 entry = TX_DESC_NEXT(ring, entry); 2827 2828 addr = cas_page_map(skb_frag_page(fragp)); 2829 memcpy(tx_tiny_buf(cp, ring, entry), |
2830 addr + fragp->page_offset + len - tabort, | 2830 addr + skb_frag_off(fragp) + len - tabort, |
2831 tabort); 2832 cas_page_unmap(addr); 2833 mapping = tx_tiny_map(cp, ring, entry, tentry); 2834 len = tabort; 2835 } 2836 2837 cas_write_txd(cp, ring, entry, mapping, len, ctrl, 2838 (frag + 1 == nr_frags)); --- 2442 unchanged lines hidden --- | 2831 tabort); 2832 cas_page_unmap(addr); 2833 mapping = tx_tiny_map(cp, ring, entry, tentry); 2834 len = tabort; 2835 } 2836 2837 cas_write_txd(cp, ring, entry, mapping, len, ctrl, 2838 (frag + 1 == nr_frags)); --- 2442 unchanged lines hidden --- |