summaryrefslogtreecommitdiff
path: root/drivers/s390/cio/cio.c
diff options
context:
space:
mode:
authorMichael Ernst <mernst@de.ibm.com>2008-01-26 16:10:51 +0300
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2008-01-26 16:11:05 +0300
commit808e48882316dd4a325cd1cc382516945edad77d (patch)
treec2d66a2342ab6ce50ce7772dd42533102a431d30 /drivers/s390/cio/cio.c
parent1a908c735aed44c8bbed303371202e416813b271 (diff)
downloadlinux-808e48882316dd4a325cd1cc382516945edad77d.tar.xz
[S390] cio: memory leak in cio processing
Allocated kernel memory for locks is not freed in case of subchannel found to be invalid. Signed-off-by: Michael Ernst <mernst@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390/cio/cio.c')
-rw-r--r--drivers/s390/cio/cio.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/s390/cio/cio.c b/drivers/s390/cio/cio.c
index f16c15c13f6e..11f632f9db58 100644
--- a/drivers/s390/cio/cio.c
+++ b/drivers/s390/cio/cio.c
@@ -577,8 +577,11 @@ cio_validate_subchannel (struct subchannel *sch, struct subchannel_id schid)
}
/* Initialization for io subchannels. */
- if (!css_sch_is_valid(&sch->schib))
- return -ENODEV;
+ if (!css_sch_is_valid(&sch->schib)) {
+ err = -ENODEV;
+ goto out;
+ }
+
/* Devno is valid. */
if (is_blacklisted (sch->schid.ssid, sch->schib.pmcw.dev)) {
/*