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

kbuild test robot
2019-04-12T16:02:41Z

[-- Attachment #1: Type: text/plain, Size: 4447 bytes --]

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

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 35790 bytes --]

[-- Attachment #3: Type: text/plain, Size: 176 bytes --]