From patchwork Mon Aug 8 11:33:48 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: frank.blaschka@de.ibm.com X-Patchwork-Id: 108891 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 0B131B6F72 for ; Mon, 8 Aug 2011 21:36:07 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753426Ab1HHLgA (ORCPT ); Mon, 8 Aug 2011 07:36:00 -0400 Received: from mtagate7.uk.ibm.com ([194.196.100.167]:33051 "EHLO mtagate7.uk.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753143Ab1HHLfb (ORCPT ); Mon, 8 Aug 2011 07:35:31 -0400 Received: from d06nrmr1307.portsmouth.uk.ibm.com (d06nrmr1307.portsmouth.uk.ibm.com [9.149.38.129]) by mtagate7.uk.ibm.com (8.13.1/8.13.1) with ESMTP id p78BZGPS009989; Mon, 8 Aug 2011 11:35:16 GMT Received: from d06av02.portsmouth.uk.ibm.com (d06av02.portsmouth.uk.ibm.com [9.149.37.228]) by d06nrmr1307.portsmouth.uk.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p78BZGa62232398; Mon, 8 Aug 2011 12:35:16 +0100 Received: from d06av02.portsmouth.uk.ibm.com (loopback [127.0.0.1]) by d06av02.portsmouth.uk.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p78BZFnL021225; Mon, 8 Aug 2011 05:35:16 -0600 Received: from tuxmaker.boeblingen.de.ibm.com (tuxmaker.boeblingen.de.ibm.com [9.152.85.9]) by d06av02.portsmouth.uk.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p78BZFXx021220; Mon, 8 Aug 2011 05:35:15 -0600 Received: by tuxmaker.boeblingen.de.ibm.com (Postfix, from userid 24631) id 90AB212243AE; Mon, 8 Aug 2011 13:35:15 +0200 (CEST) Message-Id: <20110808113515.489806765@de.ibm.com> User-Agent: quilt/0.47-1 Date: Mon, 08 Aug 2011 13:33:48 +0200 From: frank.blaschka@de.ibm.com To: davem@davemloft.net Cc: netdev@vger.kernel.org, linux-s390@vger.kernel.org, Ursula Braun Subject: [patch 02/13] [PATCH] qeth: do not apply priority queuing to HiperSockets References: <20110808113346.516293249@de.ibm.com> Content-Disposition: inline; filename=qeth-nr-outq.patch Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Ursula Braun OSA cards can be configured to support 1 or 4 output queues. This does not apply to HiperSockets. This patch limits determination of the configured number of output queues to OSA cards only, but excludes HiperSockets. Signed-off-by: Ursula Braun Signed-off-by: Frank Blaschka --- qeth_core_main.c | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html --- linux-2.5/drivers/s390/net/qeth_core_main.c 22 Jul 2011 08:38:02 -0000 1.119 +++ linux-2.5/drivers/s390/net/qeth_core_main.c 4 Aug 2011 07:02:55 -0000 1.120 @@ -995,27 +995,29 @@ static void qeth_get_channel_path_desc(s ccwdev = card->data.ccwdev; chp_dsc = (struct channelPath_dsc *)ccw_device_get_chp_desc(ccwdev, 0); if (chp_dsc != NULL) { - /* CHPP field bit 6 == 1 -> single queue */ - if ((chp_dsc->chpp & 0x02) == 0x02) { - if ((atomic_read(&card->qdio.state) != - QETH_QDIO_UNINITIALIZED) && - (card->qdio.no_out_queues == 4)) - /* change from 4 to 1 outbound queues */ - qeth_free_qdio_buffers(card); - card->qdio.no_out_queues = 1; - if (card->qdio.default_out_queue != 0) - dev_info(&card->gdev->dev, + if (card->info.type != QETH_CARD_TYPE_IQD) { + /* CHPP field bit 6 == 1 -> single queue */ + if ((chp_dsc->chpp & 0x02) == 0x02) { + if ((atomic_read(&card->qdio.state) != + QETH_QDIO_UNINITIALIZED) && + (card->qdio.no_out_queues == 4)) + /* change from 4 to 1 outbound queues */ + qeth_free_qdio_buffers(card); + card->qdio.no_out_queues = 1; + if (card->qdio.default_out_queue != 0) + dev_info(&card->gdev->dev, "Priority Queueing not supported\n"); - card->qdio.default_out_queue = 0; - } else { - if ((atomic_read(&card->qdio.state) != - QETH_QDIO_UNINITIALIZED) && - (card->qdio.no_out_queues == 1)) { - /* change from 1 to 4 outbound queues */ - qeth_free_qdio_buffers(card); - card->qdio.default_out_queue = 2; + card->qdio.default_out_queue = 0; + } else { + if ((atomic_read(&card->qdio.state) != + QETH_QDIO_UNINITIALIZED) && + (card->qdio.no_out_queues == 1)) { + /* change from 1 to 4 outbound queues */ + qeth_free_qdio_buffers(card); + card->qdio.default_out_queue = 2; + } + card->qdio.no_out_queues = 4; } - card->qdio.no_out_queues = 4; } card->info.func_level = 0x4100 + chp_dsc->desc; kfree(chp_dsc);