lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <202511110504.qfGuRVHY-lkp@intel.com>
Date: Tue, 11 Nov 2025 05:35:58 +0800
From: kernel test robot <lkp@...el.com>
To: caohang@...incomputing.com, gregkh@...uxfoundation.org, robh@...nel.org,
	krzk+dt@...nel.org, conor+dt@...nel.org, Thinh.Nguyen@...opsys.com,
	p.zabel@...gutronix.de, linux-kernel@...r.kernel.org,
	linux-usb@...r.kernel.org, devicetree@...r.kernel.org
Cc: llvm@...ts.linux.dev, oe-kbuild-all@...ts.linux.dev,
	ningyu@...incomputing.com, linmin@...incomputing.com,
	pinkesh.vaghela@...fochips.com,
	Hang Cao <caohang@...incomputing.com>,
	Senchuan Zhang <zhangsenchuan@...incomputing.com>
Subject: Re: [PATCH v7 2/2] usb: dwc3: eic7700: Add EIC7700 USB driver

Hi,

kernel test robot noticed the following build errors:

[auto build test ERROR on usb/usb-testing]
[also build test ERROR on usb/usb-next next-20251110]
[cannot apply to usb/usb-linus robh/for-next pza/reset/next pza/imx-drm/next linus/master v6.18-rc5]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/caohang-eswincomputing-com/dt-bindings-usb-Add-ESWIN-EIC7700-USB-controller/20251110-104957
base:   https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing
patch link:    https://lore.kernel.org/r/20251110024500.104-1-caohang%40eswincomputing.com
patch subject: [PATCH v7 2/2] usb: dwc3: eic7700: Add EIC7700 USB driver
config: arm-defconfig (https://download.01.org/0day-ci/archive/20251111/202511110504.qfGuRVHY-lkp@intel.com/config)
compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 996639d6ebb86ff15a8c99b67f1c2e2117636ae7)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251111/202511110504.qfGuRVHY-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@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202511110504.qfGuRVHY-lkp@intel.com/

All errors (new ones prefixed by >>):

   drivers/usb/dwc3/dwc3-generic-plat.c:132:35: warning: missing terminating '"' character [-Winvalid-pp-token]
     132 |                         return dev_err_probe(dev, ret, "failed to init
         |                                                        ^
>> drivers/usb/dwc3/dwc3-generic-plat.c:132:35: error: expected expression
   drivers/usb/dwc3/dwc3-generic-plat.c:133:21: warning: missing terminating '"' character [-Winvalid-pp-token]
     133 |                                              platform\n");
         |                                                        ^
>> drivers/usb/dwc3/dwc3-generic-plat.c:145:1: error: function definition is not allowed here
     145 | {
         | ^
   drivers/usb/dwc3/dwc3-generic-plat.c:152:1: error: function definition is not allowed here
     152 | {
         | ^
   drivers/usb/dwc3/dwc3-generic-plat.c:167:1: error: function definition is not allowed here
     167 | {
         | ^
   drivers/usb/dwc3/dwc3-generic-plat.c:184:1: error: function definition is not allowed here
     184 | {
         | ^
   drivers/usb/dwc3/dwc3-generic-plat.c:189:1: error: function definition is not allowed here
     189 | {
         | ^
   drivers/usb/dwc3/dwc3-generic-plat.c:194:1: error: function definition is not allowed here
     194 | {
         | ^
>> drivers/usb/dwc3/dwc3-generic-plat.c:199:22: error: use of undeclared identifier 'dwc3_generic_suspend'; did you mean 'pm_generic_suspend'?
     199 |         SYSTEM_SLEEP_PM_OPS(dwc3_generic_suspend, dwc3_generic_resume)
         |                             ^~~~~~~~~~~~~~~~~~~~
         |                             pm_generic_suspend
   include/linux/pm.h:314:26: note: expanded from macro 'SYSTEM_SLEEP_PM_OPS'
     314 |         .suspend = pm_sleep_ptr(suspend_fn), \
         |                                 ^~~~~~~~~~
   include/linux/pm.h:473:65: note: expanded from macro 'pm_sleep_ptr'
     473 | #define pm_sleep_ptr(_ptr) PTR_IF(IS_ENABLED(CONFIG_PM_SLEEP), (_ptr))
         |                                                                 ^~~~
   include/linux/util_macros.h:136:38: note: expanded from macro 'PTR_IF'
     136 | #define PTR_IF(cond, ptr)       ((cond) ? (ptr) : NULL)
         |                                            ^~~
   include/linux/pm.h:840:12: note: 'pm_generic_suspend' declared here
     840 | extern int pm_generic_suspend(struct device *dev);
         |            ^
>> drivers/usb/dwc3/dwc3-generic-plat.c:199:44: error: use of undeclared identifier 'dwc3_generic_resume'; did you mean 'pm_generic_resume'?
     199 |         SYSTEM_SLEEP_PM_OPS(dwc3_generic_suspend, dwc3_generic_resume)
         |                                                   ^~~~~~~~~~~~~~~~~~~
         |                                                   pm_generic_resume
   include/linux/pm.h:315:25: note: expanded from macro 'SYSTEM_SLEEP_PM_OPS'
     315 |         .resume = pm_sleep_ptr(resume_fn), \
         |                                ^~~~~~~~~
   include/linux/pm.h:473:65: note: expanded from macro 'pm_sleep_ptr'
     473 | #define pm_sleep_ptr(_ptr) PTR_IF(IS_ENABLED(CONFIG_PM_SLEEP), (_ptr))
         |                                                                 ^~~~
   include/linux/util_macros.h:136:38: note: expanded from macro 'PTR_IF'
     136 | #define PTR_IF(cond, ptr)       ((cond) ? (ptr) : NULL)
         |                                            ^~~
   include/linux/pm.h:843:12: note: 'pm_generic_resume' declared here
     843 | extern int pm_generic_resume(struct device *dev);
         |            ^
>> drivers/usb/dwc3/dwc3-generic-plat.c:199:22: error: use of undeclared identifier 'dwc3_generic_suspend'; did you mean 'pm_generic_suspend'?
     199 |         SYSTEM_SLEEP_PM_OPS(dwc3_generic_suspend, dwc3_generic_resume)
         |                             ^~~~~~~~~~~~~~~~~~~~
         |                             pm_generic_suspend
   include/linux/pm.h:316:25: note: expanded from macro 'SYSTEM_SLEEP_PM_OPS'
     316 |         .freeze = pm_sleep_ptr(suspend_fn), \
         |                                ^~~~~~~~~~
   include/linux/pm.h:473:65: note: expanded from macro 'pm_sleep_ptr'
     473 | #define pm_sleep_ptr(_ptr) PTR_IF(IS_ENABLED(CONFIG_PM_SLEEP), (_ptr))
         |                                                                 ^~~~
   include/linux/util_macros.h:136:38: note: expanded from macro 'PTR_IF'
     136 | #define PTR_IF(cond, ptr)       ((cond) ? (ptr) : NULL)
         |                                            ^~~
   include/linux/pm.h:840:12: note: 'pm_generic_suspend' declared here
     840 | extern int pm_generic_suspend(struct device *dev);
         |            ^
>> drivers/usb/dwc3/dwc3-generic-plat.c:199:44: error: use of undeclared identifier 'dwc3_generic_resume'; did you mean 'pm_generic_resume'?
     199 |         SYSTEM_SLEEP_PM_OPS(dwc3_generic_suspend, dwc3_generic_resume)
         |                                                   ^~~~~~~~~~~~~~~~~~~
         |                                                   pm_generic_resume
   include/linux/pm.h:317:23: note: expanded from macro 'SYSTEM_SLEEP_PM_OPS'
     317 |         .thaw = pm_sleep_ptr(resume_fn), \
         |                              ^~~~~~~~~
   include/linux/pm.h:473:65: note: expanded from macro 'pm_sleep_ptr'
     473 | #define pm_sleep_ptr(_ptr) PTR_IF(IS_ENABLED(CONFIG_PM_SLEEP), (_ptr))
         |                                                                 ^~~~
   include/linux/util_macros.h:136:38: note: expanded from macro 'PTR_IF'
     136 | #define PTR_IF(cond, ptr)       ((cond) ? (ptr) : NULL)
         |                                            ^~~
   include/linux/pm.h:843:12: note: 'pm_generic_resume' declared here
     843 | extern int pm_generic_resume(struct device *dev);
         |            ^
>> drivers/usb/dwc3/dwc3-generic-plat.c:199:22: error: use of undeclared identifier 'dwc3_generic_suspend'; did you mean 'pm_generic_suspend'?
     199 |         SYSTEM_SLEEP_PM_OPS(dwc3_generic_suspend, dwc3_generic_resume)
         |                             ^~~~~~~~~~~~~~~~~~~~
         |                             pm_generic_suspend
   include/linux/pm.h:318:27: note: expanded from macro 'SYSTEM_SLEEP_PM_OPS'
     318 |         .poweroff = pm_sleep_ptr(suspend_fn), \
         |                                  ^~~~~~~~~~
   include/linux/pm.h:473:65: note: expanded from macro 'pm_sleep_ptr'
     473 | #define pm_sleep_ptr(_ptr) PTR_IF(IS_ENABLED(CONFIG_PM_SLEEP), (_ptr))
         |                                                                 ^~~~
   include/linux/util_macros.h:136:38: note: expanded from macro 'PTR_IF'
     136 | #define PTR_IF(cond, ptr)       ((cond) ? (ptr) : NULL)
         |                                            ^~~
   include/linux/pm.h:840:12: note: 'pm_generic_suspend' declared here
     840 | extern int pm_generic_suspend(struct device *dev);
         |            ^
>> drivers/usb/dwc3/dwc3-generic-plat.c:199:44: error: use of undeclared identifier 'dwc3_generic_resume'; did you mean 'pm_generic_resume'?
     199 |         SYSTEM_SLEEP_PM_OPS(dwc3_generic_suspend, dwc3_generic_resume)
         |                                                   ^~~~~~~~~~~~~~~~~~~
         |                                                   pm_generic_resume
   include/linux/pm.h:319:26: note: expanded from macro 'SYSTEM_SLEEP_PM_OPS'
     319 |         .restore = pm_sleep_ptr(resume_fn),
         |                                 ^~~~~~~~~
   include/linux/pm.h:473:65: note: expanded from macro 'pm_sleep_ptr'
     473 | #define pm_sleep_ptr(_ptr) PTR_IF(IS_ENABLED(CONFIG_PM_SLEEP), (_ptr))
         |                                                                 ^~~~
   include/linux/util_macros.h:136:38: note: expanded from macro 'PTR_IF'
     136 | #define PTR_IF(cond, ptr)       ((cond) ? (ptr) : NULL)
         |                                            ^~~
   include/linux/pm.h:843:12: note: 'pm_generic_resume' declared here
     843 | extern int pm_generic_resume(struct device *dev);
         |            ^
>> drivers/usb/dwc3/dwc3-generic-plat.c:200:17: error: use of undeclared identifier 'dwc3_generic_runtime_suspend'; did you mean 'pm_generic_runtime_suspend'?
     200 |         RUNTIME_PM_OPS(dwc3_generic_runtime_suspend, dwc3_generic_runtime_resume,
         |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |                        pm_generic_runtime_suspend
   include/linux/pm.h:338:21: note: expanded from macro 'RUNTIME_PM_OPS'
     338 |         .runtime_suspend = suspend_fn, \
         |                            ^~~~~~~~~~
   include/linux/pm_runtime.h:68:12: note: 'pm_generic_runtime_suspend' declared here
      68 | extern int pm_generic_runtime_suspend(struct device *dev);
         |            ^
>> drivers/usb/dwc3/dwc3-generic-plat.c:200:47: error: use of undeclared identifier 'dwc3_generic_runtime_resume'; did you mean 'pm_generic_runtime_resume'?
     200 |         RUNTIME_PM_OPS(dwc3_generic_runtime_suspend, dwc3_generic_runtime_resume,
         |                                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
         |                                                      pm_generic_runtime_resume
   include/linux/pm.h:339:20: note: expanded from macro 'RUNTIME_PM_OPS'
     339 |         .runtime_resume = resume_fn, \
         |                           ^~~~~~~~~
   include/linux/pm_runtime.h:69:12: note: 'pm_generic_runtime_resume' declared here
      69 | extern int pm_generic_runtime_resume(struct device *dev);
         |            ^
>> drivers/usb/dwc3/dwc3-generic-plat.c:201:10: error: use of undeclared identifier 'dwc3_generic_runtime_idle'; did you mean 'dwc3_runtime_idle'?
     201 |                        dwc3_generic_runtime_idle)
         |                        ^~~~~~~~~~~~~~~~~~~~~~~~~
         |                        dwc3_runtime_idle
   include/linux/pm.h:340:18: note: expanded from macro 'RUNTIME_PM_OPS'
     340 |         .runtime_idle = idle_fn,
         |                         ^~~~~~~
   drivers/usb/dwc3/glue.h:74:5: note: 'dwc3_runtime_idle' declared here
      74 | int dwc3_runtime_idle(struct dwc3 *dwc);
         |     ^
>> drivers/usb/dwc3/dwc3-generic-plat.c:201:10: error: incompatible function pointer types initializing 'int (*)(struct device *)' with an expression of type 'int (struct dwc3 *)' [-Wincompatible-function-pointer-types]
     201 |                        dwc3_generic_runtime_idle)
         |                        ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/usb/dwc3/dwc3-generic-plat.c:223:13: error: use of undeclared identifier 'dwc3_generic_remove'; did you mean 'dwc3_generic_probe'?
     223 |         .remove         = dwc3_generic_remove,
         |                           ^~~~~~~~~~~~~~~~~~~
         |                           dwc3_generic_probe
   drivers/usb/dwc3/dwc3-generic-plat.c:72:12: note: 'dwc3_generic_probe' declared here
      72 | static int dwc3_generic_probe(struct platform_device *pdev)
         |            ^
>> drivers/usb/dwc3/dwc3-generic-plat.c:223:13: error: incompatible function pointer types initializing 'void (*)(struct platform_device *)' with an expression of type 'int (struct platform_device *)' [-Wincompatible-function-pointer-types]
     223 |         .remove         = dwc3_generic_remove,
         |                           ^~~~~~~~~~~~~~~~~~~
   fatal error: too many errors emitted, stopping now [-ferror-limit=]
   2 warnings and 20 errors generated.


vim +132 drivers/usb/dwc3/dwc3-generic-plat.c

    71	
    72	static int dwc3_generic_probe(struct platform_device *pdev)
    73	{
    74		const struct dwc3_generic_config *plat_config;
    75		struct dwc3_probe_data probe_data = {};
    76		struct device *dev = &pdev->dev;
    77		struct dwc3_generic *dwc3g;
    78		struct resource *res;
    79		int ret;
    80	
    81		dwc3g = devm_kzalloc(dev, sizeof(*dwc3g), GFP_KERNEL);
    82		if (!dwc3g)
    83			return -ENOMEM;
    84	
    85		dwc3g->dev = dev;
    86	
    87		res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
    88		if (!res) {
    89			dev_err(&pdev->dev, "missing memory resource\n");
    90			return -ENODEV;
    91		}
    92	
    93		dwc3g->resets = devm_reset_control_array_get_optional_exclusive(dev);
    94		if (IS_ERR(dwc3g->resets))
    95			return dev_err_probe(dev, PTR_ERR(dwc3g->resets), "failed to get resets\n");
    96	
    97		ret = reset_control_assert(dwc3g->resets);
    98		if (ret)
    99			return dev_err_probe(dev, ret, "failed to assert resets\n");
   100	
   101		/* Not strict timing, just for safety */
   102		udelay(2);
   103	
   104		ret = reset_control_deassert(dwc3g->resets);
   105		if (ret)
   106			return dev_err_probe(dev, ret, "failed to deassert resets\n");
   107	
   108		ret = devm_add_action_or_reset(dev, dwc3_generic_reset_control_assert, dwc3g->resets);
   109		if (ret)
   110			return ret;
   111	
   112		ret = devm_clk_bulk_get_all_enabled(dwc3g->dev, &dwc3g->clks);
   113		if (ret < 0)
   114			return dev_err_probe(dev, ret, "failed to get clocks\n");
   115	
   116		dwc3g->num_clocks = ret;
   117		dwc3g->dwc.dev = dev;
   118		probe_data.dwc = &dwc3g->dwc;
   119		probe_data.res = res;
   120		probe_data.ignore_clocks_and_resets = true;
   121	
   122		plat_config = of_device_get_match_data(dev);
   123		if (!plat_config) {
   124			probe_data.properties = DWC3_DEFAULT_PROPERTIES;
   125			goto core_probe;
   126		}
   127	
   128		probe_data.properties = plat_config->properties;
   129		if (plat_config->init) {
   130			ret = plat_config->init(dwc3g);
   131			if (ret)
 > 132				return dev_err_probe(dev, ret, "failed to init
   133						     platform\n");
   134		}
   135	
   136	core_probe:
   137		ret = dwc3_core_probe(&probe_data);
   138		if (ret)
   139			return dev_err_probe(dev, ret, "failed to register DWC3 Core\n");
   140	
   141		return 0;
   142	}
   143	
   144	static void dwc3_generic_remove(struct platform_device *pdev)
 > 145	{
   146		struct dwc3 *dwc = platform_get_drvdata(pdev);
   147	
   148		dwc3_core_remove(dwc);
   149	}
   150	
   151	static int dwc3_generic_suspend(struct device *dev)
   152	{
   153		struct dwc3 *dwc = dev_get_drvdata(dev);
   154		struct dwc3_generic *dwc3g = to_dwc3_generic(dwc);
   155		int ret;
   156	
   157		ret = dwc3_pm_suspend(dwc);
   158		if (ret)
   159			return ret;
   160	
   161		clk_bulk_disable_unprepare(dwc3g->num_clocks, dwc3g->clks);
   162	
   163		return 0;
   164	}
   165	
   166	static int dwc3_generic_resume(struct device *dev)
   167	{
   168		struct dwc3 *dwc = dev_get_drvdata(dev);
   169		struct dwc3_generic *dwc3g = to_dwc3_generic(dwc);
   170		int ret;
   171	
   172		ret = clk_bulk_prepare_enable(dwc3g->num_clocks, dwc3g->clks);
   173		if (ret)
   174			return ret;
   175	
   176		ret = dwc3_pm_resume(dwc);
   177		if (ret)
   178			return ret;
   179	
   180		return 0;
   181	}
   182	
   183	static int dwc3_generic_runtime_suspend(struct device *dev)
   184	{
   185		return dwc3_runtime_suspend(dev_get_drvdata(dev));
   186	}
   187	
   188	static int dwc3_generic_runtime_resume(struct device *dev)
   189	{
   190		return dwc3_runtime_resume(dev_get_drvdata(dev));
   191	}
   192	
   193	static int dwc3_generic_runtime_idle(struct device *dev)
   194	{
   195		return dwc3_runtime_idle(dev_get_drvdata(dev));
   196	}
   197	
   198	static const struct dev_pm_ops dwc3_generic_dev_pm_ops = {
 > 199		SYSTEM_SLEEP_PM_OPS(dwc3_generic_suspend, dwc3_generic_resume)
 > 200		RUNTIME_PM_OPS(dwc3_generic_runtime_suspend, dwc3_generic_runtime_resume,
 > 201			       dwc3_generic_runtime_idle)
   202	};
   203	
   204	static const struct dwc3_generic_config fsl_ls1028_dwc3 = {
   205		.properties.gsbuscfg0_reqinfo = 0x2222,
   206	};
   207	
   208	static const struct dwc3_generic_config eic7700_dwc3 =  {
   209		.init = dwc3_eic7700_init,
   210		.properties = DWC3_DEFAULT_PROPERTIES,
   211	};
   212	
   213	static const struct of_device_id dwc3_generic_of_match[] = {
   214		{ .compatible = "spacemit,k1-dwc3", },
   215		{ .compatible = "fsl,ls1028a-dwc3", &fsl_ls1028_dwc3},
   216		{ .compatible = "eswin,eic7700-dwc3", &eic7700_dwc3},
   217		{ /* sentinel */ }
   218	};
   219	MODULE_DEVICE_TABLE(of, dwc3_generic_of_match);
   220	
   221	static struct platform_driver dwc3_generic_driver = {
   222		.probe		= dwc3_generic_probe,
 > 223		.remove		= dwc3_generic_remove,
   224		.driver		= {
   225			.name	= "dwc3-generic-plat",
   226			.of_match_table = dwc3_generic_of_match,
   227			.pm	= pm_ptr(&dwc3_generic_dev_pm_ops),
   228		},
   229	};
   230	module_platform_driver(dwc3_generic_driver);
   231	

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ