From patchwork Sat Mar 24 00:37:28 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Manlunas, Felix" X-Patchwork-Id: 890357 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=cavium.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=CAVIUMNETWORKS.onmicrosoft.com header.i=@CAVIUMNETWORKS.onmicrosoft.com header.b="f/5Lp/x6"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 407M2d70tfz9s02 for ; Sat, 24 Mar 2018 11:38:17 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752414AbeCXAiP (ORCPT ); Fri, 23 Mar 2018 20:38:15 -0400 Received: from mail-cys01nam02on0041.outbound.protection.outlook.com ([104.47.37.41]:27824 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751814AbeCXAhc (ORCPT ); Fri, 23 Mar 2018 20:37:32 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=HbUYrSmOACUOAGnB5EJlpTFQfKxQTtNYmMTnjPW1kg0=; b=f/5Lp/x6//fmaPAqSL489oj0euy8J19zvttL2k0048kmRMvEWvGVmt9wk2SPB7HCtgqCxSDKj8zhhqI6A0ZQKE3VvrtDEmJoHdfG8VVdUv1yKjr+lVl296K0Al1PMdJordWdQGze3Cjb3qooHVjxNZXioHsGLZv+PyceAGdc0Ro= Received: from localhost (50.233.148.156) by SN6PR07MB4223.namprd07.prod.outlook.com (2603:10b6:805:62::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.588.14; Sat, 24 Mar 2018 00:37:29 +0000 Date: Fri, 23 Mar 2018 17:37:28 -0700 From: Felix Manlunas To: davem@davemloft.net Cc: netdev@vger.kernel.org, raghu.vatsavayi@cavium.com, derek.chickles@cavium.com, satananda.burla@cavium.com, intiyaz.basha@cavium.com Subject: [PATCH net-next 07/13] liquidio: Removed netif_is_multiqueue check Message-ID: <20180324003728.GA6542@felix-thinkpad.cavium.com> References: <20180324003618.GA6457@felix-thinkpad.cavium.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20180324003618.GA6457@felix-thinkpad.cavium.com> User-Agent: Mutt/1.6.1 (2016-04-27) X-Originating-IP: [50.233.148.156] X-ClientProxiedBy: BYAPR01CA0021.prod.exchangelabs.com (2603:10b6:a02:80::34) To SN6PR07MB4223.namprd07.prod.outlook.com (2603:10b6:805:62::15) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7f20bafd-7237-4ea0-86b9-08d5911f6ce8 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4604075)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:SN6PR07MB4223; X-Microsoft-Exchange-Diagnostics: 1; SN6PR07MB4223; 3:ORuK2+0nUqPIOwU+YQJ4vtb0Yyub9sYUT7j1HALSysdHyTfrKdzxtAG0oGSS6ICEv0Qm3lKkCWCPK1jtxx7iOWoNtPhPpfTQGjfv3KpH9fKeRnLneqMf7Xte0Ayq4LxYw/agJF1DB2iHXGPZzPsaWPhT8Dl8Q2fA1+K1OLFTFFFKb9ESKkO6jwfM2jFIGRhsKNDDOXLEuKqcbESw2ij8W3TLR/IHjpSEn0Ds14PSr/HI8/BnqjLrEoArot96686d; 25:WiExhIBjfdERvoQCaJRPXpNjQsmNFgMlkQHjhSPr0Ar5u/a+en/38GarVqEP0qU1zDHF8yZ7BIPsIHl3TGCSsPGKxwKxA/+0IaXGZbZ5wVHXpy6PU1g6yEFqlYcgtB5qeHCHLv2IuTUyAAw3hWqozeBYe9nL1ho+B5bzhuXpbPcfgssRGrt+sM1uiHdkpmYFPg9LZFf1sXDqBwlDxgmkns7OqOPOZ/BjUV9RpHsvzK/D500lSUQBWOuQ/lGntIaLFEFEvYMgWklmxPxQN6uJ3tun2Rq86ZoorZVXP56c9AgOcZ6W5gYVY7OT3IRmSf+QeeqER8g/trCriH4JNP46ig==; 31:DC/784z3Mvm2EdS9Ds/83pziQnm09nwupgkeRFHg9FkdVl/DmyN9TgwE5U5n1GakDtmmG+/VF+iE9l9Q8DitjdBHWyO6P/CYldKnXSuyoaUr8vunKhKEKL2Bej9ddOqIrfLCx0UGOVbdaiFiO/SOUu8ZRgnB1Qwl/yPUTmVXItsqlw2bsNFhQithsYHeS1wS3X5V+I6rFpR1iDF9/cF+pqOg5gDzYWzHjLpWErsKu9Y= X-MS-TrafficTypeDiagnostic: SN6PR07MB4223: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Felix.Manlunas@cavium.com; X-Microsoft-Exchange-Diagnostics: 1; SN6PR07MB4223; 20:mSRPtHYNfsyVKFxHjvPBjLxcWUGTpZBZSxtNFtqs+LTwZaf9eNTXMCvikF1mW9kgKc+S8GOw71plePBitfNDpQR14tU11wPbV6NI0cu/JqTdAdIjawD/AWRHk7Xb9JT0iHp5H6fs1OVVWxE2hyN3aPy1dQpiyFJCd17sR6p50Ju18gVbyPOyvMrEeRPhtTB3+yGzZiLgYICks40bR8AaiTM23ZdJAn5IjGROmf/uwSQDEAjWn2ETTyj7Syakrcm26Wf8b+meKm1GtbR/ccf6rI027wImiK1YLikTnrBkVthliJLN/d0o7lYgmeoA63MbkKK2eo1+KafwS1CrlilEoojS7c273ZEZn2+aLavLmXmkAS63zrxtH+A+88J/kYXI6iaHqS4qGdP5WBrVEcafbzMBlhdUg50D+WwFW7a/e12oLHQ7fKTiG7zUA4diSHBNbpIk58Z5W0TQGPeFJNnmjuSF+8Gvk5fLh4W20syyhZ9rSBHyIrXXrQEaenu7g0f5; 4:I5u14mUNY0zDRcM4uDCEYqHHqoPMp0XPEAQIKYpEL0LDsVDHjSb810z+LZZWSy57pvGHZrxWWM0xGyuvisZG4SzOXj9Gf7XRoT8FPJAL+nDreS1LQOSNvIdcLJ/YKFObeRB8UVI/DGB3zQdsD+/3EkKz1lQIMscZIzLCaUqxBXFz8rFtmPHPJX7jOGVGoIR+zSlj+TB4TKGZGNPBKIfz+gYjdcAFle/rnPgmiiYN9oe0c0DJyRMgTpGrQgT0S79luFbxPCPCAwD94jMCPWvZPA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3231221)(944501327)(52105095)(93006095)(93001095)(10201501046)(3002001)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123564045)(20161123560045)(20161123562045)(6072148)(201708071742011); SRVR:SN6PR07MB4223; BCL:0; PCL:0; RULEID:; SRVR:SN6PR07MB4223; X-Forefront-PRVS: 0621E7E436 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6069001)(376002)(346002)(396003)(366004)(39850400004)(39380400002)(189003)(199004)(97736004)(6496006)(52116002)(86362001)(66066001)(446003)(6916009)(16526019)(76176011)(58126008)(11346002)(8676002)(8936002)(68736007)(76506005)(386003)(59450400001)(316002)(105586002)(16586007)(81156014)(81166006)(106356001)(1076002)(47776003)(2351001)(2361001)(50466002)(186003)(7736002)(107886003)(305945005)(478600001)(6486002)(72206003)(3846002)(2906002)(6116002)(5660300001)(23726003)(4326008)(53936002)(26005)(25786009)(33656002)(956004)(18370500001); DIR:OUT; SFP:1101; SCL:1; SRVR:SN6PR07MB4223; H:localhost; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: 1; SN6PR07MB4223; 23:yucB2XKko5+xVcq6MqiO3ARuOqT+n5w9sRiHDYHGOQu9gWV4R2IeIWywKjCIAzARw25yZRkdRdKZLdi0xLi1G2U8WZSGfT3iyxL+5s4vW4/1oeBqStXaUXoBlG0ZHeM3SZ9RSl42+kN+mpr4dYd/WjYq2g2yCYHC+4tw++l+mJLYZo98Oh+rkmlKCm2P5YCZO61hk2QllKda1OrunkQVXcA5Rrho260g9Kb0usXvkvbClzPvGi/JOTWfLu9gQJ8ynP6T+WVX1rhKMDom5kko6ZLMvkv7or190MbE5gcZGpbZ3Og+7tQ3ucSLUCd45pf9g9Y9U6xRBN2suEE3/j8LEWFOOV+fUgIFs6XPwKVYwYgplizQLihRGk5O5JUD6j4kop1vanqp8OmRQbLeFay4TNOfv30mHCSAfmma1k9Y7wnCGXh212qlw2PpLDPxDDZ/zed68URPL49Yxjdvk+xBpGtqu+R9ru7wrozfieofiqDBJBogQIvsIkko3GU63GhSQMQnuWos8tJxE4KSgYtrfcHbv3VfwWtQkRzpaqqu43iQIDbODE6RC7PQy/ak9Is28VE+M0R/tICbffUFE1d+2FhuRRuo+P7KoY7QP3BbaBqcapT3wlWBQqK28AFKOHGHRq4RVQyLq6PZKZSsDW/lT/lLVBycLEKET4yPSxQJGS0XRy0OurFBJBnlhtitaOIb0ap6WnxzxV9tVaRNVRi1Cec+0hGOJCXdnuphxJIWrkuyafIznlmvZgY4Qf9/eTiFAvQCG1B7OqcItGN2fYX3JCQCjIOEH9ncgr2q8knyIY2bGDy+vOgg0cM8XeNSVR/YfXSuDP+WzFyu4ZlmQ4r+magROcIOGDEeMLLTaOPZwGyp7xfUcdey+rm2EjwU7RbAOqZs8Dh/PYs8tF1/zajwXs6u3Szq6RzDPWFYp5WeQQ+asdYkqDjjFH9gR454ntl5++gp6ce4X2VG89z1lmJzKlcJCQU4t53mPGex2ZnhDwoQiwbwTFY01UJJcoyNXR4wBgcM33fPdZ1FNbjqzCLT3z0C0YiSQ9eLWVwNkey5Ywt8iGCEHXB9bx8I5lMsn0f3EYZ5MjbjkB8K5zwsSPsScR3D+CEZlxMEg9Xj1ck6JRojHf4hy9IA16SURMhawvGjUcMzii42AbecNHg1T5k9tg7EFvtzZHEqeTPRD3HEXEWOQ5Rqk5b+Yg2CRXA0XzJ52y8zqFuJ9+w5tiUzdpM3BqOhtw4NCOoJSVgLDsQfx0Q/vrH9k5Pcaktuhpn0LgVl X-Microsoft-Antispam-Message-Info: ybmFTCFSjMZPgkduRGyodCmAJ+pV75s0Vd70cBMhLe/pN9eqMcMsXCFlHTrB4db9PpN6hAXw/yw0Z3uUbxiZMMBvXcL5E3gDtiCaCUoDNtZYb2dOnULb19nTLFTJhytBJ4nP5s+KzQfHJ93Oy11GCRakOyo6zlP1zCGK7yDCAZ8WIAN+dpIHsKuyFqJlEwi8 X-Microsoft-Exchange-Diagnostics: 1; SN6PR07MB4223; 6:d9i2xnhWmtljn4I1FkR7SpakFl+WjFcWebWdHrJf+ATsjbUlFRSxPcHJrGxxM66uQ73Vqg6xoSIl8aKz3NXmAhECdaBnkxk2CZ+LjlXR+1UOTfN9vw6SpbS0Pn5v69Knd4WnLzS9xYegFBMYzUKEWgXo/G0/Vsx5B1k3l3TwNzG+nMCJ/NVJcvqRIVqUvhBIONH032E5lLbPNjj6lGKlEDBCCjCfJ3SkVnCv1Fno+VbZ45+VW0LUuKWuluChYYbT69I5Z49HLyNScBcsodgkShQg7+ghkoaScW/xKqsgugeVM8mQ/V1D6s+vkGzwv5zzHkRq5ib70/q9yg5xWsZBsWC/u6DXjcx04DetaNLngQc=; 5:mnzp2TlQ7E7oCI+VhmmvBH+v190BbxdGtgRrjQMknpefGxjT5nMjih1QE+Zs5cfhbHv4B3orgowQzlbmcA1JpwSF/S1kteZA+GJQVVvkth9w+/wjPA9vIPlTbAXHpoSUaVK/oCffTMQhRN4xudg+WnEpRlePp9O6+TtwZgxi+Z4=; 24:EvIJ8iJB6mdXT011wqV4EJ4TwdpmRTlr4UVucJ5r3H9Mdqa2NvpNhS1n2ThlGGNsqWtMZmBL+s/hKZxETPqVxia+mTNeiH4+0tdjNsdwwgM=; 7:vmEXEdjGD1a1cdf+hdb5V2cb79etJslPXCGOKPax4Z/Tb1ReH1WBGskmOirMXAgqvzWeoi2Pk3avXgUUwjuxib4lvKlW+zaO9+SqrciItnykCG5UKdkanVU21a43fB1TjHRCguImvT5G+NuIdY+cPubfB8ZPuC0C9wZfr45/b+8Nv1dciT7H9WWaF57/E1EpkaGkC8AIJwsROY4yJMe1sNThk/NgpJsENGx5ITMaaNNxwS6IcPyH7S/cmWUBs3P0 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2018 00:37:29.8735 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7f20bafd-7237-4ea0-86b9-08d5911f6ce8 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR07MB4223 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Intiyaz Basha Removing checks for netif_is_multiqueue. Configuring single queue will be a multiqueue netdev with one queues. Signed-off-by: Intiyaz Basha Acked-by: Derek Chickles Signed-off-by: Felix Manlunas --- drivers/net/ethernet/cavium/liquidio/lio_core.c | 18 ++--- drivers/net/ethernet/cavium/liquidio/lio_main.c | 93 +++++++--------------- drivers/net/ethernet/cavium/liquidio/lio_vf_main.c | 55 ++++--------- .../net/ethernet/cavium/liquidio/octeon_network.h | 50 ++++-------- 4 files changed, 64 insertions(+), 152 deletions(-) diff --git a/drivers/net/ethernet/cavium/liquidio/lio_core.c b/drivers/net/ethernet/cavium/liquidio/lio_core.c index 666cf7e..73e70e0 100644 --- a/drivers/net/ethernet/cavium/liquidio/lio_core.c +++ b/drivers/net/ethernet/cavium/liquidio/lio_core.c @@ -377,20 +377,12 @@ static void lio_update_txq_status(struct octeon_device *oct, int iq_num) return; lio = GET_LIO(netdev); - if (netif_is_multiqueue(netdev)) { - if (__netif_subqueue_stopped(netdev, iq->q_index) && - lio->linfo.link.s.link_up && - (!octnet_iq_is_full(oct, iq_num))) { - netif_wake_subqueue(netdev, iq->q_index); - INCR_INSTRQUEUE_PKT_COUNT(lio->oct_dev, iq_num, - tx_restart, 1); - } - } else if (netif_queue_stopped(netdev) && - lio->linfo.link.s.link_up && - (!octnet_iq_is_full(oct, lio->txq))) { - INCR_INSTRQUEUE_PKT_COUNT(lio->oct_dev, lio->txq, + if (__netif_subqueue_stopped(netdev, iq->q_index) && + lio->linfo.link.s.link_up && + (!octnet_iq_is_full(oct, iq_num))) { + netif_wake_subqueue(netdev, iq->q_index); + INCR_INSTRQUEUE_PKT_COUNT(lio->oct_dev, iq_num, tx_restart, 1); - netif_wake_queue(netdev); } } diff --git a/drivers/net/ethernet/cavium/liquidio/lio_main.c b/drivers/net/ethernet/cavium/liquidio/lio_main.c index 41e992c..5ef9aa0 100644 --- a/drivers/net/ethernet/cavium/liquidio/lio_main.c +++ b/drivers/net/ethernet/cavium/liquidio/lio_main.c @@ -515,10 +515,7 @@ static void liquidio_deinit_pci(void) */ static inline void wake_q(struct net_device *netdev, int q) { - if (netif_is_multiqueue(netdev)) - netif_wake_subqueue(netdev, q); - else - netif_wake_queue(netdev); + netif_wake_subqueue(netdev, q); } /** @@ -528,10 +525,7 @@ static inline void wake_q(struct net_device *netdev, int q) */ static inline void stop_q(struct net_device *netdev, int q) { - if (netif_is_multiqueue(netdev)) - netif_stop_subqueue(netdev, q); - else - netif_stop_queue(netdev); + netif_stop_subqueue(netdev, q); } /** @@ -541,33 +535,24 @@ static inline void stop_q(struct net_device *netdev, int q) */ static inline int check_txq_status(struct lio *lio) { + int numqs = lio->netdev->num_tx_queues; int ret_val = 0; + int q, iq; - if (netif_is_multiqueue(lio->netdev)) { - int numqs = lio->netdev->num_tx_queues; - int q, iq = 0; - - /* check each sub-queue state */ - for (q = 0; q < numqs; q++) { - iq = lio->linfo.txpciq[q % - lio->oct_dev->num_iqs].s.q_no; - if (octnet_iq_is_full(lio->oct_dev, iq)) - continue; - if (__netif_subqueue_stopped(lio->netdev, q)) { - wake_q(lio->netdev, q); - INCR_INSTRQUEUE_PKT_COUNT(lio->oct_dev, iq, - tx_restart, 1); - ret_val++; - } + /* check each sub-queue state */ + for (q = 0; q < numqs; q++) { + iq = lio->linfo.txpciq[q % + lio->oct_dev->num_iqs].s.q_no; + if (octnet_iq_is_full(lio->oct_dev, iq)) + continue; + if (__netif_subqueue_stopped(lio->netdev, q)) { + wake_q(lio->netdev, q); + INCR_INSTRQUEUE_PKT_COUNT(lio->oct_dev, iq, + tx_restart, 1); + ret_val++; } - } else { - if (octnet_iq_is_full(lio->oct_dev, lio->txq)) - return 0; - wake_q(lio->netdev, lio->txq); - INCR_INSTRQUEUE_PKT_COUNT(lio->oct_dev, lio->txq, - tx_restart, 1); - ret_val = 1; } + return ret_val; } @@ -1671,15 +1656,10 @@ static int octeon_pci_os_setup(struct octeon_device *oct) */ static inline int check_txq_state(struct lio *lio, struct sk_buff *skb) { - int q = 0, iq = 0; + int q, iq; - if (netif_is_multiqueue(lio->netdev)) { - q = skb->queue_mapping; - iq = lio->linfo.txpciq[(q % lio->oct_dev->num_iqs)].s.q_no; - } else { - iq = lio->txq; - q = iq; - } + q = skb->queue_mapping; + iq = lio->linfo.txpciq[(q % lio->oct_dev->num_iqs)].s.q_no; if (octnet_iq_is_full(lio->oct_dev, iq)) return 0; @@ -2568,14 +2548,10 @@ static int liquidio_xmit(struct sk_buff *skb, struct net_device *netdev) lio = GET_LIO(netdev); oct = lio->oct_dev; - if (netif_is_multiqueue(netdev)) { - q_idx = skb->queue_mapping; - q_idx = (q_idx % (lio->linfo.num_txpciq)); - tag = q_idx; - iq_no = lio->linfo.txpciq[q_idx].s.q_no; - } else { - iq_no = lio->txq; - } + q_idx = skb->queue_mapping; + q_idx = (q_idx % (lio->linfo.num_txpciq)); + tag = q_idx; + iq_no = lio->linfo.txpciq[q_idx].s.q_no; stats = &oct->instr_queue[iq_no]->stats; @@ -2606,23 +2582,14 @@ static int liquidio_xmit(struct sk_buff *skb, struct net_device *netdev) ndata.q_no = iq_no; - if (netif_is_multiqueue(netdev)) { - if (octnet_iq_is_full(oct, ndata.q_no)) { - /* defer sending if queue is full */ - netif_info(lio, tx_err, lio->netdev, "Transmit failed iq:%d full\n", - ndata.q_no); - stats->tx_iq_busy++; - return NETDEV_TX_BUSY; - } - } else { - if (octnet_iq_is_full(oct, lio->txq)) { - /* defer sending if queue is full */ - stats->tx_iq_busy++; - netif_info(lio, tx_err, lio->netdev, "Transmit failed iq:%d full\n", - lio->txq); - return NETDEV_TX_BUSY; - } + if (octnet_iq_is_full(oct, ndata.q_no)) { + /* defer sending if queue is full */ + netif_info(lio, tx_err, lio->netdev, "Transmit failed iq:%d full\n", + ndata.q_no); + stats->tx_iq_busy++; + return NETDEV_TX_BUSY; } + /* pr_info(" XMIT - valid Qs: %d, 1st Q no: %d, cpu: %d, q_no:%d\n", * lio->linfo.num_txpciq, lio->txq, cpu, ndata.q_no); */ diff --git a/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c b/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c index 57b6ee5..f46289d 100644 --- a/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c +++ b/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c @@ -291,10 +291,7 @@ static pci_ers_result_t liquidio_pcie_error_detected(struct pci_dev *pdev, */ static void wake_q(struct net_device *netdev, int q) { - if (netif_is_multiqueue(netdev)) - netif_wake_subqueue(netdev, q); - else - netif_wake_queue(netdev); + netif_wake_subqueue(netdev, q); } /** @@ -304,10 +301,7 @@ static void wake_q(struct net_device *netdev, int q) */ static void stop_q(struct net_device *netdev, int q) { - if (netif_is_multiqueue(netdev)) - netif_stop_subqueue(netdev, q); - else - netif_stop_queue(netdev); + netif_stop_subqueue(netdev, q); } /** @@ -986,15 +980,10 @@ static int octeon_pci_os_setup(struct octeon_device *oct) */ static int check_txq_state(struct lio *lio, struct sk_buff *skb) { - int q = 0, iq = 0; + int q, iq; - if (netif_is_multiqueue(lio->netdev)) { - q = skb->queue_mapping; - iq = lio->linfo.txpciq[q % lio->oct_dev->num_iqs].s.q_no; - } else { - iq = lio->txq; - q = iq; - } + q = skb->queue_mapping; + iq = lio->linfo.txpciq[q % lio->oct_dev->num_iqs].s.q_no; if (octnet_iq_is_full(lio->oct_dev, iq)) return 0; @@ -1635,14 +1624,10 @@ static int liquidio_xmit(struct sk_buff *skb, struct net_device *netdev) lio = GET_LIO(netdev); oct = lio->oct_dev; - if (netif_is_multiqueue(netdev)) { - q_idx = skb->queue_mapping; - q_idx = (q_idx % (lio->linfo.num_txpciq)); - tag = q_idx; - iq_no = lio->linfo.txpciq[q_idx].s.q_no; - } else { - iq_no = lio->txq; - } + q_idx = skb->queue_mapping; + q_idx = (q_idx % (lio->linfo.num_txpciq)); + tag = q_idx; + iq_no = lio->linfo.txpciq[q_idx].s.q_no; stats = &oct->instr_queue[iq_no]->stats; @@ -1671,22 +1656,12 @@ static int liquidio_xmit(struct sk_buff *skb, struct net_device *netdev) ndata.q_no = iq_no; - if (netif_is_multiqueue(netdev)) { - if (octnet_iq_is_full(oct, ndata.q_no)) { - /* defer sending if queue is full */ - netif_info(lio, tx_err, lio->netdev, "Transmit failed iq:%d full\n", - ndata.q_no); - stats->tx_iq_busy++; - return NETDEV_TX_BUSY; - } - } else { - if (octnet_iq_is_full(oct, lio->txq)) { - /* defer sending if queue is full */ - stats->tx_iq_busy++; - netif_info(lio, tx_err, lio->netdev, "Transmit failed iq:%d full\n", - ndata.q_no); - return NETDEV_TX_BUSY; - } + if (octnet_iq_is_full(oct, ndata.q_no)) { + /* defer sending if queue is full */ + netif_info(lio, tx_err, lio->netdev, "Transmit failed iq:%d full\n", + ndata.q_no); + stats->tx_iq_busy++; + return NETDEV_TX_BUSY; } ndata.datasize = skb->len; diff --git a/drivers/net/ethernet/cavium/liquidio/octeon_network.h b/drivers/net/ethernet/cavium/liquidio/octeon_network.h index 72a581a..7922a69 100644 --- a/drivers/net/ethernet/cavium/liquidio/octeon_network.h +++ b/drivers/net/ethernet/cavium/liquidio/octeon_network.h @@ -512,14 +512,10 @@ static inline int wait_for_pending_requests(struct octeon_device *oct) */ static inline void txqs_stop(struct net_device *netdev) { - if (netif_is_multiqueue(netdev)) { - int i; + int i; - for (i = 0; i < netdev->num_tx_queues; i++) - netif_stop_subqueue(netdev, i); - } else { - netif_stop_queue(netdev); - } + for (i = 0; i < netdev->num_tx_queues; i++) + netif_stop_subqueue(netdev, i); } /** @@ -529,24 +525,16 @@ static inline void txqs_stop(struct net_device *netdev) static inline void txqs_wake(struct net_device *netdev) { struct lio *lio = GET_LIO(netdev); + int i, qno; - if (netif_is_multiqueue(netdev)) { - int i; + for (i = 0; i < netdev->num_tx_queues; i++) { + qno = lio->linfo.txpciq[i % lio->oct_dev->num_iqs].s.q_no; - for (i = 0; i < netdev->num_tx_queues; i++) { - int qno = lio->linfo.txpciq[i % - lio->oct_dev->num_iqs].s.q_no; - - if (__netif_subqueue_stopped(netdev, i)) { - INCR_INSTRQUEUE_PKT_COUNT(lio->oct_dev, qno, - tx_restart, 1); - netif_wake_subqueue(netdev, i); - } + if (__netif_subqueue_stopped(netdev, i)) { + INCR_INSTRQUEUE_PKT_COUNT(lio->oct_dev, qno, + tx_restart, 1); + netif_wake_subqueue(netdev, i); } - } else { - INCR_INSTRQUEUE_PKT_COUNT(lio->oct_dev, lio->txq, - tx_restart, 1); - netif_wake_queue(netdev); } } @@ -557,27 +545,17 @@ static inline void txqs_wake(struct net_device *netdev) static inline void txqs_start(struct net_device *netdev) { struct lio *lio = GET_LIO(netdev); + int i; if (lio->linfo.link.s.link_up) { - if (netif_is_multiqueue(netdev)) { - int i; - - for (i = 0; i < netdev->num_tx_queues; i++) - netif_start_subqueue(netdev, i); - } else { - netif_start_queue(netdev); - } + for (i = 0; i < netdev->num_tx_queues; i++) + netif_start_subqueue(netdev, i); } } static inline int skb_iq(struct lio *lio, struct sk_buff *skb) { - int q = 0; - - if (netif_is_multiqueue(lio->netdev)) - q = skb->queue_mapping % lio->linfo.num_txpciq; - - return q; + return skb->queue_mapping % lio->linfo.num_txpciq; } #endif