* [android-common:android16-6.12 1/1] drivers/base/core.c:1994: warning: Function parameter or struct member 'con_handle' not described in '__fw_devlink_relax_cycles'
@ 2025-12-12 21:56 kernel test robot
0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2025-12-12 21:56 UTC (permalink / raw)
To: cros-kernel-buildreports; +Cc: oe-kbuild-all
tree: https://android.googlesource.com/kernel/common android16-6.12
head: dd99b3dd2a23838f5718ec95ff4d9c782d4ce276
commit: d34bf994bb973db1d142376e555e093c3146f730 [1/1] driver core: fw_devlink: Stop trying to optimize cycle detection logic
config: i386-randconfig-051-20251212 (https://download.01.org/0day-ci/archive/20251213/202512130515.Flo02Jqm-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251213/202512130515.Flo02Jqm-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/202512130515.Flo02Jqm-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/base/core.c:1994: warning: Function parameter or struct member 'con_handle' not described in '__fw_devlink_relax_cycles'
drivers/base/core.c:1994: warning: Excess function parameter 'con' description in '__fw_devlink_relax_cycles'
vim +1994 drivers/base/core.c
411c0d58ca6faa Saravana Kannan 2023-02-06 1971
b0e2fa4f611bb9 Saravana Kannan 2020-12-17 1972 /**
3fb16866b51ded Saravana Kannan 2023-02-06 1973 * __fw_devlink_relax_cycles - Relax and mark dependency cycles.
3fb16866b51ded Saravana Kannan 2023-02-06 1974 * @con: Potential consumer device.
3fb16866b51ded Saravana Kannan 2023-02-06 1975 * @sup_handle: Potential supplier's fwnode.
3fb16866b51ded Saravana Kannan 2023-02-06 1976 *
3fb16866b51ded Saravana Kannan 2023-02-06 1977 * Needs to be called with fwnode_lock and device link lock held.
b0e2fa4f611bb9 Saravana Kannan 2020-12-17 1978 *
3fb16866b51ded Saravana Kannan 2023-02-06 1979 * Check if @sup_handle or any of its ancestors or suppliers direct/indirectly
3fb16866b51ded Saravana Kannan 2023-02-06 1980 * depend on @con. This function can detect multiple cyles between @sup_handle
3fb16866b51ded Saravana Kannan 2023-02-06 1981 * and @con. When such dependency cycles are found, convert all device links
3fb16866b51ded Saravana Kannan 2023-02-06 1982 * created solely by fw_devlink into SYNC_STATE_ONLY device links. Also, mark
3fb16866b51ded Saravana Kannan 2023-02-06 1983 * all fwnode links in the cycle with FWLINK_FLAG_CYCLE so that when they are
3fb16866b51ded Saravana Kannan 2023-02-06 1984 * converted into a device link in the future, they are created as
3fb16866b51ded Saravana Kannan 2023-02-06 1985 * SYNC_STATE_ONLY device links. This is the equivalent of doing
3fb16866b51ded Saravana Kannan 2023-02-06 1986 * fw_devlink=permissive just between the devices in the cycle. We need to do
3fb16866b51ded Saravana Kannan 2023-02-06 1987 * this because, at this point, fw_devlink can't tell which of these
3fb16866b51ded Saravana Kannan 2023-02-06 1988 * dependencies is not a real dependency.
b0e2fa4f611bb9 Saravana Kannan 2020-12-17 1989 *
3fb16866b51ded Saravana Kannan 2023-02-06 1990 * Return true if one or more cycles were found. Otherwise, return false.
b0e2fa4f611bb9 Saravana Kannan 2020-12-17 1991 */
d34bf994bb973d Saravana Kannan 2024-10-30 1992 static bool __fw_devlink_relax_cycles(struct fwnode_handle *con_handle,
3fb16866b51ded Saravana Kannan 2023-02-06 1993 struct fwnode_handle *sup_handle)
b0e2fa4f611bb9 Saravana Kannan 2020-12-17 @1994 {
d34bf994bb973d Saravana Kannan 2024-10-30 1995 struct device *sup_dev = NULL, *par_dev = NULL, *con_dev = NULL;
3fb16866b51ded Saravana Kannan 2023-02-06 1996 struct fwnode_link *link;
3fb16866b51ded Saravana Kannan 2023-02-06 1997 struct device_link *dev_link;
3fb16866b51ded Saravana Kannan 2023-02-06 1998 bool ret = false;
b0e2fa4f611bb9 Saravana Kannan 2020-12-17 1999
3fb16866b51ded Saravana Kannan 2023-02-06 2000 if (!sup_handle)
3fb16866b51ded Saravana Kannan 2023-02-06 2001 return false;
b0e2fa4f611bb9 Saravana Kannan 2020-12-17 2002
3fb16866b51ded Saravana Kannan 2023-02-06 2003 /*
3fb16866b51ded Saravana Kannan 2023-02-06 2004 * We aren't trying to find all cycles. Just a cycle between con and
3fb16866b51ded Saravana Kannan 2023-02-06 2005 * sup_handle.
3fb16866b51ded Saravana Kannan 2023-02-06 2006 */
3fb16866b51ded Saravana Kannan 2023-02-06 2007 if (sup_handle->flags & FWNODE_FLAG_VISITED)
3fb16866b51ded Saravana Kannan 2023-02-06 2008 return false;
b0e2fa4f611bb9 Saravana Kannan 2020-12-17 2009
3fb16866b51ded Saravana Kannan 2023-02-06 2010 sup_handle->flags |= FWNODE_FLAG_VISITED;
b0e2fa4f611bb9 Saravana Kannan 2020-12-17 2011
3fb16866b51ded Saravana Kannan 2023-02-06 2012 /* Termination condition. */
d34bf994bb973d Saravana Kannan 2024-10-30 2013 if (sup_handle == con_handle) {
6e7ad1aebb4fc9 Saravana Kannan 2024-02-02 2014 pr_debug("----- cycle: start -----\n");
3fb16866b51ded Saravana Kannan 2023-02-06 2015 ret = true;
3fb16866b51ded Saravana Kannan 2023-02-06 2016 goto out;
3fb16866b51ded Saravana Kannan 2023-02-06 2017 }
b0e2fa4f611bb9 Saravana Kannan 2020-12-17 2018
d34bf994bb973d Saravana Kannan 2024-10-30 2019 sup_dev = get_dev_from_fwnode(sup_handle);
d34bf994bb973d Saravana Kannan 2024-10-30 2020 con_dev = get_dev_from_fwnode(con_handle);
3fb16866b51ded Saravana Kannan 2023-02-06 2021 /*
3fb16866b51ded Saravana Kannan 2023-02-06 2022 * If sup_dev is bound to a driver and @con hasn't started binding to a
3fb16866b51ded Saravana Kannan 2023-02-06 2023 * driver, sup_dev can't be a consumer of @con. So, no need to check
3fb16866b51ded Saravana Kannan 2023-02-06 2024 * further.
3fb16866b51ded Saravana Kannan 2023-02-06 2025 */
3fb16866b51ded Saravana Kannan 2023-02-06 2026 if (sup_dev && sup_dev->links.status == DL_DEV_DRIVER_BOUND &&
d34bf994bb973d Saravana Kannan 2024-10-30 2027 con_dev && con_dev->links.status == DL_DEV_NO_DRIVER) {
3fb16866b51ded Saravana Kannan 2023-02-06 2028 ret = false;
3fb16866b51ded Saravana Kannan 2023-02-06 2029 goto out;
3fb16866b51ded Saravana Kannan 2023-02-06 2030 }
3fb16866b51ded Saravana Kannan 2023-02-06 2031
3fb16866b51ded Saravana Kannan 2023-02-06 2032 list_for_each_entry(link, &sup_handle->suppliers, c_hook) {
b7e1241d8f77ed Saravana Kannan 2024-03-04 2033 if (link->flags & FWLINK_FLAG_IGNORE)
b7e1241d8f77ed Saravana Kannan 2024-03-04 2034 continue;
b7e1241d8f77ed Saravana Kannan 2024-03-04 2035
d34bf994bb973d Saravana Kannan 2024-10-30 2036 if (__fw_devlink_relax_cycles(con_handle, link->supplier)) {
3fb16866b51ded Saravana Kannan 2023-02-06 2037 __fwnode_link_cycle(link);
3fb16866b51ded Saravana Kannan 2023-02-06 2038 ret = true;
3fb16866b51ded Saravana Kannan 2023-02-06 2039 }
3fb16866b51ded Saravana Kannan 2023-02-06 2040 }
3fb16866b51ded Saravana Kannan 2023-02-06 2041
3fb16866b51ded Saravana Kannan 2023-02-06 2042 /*
3fb16866b51ded Saravana Kannan 2023-02-06 2043 * Give priority to device parent over fwnode parent to account for any
3fb16866b51ded Saravana Kannan 2023-02-06 2044 * quirks in how fwnodes are converted to devices.
3fb16866b51ded Saravana Kannan 2023-02-06 2045 */
3fb16866b51ded Saravana Kannan 2023-02-06 2046 if (sup_dev)
3fb16866b51ded Saravana Kannan 2023-02-06 2047 par_dev = get_device(sup_dev->parent);
3fb16866b51ded Saravana Kannan 2023-02-06 2048 else
3fb16866b51ded Saravana Kannan 2023-02-06 2049 par_dev = fwnode_get_next_parent_dev(sup_handle);
3fb16866b51ded Saravana Kannan 2023-02-06 2050
d34bf994bb973d Saravana Kannan 2024-10-30 2051 if (par_dev && __fw_devlink_relax_cycles(con_handle, par_dev->fwnode)) {
6e7ad1aebb4fc9 Saravana Kannan 2024-02-02 2052 pr_debug("%pfwf: cycle: child of %pfwf\n", sup_handle,
6e7ad1aebb4fc9 Saravana Kannan 2024-02-02 2053 par_dev->fwnode);
3fb16866b51ded Saravana Kannan 2023-02-06 2054 ret = true;
6e7ad1aebb4fc9 Saravana Kannan 2024-02-02 2055 }
3fb16866b51ded Saravana Kannan 2023-02-06 2056
3fb16866b51ded Saravana Kannan 2023-02-06 2057 if (!sup_dev)
3fb16866b51ded Saravana Kannan 2023-02-06 2058 goto out;
3fb16866b51ded Saravana Kannan 2023-02-06 2059
3fb16866b51ded Saravana Kannan 2023-02-06 2060 list_for_each_entry(dev_link, &sup_dev->links.suppliers, c_node) {
3fb16866b51ded Saravana Kannan 2023-02-06 2061 /*
3fb16866b51ded Saravana Kannan 2023-02-06 2062 * Ignore a SYNC_STATE_ONLY flag only if it wasn't marked as
3fb16866b51ded Saravana Kannan 2023-02-06 2063 * such due to a cycle.
3fb16866b51ded Saravana Kannan 2023-02-06 2064 */
3fb16866b51ded Saravana Kannan 2023-02-06 2065 if (device_link_flag_is_sync_state_only(dev_link->flags) &&
3fb16866b51ded Saravana Kannan 2023-02-06 2066 !(dev_link->flags & DL_FLAG_CYCLE))
3fb16866b51ded Saravana Kannan 2023-02-06 2067 continue;
3fb16866b51ded Saravana Kannan 2023-02-06 2068
d34bf994bb973d Saravana Kannan 2024-10-30 2069 if (__fw_devlink_relax_cycles(con_handle,
3fb16866b51ded Saravana Kannan 2023-02-06 2070 dev_link->supplier->fwnode)) {
6e7ad1aebb4fc9 Saravana Kannan 2024-02-02 2071 pr_debug("%pfwf: cycle: depends on %pfwf\n", sup_handle,
6e7ad1aebb4fc9 Saravana Kannan 2024-02-02 2072 dev_link->supplier->fwnode);
3fb16866b51ded Saravana Kannan 2023-02-06 2073 fw_devlink_relax_link(dev_link);
3fb16866b51ded Saravana Kannan 2023-02-06 2074 dev_link->flags |= DL_FLAG_CYCLE;
3fb16866b51ded Saravana Kannan 2023-02-06 2075 ret = true;
3fb16866b51ded Saravana Kannan 2023-02-06 2076 }
b0e2fa4f611bb9 Saravana Kannan 2020-12-17 2077 }
3fb16866b51ded Saravana Kannan 2023-02-06 2078
3fb16866b51ded Saravana Kannan 2023-02-06 2079 out:
3fb16866b51ded Saravana Kannan 2023-02-06 2080 sup_handle->flags &= ~FWNODE_FLAG_VISITED;
3fb16866b51ded Saravana Kannan 2023-02-06 2081 put_device(sup_dev);
3fb16866b51ded Saravana Kannan 2023-02-06 2082 put_device(par_dev);
b0e2fa4f611bb9 Saravana Kannan 2020-12-17 2083 return ret;
b0e2fa4f611bb9 Saravana Kannan 2020-12-17 2084 }
b0e2fa4f611bb9 Saravana Kannan 2020-12-17 2085
:::::: The code at line 1994 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] 2+ messages in thread
* [android-common:android16-6.12 1/1] drivers/base/core.c:1994: warning: Function parameter or struct member 'con_handle' not described in '__fw_devlink_relax_cycles'
@ 2026-07-11 14:08 kernel test robot
0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2026-07-11 14:08 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 android16-6.12
head: 0026e4ecedf04706daa23af4ba4b973ff966a55e
commit: d34bf994bb973db1d142376e555e093c3146f730 [1/1] driver core: fw_devlink: Stop trying to optimize cycle detection logic
config: arm64-randconfig-002-20260708 (https://download.01.org/0day-ci/archive/20260711/202607112100.JNAPUx35-lkp@intel.com/config)
compiler: clang version 23.0.0git (https://github.com/llvm/llvm-project 0a2fb2a2269da0e2a3e230beb6cad39ca314db33)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260711/202607112100.JNAPUx35-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/202607112100.JNAPUx35-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/base/core.c:1994: warning: Function parameter or struct member 'con_handle' not described in '__fw_devlink_relax_cycles'
drivers/base/core.c:1994: warning: Excess function parameter 'con' description in '__fw_devlink_relax_cycles'
vim +1994 drivers/base/core.c
411c0d58ca6faa Saravana Kannan 2023-02-06 1971
b0e2fa4f611bb9 Saravana Kannan 2020-12-17 1972 /**
3fb16866b51ded Saravana Kannan 2023-02-06 1973 * __fw_devlink_relax_cycles - Relax and mark dependency cycles.
3fb16866b51ded Saravana Kannan 2023-02-06 1974 * @con: Potential consumer device.
3fb16866b51ded Saravana Kannan 2023-02-06 1975 * @sup_handle: Potential supplier's fwnode.
3fb16866b51ded Saravana Kannan 2023-02-06 1976 *
3fb16866b51ded Saravana Kannan 2023-02-06 1977 * Needs to be called with fwnode_lock and device link lock held.
b0e2fa4f611bb9 Saravana Kannan 2020-12-17 1978 *
3fb16866b51ded Saravana Kannan 2023-02-06 1979 * Check if @sup_handle or any of its ancestors or suppliers direct/indirectly
3fb16866b51ded Saravana Kannan 2023-02-06 1980 * depend on @con. This function can detect multiple cyles between @sup_handle
3fb16866b51ded Saravana Kannan 2023-02-06 1981 * and @con. When such dependency cycles are found, convert all device links
3fb16866b51ded Saravana Kannan 2023-02-06 1982 * created solely by fw_devlink into SYNC_STATE_ONLY device links. Also, mark
3fb16866b51ded Saravana Kannan 2023-02-06 1983 * all fwnode links in the cycle with FWLINK_FLAG_CYCLE so that when they are
3fb16866b51ded Saravana Kannan 2023-02-06 1984 * converted into a device link in the future, they are created as
3fb16866b51ded Saravana Kannan 2023-02-06 1985 * SYNC_STATE_ONLY device links. This is the equivalent of doing
3fb16866b51ded Saravana Kannan 2023-02-06 1986 * fw_devlink=permissive just between the devices in the cycle. We need to do
3fb16866b51ded Saravana Kannan 2023-02-06 1987 * this because, at this point, fw_devlink can't tell which of these
3fb16866b51ded Saravana Kannan 2023-02-06 1988 * dependencies is not a real dependency.
b0e2fa4f611bb9 Saravana Kannan 2020-12-17 1989 *
3fb16866b51ded Saravana Kannan 2023-02-06 1990 * Return true if one or more cycles were found. Otherwise, return false.
b0e2fa4f611bb9 Saravana Kannan 2020-12-17 1991 */
d34bf994bb973d Saravana Kannan 2024-10-30 1992 static bool __fw_devlink_relax_cycles(struct fwnode_handle *con_handle,
3fb16866b51ded Saravana Kannan 2023-02-06 1993 struct fwnode_handle *sup_handle)
b0e2fa4f611bb9 Saravana Kannan 2020-12-17 @1994 {
d34bf994bb973d Saravana Kannan 2024-10-30 1995 struct device *sup_dev = NULL, *par_dev = NULL, *con_dev = NULL;
3fb16866b51ded Saravana Kannan 2023-02-06 1996 struct fwnode_link *link;
3fb16866b51ded Saravana Kannan 2023-02-06 1997 struct device_link *dev_link;
3fb16866b51ded Saravana Kannan 2023-02-06 1998 bool ret = false;
b0e2fa4f611bb9 Saravana Kannan 2020-12-17 1999
3fb16866b51ded Saravana Kannan 2023-02-06 2000 if (!sup_handle)
3fb16866b51ded Saravana Kannan 2023-02-06 2001 return false;
b0e2fa4f611bb9 Saravana Kannan 2020-12-17 2002
3fb16866b51ded Saravana Kannan 2023-02-06 2003 /*
3fb16866b51ded Saravana Kannan 2023-02-06 2004 * We aren't trying to find all cycles. Just a cycle between con and
3fb16866b51ded Saravana Kannan 2023-02-06 2005 * sup_handle.
3fb16866b51ded Saravana Kannan 2023-02-06 2006 */
3fb16866b51ded Saravana Kannan 2023-02-06 2007 if (sup_handle->flags & FWNODE_FLAG_VISITED)
3fb16866b51ded Saravana Kannan 2023-02-06 2008 return false;
b0e2fa4f611bb9 Saravana Kannan 2020-12-17 2009
3fb16866b51ded Saravana Kannan 2023-02-06 2010 sup_handle->flags |= FWNODE_FLAG_VISITED;
b0e2fa4f611bb9 Saravana Kannan 2020-12-17 2011
3fb16866b51ded Saravana Kannan 2023-02-06 2012 /* Termination condition. */
d34bf994bb973d Saravana Kannan 2024-10-30 2013 if (sup_handle == con_handle) {
6e7ad1aebb4fc9 Saravana Kannan 2024-02-02 2014 pr_debug("----- cycle: start -----\n");
3fb16866b51ded Saravana Kannan 2023-02-06 2015 ret = true;
3fb16866b51ded Saravana Kannan 2023-02-06 2016 goto out;
3fb16866b51ded Saravana Kannan 2023-02-06 2017 }
b0e2fa4f611bb9 Saravana Kannan 2020-12-17 2018
d34bf994bb973d Saravana Kannan 2024-10-30 2019 sup_dev = get_dev_from_fwnode(sup_handle);
d34bf994bb973d Saravana Kannan 2024-10-30 2020 con_dev = get_dev_from_fwnode(con_handle);
3fb16866b51ded Saravana Kannan 2023-02-06 2021 /*
3fb16866b51ded Saravana Kannan 2023-02-06 2022 * If sup_dev is bound to a driver and @con hasn't started binding to a
3fb16866b51ded Saravana Kannan 2023-02-06 2023 * driver, sup_dev can't be a consumer of @con. So, no need to check
3fb16866b51ded Saravana Kannan 2023-02-06 2024 * further.
3fb16866b51ded Saravana Kannan 2023-02-06 2025 */
3fb16866b51ded Saravana Kannan 2023-02-06 2026 if (sup_dev && sup_dev->links.status == DL_DEV_DRIVER_BOUND &&
d34bf994bb973d Saravana Kannan 2024-10-30 2027 con_dev && con_dev->links.status == DL_DEV_NO_DRIVER) {
3fb16866b51ded Saravana Kannan 2023-02-06 2028 ret = false;
3fb16866b51ded Saravana Kannan 2023-02-06 2029 goto out;
3fb16866b51ded Saravana Kannan 2023-02-06 2030 }
3fb16866b51ded Saravana Kannan 2023-02-06 2031
3fb16866b51ded Saravana Kannan 2023-02-06 2032 list_for_each_entry(link, &sup_handle->suppliers, c_hook) {
b7e1241d8f77ed Saravana Kannan 2024-03-04 2033 if (link->flags & FWLINK_FLAG_IGNORE)
b7e1241d8f77ed Saravana Kannan 2024-03-04 2034 continue;
b7e1241d8f77ed Saravana Kannan 2024-03-04 2035
d34bf994bb973d Saravana Kannan 2024-10-30 2036 if (__fw_devlink_relax_cycles(con_handle, link->supplier)) {
3fb16866b51ded Saravana Kannan 2023-02-06 2037 __fwnode_link_cycle(link);
3fb16866b51ded Saravana Kannan 2023-02-06 2038 ret = true;
3fb16866b51ded Saravana Kannan 2023-02-06 2039 }
3fb16866b51ded Saravana Kannan 2023-02-06 2040 }
3fb16866b51ded Saravana Kannan 2023-02-06 2041
3fb16866b51ded Saravana Kannan 2023-02-06 2042 /*
3fb16866b51ded Saravana Kannan 2023-02-06 2043 * Give priority to device parent over fwnode parent to account for any
3fb16866b51ded Saravana Kannan 2023-02-06 2044 * quirks in how fwnodes are converted to devices.
3fb16866b51ded Saravana Kannan 2023-02-06 2045 */
3fb16866b51ded Saravana Kannan 2023-02-06 2046 if (sup_dev)
3fb16866b51ded Saravana Kannan 2023-02-06 2047 par_dev = get_device(sup_dev->parent);
3fb16866b51ded Saravana Kannan 2023-02-06 2048 else
3fb16866b51ded Saravana Kannan 2023-02-06 2049 par_dev = fwnode_get_next_parent_dev(sup_handle);
3fb16866b51ded Saravana Kannan 2023-02-06 2050
d34bf994bb973d Saravana Kannan 2024-10-30 2051 if (par_dev && __fw_devlink_relax_cycles(con_handle, par_dev->fwnode)) {
6e7ad1aebb4fc9 Saravana Kannan 2024-02-02 2052 pr_debug("%pfwf: cycle: child of %pfwf\n", sup_handle,
6e7ad1aebb4fc9 Saravana Kannan 2024-02-02 2053 par_dev->fwnode);
3fb16866b51ded Saravana Kannan 2023-02-06 2054 ret = true;
6e7ad1aebb4fc9 Saravana Kannan 2024-02-02 2055 }
3fb16866b51ded Saravana Kannan 2023-02-06 2056
3fb16866b51ded Saravana Kannan 2023-02-06 2057 if (!sup_dev)
3fb16866b51ded Saravana Kannan 2023-02-06 2058 goto out;
3fb16866b51ded Saravana Kannan 2023-02-06 2059
3fb16866b51ded Saravana Kannan 2023-02-06 2060 list_for_each_entry(dev_link, &sup_dev->links.suppliers, c_node) {
3fb16866b51ded Saravana Kannan 2023-02-06 2061 /*
3fb16866b51ded Saravana Kannan 2023-02-06 2062 * Ignore a SYNC_STATE_ONLY flag only if it wasn't marked as
3fb16866b51ded Saravana Kannan 2023-02-06 2063 * such due to a cycle.
3fb16866b51ded Saravana Kannan 2023-02-06 2064 */
3fb16866b51ded Saravana Kannan 2023-02-06 2065 if (device_link_flag_is_sync_state_only(dev_link->flags) &&
3fb16866b51ded Saravana Kannan 2023-02-06 2066 !(dev_link->flags & DL_FLAG_CYCLE))
3fb16866b51ded Saravana Kannan 2023-02-06 2067 continue;
3fb16866b51ded Saravana Kannan 2023-02-06 2068
d34bf994bb973d Saravana Kannan 2024-10-30 2069 if (__fw_devlink_relax_cycles(con_handle,
3fb16866b51ded Saravana Kannan 2023-02-06 2070 dev_link->supplier->fwnode)) {
6e7ad1aebb4fc9 Saravana Kannan 2024-02-02 2071 pr_debug("%pfwf: cycle: depends on %pfwf\n", sup_handle,
6e7ad1aebb4fc9 Saravana Kannan 2024-02-02 2072 dev_link->supplier->fwnode);
3fb16866b51ded Saravana Kannan 2023-02-06 2073 fw_devlink_relax_link(dev_link);
3fb16866b51ded Saravana Kannan 2023-02-06 2074 dev_link->flags |= DL_FLAG_CYCLE;
3fb16866b51ded Saravana Kannan 2023-02-06 2075 ret = true;
3fb16866b51ded Saravana Kannan 2023-02-06 2076 }
b0e2fa4f611bb9 Saravana Kannan 2020-12-17 2077 }
3fb16866b51ded Saravana Kannan 2023-02-06 2078
3fb16866b51ded Saravana Kannan 2023-02-06 2079 out:
3fb16866b51ded Saravana Kannan 2023-02-06 2080 sup_handle->flags &= ~FWNODE_FLAG_VISITED;
3fb16866b51ded Saravana Kannan 2023-02-06 2081 put_device(sup_dev);
3fb16866b51ded Saravana Kannan 2023-02-06 2082 put_device(par_dev);
b0e2fa4f611bb9 Saravana Kannan 2020-12-17 2083 return ret;
b0e2fa4f611bb9 Saravana Kannan 2020-12-17 2084 }
b0e2fa4f611bb9 Saravana Kannan 2020-12-17 2085
:::::: The code at line 1994 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] 2+ messages in thread
end of thread, other threads:[~2026-07-11 14:08 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-11 14:08 [android-common:android16-6.12 1/1] drivers/base/core.c:1994: warning: Function parameter or struct member 'con_handle' not described in '__fw_devlink_relax_cycles' kernel test robot
-- strict thread matches above, loose matches on Subject: below --
2025-12-12 21:56 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.