diff options
Diffstat (limited to 'drivers/s390/cio')
-rw-r--r-- | drivers/s390/cio/ccwgroup.c | 6 | ||||
-rw-r--r-- | drivers/s390/cio/cmf.c | 3 | ||||
-rw-r--r-- | drivers/s390/cio/device_ops.c | 6 | ||||
-rw-r--r-- | drivers/s390/cio/qdio.c | 17 |
4 files changed, 13 insertions, 19 deletions
diff --git a/drivers/s390/cio/ccwgroup.c b/drivers/s390/cio/ccwgroup.c index dbb3eb0e330b..e7bd7f37f080 100644 --- a/drivers/s390/cio/ccwgroup.c +++ b/drivers/s390/cio/ccwgroup.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/cio/ccwgroup.c | 2 | * drivers/s390/cio/ccwgroup.c |
3 | * bus driver for ccwgroup | 3 | * bus driver for ccwgroup |
4 | * $Revision: 1.29 $ | 4 | * $Revision: 1.32 $ |
5 | * | 5 | * |
6 | * Copyright (C) 2002 IBM Deutschland Entwicklung GmbH, | 6 | * Copyright (C) 2002 IBM Deutschland Entwicklung GmbH, |
7 | * IBM Corporation | 7 | * IBM Corporation |
@@ -274,7 +274,7 @@ ccwgroup_set_online(struct ccwgroup_device *gdev) | |||
274 | goto out; | 274 | goto out; |
275 | } | 275 | } |
276 | gdrv = to_ccwgroupdrv (gdev->dev.driver); | 276 | gdrv = to_ccwgroupdrv (gdev->dev.driver); |
277 | if ((ret = gdrv->set_online(gdev))) | 277 | if ((ret = gdrv->set_online ? gdrv->set_online(gdev) : 0)) |
278 | goto out; | 278 | goto out; |
279 | 279 | ||
280 | gdev->state = CCWGROUP_ONLINE; | 280 | gdev->state = CCWGROUP_ONLINE; |
@@ -300,7 +300,7 @@ ccwgroup_set_offline(struct ccwgroup_device *gdev) | |||
300 | goto out; | 300 | goto out; |
301 | } | 301 | } |
302 | gdrv = to_ccwgroupdrv (gdev->dev.driver); | 302 | gdrv = to_ccwgroupdrv (gdev->dev.driver); |
303 | if ((ret = gdrv->set_offline(gdev))) | 303 | if ((ret = gdrv->set_offline ? gdrv->set_offline(gdev) : 0)) |
304 | goto out; | 304 | goto out; |
305 | 305 | ||
306 | gdev->state = CCWGROUP_OFFLINE; | 306 | gdev->state = CCWGROUP_OFFLINE; |
diff --git a/drivers/s390/cio/cmf.c b/drivers/s390/cio/cmf.c index c05b069c2996..b978f7fe8327 100644 --- a/drivers/s390/cio/cmf.c +++ b/drivers/s390/cio/cmf.c | |||
@@ -642,8 +642,7 @@ static void | |||
642 | free_cmbe (struct ccw_device *cdev) | 642 | free_cmbe (struct ccw_device *cdev) |
643 | { | 643 | { |
644 | spin_lock_irq(cdev->ccwlock); | 644 | spin_lock_irq(cdev->ccwlock); |
645 | if (cdev->private->cmb) | 645 | kfree(cdev->private->cmb); |
646 | kfree(cdev->private->cmb); | ||
647 | cdev->private->cmb = NULL; | 646 | cdev->private->cmb = NULL; |
648 | spin_unlock_irq(cdev->ccwlock); | 647 | spin_unlock_irq(cdev->ccwlock); |
649 | 648 | ||
diff --git a/drivers/s390/cio/device_ops.c b/drivers/s390/cio/device_ops.c index ad3fe5aeb663..85a3026e6900 100644 --- a/drivers/s390/cio/device_ops.c +++ b/drivers/s390/cio/device_ops.c | |||
@@ -550,10 +550,8 @@ ccw_device_stlck(struct ccw_device *cdev) | |||
550 | /* Clear irb. */ | 550 | /* Clear irb. */ |
551 | memset(&cdev->private->irb, 0, sizeof(struct irb)); | 551 | memset(&cdev->private->irb, 0, sizeof(struct irb)); |
552 | out_unlock: | 552 | out_unlock: |
553 | if (buf) | 553 | kfree(buf); |
554 | kfree(buf); | 554 | kfree(buf2); |
555 | if (buf2) | ||
556 | kfree(buf2); | ||
557 | spin_unlock_irqrestore(&sch->lock, flags); | 555 | spin_unlock_irqrestore(&sch->lock, flags); |
558 | return ret; | 556 | return ret; |
559 | } | 557 | } |
diff --git a/drivers/s390/cio/qdio.c b/drivers/s390/cio/qdio.c index 381f339e3200..eb39218b925e 100644 --- a/drivers/s390/cio/qdio.c +++ b/drivers/s390/cio/qdio.c | |||
@@ -56,7 +56,7 @@ | |||
56 | #include "ioasm.h" | 56 | #include "ioasm.h" |
57 | #include "chsc.h" | 57 | #include "chsc.h" |
58 | 58 | ||
59 | #define VERSION_QDIO_C "$Revision: 1.101 $" | 59 | #define VERSION_QDIO_C "$Revision: 1.108 $" |
60 | 60 | ||
61 | /****************** MODULE PARAMETER VARIABLES ********************/ | 61 | /****************** MODULE PARAMETER VARIABLES ********************/ |
62 | MODULE_AUTHOR("Utz Bacher <utz.bacher@de.ibm.com>"); | 62 | MODULE_AUTHOR("Utz Bacher <utz.bacher@de.ibm.com>"); |
@@ -1338,16 +1338,14 @@ qdio_release_irq_memory(struct qdio_irq *irq_ptr) | |||
1338 | if (!irq_ptr->input_qs[i]) | 1338 | if (!irq_ptr->input_qs[i]) |
1339 | goto next; | 1339 | goto next; |
1340 | 1340 | ||
1341 | if (irq_ptr->input_qs[i]->slib) | 1341 | kfree(irq_ptr->input_qs[i]->slib); |
1342 | kfree(irq_ptr->input_qs[i]->slib); | ||
1343 | kfree(irq_ptr->input_qs[i]); | 1342 | kfree(irq_ptr->input_qs[i]); |
1344 | 1343 | ||
1345 | next: | 1344 | next: |
1346 | if (!irq_ptr->output_qs[i]) | 1345 | if (!irq_ptr->output_qs[i]) |
1347 | continue; | 1346 | continue; |
1348 | 1347 | ||
1349 | if (irq_ptr->output_qs[i]->slib) | 1348 | kfree(irq_ptr->output_qs[i]->slib); |
1350 | kfree(irq_ptr->output_qs[i]->slib); | ||
1351 | kfree(irq_ptr->output_qs[i]); | 1349 | kfree(irq_ptr->output_qs[i]); |
1352 | 1350 | ||
1353 | } | 1351 | } |
@@ -2873,10 +2871,10 @@ qdio_establish(struct qdio_initialize *init_data) | |||
2873 | return result; | 2871 | return result; |
2874 | } | 2872 | } |
2875 | 2873 | ||
2876 | wait_event_interruptible_timeout(cdev->private->wait_q, | 2874 | /* Timeout is cared for already by using ccw_device_start_timeout(). */ |
2875 | wait_event_interruptible(cdev->private->wait_q, | ||
2877 | irq_ptr->state == QDIO_IRQ_STATE_ESTABLISHED || | 2876 | irq_ptr->state == QDIO_IRQ_STATE_ESTABLISHED || |
2878 | irq_ptr->state == QDIO_IRQ_STATE_ERR, | 2877 | irq_ptr->state == QDIO_IRQ_STATE_ERR); |
2879 | QDIO_ESTABLISH_TIMEOUT); | ||
2880 | 2878 | ||
2881 | if (irq_ptr->state == QDIO_IRQ_STATE_ESTABLISHED) | 2879 | if (irq_ptr->state == QDIO_IRQ_STATE_ESTABLISHED) |
2882 | result = 0; | 2880 | result = 0; |
@@ -3315,8 +3313,7 @@ qdio_get_qdio_memory(void) | |||
3315 | static void | 3313 | static void |
3316 | qdio_release_qdio_memory(void) | 3314 | qdio_release_qdio_memory(void) |
3317 | { | 3315 | { |
3318 | if (indicators) | 3316 | kfree(indicators); |
3319 | kfree(indicators); | ||
3320 | } | 3317 | } |
3321 | 3318 | ||
3322 | static void | 3319 | static void |