]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blame - src/patches/suse-2.6.27.39/patches.arch/s390-11-08-qdio_free_shutdown.patch
Imported linux-2.6.27.39 suse/xen patches.
[people/pmueller/ipfire-2.x.git] / src / patches / suse-2.6.27.39 / patches.arch / s390-11-08-qdio_free_shutdown.patch
CommitLineData
2cb7cef9
BS
1From: Gerald Schaefer <geraldsc@de.ibm.com>
2Subject: qdio: call qdio_free also if qdio_shutdown fails
3References: bnc#484767,LTC#52207
4
5Symptom: Warning message after qeth recovery.
6Problem: qdio_cleanup is a wrapper function that should call qdio_shutdown
7 and qdio_free. qdio_free was not called if an error occured in
8 qdio_shutdown resulting in a missing free of allocated resources.
9Solution: Always call qdio_free in qdio_cleanup.
10
11Acked-by: John Jolly <jjolly@suse.de>
12---
13 drivers/s390/cio/qdio_main.c | 9 +++++----
14 1 file changed, 5 insertions(+), 4 deletions(-)
15
16Index: linux-sles11/drivers/s390/cio/qdio_main.c
17===================================================================
18--- linux-sles11.orig/drivers/s390/cio/qdio_main.c
19+++ linux-sles11/drivers/s390/cio/qdio_main.c
20@@ -1055,8 +1055,9 @@ EXPORT_SYMBOL_GPL(qdio_get_ssqd_desc);
21 * @cdev: associated ccw device
22 * @how: use halt or clear to shutdown
23 *
24- * This function calls qdio_shutdown() for @cdev with method @how
25- * and on success qdio_free() for @cdev.
26+ * This function calls qdio_shutdown() for @cdev with method @how.
27+ * and qdio_free(). The qdio_free() return value is ignored since
28+ * !irq_ptr is already checked.
29 */
30 int qdio_cleanup(struct ccw_device *cdev, int how)
31 {
32@@ -1067,8 +1068,8 @@ int qdio_cleanup(struct ccw_device *cdev
33 return -ENODEV;
34
35 rc = qdio_shutdown(cdev, how);
36- if (rc == 0)
37- rc = qdio_free(cdev);
38+
39+ qdio_free(cdev);
40 return rc;
41 }
42 EXPORT_SYMBOL_GPL(qdio_cleanup);