diff options
author | Michael Ernst <mernst@de.ibm.com> | 2008-01-26 14:10:51 +0100 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2008-01-26 14:11:05 +0100 |
commit | 808e48882316dd4a325cd1cc382516945edad77d (patch) | |
tree | c2d66a2342ab6ce50ce7772dd42533102a431d30 | |
parent | 1a908c735aed44c8bbed303371202e416813b271 (diff) | |
download | linux-3.10-808e48882316dd4a325cd1cc382516945edad77d.tar.gz linux-3.10-808e48882316dd4a325cd1cc382516945edad77d.tar.bz2 linux-3.10-808e48882316dd4a325cd1cc382516945edad77d.zip |
[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>
-rw-r--r-- | drivers/s390/cio/cio.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/s390/cio/cio.c b/drivers/s390/cio/cio.c index f16c15c13f6..11f632f9db5 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)) { /* |