forked from Minki/linux
[S390] qdio: call qdio_free also if qdio_shutdown fails
qdio_cleanup is a wrapper function that should call qdio_shutdown and qdio_free. qdio_free was not called if an error occured in qdio_shutdown resulting in a missing free of allocated resources. Call qdio_free regardless of the return value of qdio_shutdown. Signed-off-by: Jan Glauber <jang@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
c38f960809
commit
700e982f28
@ -1073,8 +1073,9 @@ EXPORT_SYMBOL_GPL(qdio_get_ssqd_desc);
|
||||
* @cdev: associated ccw device
|
||||
* @how: use halt or clear to shutdown
|
||||
*
|
||||
* This function calls qdio_shutdown() for @cdev with method @how
|
||||
* and on success qdio_free() for @cdev.
|
||||
* This function calls qdio_shutdown() for @cdev with method @how.
|
||||
* and qdio_free(). The qdio_free() return value is ignored since
|
||||
* !irq_ptr is already checked.
|
||||
*/
|
||||
int qdio_cleanup(struct ccw_device *cdev, int how)
|
||||
{
|
||||
@ -1085,8 +1086,8 @@ int qdio_cleanup(struct ccw_device *cdev, int how)
|
||||
return -ENODEV;
|
||||
|
||||
rc = qdio_shutdown(cdev, how);
|
||||
if (rc == 0)
|
||||
rc = qdio_free(cdev);
|
||||
|
||||
qdio_free(cdev);
|
||||
return rc;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(qdio_cleanup);
|
||||
|
Loading…
Reference in New Issue
Block a user