diff options
Diffstat (limited to 'drivers/edac/edac_device_sysfs.c')
-rw-r--r-- | drivers/edac/edac_device_sysfs.c | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/drivers/edac/edac_device_sysfs.c b/drivers/edac/edac_device_sysfs.c index 5bf7cbab27d4..7a233e6e2b36 100644 --- a/drivers/edac/edac_device_sysfs.c +++ b/drivers/edac/edac_device_sysfs.c | |||
@@ -292,8 +292,8 @@ static void edac_device_ctrl_instance_release(struct kobject *kobj) | |||
292 | /* instance specific attribute structure */ | 292 | /* instance specific attribute structure */ |
293 | struct instance_attribute { | 293 | struct instance_attribute { |
294 | struct attribute attr; | 294 | struct attribute attr; |
295 | ssize_t(*show) (struct edac_device_instance *, char *); | 295 | ssize_t(*show) (struct edac_device_instance *, char *); |
296 | ssize_t(*store) (struct edac_device_instance *, const char *, size_t); | 296 | ssize_t(*store) (struct edac_device_instance *, const char *, size_t); |
297 | }; | 297 | }; |
298 | 298 | ||
299 | /* Function to 'show' fields from the edac_dev 'instance' structure */ | 299 | /* Function to 'show' fields from the edac_dev 'instance' structure */ |
@@ -540,9 +540,8 @@ static int edac_device_create_instance(struct edac_device_ctl_info *edac_dev, | |||
540 | for (i = 0; i < instance->nr_blocks; i++) { | 540 | for (i = 0; i < instance->nr_blocks; i++) { |
541 | err = edac_device_create_block(edac_dev, instance, i); | 541 | err = edac_device_create_block(edac_dev, instance, i); |
542 | if (err) { | 542 | if (err) { |
543 | for (j = 0; j < i; j++) { | 543 | for (j = 0; j < i; j++) |
544 | edac_device_delete_block(edac_dev, instance, j); | 544 | edac_device_delete_block(edac_dev, instance, j); |
545 | } | ||
546 | return err; | 545 | return err; |
547 | } | 546 | } |
548 | } | 547 | } |
@@ -566,9 +565,8 @@ static void edac_device_delete_instance(struct edac_device_ctl_info *edac_dev, | |||
566 | instance = &edac_dev->instances[idx]; | 565 | instance = &edac_dev->instances[idx]; |
567 | 566 | ||
568 | /* unregister all blocks in this instance */ | 567 | /* unregister all blocks in this instance */ |
569 | for (i = 0; i < instance->nr_blocks; i++) { | 568 | for (i = 0; i < instance->nr_blocks; i++) |
570 | edac_device_delete_block(edac_dev, instance, i); | 569 | edac_device_delete_block(edac_dev, instance, i); |
571 | } | ||
572 | 570 | ||
573 | /* unregister this instance's kobject */ | 571 | /* unregister this instance's kobject */ |
574 | init_completion(&instance->kobj_complete); | 572 | init_completion(&instance->kobj_complete); |
@@ -593,9 +591,8 @@ static int edac_device_create_instances(struct edac_device_ctl_info *edac_dev) | |||
593 | err = edac_device_create_instance(edac_dev, i); | 591 | err = edac_device_create_instance(edac_dev, i); |
594 | if (err) { | 592 | if (err) { |
595 | /* unwind previous instances on error */ | 593 | /* unwind previous instances on error */ |
596 | for (j = 0; j < i; j++) { | 594 | for (j = 0; j < i; j++) |
597 | edac_device_delete_instance(edac_dev, j); | 595 | edac_device_delete_instance(edac_dev, j); |
598 | } | ||
599 | return err; | 596 | return err; |
600 | } | 597 | } |
601 | } | 598 | } |
@@ -612,9 +609,8 @@ static void edac_device_delete_instances(struct edac_device_ctl_info *edac_dev) | |||
612 | int i; | 609 | int i; |
613 | 610 | ||
614 | /* iterate over creation of the instances */ | 611 | /* iterate over creation of the instances */ |
615 | for (i = 0; i < edac_dev->nr_instances; i++) { | 612 | for (i = 0; i < edac_dev->nr_instances; i++) |
616 | edac_device_delete_instance(edac_dev, i); | 613 | edac_device_delete_instance(edac_dev, i); |
617 | } | ||
618 | } | 614 | } |
619 | 615 | ||
620 | /******************* edac_dev sysfs ctor/dtor code *************/ | 616 | /******************* edac_dev sysfs ctor/dtor code *************/ |
@@ -637,9 +633,8 @@ static int edac_device_add_sysfs_attributes( | |||
637 | while (sysfs_attrib->attr.name != NULL) { | 633 | while (sysfs_attrib->attr.name != NULL) { |
638 | err = sysfs_create_file(&edac_dev->kobj, | 634 | err = sysfs_create_file(&edac_dev->kobj, |
639 | (struct attribute*) sysfs_attrib); | 635 | (struct attribute*) sysfs_attrib); |
640 | if (err) { | 636 | if (err) |
641 | return err; | 637 | return err; |
642 | } | ||
643 | 638 | ||
644 | sysfs_attrib++; | 639 | sysfs_attrib++; |
645 | } | 640 | } |
@@ -696,9 +691,8 @@ int edac_device_create_sysfs(struct edac_device_ctl_info *edac_dev) | |||
696 | 691 | ||
697 | /* Create the first level instance directories */ | 692 | /* Create the first level instance directories */ |
698 | err = edac_device_create_instances(edac_dev); | 693 | err = edac_device_create_instances(edac_dev); |
699 | if (err) { | 694 | if (err) |
700 | goto err_remove_link; | 695 | goto err_remove_link; |
701 | } | ||
702 | 696 | ||
703 | return 0; | 697 | return 0; |
704 | 698 | ||