All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: "Jose A. Perez de Azpillaga" <azpijr@gmail.com>,
	vaibhav.sr@gmail.com, mgreer@animalcreek.com
Cc: oe-kbuild-all@lists.linux.dev, johan@kernel.org,
	elder@kernel.org, gregkh@linuxfoundation.org,
	greybus-dev@lists.linaro.org, linux-staging@lists.linux.dev,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] staging: greybus: move topology allocation to codec probe
Date: Tue, 24 Feb 2026 08:14:50 +0800	[thread overview]
Message-ID: <202602240844.4eT24iVh-lkp@intel.com> (raw)
In-Reply-To: <20260223195939.71151-1-azpijr@gmail.com>

Hi Jose,

kernel test robot noticed the following build errors:

[auto build test ERROR on staging/staging-testing]

url:    https://github.com/intel-lab-lkp/linux/commits/Jose-A-Perez-de-Azpillaga/staging-greybus-move-topology-allocation-to-codec-probe/20260224-040440
base:   staging/staging-testing
patch link:    https://lore.kernel.org/r/20260223195939.71151-1-azpijr%40gmail.com
patch subject: [PATCH] staging: greybus: move topology allocation to codec probe
config: parisc-randconfig-001-20260224 (https://download.01.org/0day-ci/archive/20260224/202602240844.4eT24iVh-lkp@intel.com/config)
compiler: hppa-linux-gcc (GCC) 10.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260224/202602240844.4eT24iVh-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/202602240844.4eT24iVh-lkp@intel.com/

All error/warnings (new ones prefixed by >>):

   drivers/staging/greybus/audio_module.c: In function 'gb_audio_probe':
>> drivers/staging/greybus/audio_module.c:327:10: error: 'struct gb_audio_topology' has no member named 'size'
     327 |  topology->size = cpu_to_le16(size);
         |          ^~
>> drivers/staging/greybus/audio_module.c:329:60: error: passing argument 2 of 'gb_audio_gb_get_topology' from incompatible pointer type [-Werror=incompatible-pointer-types]
     329 |  ret = gb_audio_gb_get_topology(gbmodule->mgmt_connection, topology);
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            struct gb_audio_topology *
   In file included from drivers/staging/greybus/audio_module.c:12:
   drivers/staging/greybus/audio_codec.h:182:36: note: expected 'struct gb_audio_topology **' but argument is of type 'struct gb_audio_topology *'
     182 |         struct gb_audio_topology **topology);
         |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
   cc1: some warnings being treated as errors
--
>> drivers/staging/greybus/audio_gb.c:11:5: error: conflicting types for 'gb_audio_gb_get_topology'
      11 | int gb_audio_gb_get_topology(struct gb_connection *connection,
         |     ^~~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/staging/greybus/audio_gb.c:9:
   drivers/staging/greybus/audio_codec.h:181:5: note: previous declaration of 'gb_audio_gb_get_topology' was here
     181 | int gb_audio_gb_get_topology(struct gb_connection *connection,
         |     ^~~~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/swab.h:5,
                    from include/uapi/linux/byteorder/big_endian.h:14,
                    from include/linux/byteorder/big_endian.h:5,
                    from arch/parisc/include/uapi/asm/byteorder.h:5,
                    from arch/parisc/include/asm/bitops.h:11,
                    from include/linux/bitops.h:67,
                    from include/linux/kernel.h:23,
                    from include/linux/greybus.h:14,
                    from drivers/staging/greybus/audio_gb.c:8:
   drivers/staging/greybus/audio_gb.c: In function 'gb_audio_gb_get_topology':
>> drivers/staging/greybus/audio_gb.c:15:43: error: 'struct gb_audio_topology' has no member named 'size'
      15 |    NULL, 0, topology, le16_to_cpu(topology->size));
         |                                           ^~
   include/uapi/linux/swab.h:105:31: note: in definition of macro '__swab16'
     105 |  (__u16)(__builtin_constant_p(x) ? \
         |                               ^
   include/linux/byteorder/generic.h:91:21: note: in expansion of macro '__le16_to_cpu'
      91 | #define le16_to_cpu __le16_to_cpu
         |                     ^~~~~~~~~~~~~
   drivers/staging/greybus/audio_gb.c:15:23: note: in expansion of macro 'le16_to_cpu'
      15 |    NULL, 0, topology, le16_to_cpu(topology->size));
         |                       ^~~~~~~~~~~
>> drivers/staging/greybus/audio_gb.c:15:43: error: 'struct gb_audio_topology' has no member named 'size'
      15 |    NULL, 0, topology, le16_to_cpu(topology->size));
         |                                           ^~
   include/uapi/linux/swab.h:106:2: note: in expansion of macro '___constant_swab16'
     106 |  ___constant_swab16(x) :   \
         |  ^~~~~~~~~~~~~~~~~~
   include/uapi/linux/byteorder/big_endian.h:37:26: note: in expansion of macro '__swab16'
      37 | #define __le16_to_cpu(x) __swab16((__force __u16)(__le16)(x))
         |                          ^~~~~~~~
   include/linux/byteorder/generic.h:91:21: note: in expansion of macro '__le16_to_cpu'
      91 | #define le16_to_cpu __le16_to_cpu
         |                     ^~~~~~~~~~~~~
   drivers/staging/greybus/audio_gb.c:15:23: note: in expansion of macro 'le16_to_cpu'
      15 |    NULL, 0, topology, le16_to_cpu(topology->size));
         |                       ^~~~~~~~~~~
>> drivers/staging/greybus/audio_gb.c:15:43: error: 'struct gb_audio_topology' has no member named 'size'
      15 |    NULL, 0, topology, le16_to_cpu(topology->size));
         |                                           ^~
   include/uapi/linux/swab.h:16:12: note: in definition of macro '___constant_swab16'
      16 |  (((__u16)(x) & (__u16)0xff00U) >> 8)))
         |            ^
   include/uapi/linux/byteorder/big_endian.h:37:26: note: in expansion of macro '__swab16'
      37 | #define __le16_to_cpu(x) __swab16((__force __u16)(__le16)(x))
         |                          ^~~~~~~~
   include/linux/byteorder/generic.h:91:21: note: in expansion of macro '__le16_to_cpu'
      91 | #define le16_to_cpu __le16_to_cpu
         |                     ^~~~~~~~~~~~~
   drivers/staging/greybus/audio_gb.c:15:23: note: in expansion of macro 'le16_to_cpu'
      15 |    NULL, 0, topology, le16_to_cpu(topology->size));
         |                       ^~~~~~~~~~~
>> drivers/staging/greybus/audio_gb.c:15:43: error: 'struct gb_audio_topology' has no member named 'size'
      15 |    NULL, 0, topology, le16_to_cpu(topology->size));
         |                                           ^~
   include/uapi/linux/swab.h:107:12: note: in definition of macro '__swab16'
     107 |  __fswab16(x))
         |            ^
   include/linux/byteorder/generic.h:91:21: note: in expansion of macro '__le16_to_cpu'
      91 | #define le16_to_cpu __le16_to_cpu
         |                     ^~~~~~~~~~~~~
   drivers/staging/greybus/audio_gb.c:15:23: note: in expansion of macro 'le16_to_cpu'
      15 |    NULL, 0, topology, le16_to_cpu(topology->size));
         |                       ^~~~~~~~~~~
   In file included from include/linux/linkage.h:7,
                    from include/linux/kernel.h:18,
                    from include/linux/greybus.h:14,
                    from drivers/staging/greybus/audio_gb.c:8:
   drivers/staging/greybus/audio_gb.c: At top level:
   drivers/staging/greybus/audio_gb.c:17:19: error: conflicting types for 'gb_audio_gb_get_topology'
      17 | EXPORT_SYMBOL_GPL(gb_audio_gb_get_topology);
         |                   ^~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/export.h:76:21: note: in definition of macro '__EXPORT_SYMBOL'
      76 |  extern typeof(sym) sym;     \
         |                     ^~~
   include/linux/export.h:90:33: note: in expansion of macro '_EXPORT_SYMBOL'
      90 | #define EXPORT_SYMBOL_GPL(sym)  _EXPORT_SYMBOL(sym, "GPL")
         |                                 ^~~~~~~~~~~~~~
   drivers/staging/greybus/audio_gb.c:17:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
      17 | EXPORT_SYMBOL_GPL(gb_audio_gb_get_topology);
         | ^~~~~~~~~~~~~~~~~
   In file included from drivers/staging/greybus/audio_gb.c:9:
   drivers/staging/greybus/audio_codec.h:181:5: note: previous declaration of 'gb_audio_gb_get_topology' was here
     181 | int gb_audio_gb_get_topology(struct gb_connection *connection,
         |     ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/staging/greybus/audio_gb.c: In function 'gb_audio_gb_get_topology':
>> drivers/staging/greybus/audio_gb.c:16:1: warning: control reaches end of non-void function [-Wreturn-type]
      16 | }
         | ^


vim +327 drivers/staging/greybus/audio_module.c

   228	
   229	/*
   230	 * This is the basic hook get things initialized and registered w/ gb
   231	 */
   232	
   233	static int gb_audio_probe(struct gb_bundle *bundle,
   234				  const struct greybus_bundle_id *id)
   235	{
   236		struct device *dev = &bundle->dev;
   237		struct gbaudio_module_info *gbmodule;
   238		struct greybus_descriptor_cport *cport_desc;
   239		struct gb_audio_manager_module_descriptor desc;
   240		struct gbaudio_data_connection *dai, *_dai;
   241		int ret, i;
   242		struct gb_audio_topology *topology;
   243		struct gb_audio_get_topology_size_response size_resp;
   244		u16 size;
   245	
   246		/* There should be at least one Management and one Data cport */
   247		if (bundle->num_cports < 2)
   248			return -ENODEV;
   249	
   250		/*
   251		 * There can be only one Management connection and any number of data
   252		 * connections.
   253		 */
   254		gbmodule = devm_kzalloc(dev, sizeof(*gbmodule), GFP_KERNEL);
   255		if (!gbmodule)
   256			return -ENOMEM;
   257	
   258		gbmodule->num_data_connections = bundle->num_cports - 1;
   259		INIT_LIST_HEAD(&gbmodule->data_list);
   260		INIT_LIST_HEAD(&gbmodule->widget_list);
   261		INIT_LIST_HEAD(&gbmodule->ctl_list);
   262		INIT_LIST_HEAD(&gbmodule->widget_ctl_list);
   263		INIT_LIST_HEAD(&gbmodule->jack_list);
   264		gbmodule->dev = dev;
   265		snprintf(gbmodule->name, sizeof(gbmodule->name), "%s.%s", dev->driver->name,
   266			 dev_name(dev));
   267		greybus_set_drvdata(bundle, gbmodule);
   268	
   269		/* Create all connections */
   270		for (i = 0; i < bundle->num_cports; i++) {
   271			cport_desc = &bundle->cport_desc[i];
   272	
   273			switch (cport_desc->protocol_id) {
   274			case GREYBUS_PROTOCOL_AUDIO_MGMT:
   275				ret = gb_audio_add_mgmt_connection(gbmodule, cport_desc,
   276								   bundle);
   277				if (ret)
   278					goto destroy_connections;
   279				break;
   280			case GREYBUS_PROTOCOL_AUDIO_DATA:
   281				ret = gb_audio_add_data_connection(gbmodule, cport_desc,
   282								   bundle);
   283				if (ret)
   284					goto destroy_connections;
   285				break;
   286			default:
   287				dev_err(dev, "Unsupported protocol: 0x%02x\n",
   288					cport_desc->protocol_id);
   289				ret = -ENODEV;
   290				goto destroy_connections;
   291			}
   292		}
   293	
   294		/* There must be a management cport */
   295		if (!gbmodule->mgmt_connection) {
   296			ret = -EINVAL;
   297			dev_err(dev, "Missing management connection\n");
   298			goto destroy_connections;
   299		}
   300	
   301		/* Initialize management connection */
   302		ret = gb_connection_enable(gbmodule->mgmt_connection);
   303		if (ret) {
   304			dev_err(dev, "%d: Error while enabling mgmt connection\n", ret);
   305			goto destroy_connections;
   306		}
   307		gbmodule->dev_id = gbmodule->mgmt_connection->intf->interface_id;
   308	
   309		ret = gb_operation_sync(gbmodule->mgmt_connection,
   310					GB_AUDIO_TYPE_GET_TOPOLOGY_SIZE, NULL, 0,
   311				&size_resp, sizeof(size_resp));
   312		if (ret)
   313			goto disable_connection;
   314	
   315		size = le16_to_cpu(size_resp.size);
   316		if (size < sizeof(*topology)) {
   317			ret = -ENODATA;
   318			goto disable_connection;
   319		}
   320	
   321		topology = kzalloc(size, GFP_KERNEL);
   322		if (!topology) {
   323			ret = -ENOMEM;
   324			goto disable_connection;
   325		}
   326	
 > 327		topology->size = cpu_to_le16(size);
   328	
 > 329		ret = gb_audio_gb_get_topology(gbmodule->mgmt_connection, topology);
   330		if (ret) {
   331			dev_err(dev, "%d:Error while fetching topology\n", ret);
   332			kfree(topology);
   333			goto disable_connection;
   334		}
   335	
   336		/* process topology data */
   337		ret = gbaudio_tplg_parse_data(gbmodule, topology);
   338		if (ret) {
   339			dev_err(dev, "%d:Error while parsing topology data\n",
   340				ret);
   341			goto free_topology;
   342		}
   343		gbmodule->topology = topology;
   344	
   345		/* Initialize data connections */
   346		list_for_each_entry(dai, &gbmodule->data_list, list) {
   347			ret = gb_connection_enable(dai->connection);
   348			if (ret) {
   349				dev_err(dev,
   350					"%d:Error while enabling %d:data connection\n",
   351					ret, le16_to_cpu(dai->data_cport));
   352				goto disable_data_connection;
   353			}
   354		}
   355	
   356		/* register module with gbcodec */
   357		ret = gbaudio_register_module(gbmodule);
   358		if (ret)
   359			goto disable_data_connection;
   360	
   361		/* inform above layer for uevent */
   362		dev_dbg(dev, "Inform set_event:%d to above layer\n", 1);
   363		/* prepare for the audio manager */
   364		strscpy(desc.name, gbmodule->name, sizeof(desc.name));
   365		desc.vid = 2; /* todo */
   366		desc.pid = 3; /* todo */
   367		desc.intf_id = gbmodule->dev_id;
   368		desc.op_devices = gbmodule->op_devices;
   369		desc.ip_devices = gbmodule->ip_devices;
   370		gbmodule->manager_id = gb_audio_manager_add(&desc);
   371	
   372		dev_dbg(dev, "Add GB Audio device:%s\n", gbmodule->name);
   373	
   374		gb_pm_runtime_put_autosuspend(bundle);
   375	
   376		return 0;
   377	
   378	disable_data_connection:
   379		list_for_each_entry_safe(dai, _dai, &gbmodule->data_list, list)
   380			gb_connection_disable(dai->connection);
   381		gbaudio_tplg_release(gbmodule);
   382		gbmodule->topology = NULL;
   383	
   384	free_topology:
   385		kfree(topology);
   386	
   387	disable_connection:
   388		gb_connection_disable(gbmodule->mgmt_connection);
   389	
   390	destroy_connections:
   391		list_for_each_entry_safe(dai, _dai, &gbmodule->data_list, list) {
   392			gb_connection_destroy(dai->connection);
   393			list_del(&dai->list);
   394			devm_kfree(dev, dai);
   395		}
   396	
   397		if (gbmodule->mgmt_connection)
   398			gb_connection_destroy(gbmodule->mgmt_connection);
   399	
   400		devm_kfree(dev, gbmodule);
   401	
   402		return ret;
   403	}
   404	

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

  reply	other threads:[~2026-02-24  0:16 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-23 19:59 [PATCH] staging: greybus: move topology allocation to codec probe Jose A. Perez de Azpillaga
2026-02-24  0:14 ` kernel test robot [this message]
2026-02-24  0:25 ` kernel test robot
2026-02-24  8:44 ` [PATCH v2] " Jose A. Perez de Azpillaga
2026-02-24 17:58   ` Greg KH
2026-02-25 10:16     ` Jose A. Perez de Azpillaga

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202602240844.4eT24iVh-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=azpijr@gmail.com \
    --cc=elder@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=greybus-dev@lists.linaro.org \
    --cc=johan@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-staging@lists.linux.dev \
    --cc=mgreer@animalcreek.com \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=vaibhav.sr@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.