diff --git a/drivers/s390/cio/qdio_setup.c b/drivers/s390/cio/qdio_setup.c index e115623b86b2..66e4bdca9d89 100644 --- a/drivers/s390/cio/qdio_setup.c +++ b/drivers/s390/cio/qdio_setup.c @@ -224,8 +224,15 @@ 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; - q->u.in.queue_start_poll = qdio_init->queue_start_poll_array ? - qdio_init->queue_start_poll_array[i] : NULL; + 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; diff --git a/drivers/s390/net/qeth_core_main.c b/drivers/s390/net/qeth_core_main.c index fdc50543ce9a..37c17ad8ee25 100644 --- a/drivers/s390/net/qeth_core_main.c +++ b/drivers/s390/net/qeth_core_main.c @@ -6582,9 +6582,6 @@ int qeth_open(struct net_device *dev) QETH_CARD_TEXT(card, 4, "qethopen"); - if (qdio_stop_irq(CARD_DDEV(card), 0) < 0) - return -EIO; - card->data.state = CH_STATE_UP; netif_tx_start_all_queues(dev); @@ -6634,6 +6631,8 @@ int qeth_stop(struct net_device *dev) } napi_disable(&card->napi); + qdio_stop_irq(CARD_DDEV(card), 0); + return 0; } EXPORT_SYMBOL_GPL(qeth_stop);