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.