sysfs: Use sysfs_attr_init and sysfs_bin_attr_init on dynamic attributes
Eric W. Biederman [Thu, 11 Feb 2010 23:23:05 +0000 (15:23 -0800)]
These are the non-static sysfs attributes that exist on
my test machine.  Fix them to use sysfs_attr_init or
sysfs_bin_attr_init as appropriate.   It simply requires
making a sysfs attribute present to see this.  So this
is a little bit tedious but otherwise not too bad.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Acked-by: WANG Cong <xiyou.wangcong@gmail.com>
Cc: Tejun Heo <tj@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

arch/x86/kernel/cpu/mcheck/mce.c
drivers/acpi/system.c
drivers/pci/pci-sysfs.c
kernel/params.c

index a8aacd4..28cba46 100644 (file)
@@ -2044,6 +2044,7 @@ static __init void mce_init_banks(void)
                struct mce_bank *b = &mce_banks[i];
                struct sysdev_attribute *a = &b->attr;
 
+               sysfs_attr_init(&a->attr);
                a->attr.name    = b->attrname;
                snprintf(b->attrname, ATTR_LEN, "bank%d", i);
 
index a206a12..743f244 100644 (file)
@@ -101,6 +101,7 @@ static void acpi_table_attr_init(struct acpi_table_attr *table_attr,
        struct acpi_table_header *header = NULL;
        struct acpi_table_attr *attr = NULL;
 
+       sysfs_attr_init(&table_attr->attr.attr);
        if (table_header->signature[0] != '\0')
                memcpy(table_attr->name, table_header->signature,
                        ACPI_NAME_SIZE);
@@ -475,6 +476,7 @@ void acpi_irq_stats_init(void)
                        goto fail;
                strncpy(name, buffer, strlen(buffer) + 1);
 
+               sysfs_attr_init(&counter_attrs[i].attr);
                counter_attrs[i].attr.name = name;
                counter_attrs[i].attr.mode = 0644;
                counter_attrs[i].show = counter_show;
index 807224e..9fa183c 100644 (file)
@@ -642,6 +642,7 @@ void pci_create_legacy_files(struct pci_bus *b)
        if (!b->legacy_io)
                goto kzalloc_err;
 
+       sysfs_bin_attr_init(&b->legacy_io);
        b->legacy_io->attr.name = "legacy_io";
        b->legacy_io->size = 0xffff;
        b->legacy_io->attr.mode = S_IRUSR | S_IWUSR;
@@ -654,6 +655,7 @@ void pci_create_legacy_files(struct pci_bus *b)
                goto legacy_io_err;
 
        /* Allocated above after the legacy_io struct */
+       sysfs_bin_attr_init(&b->legacy_mem);
        b->legacy_mem = b->legacy_io + 1;
        b->legacy_mem->attr.name = "legacy_mem";
        b->legacy_mem->size = 1024*1024;
@@ -800,6 +802,7 @@ static int pci_create_attr(struct pci_dev *pdev, int num, int write_combine)
        if (res_attr) {
                char *res_attr_name = (char *)(res_attr + 1);
 
+               sysfs_bin_attr_init(res_attr);
                if (write_combine) {
                        pdev->res_attr_wc[num] = res_attr;
                        sprintf(res_attr_name, "resource%d_wc", num);
@@ -972,6 +975,7 @@ static int pci_create_capabilities_sysfs(struct pci_dev *dev)
                if (!attr)
                        return -ENOMEM;
 
+               sysfs_bin_attr_init(attr);
                attr->size = dev->vpd->len;
                attr->attr.name = "vpd";
                attr->attr.mode = S_IRUSR | S_IWUSR;
@@ -1038,6 +1042,7 @@ int __must_check pci_create_sysfs_dev_files (struct pci_dev *pdev)
                        retval = -ENOMEM;
                        goto err_resource_files;
                }
+               sysfs_bin_attr_init(attr);
                attr->size = rom_size;
                attr->attr.name = "rom";
                attr->attr.mode = S_IRUSR;
index 68396d7..d55a53e 100644 (file)
@@ -516,6 +516,7 @@ static __modinit int add_sysfs_param(struct module_kobject *mk,
        new->grp.attrs = attrs;
 
        /* Tack new one on the end. */
+       sysfs_attr_init(&new->attrs[num].mattr.attr);
        new->attrs[num].param = kp;
        new->attrs[num].mattr.show = param_attr_show;
        new->attrs[num].mattr.store = param_attr_store;