[PATCH v2 2/3] coresight: Add source filtering for multi-port output

kernel test robot lkp at intel.com
Thu Jul 11 23:49:54 PDT 2024


Hi Tao,

kernel test robot noticed the following build warnings:

[auto build test WARNING on robh/for-next]
[also build test WARNING on linus/master v6.10-rc7 next-20240711]
[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/Tao-Zhang/dt-bindings-arm-qcom-coresight-static-replicator-Add-property-for-source-filtering/20240711-162200
base:   https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
patch link:    https://lore.kernel.org/r/20240711081750.21792-3-quic_taozha%40quicinc.com
patch subject: [PATCH v2 2/3] coresight: Add source filtering for multi-port output
config: arm-randconfig-004-20240712 (https://download.01.org/0day-ci/archive/20240712/202407121454.IxYqSYDp-lkp@intel.com/config)
compiler: clang version 15.0.7 (https://github.com/llvm/llvm-project 8dfdcc7b7bf66834a761bd8de445840ef68e4d1a)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240712/202407121454.IxYqSYDp-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 at intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202407121454.IxYqSYDp-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> drivers/hwtracing/coresight/coresight-platform.c:261:23: warning: more '%' conversions than data arguments [-Wformat-insufficient-args]
                                     "Filter source %s is not a source device\n");
                                                    ~^
   include/linux/dev_printk.h:156:62: note: expanded from macro 'dev_warn'
           dev_printk_index_wrap(_dev_warn, KERN_WARNING, dev, dev_fmt(fmt), ##__VA_ARGS__)
                                                                       ^~~
   include/linux/dev_printk.h:19:22: note: expanded from macro 'dev_fmt'
   #define dev_fmt(fmt) fmt
                        ^~~
   include/linux/dev_printk.h:110:16: note: expanded from macro 'dev_printk_index_wrap'
                   _p_func(dev, fmt, ##__VA_ARGS__);                       \
                                ^~~
   1 warning generated.


vim +261 drivers/hwtracing/coresight/coresight-platform.c

   185	
   186	/*
   187	 * of_coresight_parse_endpoint : Parse the given output endpoint @ep
   188	 * and fill the connection information in @pdata->out_conns
   189	 *
   190	 * Parses the local port, remote device name and the remote port.
   191	 *
   192	 * Returns :
   193	 *	 0	- If the parsing completed without any fatal errors.
   194	 *	-Errno	- Fatal error, abort the scanning.
   195	 */
   196	static int of_coresight_parse_endpoint(struct device *dev,
   197					       struct device_node *ep,
   198					       struct coresight_platform_data *pdata)
   199	{
   200		int ret = 0;
   201		struct of_endpoint endpoint, rendpoint;
   202		struct device_node *rparent = NULL;
   203		struct device_node *rep = NULL;
   204		struct device *rdev = NULL;
   205		struct fwnode_handle *rdev_fwnode;
   206		struct coresight_connection conn = {};
   207		struct coresight_connection *new_conn;
   208	
   209		do {
   210			/* Parse the local port details */
   211			if (of_graph_parse_endpoint(ep, &endpoint))
   212				break;
   213			/*
   214			 * Get a handle on the remote endpoint and the device it is
   215			 * attached to.
   216			 */
   217			rep = of_graph_get_remote_endpoint(ep);
   218			if (!rep)
   219				break;
   220			rparent = of_coresight_get_port_parent(rep);
   221			if (!rparent)
   222				break;
   223			if (of_graph_parse_endpoint(rep, &rendpoint))
   224				break;
   225	
   226			rdev_fwnode = of_fwnode_handle(rparent);
   227			/* If the remote device is not available, defer probing */
   228			rdev = coresight_find_device_by_fwnode(rdev_fwnode);
   229			if (!rdev) {
   230				ret = -EPROBE_DEFER;
   231				break;
   232			}
   233	
   234			conn.src_port = endpoint.port;
   235			/*
   236			 * Hold the refcount to the target device. This could be
   237			 * released via:
   238			 * 1) coresight_release_platform_data() if the probe fails or
   239			 *    this device is unregistered.
   240			 * 2) While removing the target device via
   241			 *    coresight_remove_match()
   242			 */
   243			conn.dest_fwnode = fwnode_handle_get(rdev_fwnode);
   244			conn.dest_port = rendpoint.port;
   245	
   246			/*
   247			 * Get the firmware node of the filter source through the
   248			 * reference. This could be used to filter the source in
   249			 * building path.
   250			 */
   251			conn.filter_src_fwnode =
   252				fwnode_find_reference(&ep->fwnode, "filter-src", 0);
   253			if (IS_ERR(conn.filter_src_fwnode))
   254				conn.filter_src_fwnode = NULL;
   255			else {
   256				conn.filter_src_dev =
   257				 coresight_find_csdev_by_fwnode(conn.filter_src_fwnode);
   258				if (conn.filter_src_dev && (conn.filter_src_dev->type
   259				    != CORESIGHT_DEV_TYPE_SOURCE))
   260					dev_warn(&conn.filter_src_dev->dev,
 > 261					  "Filter source %s is not a source device\n");
   262			}
   263	
   264			new_conn = coresight_add_out_conn(dev, pdata, &conn);
   265			if (IS_ERR_VALUE(new_conn)) {
   266				fwnode_handle_put(conn.dest_fwnode);
   267				return PTR_ERR(new_conn);
   268			}
   269			/* Connection record updated */
   270		} while (0);
   271	
   272		of_node_put(rparent);
   273		of_node_put(rep);
   274		put_device(rdev);
   275	
   276		return ret;
   277	}
   278	

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



More information about the linux-arm-kernel mailing list