public inbox for linux-staging@lists.linux.dev
 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox