diff options
author | Michael Ernst <mernst@de.ibm.com> | 2008-01-26 16:10:51 +0300 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2008-01-26 16:11:05 +0300 |
commit | 808e48882316dd4a325cd1cc382516945edad77d (patch) | |
tree | c2d66a2342ab6ce50ce7772dd42533102a431d30 /drivers/s390/cio/cio.c | |
parent | 1a908c735aed44c8bbed303371202e416813b271 (diff) | |
download | linux-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.c | 7 |
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)) { /* |