All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: "Thomas Weißschuh" <linux@weissschuh.net>
Cc: oe-kbuild-all@lists.linux.dev
Subject: [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'?
Date: Fri, 16 May 2025 11:36:22 +0800	[thread overview]
Message-ID: <202505161154.JB7RP5uo-lkp@intel.com> (raw)

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

                 reply	other threads:[~2025-05-16  3:36 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=202505161154.JB7RP5uo-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=linux@weissschuh.net \
    --cc=oe-kbuild-all@lists.linux.dev \
    /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.