mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-03 17:40:04 +00:00
PCI: rpaphp: match up alloc and free in same routine
The routine that called an alloc should be the same routine that calles the mathcing free, if anything in the middle failed. Signed-off-by: Linas Vepstas <linas@austin.ibm.com> Cc: John Rose <johnrose@austin.ibm.com> Signed-off-by: Kristen Carlson Accardi <kristen.c.accardi@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
fa1891596c
commit
31be7586d1
3 changed files with 5 additions and 2 deletions
|
@ -321,10 +321,15 @@ int rpaphp_add_slot(struct device_node *dn)
|
|||
indexes[i + 1], name, type);
|
||||
|
||||
retval = rpaphp_register_pci_slot(slot);
|
||||
if (retval)
|
||||
dealloc_slot_struct(slot);
|
||||
|
||||
name += strlen(name) + 1;
|
||||
type += strlen(type) + 1;
|
||||
}
|
||||
dbg("%s - Exit: rc[%d]\n", __FUNCTION__, retval);
|
||||
|
||||
/* XXX FIXME: reports a failure only if last entry in loop failed */
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
|
|
@ -195,7 +195,6 @@ static int setup_pci_slot(struct slot *slot)
|
|||
}
|
||||
return 0;
|
||||
exit_rc:
|
||||
dealloc_slot_struct(slot);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
|
|
|
@ -184,7 +184,6 @@ int rpaphp_register_slot(struct slot *slot)
|
|||
sysfs_fail:
|
||||
pci_hp_deregister(php_slot);
|
||||
register_fail:
|
||||
rpaphp_release_slot(php_slot);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue