Subject: Re: [PATCH net-next 2/5] netconsole: move netpoll_parse_ip_addr() earlier for reuse

From: kernel test robot <[email-masked]>
Date: Sat, 19 Jul 2025 08:03:49 +0800

Hi Breno,

kernel test robot noticed the following build errors:

[auto build test ERROR on d61f6cb6f6ef3c70d2ccc0d9c85c508cb8017da9]

url:    https://github.com/intel-lab-lkp/linux/commits/Breno-Leitao/netpoll-Remove-unused-fields-from-inet_addr-union/20250718-195552
base:   d61f6cb6f6ef3c70d2ccc0d9c85c508cb8017da9
patch link:    https://lore.kernel.org/r/20250718-netconsole_ref-v1-2-86ef253b7a7a%40debian.org
patch subject: [PATCH net-next 2/5] netconsole: move netpoll_parse_ip_addr() earlier for reuse
config: arc-randconfig-002-20250719 (https://download.01.org/0day-ci/archive/20250719/[email-masked]/config)
compiler: arc-linux-gcc (GCC) 15.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250719/[email-masked]/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 <[email-masked]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email-masked]/

All errors (new ones prefixed by >>):

   drivers/net/netconsole.c: In function 'netconsole_parser_cmdline':
>> drivers/net/netconsole.c:1789:24: error: implicit declaration of function 'netpoll_parse_ip_addr' [-Wimplicit-function-declaration]
    1789 |                 ipv6 = netpoll_parse_ip_addr(cur, &np->local_ip);
         |                        ^~~~~~~~~~~~~~~~~~~~~

vim +/netpoll_parse_ip_addr +1789 drivers/net/netconsole.c

^1da177e4c3f415 Linus Torvalds 2005-04-16  1764  
abebef96aab12da Breno Leitao   2025-06-13  1765  static int netconsole_parser_cmdline(struct netpoll *np, char *opt)
5a34c9a8536511b Breno Leitao   2025-06-13  1766  {
5a34c9a8536511b Breno Leitao   2025-06-13  1767  	bool ipversion_set = false;
abebef96aab12da Breno Leitao   2025-06-13  1768  	char *cur = opt;
abebef96aab12da Breno Leitao   2025-06-13  1769  	char *delim;
abebef96aab12da Breno Leitao   2025-06-13  1770  	int ipv6;
5a34c9a8536511b Breno Leitao   2025-06-13  1771  
5a34c9a8536511b Breno Leitao   2025-06-13  1772  	if (*cur != '@') {
d79206451f4f99a Breno Leitao   2025-06-13  1773  		delim = strchr(cur, '@');
d79206451f4f99a Breno Leitao   2025-06-13  1774  		if (!delim)
5a34c9a8536511b Breno Leitao   2025-06-13  1775  			goto parse_failed;
5a34c9a8536511b Breno Leitao   2025-06-13  1776  		*delim = 0;
5a34c9a8536511b Breno Leitao   2025-06-13  1777  		if (kstrtou16(cur, 10, &np->local_port))
5a34c9a8536511b Breno Leitao   2025-06-13  1778  			goto parse_failed;
5a34c9a8536511b Breno Leitao   2025-06-13  1779  		cur = delim;
5a34c9a8536511b Breno Leitao   2025-06-13  1780  	}
5a34c9a8536511b Breno Leitao   2025-06-13  1781  	cur++;
5a34c9a8536511b Breno Leitao   2025-06-13  1782  
5a34c9a8536511b Breno Leitao   2025-06-13  1783  	if (*cur != '/') {
5a34c9a8536511b Breno Leitao   2025-06-13  1784  		ipversion_set = true;
d79206451f4f99a Breno Leitao   2025-06-13  1785  		delim = strchr(cur, '/');
d79206451f4f99a Breno Leitao   2025-06-13  1786  		if (!delim)
5a34c9a8536511b Breno Leitao   2025-06-13  1787  			goto parse_failed;
5a34c9a8536511b Breno Leitao   2025-06-13  1788  		*delim = 0;
5a34c9a8536511b Breno Leitao   2025-06-13 @1789  		ipv6 = netpoll_parse_ip_addr(cur, &np->local_ip);
5a34c9a8536511b Breno Leitao   2025-06-13  1790  		if (ipv6 < 0)
5a34c9a8536511b Breno Leitao   2025-06-13  1791  			goto parse_failed;
5a34c9a8536511b Breno Leitao   2025-06-13  1792  		else
5a34c9a8536511b Breno Leitao   2025-06-13  1793  			np->ipv6 = (bool)ipv6;
5a34c9a8536511b Breno Leitao   2025-06-13  1794  		cur = delim;
5a34c9a8536511b Breno Leitao   2025-06-13  1795  	}
5a34c9a8536511b Breno Leitao   2025-06-13  1796  	cur++;
5a34c9a8536511b Breno Leitao   2025-06-13  1797  
5a34c9a8536511b Breno Leitao   2025-06-13  1798  	if (*cur != ',') {
5a34c9a8536511b Breno Leitao   2025-06-13  1799  		/* parse out dev_name or dev_mac */
d79206451f4f99a Breno Leitao   2025-06-13  1800  		delim = strchr(cur, ',');
d79206451f4f99a Breno Leitao   2025-06-13  1801  		if (!delim)
5a34c9a8536511b Breno Leitao   2025-06-13  1802  			goto parse_failed;
5a34c9a8536511b Breno Leitao   2025-06-13  1803  		*delim = 0;
5a34c9a8536511b Breno Leitao   2025-06-13  1804  
5a34c9a8536511b Breno Leitao   2025-06-13  1805  		np->dev_name[0] = '\0';
5a34c9a8536511b Breno Leitao   2025-06-13  1806  		eth_broadcast_addr(np->dev_mac);
5a34c9a8536511b Breno Leitao   2025-06-13  1807  		if (!strchr(cur, ':'))
5a34c9a8536511b Breno Leitao   2025-06-13  1808  			strscpy(np->dev_name, cur, sizeof(np->dev_name));
5a34c9a8536511b Breno Leitao   2025-06-13  1809  		else if (!mac_pton(cur, np->dev_mac))
5a34c9a8536511b Breno Leitao   2025-06-13  1810  			goto parse_failed;
5a34c9a8536511b Breno Leitao   2025-06-13  1811  
5a34c9a8536511b Breno Leitao   2025-06-13  1812  		cur = delim;
5a34c9a8536511b Breno Leitao   2025-06-13  1813  	}
5a34c9a8536511b Breno Leitao   2025-06-13  1814  	cur++;
5a34c9a8536511b Breno Leitao   2025-06-13  1815  
5a34c9a8536511b Breno Leitao   2025-06-13  1816  	if (*cur != '@') {
5a34c9a8536511b Breno Leitao   2025-06-13  1817  		/* dst port */
d79206451f4f99a Breno Leitao   2025-06-13  1818  		delim = strchr(cur, '@');
d79206451f4f99a Breno Leitao   2025-06-13  1819  		if (!delim)
5a34c9a8536511b Breno Leitao   2025-06-13  1820  			goto parse_failed;
5a34c9a8536511b Breno Leitao   2025-06-13  1821  		*delim = 0;
5a34c9a8536511b Breno Leitao   2025-06-13  1822  		if (*cur == ' ' || *cur == '\t')
5a34c9a8536511b Breno Leitao   2025-06-13  1823  			np_info(np, "warning: whitespace is not allowed\n");
5a34c9a8536511b Breno Leitao   2025-06-13  1824  		if (kstrtou16(cur, 10, &np->remote_port))
5a34c9a8536511b Breno Leitao   2025-06-13  1825  			goto parse_failed;
5a34c9a8536511b Breno Leitao   2025-06-13  1826  		cur = delim;
5a34c9a8536511b Breno Leitao   2025-06-13  1827  	}
5a34c9a8536511b Breno Leitao   2025-06-13  1828  	cur++;
5a34c9a8536511b Breno Leitao   2025-06-13  1829  
5a34c9a8536511b Breno Leitao   2025-06-13  1830  	/* dst ip */
d79206451f4f99a Breno Leitao   2025-06-13  1831  	delim = strchr(cur, '/');
d79206451f4f99a Breno Leitao   2025-06-13  1832  	if (!delim)
5a34c9a8536511b Breno Leitao   2025-06-13  1833  		goto parse_failed;
5a34c9a8536511b Breno Leitao   2025-06-13  1834  	*delim = 0;
5a34c9a8536511b Breno Leitao   2025-06-13  1835  	ipv6 = netpoll_parse_ip_addr(cur, &np->remote_ip);
5a34c9a8536511b Breno Leitao   2025-06-13  1836  	if (ipv6 < 0)
5a34c9a8536511b Breno Leitao   2025-06-13  1837  		goto parse_failed;
5a34c9a8536511b Breno Leitao   2025-06-13  1838  	else if (ipversion_set && np->ipv6 != (bool)ipv6)
5a34c9a8536511b Breno Leitao   2025-06-13  1839  		goto parse_failed;
5a34c9a8536511b Breno Leitao   2025-06-13  1840  	else
5a34c9a8536511b Breno Leitao   2025-06-13  1841  		np->ipv6 = (bool)ipv6;
5a34c9a8536511b Breno Leitao   2025-06-13  1842  	cur = delim + 1;
5a34c9a8536511b Breno Leitao   2025-06-13  1843  
5a34c9a8536511b Breno Leitao   2025-06-13  1844  	if (*cur != 0) {
5a34c9a8536511b Breno Leitao   2025-06-13  1845  		/* MAC address */
5a34c9a8536511b Breno Leitao   2025-06-13  1846  		if (!mac_pton(cur, np->remote_mac))
5a34c9a8536511b Breno Leitao   2025-06-13  1847  			goto parse_failed;
5a34c9a8536511b Breno Leitao   2025-06-13  1848  	}
5a34c9a8536511b Breno Leitao   2025-06-13  1849  
abebef96aab12da Breno Leitao   2025-06-13  1850  	netconsole_print_banner(np);
5a34c9a8536511b Breno Leitao   2025-06-13  1851  
5a34c9a8536511b Breno Leitao   2025-06-13  1852  	return 0;
5a34c9a8536511b Breno Leitao   2025-06-13  1853  
5a34c9a8536511b Breno Leitao   2025-06-13  1854   parse_failed:
5a34c9a8536511b Breno Leitao   2025-06-13  1855  	np_info(np, "couldn't parse config at '%s'!\n", cur);
5a34c9a8536511b Breno Leitao   2025-06-13  1856  	return -1;
5a34c9a8536511b Breno Leitao   2025-06-13  1857  }
5a34c9a8536511b Breno Leitao   2025-06-13  1858  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki