WRITE_ONCE(txr->tx_prod, prod);
  
                /* first fill up the first buffer */
 -              frag_tx_buf = &txr->tx_buf_ring[prod];
 +              frag_tx_buf = &txr->tx_buf_ring[RING_TX(bp, prod)];
                frag_tx_buf->page = skb_frag_page(frag);
  
 -              txbd = &txr->tx_desc_ring[TX_RING(prod)][TX_IDX(prod)];
 +              txbd = &txr->tx_desc_ring[TX_RING(bp, prod)][TX_IDX(prod)];
  
                frag_len = skb_frag_size(frag);
-               frag_mapping = skb_frag_dma_map(&pdev->dev, frag, 0,
-                                               frag_len, DMA_TO_DEVICE);
- 
-               if (unlikely(dma_mapping_error(&pdev->dev, frag_mapping)))
-                       return NULL;
- 
-               dma_unmap_addr_set(frag_tx_buf, mapping, frag_mapping);
- 
                flags = frag_len << TX_BD_LEN_SHIFT;
                txbd->tx_bd_len_flags_type = cpu_to_le32(flags);
+               frag_mapping = page_pool_get_dma_addr(skb_frag_page(frag)) +
+                              skb_frag_off(frag);
                txbd->tx_bd_haddr = cpu_to_le64(frag_mapping);
  
                len = frag_len;
 
  TEST_PROGS += test_vxlan_nolocalbypass.sh
  TEST_PROGS += test_bridge_backup_port.sh
  TEST_PROGS += fdb_flush.sh
 +TEST_PROGS += fq_band_pktlimit.sh
+ TEST_PROGS += vlan_hw_filter.sh
  
  TEST_FILES := settings