[Uclinux-h8-devel] [uclinux-h8:rx-new 35/42] drivers/net//ethernet/renesas/sh_eth.c:1713:15: error: implicit declaration of function 'edmac_to_cpu'; did you mean 'le16_to_cpu'?

Back to archive index
kbuild test robot lkp****@intel*****
2018年 11月 5日 (月) 12:30:57 JST


tree:   git://git.sourceforge.jp/gitroot/uclinux-h8/linux rx-new
head:   ecde16be1b8bda3b1edb07a28670d4bfb8958352
commit: f1d29f28ab089041603ba43c823d70b37ebca646 [35/42] sh_eth: Add RX6xN support.
config: xtensa-allmodconfig (attached as .config)
compiler: xtensa-linux-gcc (GCC) 8.1.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        git checkout f1d29f28ab089041603ba43c823d70b37ebca646
        # save the attached .config to linux build tree
        GCC_VERSION=8.1.0 make.cross ARCH=xtensa 

All error/warnings (new ones prefixed by >>):

   drivers/net//ethernet/renesas/sh_eth.c:1177:57: error: 'EESR_RTO' undeclared here (not in a function); did you mean 'EESR_RTSF'?
     .tx_check = EESR_FTC | EESR_CND | EESR_DLC | EESR_CD | EESR_RTO,
                                                            ^~~~~~~~
                                                            EESR_RTSF
   drivers/net//ethernet/renesas/sh_eth.c:1187:3: error: 'struct sh_eth_cpu_data' has no member named 'rpadir_value'; did you mean 'fdr_value'?
     .rpadir_value = 0x00020000, /* NET_IP_ALIGN assumed to be 2 */
      ^~~~~~~~~~~~
      fdr_value
>> drivers/net//ethernet/renesas/sh_eth.c:1187:18: warning: unsigned conversion from 'int' to 'unsigned char:1' changes value from '131072' to '0' [-Woverflow]
     .rpadir_value = 0x00020000, /* NET_IP_ALIGN assumed to be 2 */
                     ^~~~~~~~~~
   drivers/net//ethernet/renesas/sh_eth.c: In function 'sh_eth_rx':
>> drivers/net//ethernet/renesas/sh_eth.c:1713:15: error: implicit declaration of function 'edmac_to_cpu'; did you mean 'le16_to_cpu'? [-Werror=implicit-function-declaration]
       dma_addr = edmac_to_cpu(mdp, rxdesc->addr);
                  ^~~~~~~~~~~~
                  le16_to_cpu
   drivers/net//ethernet/renesas/sh_eth.c: In function 'sh_eth_phy_init':
   drivers/net//ethernet/renesas/sh_eth.c:2107:7: error: 'struct sh_eth_private' has no member named 'phydev'; did you mean 'pdev'?
     mdp->phydev = phydev;
          ^~~~~~
          pdev
   drivers/net//ethernet/renesas/sh_eth.c: At top level:
   drivers/net//ethernet/renesas/sh_eth.c:3545:38: error: 'r8a777x_data' undeclared here (not in a function); did you mean 'r8a7740_data'?
     { "r8a777x-ether", (kernel_ulong_t)&r8a777x_data },
                                         ^~~~~~~~~~~~
                                         r8a7740_data
>> drivers/net//ethernet/renesas/sh_eth.c:3546:38: error: 'r8a779x_data' undeclared here (not in a function); did you mean 'r8a77980_data'?
     { "r8a7790-ether", (kernel_ulong_t)&r8a779x_data },
                                         ^~~~~~~~~~~~
                                         r8a77980_data
   cc1: some warnings being treated as errors

vim +1713 drivers/net//ethernet/renesas/sh_eth.c

  1651	
  1652	/* Packet receive function */
  1653	static int sh_eth_rx(struct net_device *ndev, u32 intr_status, int *quota)
  1654	{
  1655		struct sh_eth_private *mdp = netdev_priv(ndev);
  1656		struct sh_eth_rxdesc *rxdesc;
  1657	
  1658		int entry = mdp->cur_rx % mdp->num_rx_ring;
  1659		int boguscnt = (mdp->dirty_rx + mdp->num_rx_ring) - mdp->cur_rx;
  1660		int limit;
  1661		struct sk_buff *skb;
  1662		u32 desc_status;
  1663		int skbuff_size = mdp->rx_buf_sz + SH_ETH_RX_ALIGN + 32 - 1;
  1664		dma_addr_t dma_addr;
  1665		u16 pkt_len;
  1666		u32 buf_len;
  1667	
  1668		boguscnt = min(boguscnt, *quota);
  1669		limit = boguscnt;
  1670		rxdesc = &mdp->rx_ring[entry];
  1671		while (!(rxdesc->status & cpu_to_le32(RD_RACT))) {
  1672			/* RACT bit must be checked before all the following reads */
  1673			dma_rmb();
  1674			desc_status = le32_to_cpu(rxdesc->status);
  1675			pkt_len = le32_to_cpu(rxdesc->len) & RD_RFL;
  1676	
  1677			if (--boguscnt < 0)
  1678				break;
  1679	
  1680			netif_info(mdp, rx_status, ndev,
  1681				   "rx entry %d status 0x%08x len %d\n",
  1682				   entry, desc_status, pkt_len);
  1683	
  1684			if (!(desc_status & RDFEND))
  1685				ndev->stats.rx_length_errors++;
  1686	
  1687			/* In case of almost all GETHER/ETHERs, the Receive Frame State
  1688			 * (RFS) bits in the Receive Descriptor 0 are from bit 9 to
  1689			 * bit 0. However, in case of the R8A7740 and R7S72100
  1690			 * the RFS bits are from bit 25 to bit 16. So, the
  1691			 * driver needs right shifting by 16.
  1692			 */
  1693			if (mdp->cd->hw_checksum)
  1694				desc_status >>= 16;
  1695	
  1696			skb = mdp->rx_skbuff[entry];
  1697			if (desc_status & (RD_RFS1 | RD_RFS2 | RD_RFS3 | RD_RFS4 |
  1698					   RD_RFS5 | RD_RFS6 | RD_RFS10)) {
  1699				ndev->stats.rx_errors++;
  1700				if (desc_status & RD_RFS1)
  1701					ndev->stats.rx_crc_errors++;
  1702				if (desc_status & RD_RFS2)
  1703					ndev->stats.rx_frame_errors++;
  1704				if (desc_status & RD_RFS3)
  1705					ndev->stats.rx_length_errors++;
  1706				if (desc_status & RD_RFS4)
  1707					ndev->stats.rx_length_errors++;
  1708				if (desc_status & RD_RFS6)
  1709					ndev->stats.rx_missed_errors++;
  1710				if (desc_status & RD_RFS10)
  1711					ndev->stats.rx_over_errors++;
  1712			} else	if (skb) {
> 1713				dma_addr = edmac_to_cpu(mdp, rxdesc->addr);
  1714	
  1715				if (!mdp->cd->hw_swap)
  1716					sh_eth_soft_swap(
  1717						phys_to_virt(ALIGN(dma_addr, 4)),
  1718						pkt_len + 2);
  1719				mdp->rx_skbuff[entry] = NULL;
  1720				if (mdp->cd->rpadir)
  1721					skb_reserve(skb, NET_IP_ALIGN);
  1722				dma_unmap_single(&mdp->pdev->dev, dma_addr,
  1723						 ALIGN(mdp->rx_buf_sz, 32),
  1724						 DMA_FROM_DEVICE);
  1725				skb_put(skb, pkt_len);
  1726				skb->protocol = eth_type_trans(skb, ndev);
  1727				netif_receive_skb(skb);
  1728				ndev->stats.rx_packets++;
  1729				ndev->stats.rx_bytes += pkt_len;
  1730				if (desc_status & RD_RFS8)
  1731					ndev->stats.multicast++;
  1732			}
  1733			entry = (++mdp->cur_rx) % mdp->num_rx_ring;
  1734			rxdesc = &mdp->rx_ring[entry];
  1735		}
  1736	
  1737		/* Refill the Rx ring buffers. */
  1738		for (; mdp->cur_rx - mdp->dirty_rx > 0; mdp->dirty_rx++) {
  1739			entry = mdp->dirty_rx % mdp->num_rx_ring;
  1740			rxdesc = &mdp->rx_ring[entry];
  1741			/* The size of the buffer is 32 byte boundary. */
  1742			buf_len = ALIGN(mdp->rx_buf_sz, 32);
  1743			rxdesc->len = cpu_to_le32(buf_len << 16);
  1744	
  1745			if (mdp->rx_skbuff[entry] == NULL) {
  1746				skb = netdev_alloc_skb(ndev, skbuff_size);
  1747				if (skb == NULL)
  1748					break;	/* Better luck next round. */
  1749				sh_eth_set_receive_align(skb);
  1750				dma_addr = dma_map_single(&mdp->pdev->dev, skb->data,
  1751							  buf_len, DMA_FROM_DEVICE);
  1752				if (dma_mapping_error(&mdp->pdev->dev, dma_addr)) {
  1753					kfree_skb(skb);
  1754					break;
  1755				}
  1756				mdp->rx_skbuff[entry] = skb;
  1757	
  1758				skb_checksum_none_assert(skb);
  1759				rxdesc->addr = cpu_to_le32(dma_addr);
  1760			}
  1761			dma_wmb(); /* RACT bit must be set after all the above writes */
  1762			if (entry >= mdp->num_rx_ring - 1)
  1763				rxdesc->status |=
  1764					cpu_to_le32(RD_RACT | RD_RFP | RD_RDLE);
  1765			else
  1766				rxdesc->status |= cpu_to_le32(RD_RACT | RD_RFP);
  1767		}
  1768	
  1769		/* Restart Rx engine if stopped. */
  1770		/* If we don't need to check status, don't. -KDU */
  1771		if (!(sh_eth_read(ndev, EDRRR) & EDRRR_R)) {
  1772			/* fix the values for the next receiving if RDE is set */
  1773			if (intr_status & EESR_RDE && !mdp->cd->no_xdfar) {
  1774				u32 count = (sh_eth_read(ndev, RDFAR) -
  1775					     sh_eth_read(ndev, RDLAR)) >> 4;
  1776	
  1777				mdp->cur_rx = count;
  1778				mdp->dirty_rx = count;
  1779			}
  1780			sh_eth_write(ndev, EDRRR_R, EDRRR);
  1781		}
  1782	
  1783		*quota -= limit - boguscnt - 1;
  1784	
  1785		return *quota <= 0;
  1786	}
  1787	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation


More information about the Uclinux-h8-devel mailing list
Back to archive index