diff options
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.c | 7 |
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)--; |