[PATCH v2 1/5] drm/modes: Rewrite the command line parser

kbuild test robot lkp at intel.com
Fri Apr 12 16:02:22 UTC 2019


Hi Maxime,

I love your patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v5.1-rc4 next-20190412]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Maxime-Ripard/drm-modes-Rewrite-the-command-line-parser/20190412-122837
config: x86_64-randconfig-s1-04121728 (attached as .config)
compiler: gcc-6 (Debian 6.4.0-9) 6.4.0 20171026
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

Note: the linux-review/Maxime-Ripard/drm-modes-Rewrite-the-command-line-parser/20190412-122837 HEAD 6993bfc971bbb32a70c38ec6e89a92c658f21f74 builds fine.
      It only hurts bisectibility.

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

   In file included from include/linux/kernel.h:11:0,
                    from include/linux/list.h:9,
                    from drivers/gpu//drm/drm_modes.c:34:
   drivers/gpu//drm/drm_modes.c: In function 'drm_mode_parse_command_line_for_connector':
>> drivers/gpu//drm/drm_modes.c:1591:7: error: 'named_mode' undeclared (first use in this function)
      if (named_mode)
          ^
   include/linux/compiler.h:58:30: note: in definition of macro '__trace_if'
     if (__builtin_constant_p(!!(cond)) ? !!(cond) :   \
                                 ^~~~
>> drivers/gpu//drm/drm_modes.c:1591:3: note: in expansion of macro 'if'
      if (named_mode)
      ^~
   drivers/gpu//drm/drm_modes.c:1591:7: note: each undeclared identifier is reported only once for each function it appears in
      if (named_mode)
          ^
   include/linux/compiler.h:58:30: note: in definition of macro '__trace_if'
     if (__builtin_constant_p(!!(cond)) ? !!(cond) :   \
                                 ^~~~
>> drivers/gpu//drm/drm_modes.c:1591:3: note: in expansion of macro 'if'
      if (named_mode)
      ^~

vim +/named_mode +1591 drivers/gpu//drm/drm_modes.c

  1571	
  1572		if (!mode_option) {
  1573			mode->specified = false;
  1574			return false;
  1575		}
  1576	
  1577		name = mode_option;
  1578	
  1579		if (!isdigit(name[0]))
  1580			return false;
  1581	
  1582		/* Try to locate the bpp and refresh specifiers, if any */
  1583		bpp_ptr = strchr(name, '-');
  1584		if (bpp_ptr) {
  1585			bpp_off = bpp_ptr - name;
  1586			mode->bpp_specified = true;
  1587		}
  1588	
  1589		refresh_ptr = strchr(name, '@');
  1590		if (refresh_ptr) {
> 1591			if (named_mode)
  1592				return false;
  1593	
  1594			refresh_off = refresh_ptr - name;
  1595			mode->refresh_specified = true;
  1596		}
  1597	
  1598		/* Locate the end of the name / resolution, and parse it */
  1599		if (bpp_ptr && refresh_ptr) {
  1600			mode_end = min(bpp_off, refresh_off);
  1601		} else if (bpp_ptr) {
  1602			mode_end = bpp_off;
  1603		} else if (refresh_ptr) {
  1604			mode_end = refresh_off;
  1605		} else {
  1606			mode_end = strlen(name);
  1607			parse_extras = true;
  1608		}
  1609	
  1610		ret = drm_mode_parse_cmdline_res_mode(name, mode_end,
  1611						      parse_extras,
  1612						      connector,
  1613						      mode);
  1614		if (ret)
  1615			return false;
  1616		mode->specified = true;
  1617	
  1618		if (bpp_ptr) {
  1619			ret = drm_mode_parse_cmdline_bpp(bpp_ptr, &bpp_end_ptr, mode);
  1620			if (ret)
  1621				return false;
  1622		}
  1623	
  1624		if (refresh_ptr) {
  1625			ret = drm_mode_parse_cmdline_refresh(refresh_ptr,
  1626							     &refresh_end_ptr, mode);
  1627			if (ret)
  1628				return false;
  1629		}
  1630	
  1631		/*
  1632		 * Locate the end of the bpp / refresh, and parse the extras
  1633		 * if relevant
  1634		 */
  1635		if (bpp_ptr && refresh_ptr)
  1636			extra_ptr = max(bpp_end_ptr, refresh_end_ptr);
  1637		else if (bpp_ptr)
  1638			extra_ptr = bpp_end_ptr;
  1639		else if (refresh_ptr)
  1640			extra_ptr = refresh_end_ptr;
  1641	
  1642		if (extra_ptr) {
  1643			int remaining = strlen(name) - (extra_ptr - name);
  1644	
  1645			/*
  1646			 * We still have characters to process, while
  1647			 * we shouldn't have any
  1648			 */
  1649			if (remaining > 0)
  1650				return false;
  1651		}
  1652	
  1653		return true;
  1654	}
  1655	EXPORT_SYMBOL(drm_mode_parse_command_line_for_connector);
  1656	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 35790 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20190413/5dba12a5/attachment-0001.gz>


More information about the dri-devel mailing list