- Initialize sysfs attributes properly to avoid lockdep complaining about

an uninitialized lock class
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEzv7L6UO9uDPlPSfHEsHwGGHeVUoFAmhqLbYACgkQEsHwGGHe
 VUrwPg//Z/znenS4/5wKlAdTfK9VJ46ihpa5Zu1vxZsFJR+0Rtn5MugRGIxVA6xK
 GvcEXxneoWoe52dx1IgD+TzuAUtqYSuTkTRhMcSBpvHQtlLaAQ1/0DducRiTjPKQ
 93YoICfGJgGBHLw0Pte3vRQykvJN4+5UlJaH07oq0bYgZjljqxdB5XmUSG+RFvAW
 FVkDbwtl9K2Rg6CpgDwLfjQBjou+taNkQTGoP7A+E3jStEfP4ZasD2NKPpekb9Iq
 V/e9VyZxiFwXv8L8Dn2wCzt4r2PAM8UlZYqIQ078BJAphfxtFhzNd1nr5RLYjV7Q
 lG9EZYZDj9odYbi2RNsSA1l6DlNQBRCGdNovp5OCfR/NmJgaW/jdRll0m2v7GC/b
 LWgKdaA+dpoTp3kCrm6P6wUVB25oGenbIvA1GT0tdcUJ13rd4fiN0uU/TmihnwBT
 g9NmBEk8xSTRb7U0/UJfx2S/hOwQBcAETuMFK41M68hwZs8aCcOGAuKtIGNahpQ0
 sLtJj9Yc8eVkffxeF3P8QId9MHsk71oahHUWlNxH1g9TjBsLMadvzNMAN33T0hAe
 IXKj/SovzCg1e4hxuCTpKMUHEYCS/Aqb3xJlJcN6YaZN6FkhYxQCLPph8zS6zddj
 9K7Rbmtrh4uEX2AM2slpjcMTzaeRJApYLfCKSE+Q4bubfv/Gigg=
 =+FXU
 -----END PGP SIGNATURE-----

Merge tag 'edac_urgent_for_v6.16_rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras

Pull EDAC fix from Borislav Petkov:

 - Initialize sysfs attributes properly to avoid lockdep complaining
   about an uninitialized lock class

* tag 'edac_urgent_for_v6.16_rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras:
  EDAC: Initialize EDAC features sysfs attributes
This commit is contained in:
Linus Torvalds 2025-07-06 09:29:24 -07:00
commit c92bda4cb9
3 changed files with 5 additions and 1 deletions

View File

@ -170,8 +170,10 @@ static int ecs_create_desc(struct device *ecs_dev, const struct attribute_group
fru_ctx->dev_attr[ECS_RESET] = EDAC_ECS_ATTR_WO(reset, fru);
fru_ctx->dev_attr[ECS_THRESHOLD] = EDAC_ECS_ATTR_RW(threshold, fru);
for (i = 0; i < ECS_MAX_ATTRS; i++)
for (i = 0; i < ECS_MAX_ATTRS; i++) {
sysfs_attr_init(&fru_ctx->dev_attr[i].dev_attr.attr);
fru_ctx->ecs_attrs[i] = &fru_ctx->dev_attr[i].dev_attr.attr;
}
sprintf(fru_ctx->name, "%s%d", EDAC_ECS_FRU_NAME, fru);
group->name = fru_ctx->name;

View File

@ -333,6 +333,7 @@ static int mem_repair_create_desc(struct device *dev,
for (i = 0; i < MR_MAX_ATTRS; i++) {
memcpy(&ctx->mem_repair_dev_attr[i],
&dev_attr[i], sizeof(dev_attr[i]));
sysfs_attr_init(&ctx->mem_repair_dev_attr[i].dev_attr.attr);
ctx->mem_repair_attrs[i] =
&ctx->mem_repair_dev_attr[i].dev_attr.attr;
}

View File

@ -176,6 +176,7 @@ static int scrub_create_desc(struct device *scrub_dev,
group = &scrub_ctx->group;
for (i = 0; i < SCRUB_MAX_ATTRS; i++) {
memcpy(&scrub_ctx->scrub_dev_attr[i], &dev_attr[i], sizeof(dev_attr[i]));
sysfs_attr_init(&scrub_ctx->scrub_dev_attr[i].dev_attr.attr);
scrub_ctx->scrub_attrs[i] = &scrub_ctx->scrub_dev_attr[i].dev_attr.attr;
}
sprintf(scrub_ctx->name, "%s%d", "scrub", instance);