aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/cio
diff options
context:
space:
mode:
authorMichael Ernst <mernst@de.ibm.com>2008-01-26 08:10:51 -0500
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2008-01-26 08:11:05 -0500
commit808e48882316dd4a325cd1cc382516945edad77d (patch)
treec2d66a2342ab6ce50ce7772dd42533102a431d30 /drivers/s390/cio
parent1a908c735aed44c8bbed303371202e416813b271 (diff)
[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')
-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)
577 } 577 }
578 578
579 /* Initialization for io subchannels. */ 579 /* Initialization for io subchannels. */
580 if (!css_sch_is_valid(&sch->schib)) 580 if (!css_sch_is_valid(&sch->schib)) {
581 return -ENODEV; 581 err = -ENODEV;
582 goto out;
583 }
584
582 /* Devno is valid. */ 585 /* Devno is valid. */
583 if (is_blacklisted (sch->schid.ssid, sch->schib.pmcw.dev)) { 586 if (is_blacklisted (sch->schid.ssid, sch->schib.pmcw.dev)) {
584 /* 587 /*