All of lore.kernel.org
 help / color / mirror / Atom feed
* [android-common:android15-6.6 0/1] drivers/base/core.c:1941: warning: Function parameter or member 'con_handle' not described in '__fw_devlink_relax_cycles'
@ 2026-10-25  3:04 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-10-25  3:04 UTC (permalink / raw)
  To: cros-kernel-buildreports; +Cc: oe-kbuild-all

Hi Saravana,

FYI, the error/warning still remains.

tree:   https://android.googlesource.com/kernel/common android15-6.6
head:   745990bb615d19fb450877b6eb7050f085318f42
commit: f3ae93e738dbce362809662da7ac99c7297ee00c [0/1] driver core: fw_devlink: Stop trying to optimize cycle detection logic
config: i386-buildonly-randconfig-1002-20261020 (https://download.01.org/0day-ci/archive/20261025/202610251023.v7Vd0Gut-lkp@intel.com/config)
compiler: clang version 22.1.8 (https://github.com/llvm/llvm-project ca7933e47d3a3451d81e72ac174dcb5aa28b59d1)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20261025/202610251023.v7Vd0Gut-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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202610251023.v7Vd0Gut-lkp@intel.com/

All warnings (new ones prefixed by >>):

   drivers/base/core.c:68: warning: Function parameter or member 'flags' not described in '__fwnode_link_add'
>> drivers/base/core.c:1941: warning: Function parameter or member 'con_handle' not described in '__fw_devlink_relax_cycles'
   drivers/base/core.c:1941: warning: Excess function parameter 'con' description in '__fw_devlink_relax_cycles'


vim +1941 drivers/base/core.c

411c0d58ca6faa Saravana Kannan 2023-02-06  1918  
b0e2fa4f611bb9 Saravana Kannan 2020-12-17  1919  /**
3fb16866b51ded Saravana Kannan 2023-02-06  1920   * __fw_devlink_relax_cycles - Relax and mark dependency cycles.
3fb16866b51ded Saravana Kannan 2023-02-06  1921   * @con: Potential consumer device.
3fb16866b51ded Saravana Kannan 2023-02-06  1922   * @sup_handle: Potential supplier's fwnode.
3fb16866b51ded Saravana Kannan 2023-02-06  1923   *
3fb16866b51ded Saravana Kannan 2023-02-06  1924   * Needs to be called with fwnode_lock and device link lock held.
b0e2fa4f611bb9 Saravana Kannan 2020-12-17  1925   *
3fb16866b51ded Saravana Kannan 2023-02-06  1926   * Check if @sup_handle or any of its ancestors or suppliers direct/indirectly
3fb16866b51ded Saravana Kannan 2023-02-06  1927   * depend on @con. This function can detect multiple cyles between @sup_handle
3fb16866b51ded Saravana Kannan 2023-02-06  1928   * and @con. When such dependency cycles are found, convert all device links
3fb16866b51ded Saravana Kannan 2023-02-06  1929   * created solely by fw_devlink into SYNC_STATE_ONLY device links. Also, mark
3fb16866b51ded Saravana Kannan 2023-02-06  1930   * all fwnode links in the cycle with FWLINK_FLAG_CYCLE so that when they are
3fb16866b51ded Saravana Kannan 2023-02-06  1931   * converted into a device link in the future, they are created as
3fb16866b51ded Saravana Kannan 2023-02-06  1932   * SYNC_STATE_ONLY device links. This is the equivalent of doing
3fb16866b51ded Saravana Kannan 2023-02-06  1933   * fw_devlink=permissive just between the devices in the cycle. We need to do
3fb16866b51ded Saravana Kannan 2023-02-06  1934   * this because, at this point, fw_devlink can't tell which of these
3fb16866b51ded Saravana Kannan 2023-02-06  1935   * dependencies is not a real dependency.
b0e2fa4f611bb9 Saravana Kannan 2020-12-17  1936   *
3fb16866b51ded Saravana Kannan 2023-02-06  1937   * Return true if one or more cycles were found. Otherwise, return false.
b0e2fa4f611bb9 Saravana Kannan 2020-12-17  1938   */
f3ae93e738dbce Saravana Kannan 2024-10-30  1939  static bool __fw_devlink_relax_cycles(struct fwnode_handle *con_handle,
3fb16866b51ded Saravana Kannan 2023-02-06  1940  				 struct fwnode_handle *sup_handle)
b0e2fa4f611bb9 Saravana Kannan 2020-12-17 @1941  {
f3ae93e738dbce Saravana Kannan 2024-10-30  1942  	struct device *sup_dev = NULL, *par_dev = NULL, *con_dev = NULL;
3fb16866b51ded Saravana Kannan 2023-02-06  1943  	struct fwnode_link *link;
3fb16866b51ded Saravana Kannan 2023-02-06  1944  	struct device_link *dev_link;
3fb16866b51ded Saravana Kannan 2023-02-06  1945  	bool ret = false;
b0e2fa4f611bb9 Saravana Kannan 2020-12-17  1946  
3fb16866b51ded Saravana Kannan 2023-02-06  1947  	if (!sup_handle)
3fb16866b51ded Saravana Kannan 2023-02-06  1948  		return false;
b0e2fa4f611bb9 Saravana Kannan 2020-12-17  1949  
3fb16866b51ded Saravana Kannan 2023-02-06  1950  	/*
3fb16866b51ded Saravana Kannan 2023-02-06  1951  	 * We aren't trying to find all cycles. Just a cycle between con and
3fb16866b51ded Saravana Kannan 2023-02-06  1952  	 * sup_handle.
3fb16866b51ded Saravana Kannan 2023-02-06  1953  	 */
3fb16866b51ded Saravana Kannan 2023-02-06  1954  	if (sup_handle->flags & FWNODE_FLAG_VISITED)
3fb16866b51ded Saravana Kannan 2023-02-06  1955  		return false;
b0e2fa4f611bb9 Saravana Kannan 2020-12-17  1956  
3fb16866b51ded Saravana Kannan 2023-02-06  1957  	sup_handle->flags |= FWNODE_FLAG_VISITED;
b0e2fa4f611bb9 Saravana Kannan 2020-12-17  1958  
3fb16866b51ded Saravana Kannan 2023-02-06  1959  	/* Termination condition. */
f3ae93e738dbce Saravana Kannan 2024-10-30  1960  	if (sup_handle == con_handle) {
5c764791fb7b81 Saravana Kannan 2024-02-02  1961  		pr_debug("----- cycle: start -----\n");
3fb16866b51ded Saravana Kannan 2023-02-06  1962  		ret = true;
3fb16866b51ded Saravana Kannan 2023-02-06  1963  		goto out;
3fb16866b51ded Saravana Kannan 2023-02-06  1964  	}
b0e2fa4f611bb9 Saravana Kannan 2020-12-17  1965  
f3ae93e738dbce Saravana Kannan 2024-10-30  1966  	sup_dev = get_dev_from_fwnode(sup_handle);
f3ae93e738dbce Saravana Kannan 2024-10-30  1967  	con_dev = get_dev_from_fwnode(con_handle);
3fb16866b51ded Saravana Kannan 2023-02-06  1968  	/*
3fb16866b51ded Saravana Kannan 2023-02-06  1969  	 * If sup_dev is bound to a driver and @con hasn't started binding to a
3fb16866b51ded Saravana Kannan 2023-02-06  1970  	 * driver, sup_dev can't be a consumer of @con. So, no need to check
3fb16866b51ded Saravana Kannan 2023-02-06  1971  	 * further.
3fb16866b51ded Saravana Kannan 2023-02-06  1972  	 */
3fb16866b51ded Saravana Kannan 2023-02-06  1973  	if (sup_dev && sup_dev->links.status ==  DL_DEV_DRIVER_BOUND &&
f3ae93e738dbce Saravana Kannan 2024-10-30  1974  	    con_dev && con_dev->links.status == DL_DEV_NO_DRIVER) {
3fb16866b51ded Saravana Kannan 2023-02-06  1975  		ret = false;
3fb16866b51ded Saravana Kannan 2023-02-06  1976  		goto out;
3fb16866b51ded Saravana Kannan 2023-02-06  1977  	}
3fb16866b51ded Saravana Kannan 2023-02-06  1978  
3fb16866b51ded Saravana Kannan 2023-02-06  1979  	list_for_each_entry(link, &sup_handle->suppliers, c_hook) {
dce7a5c7bfa36d Saravana Kannan 2024-03-04  1980  		if (link->flags & FWLINK_FLAG_IGNORE)
dce7a5c7bfa36d Saravana Kannan 2024-03-04  1981  			continue;
dce7a5c7bfa36d Saravana Kannan 2024-03-04  1982  
f3ae93e738dbce Saravana Kannan 2024-10-30  1983  		if (__fw_devlink_relax_cycles(con_handle, link->supplier)) {
3fb16866b51ded Saravana Kannan 2023-02-06  1984  			__fwnode_link_cycle(link);
3fb16866b51ded Saravana Kannan 2023-02-06  1985  			ret = true;
3fb16866b51ded Saravana Kannan 2023-02-06  1986  		}
3fb16866b51ded Saravana Kannan 2023-02-06  1987  	}
3fb16866b51ded Saravana Kannan 2023-02-06  1988  
3fb16866b51ded Saravana Kannan 2023-02-06  1989  	/*
3fb16866b51ded Saravana Kannan 2023-02-06  1990  	 * Give priority to device parent over fwnode parent to account for any
3fb16866b51ded Saravana Kannan 2023-02-06  1991  	 * quirks in how fwnodes are converted to devices.
3fb16866b51ded Saravana Kannan 2023-02-06  1992  	 */
3fb16866b51ded Saravana Kannan 2023-02-06  1993  	if (sup_dev)
3fb16866b51ded Saravana Kannan 2023-02-06  1994  		par_dev = get_device(sup_dev->parent);
3fb16866b51ded Saravana Kannan 2023-02-06  1995  	else
3fb16866b51ded Saravana Kannan 2023-02-06  1996  		par_dev = fwnode_get_next_parent_dev(sup_handle);
3fb16866b51ded Saravana Kannan 2023-02-06  1997  
f3ae93e738dbce Saravana Kannan 2024-10-30  1998  	if (par_dev && __fw_devlink_relax_cycles(con_handle, par_dev->fwnode)) {
5c764791fb7b81 Saravana Kannan 2024-02-02  1999  		pr_debug("%pfwf: cycle: child of %pfwf\n", sup_handle,
5c764791fb7b81 Saravana Kannan 2024-02-02  2000  			 par_dev->fwnode);
3fb16866b51ded Saravana Kannan 2023-02-06  2001  		ret = true;
5c764791fb7b81 Saravana Kannan 2024-02-02  2002  	}
3fb16866b51ded Saravana Kannan 2023-02-06  2003  
3fb16866b51ded Saravana Kannan 2023-02-06  2004  	if (!sup_dev)
3fb16866b51ded Saravana Kannan 2023-02-06  2005  		goto out;
3fb16866b51ded Saravana Kannan 2023-02-06  2006  
3fb16866b51ded Saravana Kannan 2023-02-06  2007  	list_for_each_entry(dev_link, &sup_dev->links.suppliers, c_node) {
3fb16866b51ded Saravana Kannan 2023-02-06  2008  		/*
3fb16866b51ded Saravana Kannan 2023-02-06  2009  		 * Ignore a SYNC_STATE_ONLY flag only if it wasn't marked as
3fb16866b51ded Saravana Kannan 2023-02-06  2010  		 * such due to a cycle.
3fb16866b51ded Saravana Kannan 2023-02-06  2011  		 */
3fb16866b51ded Saravana Kannan 2023-02-06  2012  		if (device_link_flag_is_sync_state_only(dev_link->flags) &&
3fb16866b51ded Saravana Kannan 2023-02-06  2013  		    !(dev_link->flags & DL_FLAG_CYCLE))
3fb16866b51ded Saravana Kannan 2023-02-06  2014  			continue;
3fb16866b51ded Saravana Kannan 2023-02-06  2015  
f3ae93e738dbce Saravana Kannan 2024-10-30  2016  		if (__fw_devlink_relax_cycles(con_handle,
3fb16866b51ded Saravana Kannan 2023-02-06  2017  					      dev_link->supplier->fwnode)) {
5c764791fb7b81 Saravana Kannan 2024-02-02  2018  			pr_debug("%pfwf: cycle: depends on %pfwf\n", sup_handle,
5c764791fb7b81 Saravana Kannan 2024-02-02  2019  				 dev_link->supplier->fwnode);
3fb16866b51ded Saravana Kannan 2023-02-06  2020  			fw_devlink_relax_link(dev_link);
3fb16866b51ded Saravana Kannan 2023-02-06  2021  			dev_link->flags |= DL_FLAG_CYCLE;
3fb16866b51ded Saravana Kannan 2023-02-06  2022  			ret = true;
3fb16866b51ded Saravana Kannan 2023-02-06  2023  		}
b0e2fa4f611bb9 Saravana Kannan 2020-12-17  2024  	}
3fb16866b51ded Saravana Kannan 2023-02-06  2025  
3fb16866b51ded Saravana Kannan 2023-02-06  2026  out:
3fb16866b51ded Saravana Kannan 2023-02-06  2027  	sup_handle->flags &= ~FWNODE_FLAG_VISITED;
3fb16866b51ded Saravana Kannan 2023-02-06  2028  	put_device(sup_dev);
3fb16866b51ded Saravana Kannan 2023-02-06  2029  	put_device(par_dev);
b0e2fa4f611bb9 Saravana Kannan 2020-12-17  2030  	return ret;
b0e2fa4f611bb9 Saravana Kannan 2020-12-17  2031  }
b0e2fa4f611bb9 Saravana Kannan 2020-12-17  2032  

:::::: The code at line 1941 was first introduced by commit
:::::: b0e2fa4f611bb9ab22928605d5b1c7fd44e73955 driver core: Handle cycles in device links created by fw_devlink

:::::: TO: Saravana Kannan <saravanak@google.com>
:::::: CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-10-25  3:04 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-25  3:04 [android-common:android15-6.6 0/1] drivers/base/core.c:1941: warning: Function parameter or member 'con_handle' not described in '__fw_devlink_relax_cycles' kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.