diff options
Diffstat (limited to 'drivers/s390/cio/qdio_setup.c')
| -rw-r--r-- | drivers/s390/cio/qdio_setup.c | 16 | 
1 files changed, 7 insertions, 9 deletions
| diff --git a/drivers/s390/cio/qdio_setup.c b/drivers/s390/cio/qdio_setup.c index 66e4bdca9d89..7b831bb4e229 100644 --- a/drivers/s390/cio/qdio_setup.c +++ b/drivers/s390/cio/qdio_setup.c @@ -224,15 +224,6 @@ static void setup_queues(struct qdio_irq *irq_ptr,  		setup_queues_misc(q, irq_ptr, qdio_init->input_handler, i);  		q->is_input_q = 1; -		if (qdio_init->queue_start_poll_array && -		    qdio_init->queue_start_poll_array[i]) { -			q->u.in.queue_start_poll = -				qdio_init->queue_start_poll_array[i]; -			set_bit(QDIO_QUEUE_IRQS_DISABLED, -				&q->u.in.queue_irq_state); -		} else { -			q->u.in.queue_start_poll = NULL; -		}  		setup_storage_lists(q, irq_ptr, input_sbal_array, i);  		input_sbal_array += QDIO_MAX_BUFFERS_PER_Q; @@ -483,6 +474,13 @@ int qdio_setup_irq(struct qdio_initialize *init_data)  	ccw_device_get_schid(irq_ptr->cdev, &irq_ptr->schid);  	setup_queues(irq_ptr, init_data); +	if (init_data->irq_poll) { +		irq_ptr->irq_poll = init_data->irq_poll; +		set_bit(QDIO_IRQ_DISABLED, &irq_ptr->poll_state); +	} else { +		irq_ptr->irq_poll = NULL; +	} +  	setup_qib(irq_ptr, init_data);  	qdio_setup_thinint(irq_ptr);  	set_impl_params(irq_ptr, init_data->qib_param_field_format, |