aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/s390')
-rw-r--r--drivers/s390/net/qeth_core_main.c40
1 files changed, 21 insertions, 19 deletions
diff --git a/drivers/s390/net/qeth_core_main.c b/drivers/s390/net/qeth_core_main.c
index 4550573c25e..2b0fb056a51 100644
--- a/drivers/s390/net/qeth_core_main.c
+++ b/drivers/s390/net/qeth_core_main.c
@@ -995,27 +995,29 @@ static void qeth_get_channel_path_desc(struct qeth_card *card)
995 ccwdev = card->data.ccwdev; 995 ccwdev = card->data.ccwdev;
996 chp_dsc = (struct channelPath_dsc *)ccw_device_get_chp_desc(ccwdev, 0); 996 chp_dsc = (struct channelPath_dsc *)ccw_device_get_chp_desc(ccwdev, 0);
997 if (chp_dsc != NULL) { 997 if (chp_dsc != NULL) {
998 /* CHPP field bit 6 == 1 -> single queue */ 998 if (card->info.type != QETH_CARD_TYPE_IQD) {
999 if ((chp_dsc->chpp & 0x02) == 0x02) { 999 /* CHPP field bit 6 == 1 -> single queue */
1000 if ((atomic_read(&card->qdio.state) != 1000 if ((chp_dsc->chpp & 0x02) == 0x02) {
1001 QETH_QDIO_UNINITIALIZED) && 1001 if ((atomic_read(&card->qdio.state) !=
1002 (card->qdio.no_out_queues == 4)) 1002 QETH_QDIO_UNINITIALIZED) &&
1003 /* change from 4 to 1 outbound queues */ 1003 (card->qdio.no_out_queues == 4))
1004 qeth_free_qdio_buffers(card); 1004 /* change from 4 to 1 outbound queues */
1005 card->qdio.no_out_queues = 1; 1005 qeth_free_qdio_buffers(card);
1006 if (card->qdio.default_out_queue != 0) 1006 card->qdio.no_out_queues = 1;
1007 dev_info(&card->gdev->dev, 1007 if (card->qdio.default_out_queue != 0)
1008 dev_info(&card->gdev->dev,
1008 "Priority Queueing not supported\n"); 1009 "Priority Queueing not supported\n");
1009 card->qdio.default_out_queue = 0; 1010 card->qdio.default_out_queue = 0;
1010 } else { 1011 } else {
1011 if ((atomic_read(&card->qdio.state) != 1012 if ((atomic_read(&card->qdio.state) !=
1012 QETH_QDIO_UNINITIALIZED) && 1013 QETH_QDIO_UNINITIALIZED) &&
1013 (card->qdio.no_out_queues == 1)) { 1014 (card->qdio.no_out_queues == 1)) {
1014 /* change from 1 to 4 outbound queues */ 1015 /* change from 1 to 4 outbound queues */
1015 qeth_free_qdio_buffers(card); 1016 qeth_free_qdio_buffers(card);
1016 card->qdio.default_out_queue = 2; 1017 card->qdio.default_out_queue = 2;
1018 }
1019 card->qdio.no_out_queues = 4;
1017 } 1020 }
1018 card->qdio.no_out_queues = 4;
1019 } 1021 }
1020 card->info.func_level = 0x4100 + chp_dsc->desc; 1022 card->info.func_level = 0x4100 + chp_dsc->desc;
1021 kfree(chp_dsc); 1023 kfree(chp_dsc);