All of lore.kernel.org
 help / color / mirror / Atom feed
* [thomas-weissschuh:b4/sysfs-const-bin_attr-final 5/5] drivers/virt/coco/guest/tsm-mr.c:231:19: error: 'struct attribute_group' has no member named 'bin_attrs_new'; did you mean 'bin_attrs'?
@ 2025-05-16  3:36 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2025-05-16  3:36 UTC (permalink / raw)
  To: Thomas Weißschuh; +Cc: oe-kbuild-all

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/thomas.weissschuh/linux.git b4/sysfs-const-bin_attr-final
head:   ec736d2ecd3dd88a7df03b27d0aa941113b58149
commit: ec736d2ecd3dd88a7df03b27d0aa941113b58149 [5/5] sysfs: remove attribute_group::bin_attrs_new
config: sh-allmodconfig (https://download.01.org/0day-ci/archive/20250516/202505161154.JB7RP5uo-lkp@intel.com/config)
compiler: sh4-linux-gcc (GCC) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250516/202505161154.JB7RP5uo-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/202505161154.JB7RP5uo-lkp@intel.com/

All errors (new ones prefixed by >>):

   drivers/virt/coco/guest/tsm-mr.c: In function 'tsm_mr_create_attribute_group':
   drivers/virt/coco/guest/tsm-mr.c:212:28: error: 'struct bin_attribute' has no member named 'read_new'
     212 |                         bap->read_new = tm_digest_read;
         |                            ^~
   drivers/virt/coco/guest/tsm-mr.c:217:28: error: 'struct bin_attribute' has no member named 'write_new'
     217 |                         bap->write_new = tm_digest_write;
         |                            ^~
>> drivers/virt/coco/guest/tsm-mr.c:231:19: error: 'struct attribute_group' has no member named 'bin_attrs_new'; did you mean 'bin_attrs'?
     231 |         ctx->agrp.bin_attrs_new = no_free_ptr(attrs);
         |                   ^~~~~~~~~~~~~
         |                   bin_attrs
   drivers/virt/coco/guest/tsm-mr.c: In function 'tsm_mr_free_attribute_group':
>> drivers/virt/coco/guest/tsm-mr.c:247:33: error: 'const struct attribute_group' has no member named 'bin_attrs_new'; did you mean 'bin_attrs'?
     247 |                 kfree(attr_grp->bin_attrs_new);
         |                                 ^~~~~~~~~~~~~
         |                                 bin_attrs


vim +231 drivers/virt/coco/guest/tsm-mr.c

b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  121  
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  122  /**
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  123   * tsm_mr_create_attribute_group() - creates an attribute group for measurement
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  124   * registers (MRs)
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  125   * @tm: pointer to &struct tsm_measurements containing the MR definitions.
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  126   *
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  127   * This function creates attributes corresponding to the MR definitions
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  128   * provided by @tm->mrs.
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  129   *
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  130   * The created attributes will reference @tm and its members. The caller must
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  131   * not free @tm until after tsm_mr_free_attribute_group() is called.
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  132   *
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  133   * Context: Process context. May sleep due to memory allocation.
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  134   *
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  135   * Return:
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  136   * * On success, the pointer to a an attribute group is returned; otherwise
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  137   * * %-EINVAL - Invalid MR definitions.
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  138   * * %-ENOMEM - Out of memory.
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  139   */
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  140  const struct attribute_group *
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  141  tsm_mr_create_attribute_group(const struct tsm_measurements *tm)
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  142  {
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  143  	size_t nlen;
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  144  
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  145  	if (!tm || !tm->mrs)
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  146  		return ERR_PTR(-EINVAL);
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  147  
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  148  	/* aggregated length of all MR names */
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  149  	nlen = 0;
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  150  	for (size_t i = 0; i < tm->nr_mrs; ++i) {
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  151  		if ((tm->mrs[i].mr_flags & TSM_MR_F_LIVE) && !tm->refresh)
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  152  			return ERR_PTR(-EINVAL);
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  153  
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  154  		if ((tm->mrs[i].mr_flags & TSM_MR_F_WRITABLE) && !tm->write)
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  155  			return ERR_PTR(-EINVAL);
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  156  
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  157  		if (!tm->mrs[i].mr_name)
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  158  			return ERR_PTR(-EINVAL);
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  159  
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  160  		if (tm->mrs[i].mr_flags & TSM_MR_F_NOHASH)
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  161  			continue;
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  162  
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  163  		if (tm->mrs[i].mr_hash >= HASH_ALGO__LAST)
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  164  			return ERR_PTR(-EINVAL);
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  165  
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  166  		/* MR sysfs attribute names have the form of MRNAME:HASH */
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  167  		nlen += strlen(tm->mrs[i].mr_name) + 1 +
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  168  			strlen(hash_algo_name[tm->mrs[i].mr_hash]) + 1;
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  169  	}
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  170  
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  171  	/*
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  172  	 * @attrs and the MR name strings are combined into a single allocation
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  173  	 * so that we don't have to free MR names one-by-one in
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  174  	 * tsm_mr_free_attribute_group()
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  175  	 */
b0ca403a9e3811 drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-13  176  	const struct bin_attribute **attrs __free(kfree) =
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  177  		kzalloc(sizeof(*attrs) * (tm->nr_mrs + 1) + nlen, GFP_KERNEL);
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  178  	struct tm_context *ctx __free(kfree) =
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  179  		kzalloc(struct_size(ctx, mrs, tm->nr_mrs), GFP_KERNEL);
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  180  	char *name, *end;
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  181  
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  182  	if (!ctx || !attrs)
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  183  		return ERR_PTR(-ENOMEM);
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  184  
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  185  	/* @attrs is followed immediately by MR name strings */
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  186  	name = (char *)&attrs[tm->nr_mrs + 1];
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  187  	end = name + nlen;
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  188  
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  189  	for (size_t i = 0; i < tm->nr_mrs; ++i) {
b0ca403a9e3811 drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-13  190  		struct bin_attribute *bap = &ctx->mrs[i];
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  191  
b0ca403a9e3811 drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-13  192  		sysfs_bin_attr_init(bap);
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  193  
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  194  		if (tm->mrs[i].mr_flags & TSM_MR_F_NOHASH)
b0ca403a9e3811 drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-13  195  			bap->attr.name = tm->mrs[i].mr_name;
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  196  		else if (name < end) {
b0ca403a9e3811 drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-13  197  			bap->attr.name = name;
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  198  			name += snprintf(name, end - name, "%s:%s",
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  199  					 tm->mrs[i].mr_name,
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  200  					 hash_algo_name[tm->mrs[i].mr_hash]);
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  201  			++name;
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  202  		} else
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  203  			return ERR_PTR(-EINVAL);
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  204  
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  205  		/* check for duplicated MR definitions */
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  206  		for (size_t j = 0; j < i; ++j)
b0ca403a9e3811 drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-13  207  			if (!strcmp(bap->attr.name, attrs[j]->attr.name))
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  208  				return ERR_PTR(-EINVAL);
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  209  
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  210  		if (tm->mrs[i].mr_flags & TSM_MR_F_READABLE) {
b0ca403a9e3811 drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-13  211  			bap->attr.mode |= 0444;
b0ca403a9e3811 drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-13  212  			bap->read_new = tm_digest_read;
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  213  		}
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  214  
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  215  		if (tm->mrs[i].mr_flags & TSM_MR_F_WRITABLE) {
b0ca403a9e3811 drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-13  216  			bap->attr.mode |= 0200;
b0ca403a9e3811 drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-13  217  			bap->write_new = tm_digest_write;
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  218  		}
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  219  
b0ca403a9e3811 drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-13  220  		bap->size = tm->mrs[i].mr_size;
b0ca403a9e3811 drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-13  221  		bap->private = ctx;
b0ca403a9e3811 drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-13  222  
b0ca403a9e3811 drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-13  223  		attrs[i] = bap;
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  224  	}
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  225  
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  226  	if (name != end)
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  227  		return ERR_PTR(-EINVAL);
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  228  
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  229  	init_rwsem(&ctx->rwsem);
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  230  	ctx->agrp.name = "measurements";
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08 @231  	ctx->agrp.bin_attrs_new = no_free_ptr(attrs);
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  232  	ctx->tm = tm;
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  233  	return &no_free_ptr(ctx)->agrp;
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  234  }
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  235  EXPORT_SYMBOL_GPL(tsm_mr_create_attribute_group);
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  236  
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  237  /**
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  238   * tsm_mr_free_attribute_group() - frees the attribute group returned by
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  239   * tsm_mr_create_attribute_group()
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  240   * @attr_grp: attribute group returned by tsm_mr_create_attribute_group()
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  241   *
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  242   * Context: Process context.
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  243   */
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  244  void tsm_mr_free_attribute_group(const struct attribute_group *attr_grp)
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  245  {
b9e22b35d4598a drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-08  246  	if (!IS_ERR_OR_NULL(attr_grp)) {
b0ca403a9e3811 drivers/virt/coco/tsm-mr.c Cedric Xing 2025-05-13 @247  		kfree(attr_grp->bin_attrs_new);

:::::: The code at line 231 was first introduced by commit
:::::: b9e22b35d4598aefed642928ed2856a9900e5b37 tsm-mr: Add TVM Measurement Register support

:::::: TO: Cedric Xing <cedric.xing@intel.com>
:::::: CC: Dan Williams <dan.j.williams@intel.com>

-- 
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:[~2025-05-16  3:36 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-16  3:36 [thomas-weissschuh:b4/sysfs-const-bin_attr-final 5/5] drivers/virt/coco/guest/tsm-mr.c:231:19: error: 'struct attribute_group' has no member named 'bin_attrs_new'; did you mean 'bin_attrs'? 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.