| .. | .. |
|---|
| 545 | 545 | static void dwmac_rk_rx_clean(struct stmmac_priv *priv, |
|---|
| 546 | 546 | struct dwmac_rk_lb_priv *lb_priv) |
|---|
| 547 | 547 | { |
|---|
| 548 | | - if (likely(lb_priv->rx_skbuff_dma)) { |
|---|
| 548 | + struct sk_buff *skb; |
|---|
| 549 | + |
|---|
| 550 | + skb = lb_priv->rx_skbuff; |
|---|
| 551 | + |
|---|
| 552 | + if (likely(lb_priv->rx_skbuff)) { |
|---|
| 549 | 553 | dma_unmap_single(priv->device, |
|---|
| 550 | 554 | lb_priv->rx_skbuff_dma, |
|---|
| 551 | 555 | lb_priv->dma_buf_sz, DMA_FROM_DEVICE); |
|---|
| 552 | | - lb_priv->rx_skbuff_dma = 0; |
|---|
| 553 | | - } |
|---|
| 554 | | - |
|---|
| 555 | | - if (likely(lb_priv->rx_skbuff)) { |
|---|
| 556 | | - dev_consume_skb_any(lb_priv->rx_skbuff); |
|---|
| 556 | + dev_kfree_skb(skb); |
|---|
| 557 | 557 | lb_priv->rx_skbuff = NULL; |
|---|
| 558 | 558 | } |
|---|
| 559 | 559 | } |
|---|
| .. | .. |
|---|
| 582 | 582 | } |
|---|
| 583 | 583 | |
|---|
| 584 | 584 | frame_len -= ETH_FCS_LEN; |
|---|
| 585 | | - prefetch(skb->data - NET_IP_ALIGN); |
|---|
| 586 | 585 | skb_put(skb, frame_len); |
|---|
| 587 | | - dma_unmap_single(priv->device, |
|---|
| 588 | | - lb_priv->rx_skbuff_dma, |
|---|
| 589 | | - lb_priv->dma_buf_sz, |
|---|
| 590 | | - DMA_FROM_DEVICE); |
|---|
| 591 | 586 | |
|---|
| 592 | 587 | return dwmac_rk_loopback_validate(priv, lb_priv, skb); |
|---|
| 593 | 588 | } |
|---|
| .. | .. |
|---|
| 621 | 616 | static void dwmac_rk_tx_clean(struct stmmac_priv *priv, |
|---|
| 622 | 617 | struct dwmac_rk_lb_priv *lb_priv) |
|---|
| 623 | 618 | { |
|---|
| 624 | | - struct sk_buff *skb = lb_priv->tx_skbuff; |
|---|
| 619 | + struct sk_buff *skb; |
|---|
| 625 | 620 | struct dma_desc *p; |
|---|
| 626 | 621 | |
|---|
| 622 | + skb = lb_priv->tx_skbuff; |
|---|
| 627 | 623 | p = lb_priv->dma_tx; |
|---|
| 628 | 624 | |
|---|
| 629 | 625 | if (likely(lb_priv->tx_skbuff_dma)) { |
|---|
| .. | .. |
|---|
| 635 | 631 | } |
|---|
| 636 | 632 | |
|---|
| 637 | 633 | if (likely(skb)) { |
|---|
| 638 | | - dev_consume_skb_any(skb); |
|---|
| 634 | + dev_kfree_skb(skb); |
|---|
| 639 | 635 | lb_priv->tx_skbuff = NULL; |
|---|
| 640 | 636 | } |
|---|
| 641 | 637 | |
|---|
| .. | .. |
|---|
| 659 | 655 | lb_priv->tx_skbuff = skb; |
|---|
| 660 | 656 | |
|---|
| 661 | 657 | des = dma_map_single(priv->device, skb->data, |
|---|
| 662 | | - nopaged_len, DMA_TO_DEVICE); |
|---|
| 658 | + nopaged_len, DMA_TO_DEVICE); |
|---|
| 663 | 659 | if (dma_mapping_error(priv->device, des)) |
|---|
| 664 | 660 | goto dma_map_err; |
|---|
| 665 | | - lb_priv->tx_skbuff_dma = des; |
|---|
| 666 | 661 | |
|---|
| 667 | 662 | stmmac_set_desc_addr(priv, desc, des); |
|---|
| 668 | 663 | lb_priv->tx_skbuff_dma_len = nopaged_len; |
|---|