PCI Hotplug: fix __must_check warnings

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
Greg Kroah-Hartman 2006-08-28 11:43:25 -07:00
parent e1b95dc6b1
commit 660a0e8fdf
2 changed files with 128 additions and 33 deletions

View file

@ -172,7 +172,7 @@ struct hotplug_slot {
extern int pci_hp_register (struct hotplug_slot *slot); extern int pci_hp_register (struct hotplug_slot *slot);
extern int pci_hp_deregister (struct hotplug_slot *slot); extern int pci_hp_deregister (struct hotplug_slot *slot);
extern int pci_hp_change_slot_info (struct hotplug_slot *slot, extern int __must_check pci_hp_change_slot_info (struct hotplug_slot *slot,
struct hotplug_slot_info *info); struct hotplug_slot_info *info);
extern struct subsystem pci_hotplug_slots_subsys; extern struct subsystem pci_hotplug_slots_subsys;

View file

@ -482,31 +482,95 @@ static int has_test_file (struct hotplug_slot *slot)
static int fs_add_slot (struct hotplug_slot *slot) static int fs_add_slot (struct hotplug_slot *slot)
{ {
if (has_power_file(slot) == 0) int retval = 0;
sysfs_create_file(&slot->kobj, &hotplug_slot_attr_power.attr);
if (has_attention_file(slot) == 0) if (has_power_file(slot) == 0) {
sysfs_create_file(&slot->kobj, &hotplug_slot_attr_attention.attr); retval = sysfs_create_file(&slot->kobj, &hotplug_slot_attr_power.attr);
if (retval)
goto exit_power;
}
if (has_latch_file(slot) == 0) if (has_attention_file(slot) == 0) {
sysfs_create_file(&slot->kobj, &hotplug_slot_attr_latch.attr); retval = sysfs_create_file(&slot->kobj,
&hotplug_slot_attr_attention.attr);
if (retval)
goto exit_attention;
}
if (has_adapter_file(slot) == 0) if (has_latch_file(slot) == 0) {
sysfs_create_file(&slot->kobj, &hotplug_slot_attr_presence.attr); retval = sysfs_create_file(&slot->kobj,
&hotplug_slot_attr_latch.attr);
if (retval)
goto exit_latch;
}
if (has_address_file(slot) == 0) if (has_adapter_file(slot) == 0) {
sysfs_create_file(&slot->kobj, &hotplug_slot_attr_address.attr); retval = sysfs_create_file(&slot->kobj,
&hotplug_slot_attr_presence.attr);
if (retval)
goto exit_adapter;
}
if (has_max_bus_speed_file(slot) == 0) if (has_address_file(slot) == 0) {
sysfs_create_file(&slot->kobj, &hotplug_slot_attr_max_bus_speed.attr); retval = sysfs_create_file(&slot->kobj,
&hotplug_slot_attr_address.attr);
if (retval)
goto exit_address;
}
if (has_max_bus_speed_file(slot) == 0) {
retval = sysfs_create_file(&slot->kobj,
&hotplug_slot_attr_max_bus_speed.attr);
if (retval)
goto exit_max_speed;
}
if (has_cur_bus_speed_file(slot) == 0) {
retval = sysfs_create_file(&slot->kobj,
&hotplug_slot_attr_cur_bus_speed.attr);
if (retval)
goto exit_cur_speed;
}
if (has_test_file(slot) == 0) {
retval = sysfs_create_file(&slot->kobj,
&hotplug_slot_attr_test.attr);
if (retval)
goto exit_test;
}
goto exit;
exit_test:
if (has_cur_bus_speed_file(slot) == 0) if (has_cur_bus_speed_file(slot) == 0)
sysfs_create_file(&slot->kobj, &hotplug_slot_attr_cur_bus_speed.attr); sysfs_remove_file(&slot->kobj, &hotplug_slot_attr_cur_bus_speed.attr);
if (has_test_file(slot) == 0) exit_cur_speed:
sysfs_create_file(&slot->kobj, &hotplug_slot_attr_test.attr); if (has_max_bus_speed_file(slot) == 0)
sysfs_remove_file(&slot->kobj, &hotplug_slot_attr_max_bus_speed.attr);
return 0; exit_max_speed:
if (has_address_file(slot) == 0)
sysfs_remove_file(&slot->kobj, &hotplug_slot_attr_address.attr);
exit_address:
if (has_adapter_file(slot) == 0)
sysfs_remove_file(&slot->kobj, &hotplug_slot_attr_presence.attr);
exit_adapter:
if (has_latch_file(slot) == 0)
sysfs_remove_file(&slot->kobj, &hotplug_slot_attr_latch.attr);
exit_latch:
if (has_attention_file(slot) == 0)
sysfs_remove_file(&slot->kobj, &hotplug_slot_attr_attention.attr);
exit_attention:
if (has_power_file(slot) == 0)
sysfs_remove_file(&slot->kobj, &hotplug_slot_attr_power.attr);
exit_power:
exit:
return retval;
} }
static void fs_remove_slot (struct hotplug_slot *slot) static void fs_remove_slot (struct hotplug_slot *slot)
@ -626,8 +690,11 @@ int pci_hp_deregister (struct hotplug_slot *slot)
* *
* Returns 0 if successful, anything else for an error. * Returns 0 if successful, anything else for an error.
*/ */
int pci_hp_change_slot_info (struct hotplug_slot *slot, struct hotplug_slot_info *info) int __must_check pci_hp_change_slot_info(struct hotplug_slot *slot,
struct hotplug_slot_info *info)
{ {
int retval;
if ((slot == NULL) || (info == NULL)) if ((slot == NULL) || (info == NULL))
return -ENODEV; return -ENODEV;
@ -636,32 +703,60 @@ int pci_hp_change_slot_info (struct hotplug_slot *slot, struct hotplug_slot_info
* for the files referring to the fields that have now changed. * for the files referring to the fields that have now changed.
*/ */
if ((has_power_file(slot) == 0) && if ((has_power_file(slot) == 0) &&
(slot->info->power_status != info->power_status)) (slot->info->power_status != info->power_status)) {
sysfs_update_file(&slot->kobj, &hotplug_slot_attr_power.attr); retval = sysfs_update_file(&slot->kobj,
&hotplug_slot_attr_power.attr);
if (retval)
return retval;
}
if ((has_attention_file(slot) == 0) && if ((has_attention_file(slot) == 0) &&
(slot->info->attention_status != info->attention_status)) (slot->info->attention_status != info->attention_status)) {
sysfs_update_file(&slot->kobj, &hotplug_slot_attr_attention.attr); retval = sysfs_update_file(&slot->kobj,
&hotplug_slot_attr_attention.attr);
if (retval)
return retval;
}
if ((has_latch_file(slot) == 0) && if ((has_latch_file(slot) == 0) &&
(slot->info->latch_status != info->latch_status)) (slot->info->latch_status != info->latch_status)) {
sysfs_update_file(&slot->kobj, &hotplug_slot_attr_latch.attr); retval = sysfs_update_file(&slot->kobj,
&hotplug_slot_attr_latch.attr);
if (retval)
return retval;
}
if ((has_adapter_file(slot) == 0) && if ((has_adapter_file(slot) == 0) &&
(slot->info->adapter_status != info->adapter_status)) (slot->info->adapter_status != info->adapter_status)) {
sysfs_update_file(&slot->kobj, &hotplug_slot_attr_presence.attr); retval = sysfs_update_file(&slot->kobj,
&hotplug_slot_attr_presence.attr);
if (retval)
return retval;
}
if ((has_address_file(slot) == 0) && if ((has_address_file(slot) == 0) &&
(slot->info->address != info->address)) (slot->info->address != info->address)) {
sysfs_update_file(&slot->kobj, &hotplug_slot_attr_address.attr); retval = sysfs_update_file(&slot->kobj,
&hotplug_slot_attr_address.attr);
if (retval)
return retval;
}
if ((has_max_bus_speed_file(slot) == 0) && if ((has_max_bus_speed_file(slot) == 0) &&
(slot->info->max_bus_speed != info->max_bus_speed)) (slot->info->max_bus_speed != info->max_bus_speed)) {
sysfs_update_file(&slot->kobj, &hotplug_slot_attr_max_bus_speed.attr); retval = sysfs_update_file(&slot->kobj,
&hotplug_slot_attr_max_bus_speed.attr);
if (retval)
return retval;
}
if ((has_cur_bus_speed_file(slot) == 0) && if ((has_cur_bus_speed_file(slot) == 0) &&
(slot->info->cur_bus_speed != info->cur_bus_speed)) (slot->info->cur_bus_speed != info->cur_bus_speed)) {
sysfs_update_file(&slot->kobj, &hotplug_slot_attr_cur_bus_speed.attr); retval = sysfs_update_file(&slot->kobj,
&hotplug_slot_attr_cur_bus_speed.attr);
if (retval)
return retval;
}
memcpy (slot->info, info, sizeof (struct hotplug_slot_info)); memcpy (slot->info, info, sizeof (struct hotplug_slot_info));