* [linyunsheng:page_frag_virt_to_page 6/6] drivers/net/ethernet/freescale/dpaa/dpaa_eth.c:1853:67: error: 'page_offset' undeclared; did you mean 'pgd_offset'?
@ 2023-07-02 23:22 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2023-07-02 23:22 UTC (permalink / raw)
To: Yunsheng Lin; +Cc: oe-kbuild-all
tree: https://github.com/gestionlin/linux.git page_frag_virt_to_page
head: 4d390b969a98bdee1a1521f8facec4560a7acea8
commit: 4d390b969a98bdee1a1521f8facec4560a7acea8 [6/6] net: introduce skb_fill_data_desc() variant
config: arm64-allyesconfig (https://download.01.org/0day-ci/archive/20230703/202307030732.khCLSeix-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 12.3.0
reproduce: (https://download.01.org/0day-ci/archive/20230703/202307030732.khCLSeix-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202307030732.khCLSeix-lkp@intel.com/
All errors (new ones prefixed by >>):
drivers/net/ethernet/freescale/dpaa/dpaa_eth.c: In function 'sg_fd_to_skb':
>> drivers/net/ethernet/freescale/dpaa/dpaa_eth.c:1853:67: error: 'page_offset' undeclared (first use in this function); did you mean 'pgd_offset'?
1853 | frag_off = qm_sg_entry_get_off(&sgt[i]) + page_offset;
| ^~~~~~~~~~~
| pgd_offset
drivers/net/ethernet/freescale/dpaa/dpaa_eth.c:1853:67: note: each undeclared identifier is reported only once for each function it appears in
vim +1853 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
9ad1a37493338c Madalin Bucur 2016-11-15 1794
9ad1a37493338c Madalin Bucur 2016-11-15 1795 /* Build an skb with the data of the first S/G entry in the linear portion and
9ad1a37493338c Madalin Bucur 2016-11-15 1796 * the rest of the frame as skb fragments.
9ad1a37493338c Madalin Bucur 2016-11-15 1797 *
9ad1a37493338c Madalin Bucur 2016-11-15 1798 * The page fragment holding the S/G Table is recycled here.
9ad1a37493338c Madalin Bucur 2016-11-15 1799 */
9ad1a37493338c Madalin Bucur 2016-11-15 1800 static struct sk_buff *sg_fd_to_skb(const struct dpaa_priv *priv,
9ad1a37493338c Madalin Bucur 2016-11-15 1801 const struct qm_fd *fd)
9ad1a37493338c Madalin Bucur 2016-11-15 1802 {
9ad1a37493338c Madalin Bucur 2016-11-15 1803 ssize_t fd_off = qm_fd_get_offset(fd);
9ad1a37493338c Madalin Bucur 2016-11-15 1804 dma_addr_t addr = qm_fd_addr(fd);
9ad1a37493338c Madalin Bucur 2016-11-15 1805 const struct qm_sg_entry *sgt;
9ad1a37493338c Madalin Bucur 2016-11-15 1806 struct dpaa_bp *dpaa_bp;
9ad1a37493338c Madalin Bucur 2016-11-15 1807 void *vaddr, *sg_vaddr;
9ad1a37493338c Madalin Bucur 2016-11-15 1808 int frag_off, frag_len;
9ad1a37493338c Madalin Bucur 2016-11-15 1809 struct sk_buff *skb;
9ad1a37493338c Madalin Bucur 2016-11-15 1810 dma_addr_t sg_addr;
9ad1a37493338c Madalin Bucur 2016-11-15 1811 unsigned int sz;
9ad1a37493338c Madalin Bucur 2016-11-15 1812 int *count_ptr;
c27569fcd6e1b1 Madalin Bucur 2019-12-23 1813 int i, j;
9ad1a37493338c Madalin Bucur 2016-11-15 1814
9ad1a37493338c Madalin Bucur 2016-11-15 1815 vaddr = phys_to_virt(addr);
9ad1a37493338c Madalin Bucur 2016-11-15 1816 WARN_ON(!IS_ALIGNED((unsigned long)vaddr, SMP_CACHE_BYTES));
9ad1a37493338c Madalin Bucur 2016-11-15 1817
9ad1a37493338c Madalin Bucur 2016-11-15 1818 /* Iterate through the SGT entries and add data buffers to the skb */
9ad1a37493338c Madalin Bucur 2016-11-15 1819 sgt = vaddr + fd_off;
f21506cb42112b Arnd Bergmann 2017-11-03 1820 skb = NULL;
9ad1a37493338c Madalin Bucur 2016-11-15 1821 for (i = 0; i < DPAA_SGT_MAX_ENTRIES; i++) {
9ad1a37493338c Madalin Bucur 2016-11-15 1822 /* Extension bit is not supported */
9ad1a37493338c Madalin Bucur 2016-11-15 1823 WARN_ON(qm_sg_entry_is_ext(&sgt[i]));
9ad1a37493338c Madalin Bucur 2016-11-15 1824
9ad1a37493338c Madalin Bucur 2016-11-15 1825 sg_addr = qm_sg_addr(&sgt[i]);
9ad1a37493338c Madalin Bucur 2016-11-15 1826 sg_vaddr = phys_to_virt(sg_addr);
3c68b8fffb48c0 Madalin Bucur 2020-03-04 1827 WARN_ON(!PTR_IS_ALIGNED(sg_vaddr, SMP_CACHE_BYTES));
9ad1a37493338c Madalin Bucur 2016-11-15 1828
c27569fcd6e1b1 Madalin Bucur 2019-12-23 1829 dma_unmap_page(priv->rx_dma_dev, sg_addr,
c27569fcd6e1b1 Madalin Bucur 2019-12-23 1830 DPAA_BP_RAW_SIZE, DMA_FROM_DEVICE);
c27569fcd6e1b1 Madalin Bucur 2019-12-23 1831
9ad1a37493338c Madalin Bucur 2016-11-15 1832 /* We may use multiple Rx pools */
9ad1a37493338c Madalin Bucur 2016-11-15 1833 dpaa_bp = dpaa_bpid2pool(sgt[i].bpid);
9ad1a37493338c Madalin Bucur 2016-11-15 1834 if (!dpaa_bp)
9ad1a37493338c Madalin Bucur 2016-11-15 1835 goto free_buffers;
9ad1a37493338c Madalin Bucur 2016-11-15 1836
f21506cb42112b Arnd Bergmann 2017-11-03 1837 if (!skb) {
9ad1a37493338c Madalin Bucur 2016-11-15 1838 sz = dpaa_bp->size +
9ad1a37493338c Madalin Bucur 2016-11-15 1839 SKB_DATA_ALIGN(sizeof(struct skb_shared_info));
9ad1a37493338c Madalin Bucur 2016-11-15 1840 skb = build_skb(sg_vaddr, sz);
0fdc0d675b92ba Igor Stoppa 2018-09-07 1841 if (WARN_ON(!skb))
9ad1a37493338c Madalin Bucur 2016-11-15 1842 goto free_buffers;
9ad1a37493338c Madalin Bucur 2016-11-15 1843
5accb28241e027 Madalin Bucur 2017-01-26 1844 skb->ip_summed = rx_csum_offload(priv, fd);
9ad1a37493338c Madalin Bucur 2016-11-15 1845
9ad1a37493338c Madalin Bucur 2016-11-15 1846 /* Make sure forwarded skbs will have enough space
9ad1a37493338c Madalin Bucur 2016-11-15 1847 * on Tx, if extra headers are added.
9ad1a37493338c Madalin Bucur 2016-11-15 1848 */
9ad1a37493338c Madalin Bucur 2016-11-15 1849 WARN_ON(fd_off != priv->rx_headroom);
9ad1a37493338c Madalin Bucur 2016-11-15 1850 skb_reserve(skb, fd_off);
9ad1a37493338c Madalin Bucur 2016-11-15 1851 skb_put(skb, qm_sg_entry_get_len(&sgt[i]));
9ad1a37493338c Madalin Bucur 2016-11-15 1852 } else {
9ad1a37493338c Madalin Bucur 2016-11-15 @1853 frag_off = qm_sg_entry_get_off(&sgt[i]) + page_offset;
9ad1a37493338c Madalin Bucur 2016-11-15 1854 frag_len = qm_sg_entry_get_len(&sgt[i]);
4d390b969a98bd Yunsheng Lin 2023-07-02 1855 skb_add_rx_frag_data(skb, i - 1, sg_vaddr + frag_off,
9ad1a37493338c Madalin Bucur 2016-11-15 1856 frag_len, dpaa_bp->size);
9ad1a37493338c Madalin Bucur 2016-11-15 1857 }
c27569fcd6e1b1 Madalin Bucur 2019-12-23 1858
9ad1a37493338c Madalin Bucur 2016-11-15 1859 /* Update the pool count for the current {cpu x bpool} */
c27569fcd6e1b1 Madalin Bucur 2019-12-23 1860 count_ptr = this_cpu_ptr(dpaa_bp->percpu_count);
9ad1a37493338c Madalin Bucur 2016-11-15 1861 (*count_ptr)--;
9ad1a37493338c Madalin Bucur 2016-11-15 1862
9ad1a37493338c Madalin Bucur 2016-11-15 1863 if (qm_sg_entry_is_final(&sgt[i]))
9ad1a37493338c Madalin Bucur 2016-11-15 1864 break;
9ad1a37493338c Madalin Bucur 2016-11-15 1865 }
9ad1a37493338c Madalin Bucur 2016-11-15 1866 WARN_ONCE(i == DPAA_SGT_MAX_ENTRIES, "No final bit on SGT\n");
9ad1a37493338c Madalin Bucur 2016-11-15 1867
9ad1a37493338c Madalin Bucur 2016-11-15 1868 /* free the SG table buffer */
8151ee88bad568 Madalin Bucur 2019-10-31 1869 free_pages((unsigned long)vaddr, 0);
9ad1a37493338c Madalin Bucur 2016-11-15 1870
9ad1a37493338c Madalin Bucur 2016-11-15 1871 return skb;
9ad1a37493338c Madalin Bucur 2016-11-15 1872
9ad1a37493338c Madalin Bucur 2016-11-15 1873 free_buffers:
9ad1a37493338c Madalin Bucur 2016-11-15 1874 /* free all the SG entries */
c27569fcd6e1b1 Madalin Bucur 2019-12-23 1875 for (j = 0; j < DPAA_SGT_MAX_ENTRIES ; j++) {
c27569fcd6e1b1 Madalin Bucur 2019-12-23 1876 sg_addr = qm_sg_addr(&sgt[j]);
9ad1a37493338c Madalin Bucur 2016-11-15 1877 sg_vaddr = phys_to_virt(sg_addr);
c27569fcd6e1b1 Madalin Bucur 2019-12-23 1878 /* all pages 0..i were unmaped */
c27569fcd6e1b1 Madalin Bucur 2019-12-23 1879 if (j > i)
c27569fcd6e1b1 Madalin Bucur 2019-12-23 1880 dma_unmap_page(priv->rx_dma_dev, qm_sg_addr(&sgt[j]),
c27569fcd6e1b1 Madalin Bucur 2019-12-23 1881 DPAA_BP_RAW_SIZE, DMA_FROM_DEVICE);
8151ee88bad568 Madalin Bucur 2019-10-31 1882 free_pages((unsigned long)sg_vaddr, 0);
c27569fcd6e1b1 Madalin Bucur 2019-12-23 1883 /* counters 0..i-1 were decremented */
c27569fcd6e1b1 Madalin Bucur 2019-12-23 1884 if (j >= i) {
c27569fcd6e1b1 Madalin Bucur 2019-12-23 1885 dpaa_bp = dpaa_bpid2pool(sgt[j].bpid);
9ad1a37493338c Madalin Bucur 2016-11-15 1886 if (dpaa_bp) {
9ad1a37493338c Madalin Bucur 2016-11-15 1887 count_ptr = this_cpu_ptr(dpaa_bp->percpu_count);
9ad1a37493338c Madalin Bucur 2016-11-15 1888 (*count_ptr)--;
9ad1a37493338c Madalin Bucur 2016-11-15 1889 }
c27569fcd6e1b1 Madalin Bucur 2019-12-23 1890 }
9ad1a37493338c Madalin Bucur 2016-11-15 1891
c27569fcd6e1b1 Madalin Bucur 2019-12-23 1892 if (qm_sg_entry_is_final(&sgt[j]))
9ad1a37493338c Madalin Bucur 2016-11-15 1893 break;
9ad1a37493338c Madalin Bucur 2016-11-15 1894 }
9ad1a37493338c Madalin Bucur 2016-11-15 1895 /* free the SGT fragment */
8151ee88bad568 Madalin Bucur 2019-10-31 1896 free_pages((unsigned long)vaddr, 0);
9ad1a37493338c Madalin Bucur 2016-11-15 1897
9ad1a37493338c Madalin Bucur 2016-11-15 1898 return NULL;
9ad1a37493338c Madalin Bucur 2016-11-15 1899 }
9ad1a37493338c Madalin Bucur 2016-11-15 1900
:::::: The code at line 1853 was first introduced by commit
:::::: 9ad1a37493338cacf04e2c93acf44d151a7adda8 dpaa_eth: add support for DPAA Ethernet
:::::: TO: Madalin Bucur <madalin.bucur@nxp.com>
:::::: CC: David S. Miller <davem@davemloft.net>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2023-07-02 23:22 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-02 23:22 [linyunsheng:page_frag_virt_to_page 6/6] drivers/net/ethernet/freescale/dpaa/dpaa_eth.c:1853:67: error: 'page_offset' undeclared; did you mean 'pgd_offset'? kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.