X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=drivers%2Fbase%2Fattribute_container.c;h=3b43e8a9f87e45e0763c8ae3d7b7d5b539616151;hb=444ad82bc3eaa554be40d22dc248e58aeefd54d9;hp=d4dfb97de3b006a20caaf705e33c0d78a80a82fe;hpb=2d94dfc8c38edf63e91e48fd55c3a8822b6a9ced;p=linux-2.6 diff --git a/drivers/base/attribute_container.c b/drivers/base/attribute_container.c index d4dfb97de3..3b43e8a9f8 100644 --- a/drivers/base/attribute_container.c +++ b/drivers/base/attribute_container.c @@ -320,9 +320,14 @@ attribute_container_add_attrs(struct class_device *classdev) struct class_device_attribute **attrs = cont->attrs; int i, error; - if (!attrs) + BUG_ON(attrs && cont->grp); + + if (!attrs && !cont->grp) return 0; + if (cont->grp) + return sysfs_create_group(&classdev->kobj, cont->grp); + for (i = 0; attrs[i]; i++) { error = class_device_create_file(classdev, attrs[i]); if (error) @@ -378,9 +383,14 @@ attribute_container_remove_attrs(struct class_device *classdev) struct class_device_attribute **attrs = cont->attrs; int i; - if (!attrs) + if (!attrs && !cont->grp) return; + if (cont->grp) { + sysfs_remove_group(&classdev->kobj, cont->grp); + return ; + } + for (i = 0; attrs[i]; i++) class_device_remove_file(classdev, attrs[i]); }