summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/freescale/dpa/dpaa_eth_non_sg.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ethernet/freescale/dpa/dpaa_eth_non_sg.c')
-rw-r--r--drivers/net/ethernet/freescale/dpa/dpaa_eth_non_sg.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/net/ethernet/freescale/dpa/dpaa_eth_non_sg.c b/drivers/net/ethernet/freescale/dpa/dpaa_eth_non_sg.c
index fd6fca2..8b5e945 100644
--- a/drivers/net/ethernet/freescale/dpa/dpaa_eth_non_sg.c
+++ b/drivers/net/ethernet/freescale/dpa/dpaa_eth_non_sg.c
@@ -261,10 +261,9 @@ struct sk_buff *_dpa_cleanup_tx_fd(const struct dpa_priv_s *priv,
static int dpa_process_one(struct dpa_percpu_priv_s *percpu_priv,
struct sk_buff *skb, struct dpa_bp *bp, const struct qm_fd *fd)
{
- dma_addr_t addr = qm_fd_addr(fd);
- u32 addrlo = lower_32_bits(addr);
- u32 skblo = lower_32_bits((unsigned long)skb->head);
- u32 pad = (addrlo - skblo) & (PAGE_SIZE - 1);
+ dma_addr_t fd_addr = qm_fd_addr(fd);
+ unsigned long skb_addr = virt_to_phys(skb->head);
+ u32 pad = fd_addr - skb_addr;
unsigned int data_start;
(*percpu_priv->dpa_bp_count)--;