|
@@ -456,7 +456,6 @@ int qdio_setup_irq(struct qdio_initialize *init_data)
|
|
{
|
|
{
|
|
struct ciw *ciw;
|
|
struct ciw *ciw;
|
|
struct qdio_irq *irq_ptr = init_data->cdev->private->qdio_data;
|
|
struct qdio_irq *irq_ptr = init_data->cdev->private->qdio_data;
|
|
- int rc;
|
|
|
|
|
|
|
|
memset(&irq_ptr->qib, 0, sizeof(irq_ptr->qib));
|
|
memset(&irq_ptr->qib, 0, sizeof(irq_ptr->qib));
|
|
memset(&irq_ptr->siga_flag, 0, sizeof(irq_ptr->siga_flag));
|
|
memset(&irq_ptr->siga_flag, 0, sizeof(irq_ptr->siga_flag));
|
|
@@ -493,16 +492,14 @@ int qdio_setup_irq(struct qdio_initialize *init_data)
|
|
ciw = ccw_device_get_ciw(init_data->cdev, CIW_TYPE_EQUEUE);
|
|
ciw = ccw_device_get_ciw(init_data->cdev, CIW_TYPE_EQUEUE);
|
|
if (!ciw) {
|
|
if (!ciw) {
|
|
DBF_ERROR("%4x NO EQ", irq_ptr->schid.sch_no);
|
|
DBF_ERROR("%4x NO EQ", irq_ptr->schid.sch_no);
|
|
- rc = -EINVAL;
|
|
|
|
- goto out_err;
|
|
|
|
|
|
+ return -EINVAL;
|
|
}
|
|
}
|
|
irq_ptr->equeue = *ciw;
|
|
irq_ptr->equeue = *ciw;
|
|
|
|
|
|
ciw = ccw_device_get_ciw(init_data->cdev, CIW_TYPE_AQUEUE);
|
|
ciw = ccw_device_get_ciw(init_data->cdev, CIW_TYPE_AQUEUE);
|
|
if (!ciw) {
|
|
if (!ciw) {
|
|
DBF_ERROR("%4x NO AQ", irq_ptr->schid.sch_no);
|
|
DBF_ERROR("%4x NO AQ", irq_ptr->schid.sch_no);
|
|
- rc = -EINVAL;
|
|
|
|
- goto out_err;
|
|
|
|
|
|
+ return -EINVAL;
|
|
}
|
|
}
|
|
irq_ptr->aqueue = *ciw;
|
|
irq_ptr->aqueue = *ciw;
|
|
|
|
|
|
@@ -512,9 +509,6 @@ int qdio_setup_irq(struct qdio_initialize *init_data)
|
|
init_data->cdev->handler = qdio_int_handler;
|
|
init_data->cdev->handler = qdio_int_handler;
|
|
spin_unlock_irq(get_ccwdev_lock(irq_ptr->cdev));
|
|
spin_unlock_irq(get_ccwdev_lock(irq_ptr->cdev));
|
|
return 0;
|
|
return 0;
|
|
-out_err:
|
|
|
|
- qdio_release_memory(irq_ptr);
|
|
|
|
- return rc;
|
|
|
|
}
|
|
}
|
|
|
|
|
|
void qdio_print_subchannel_info(struct qdio_irq *irq_ptr,
|
|
void qdio_print_subchannel_info(struct qdio_irq *irq_ptr,
|