diff options
author | Stefan Raspl <raspl@linux.vnet.ibm.com> | 2014-06-12 14:24:45 +0200 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2014-06-16 10:31:58 +0200 |
commit | 613c4e0459603cc04384723b08fd62103b5eaaaf (patch) | |
tree | 2491ffc5c5146751db72caccc3223f4926578292 /drivers/s390/cio/qdio_main.c | |
parent | b9c9a33b765b0dd9279a99fcbb63f54950655e77 (diff) | |
download | op-kernel-dev-613c4e0459603cc04384723b08fd62103b5eaaaf.zip op-kernel-dev-613c4e0459603cc04384723b08fd62103b5eaaaf.tar.gz |
qdio: Keep device-specific dbf entries
Keep the per-device dbf entries until module is removed, with
proper error checking for debug feature setup.
Signed-off-by: Stefan Raspl <raspl@linux.vnet.ibm.com>
Reviewed-by: Steffen Maier <maier@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390/cio/qdio_main.c')
-rw-r--r-- | drivers/s390/cio/qdio_main.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c index f5f42c4..848e3b6 100644 --- a/drivers/s390/cio/qdio_main.c +++ b/drivers/s390/cio/qdio_main.c @@ -1233,12 +1233,10 @@ int qdio_free(struct ccw_device *cdev) return -ENODEV; DBF_EVENT("qfree:%4x", cdev->private->schid.sch_no); + DBF_DEV_EVENT(DBF_ERR, irq_ptr, "dbf abandoned"); mutex_lock(&irq_ptr->setup_mutex); - if (irq_ptr->debug_area != NULL) { - debug_unregister(irq_ptr->debug_area); - irq_ptr->debug_area = NULL; - } + irq_ptr->debug_area = NULL; cdev->private->qdio_data = NULL; mutex_unlock(&irq_ptr->setup_mutex); @@ -1275,7 +1273,8 @@ int qdio_allocate(struct qdio_initialize *init_data) goto out_err; mutex_init(&irq_ptr->setup_mutex); - qdio_allocate_dbf(init_data, irq_ptr); + if (qdio_allocate_dbf(init_data, irq_ptr)) + goto out_rel; /* * Allocate a page for the chsc calls in qdio_establish. |