From patchwork Mon May 21 21:59:24 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Lendacky X-Patchwork-Id: 917892 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=amd.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="h8pKueFc"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 40qXkR1typz9s16 for ; Tue, 22 May 2018 07:59:43 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754132AbeEUV7k (ORCPT ); Mon, 21 May 2018 17:59:40 -0400 Received: from mail-cys01nam02on0088.outbound.protection.outlook.com ([104.47.37.88]:37856 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753951AbeEUV7e (ORCPT ); Mon, 21 May 2018 17:59:34 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=laS1+DGAytDOr21nBk9zqBt2DNO/zGWdDb5KITMkswo=; b=h8pKueFcYS+89O9fJENqtOFaPUKYC6WpctplO8Q0BPzkWrCd/r4kdZMyUVBPAMLjQio9b+wMe0erzxlZOgMu49JYfXnScnLHAq2UFl4NQmTeqibg7FPWwhFgfFtOEKmD39nxXryfvSDa14nHohGy4iRLj/XNkuPS/a6nsCCw1Xg= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Thomas.Lendacky@amd.com; Received: from tlendack-t1.amdoffice.net (165.204.77.1) by CY1PR12MB0167.namprd12.prod.outlook.com (2a01:111:e400:50f6::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.776.11; Mon, 21 May 2018 21:59:31 +0000 From: Tom Lendacky Subject: [PATCH net-next 07/12] amd-xgbe: Prepare for ethtool set-channel support To: netdev@vger.kernel.org Cc: David Miller Date: Mon, 21 May 2018 16:59:24 -0500 Message-ID: <20180521215924.8135.12033.stgit@tlendack-t1.amdoffice.net> In-Reply-To: <20180521215818.8135.83100.stgit@tlendack-t1.amdoffice.net> References: <20180521215818.8135.83100.stgit@tlendack-t1.amdoffice.net> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: SN4PR0401CA0046.namprd04.prod.outlook.com (2603:10b6:803:2a::32) To CY1PR12MB0167.namprd12.prod.outlook.com (2a01:111:e400:50f6::25) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(2017052603328)(7153060)(7193020); SRVR:CY1PR12MB0167; X-Microsoft-Exchange-Diagnostics: 1; CY1PR12MB0167; 3:GDF/aIImzfGcdl6XTjYZqDBhZYy9HJQkStDRpwaqdkkB5mYItrtf1sx3l/FPHaxrbLKU3GsZ8N/o/YA+YtHQ2IaDieLOsh245TB+7x2ucVEqDxGyb49jR+38dCI7OVFB4f2GWfbx1gZpjR8d9a8Ee2Z7ZLFBGnh53bqBlX3p0fWXWJjMTUgyGZtNvDOL0h/Dv6RTT/glOYB2Q2PdplWoRyn96tLw8pXW4LVQlU5CQlmMGNHOQ02CaWrS61+MaWvt; 25:NqhNeC5+9BGMeGGY6dFVKOyzmEBiKRCuFwv++099egtwIPh3w+eJVtg956vOE5TWO+tkebAQF89lbsrPc0SkTGatfdp0NCU3bhCg9Aj1XSzTyZbSQ4rNh4MkKTWdBfczLax1rZo/VVLrB1A4Pbyv4C+aDRe+I51MdmUiKNDl79nwUKgb88o4xQUPWWOZ40/fyosjbJTQ96nc9akb/X9cscfqU3gbbKISAUUPOKuJCU3HUicBbCVpgLl4z0hs8buBflCYJBYCghb+8BlA77XPR3ZXjJAd2XhifaPYRgViE8KYxB0nVh/Suf3GZn+T55A6lJ6CuOkUc7HV0a0nleObYA==; 31:zVCzOJvkTpChE6EggwldxPkzKLeIMGQ1YnmcMGjjpHcJLECs+rGjaPvwxLwW5XLd3BlIRbjR4NAD5Cow4jprvUkeNmoVjsAY7TkPFPlLezBXvYUEhOpwoygz3i9B+agYbVTDqy+LLPuAy8lArsO96k1rIgn8QDdjoVwjL9GMWedcQi9oEyOAIoaKL+y8BOh54e8pr35bQy+mVJUd4p258w3ofEYooXi7+8DGxZiaKbE= X-MS-TrafficTypeDiagnostic: CY1PR12MB0167: X-Microsoft-Exchange-Diagnostics: 1; CY1PR12MB0167; 20:gVLk1Hucbm8/HBOJubViFmfIVPZAfTK5I9+UH9MItkc/JeUmqsrKWt6Bf17ifGbwqD4kOyFE7mUIGOBr2KKB1aRZsqPG6tcTrtH794Y0U5pWDTkmIjGE57W/nLnTB7JrHFFbHKhg7vk0IedZOvZG4lx8ctuH3F+2XpIeV28yNt/dCuYBlm2SkzXQGFHFXiYl5v1jLRe7JSH56mbSRTNGlhljaMB4+go4INGdpDcRKlEvPp+oxL15iR/Ys7jmQI5A6bPmtyMDkhxWFhFuRTDArvfJqYVID7mw3ffFk9yYuGxhizKEmf5bSRYHT6j0BEUOLQ0Ot3UfnuDuK816zeNSthpknC57VLVJ78XbbCFSH1IH1O9YHBrMghLY98liZ+6mN5bwa9v7yFN3InNXmmj1sDT55995XNQMDSG7FrbCjPazhUyQQsCgMcWWRpw7fGIsaIgEBb3irkHuXT82p++DsxQxm6w+BXguSR/r6EsmnqyakWVKaYSCdCMs4uUv8Gji; 4:C+cN//yAP1Usiq8qRbw+JKE9YrQTpLnFp6CM90CdJU8FSra7jmlTAWf/cuuOYKayjfYlYW+jyS/gwfwOca2/VFKnwndCIMoIzRv1E1Ry18jBOYo4vuAQko8FHMfuf5ExqOwOW3MQcbO/2RFteOiEPKyRWtiBLrQhBKIqaw5sOaJLsarQYmTFyhGcGUWy8KlA6JpW6fRTS/cPkItAzvZjNzeAsYuU17GbILJ3SvQfub/V5WapGaoTbOYOxmOQtHPCNrLfVYfmHIkCtePN9Ze0iwzjnbG33zXUhoSggVq4HMN0uEBUmc6oQ7X8GZv17YvI X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231254)(944501410)(52105095)(93006095)(93001095)(3002001)(10201501046)(6055026)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123560045)(20161123564045)(20161123558120)(6072148)(201708071742011)(7699016); SRVR:CY1PR12MB0167; BCL:0; PCL:0; RULEID:; SRVR:CY1PR12MB0167; X-Forefront-PRVS: 06793E740F X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(376002)(396003)(366004)(39860400002)(346002)(39380400002)(199004)(189003)(446003)(53416004)(186003)(58126008)(6506007)(72206003)(386003)(16526019)(478600001)(97736004)(2906002)(68736007)(26005)(316002)(59450400001)(103116003)(25786009)(105586002)(76176011)(52116002)(7696005)(11346002)(956004)(476003)(6666003)(6916009)(23676004)(50466002)(106356001)(2486003)(486006)(7736002)(5660300001)(305945005)(3846002)(9686003)(6116002)(53936002)(66066001)(8936002)(2351001)(47776003)(2361001)(86362001)(1076002)(97746001)(81156014)(69596002)(8676002)(81166006)(4326008)(230700001)(55016002); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR12MB0167; H:tlendack-t1.amdoffice.net; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?q?1=3BCY1PR12MB0167=3B23=3Akb13?= =?utf-8?q?tw+JU14s6EgwLZxV+lf3/mL2/5qGY0D6zhoKYD1Ds6pTtOfqYppcPr/9?= =?utf-8?q?+jlL4sN3QM564Hm8Ius/DlbhD5du+K8fnsqcoirsHFJeykekfgvv1bPn?= =?utf-8?q?EPnyOWbhMy0s+uQDyh6DDvAnp1NYeNfXfsHKhx4CHSiCou4LNTysBB2y?= =?utf-8?q?cHwjUw9UA1UMJkRNVnBtibAMZ9d1lmA5ODCeroQdoAANv6BV5OTPXSqm?= =?utf-8?q?o3PMaBIF9qZobSa/ek/vhdlVSpgLUjP+VNl4GTLdXK00rn9FXNnkj7QG?= =?utf-8?q?Mm48Ic889I230c1tW1cjkjnkzre24UqaKz681uV49snAnfcob05CZKBE?= =?utf-8?q?fiFeJehZt2xVvZYE3qIYMs5SpFcGa2UEqT66YTlx8tlwwbCcap4oF9Zs?= =?utf-8?q?s6t22wg5LtAH5CftDQuO1EL/4NNYQBJYisArghP7E8CehXFuRmTkQfSO?= =?utf-8?q?WSPJTcErLWl2OCKPb1xh9CcLkL+meFvSPkEIXDDt3gkhM4QFPqwEB9kR?= =?utf-8?q?T9C/eLJ30r8p9ivGAIverTysXgvm8FmjRuHL8ShCHTRhdhFqag3Engbm?= =?utf-8?q?NG/lOLe4mL5C1dMX8yFDTUljAoGZb6Eq2azVjLFc41iVj6V/VACwkvXb?= =?utf-8?q?hRLdojeUOmOw55UXI8cjz+Fndg1CmOSQZFNry6ihT3TzVILA/ecLeJR9?= =?utf-8?q?TmpLsE+oHOAJpzsu3yQPsjY4ZvH9eziumNN1Tnp62moL21m2CPtFZ13/?= =?utf-8?q?qk+ez3oHsFGBeq0/IeXmE7HW2Wlng0Jdq9rj2dRdbAzDWfJbdgL3SDx6?= =?utf-8?q?Vlbd5qf3uULwAuM/p/Uat974a50JHVuMQIKJ86yLjX1LKiidYHJHv0ey?= =?utf-8?q?4ZVvl2sdZ8afT3ELch3XsXzVclV+3cr7EKYT3ufz9JwbG22dz1BUhVJY?= =?utf-8?q?oBRCkFCUobzKTn5StiPBtgqsDNYqo94144cEeqRcr35syyeX9MiYABv1?= =?utf-8?q?NGYE7iYnZOiM8VZK+S3bezeqkUm9/ssDQuEHqi1Qdj/YrYRy0H/J6/C1?= =?utf-8?q?aAg4O4YG2h8p6L5pjuiZex/vn8+5aWUTi63oJc9l+ZeBuLyjImKSn2Ob?= =?utf-8?q?IiRDpY0sNWm20aZkMULGZfKYTncdWyvdQpSU+MLpT4IczgdHao59J7vZ?= =?utf-8?q?18W/SX4wgLLFNw0j02mYkxbeeyZ9d2HPp1y7SnebMU8OYFHV9p2sIfvI?= =?utf-8?q?3YbhflCwtKZXgj2vYH/5qhbOOcf4CXnG5kT2KyUWXawYFB1pnG1Pp8Gb?= =?utf-8?q?hU1kg/PhkoiWVdolqxCPeVk5mHJKICfbouxAQ5b3Jo3hVKDCEH2LL9+T?= =?utf-8?q?c84MlCjjGrrtv2uonNVEhD1Azc/C1ODqoPsC9oOjToWoX1mGR156WASY?= =?utf-8?q?ZJzPjQEez/TDij1y8Q=3D=3D?= X-Microsoft-Antispam-Message-Info: y0dO44+Z854cHIaHPX6WZo1Zx0JZbZ+DfdJVoObJ+3wXsxyFwJDyrOjWu3v9Zt0rhiQmrHgJyI0si2OwOqoAiAUoix916txwna+LSvRsotmWWneUA3KubkSyzHj6BKG/oLlPHHtZfR5kLHDCQkHisfLtSQtyv4VEU0WV3whGASe02t81mpNURV0xwsfR0kYF X-Microsoft-Exchange-Diagnostics: 1; CY1PR12MB0167; 6:HuhbEumfnHoHt/+9yhmbelzheI6HT/DK688c7VkOZndTWspCNx5vO40mkXwYh17USxTp+5u+lPxPEL2GdxcnzfcM6Ep6ved4M70dHKcA9Yi60uk2BYZ2FwfiiqctNsHasVp1/gvBCSabSeWj5/Avr8SWmjlfUOtBsIMvZOJtxoolVSdXQhR6zqAJBYUEQU7cxQuTKfUmcZvnvNY20uACOsIdtwxuTP4C1JbhLFogKBSxEKzJyiouIT+vRgk4z+BMP1Aj1qaRV+Y63LSx8Hgub3pVgQ5Yj5wDni2j/MKDPpcCDdf6je4UFyuY/+8isnFn2eIy/6hHOQxJPelUZ/i7RpL5j3YSnxzmm8/CZFu+MiSyAWSgNShItJRc3oV8nHZQw2MQMXfcDLVOj3UucxrPOTgi7jigiUvkHqRvks4CY7aFTT/CuKHzs9/8H1lheUFFgxGC71toBmWI403H5KOfZQ==; 5:hw2OISa6jr8TmDNUwA0NEH3oIBvc5ROJ7jBcfch+iUmYhkCED6jXsDysFv/TQ/CqhcuIGjQFCLWFuzu3PJqpKxxZvR5T7HHQqUlw+gkcAkA+igMcHWoE92GCypFvNCD/Ecx+Y8lmx9MH5LBMI4qdvF5itCZFEGL6ca9IrIB0f4M=; 24:8QyYi+3FhaQeftd2jCfKi+lbFhA5jY47kKSbS8S4bAqXFbPYHztjU4WEGKz9Wl73Re4CxKcYnxrceZw1QsmwGR/4l+c3IclYNkU310wl+QU= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY1PR12MB0167; 7:rrw1AaW8YFrhxieM0GfiWuN2o+MhHTzT1AiO14SF66J4Noue0joL88R/joAxpiiat1M6gjEd5GQ1pV1jnQZhC/sOG/Y1kyyeqrWhur4VFkWjiXkU/J5ujfFaIC6CTW8NaisCZFIB0RWAbDR74O3Wrxm5PtLS9rouyT5FQsyva8TUT7daRObD78noN3Tm/CSsDDBWwlU930mhJd+LX+Jk4TFf+1zYcLoNarKGB5HjZHLz2f6c4/GeUaub5xV6fkXV; 20:ZSjQkJtpzwwce3EKovoRsbY7IgT2lS1GjsOcgxGzQFbaUAsZ/OdqTnaoN5ZkgIG5IwsfgvBjRl5UeaJRCt/8tOWVqLQ/V4m3ws//dhkSjkLMpMJZy4I0Vg5d2ziko8ajQKLwP0ZjhB8aiPQWt3Qrzpz2HbOwwE72SEtONwwLHdCHUJiUabTG2qdkja5x99ltQP/ZQNXYd1XwR34yAPw+2cPcwmA5CG4Fxr5MCWifRMnhejXkgpGVq8kGU231Eitl X-MS-Office365-Filtering-Correlation-Id: 7ca0c33b-dfc0-4de9-d8be-08d5bf662204 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2018 21:59:31.8605 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7ca0c33b-dfc0-4de9-d8be-08d5bf662204 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR12MB0167 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In order to support being able to dynamically set/change the number of Rx and Tx channels, update the code to: - Move alloc and free of device memory into callable functions - Move setting of the real number of Rx and Tx channels to device startup - Move mapping of the RSS channels to device startup Signed-off-by: Tom Lendacky --- drivers/net/ethernet/amd/xgbe/xgbe-drv.c | 108 ++++++++++++++++++----------- drivers/net/ethernet/amd/xgbe/xgbe-main.c | 20 ----- 2 files changed, 68 insertions(+), 60 deletions(-) diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-drv.c b/drivers/net/ethernet/amd/xgbe/xgbe-drv.c index 2646c08..397e3a0 100644 --- a/drivers/net/ethernet/amd/xgbe/xgbe-drv.c +++ b/drivers/net/ethernet/amd/xgbe/xgbe-drv.c @@ -1312,14 +1312,72 @@ int xgbe_powerup(struct net_device *netdev, unsigned int caller) return 0; } +static void xgbe_free_memory(struct xgbe_prv_data *pdata) +{ + struct xgbe_desc_if *desc_if = &pdata->desc_if; + + /* Free the ring descriptors and buffers */ + desc_if->free_ring_resources(pdata); + + /* Free the channel and ring structures */ + xgbe_free_channels(pdata); +} + +static int xgbe_alloc_memory(struct xgbe_prv_data *pdata) +{ + struct xgbe_desc_if *desc_if = &pdata->desc_if; + struct net_device *netdev = pdata->netdev; + int ret; + + /* Calculate the Rx buffer size before allocating rings */ + pdata->rx_buf_size = xgbe_calc_rx_buf_size(netdev, netdev->mtu); + + /* Allocate the channel and ring structures */ + ret = xgbe_alloc_channels(pdata); + if (ret) + return ret; + + /* Allocate the ring descriptors and buffers */ + ret = desc_if->alloc_ring_resources(pdata); + if (ret) + goto err_channels; + + /* Initialize the service and Tx timers */ + xgbe_init_timers(pdata); + + return 0; + +err_channels: + xgbe_free_memory(pdata); + + return ret; +} + static int xgbe_start(struct xgbe_prv_data *pdata) { struct xgbe_hw_if *hw_if = &pdata->hw_if; struct xgbe_phy_if *phy_if = &pdata->phy_if; struct net_device *netdev = pdata->netdev; + unsigned int i; int ret; - DBGPR("-->xgbe_start\n"); + /* Set the number of queues */ + ret = netif_set_real_num_tx_queues(netdev, pdata->tx_ring_count); + if (ret) { + netdev_err(netdev, "error setting real tx queue count\n"); + return ret; + } + + ret = netif_set_real_num_rx_queues(netdev, pdata->rx_ring_count); + if (ret) { + netdev_err(netdev, "error setting real rx queue count\n"); + return ret; + } + + /* Set RSS lookup table data for programming */ + for (i = 0; i < XGBE_RSS_MAX_TABLE_SIZE; i++) + XGMAC_SET_BITS(pdata->rss_table[i], MAC_RSSDR, DMCH, + i % pdata->rx_ring_count); ret = hw_if->init(pdata); if (ret) @@ -1347,8 +1405,6 @@ static int xgbe_start(struct xgbe_prv_data *pdata) clear_bit(XGBE_STOPPED, &pdata->dev_state); - DBGPR("<--xgbe_start\n"); - return 0; err_irqs: @@ -1823,11 +1879,8 @@ static void xgbe_packet_info(struct xgbe_prv_data *pdata, static int xgbe_open(struct net_device *netdev) { struct xgbe_prv_data *pdata = netdev_priv(netdev); - struct xgbe_desc_if *desc_if = &pdata->desc_if; int ret; - DBGPR("-->xgbe_open\n"); - /* Create the various names based on netdev name */ snprintf(pdata->an_name, sizeof(pdata->an_name) - 1, "%s-pcs", netdev_name(netdev)); @@ -1872,43 +1925,25 @@ static int xgbe_open(struct net_device *netdev) goto err_sysclk; } - /* Calculate the Rx buffer size before allocating rings */ - ret = xgbe_calc_rx_buf_size(netdev, netdev->mtu); - if (ret < 0) - goto err_ptpclk; - pdata->rx_buf_size = ret; - - /* Allocate the channel and ring structures */ - ret = xgbe_alloc_channels(pdata); - if (ret) - goto err_ptpclk; - - /* Allocate the ring descriptors and buffers */ - ret = desc_if->alloc_ring_resources(pdata); - if (ret) - goto err_channels; - INIT_WORK(&pdata->service_work, xgbe_service); INIT_WORK(&pdata->restart_work, xgbe_restart); INIT_WORK(&pdata->stopdev_work, xgbe_stopdev); INIT_WORK(&pdata->tx_tstamp_work, xgbe_tx_tstamp); - xgbe_init_timers(pdata); + + ret = xgbe_alloc_memory(pdata); + if (ret) + goto err_ptpclk; ret = xgbe_start(pdata); if (ret) - goto err_rings; + goto err_mem; clear_bit(XGBE_DOWN, &pdata->dev_state); - DBGPR("<--xgbe_open\n"); - return 0; -err_rings: - desc_if->free_ring_resources(pdata); - -err_channels: - xgbe_free_channels(pdata); +err_mem: + xgbe_free_memory(pdata); err_ptpclk: clk_disable_unprepare(pdata->ptpclk); @@ -1928,18 +1963,11 @@ static int xgbe_open(struct net_device *netdev) static int xgbe_close(struct net_device *netdev) { struct xgbe_prv_data *pdata = netdev_priv(netdev); - struct xgbe_desc_if *desc_if = &pdata->desc_if; - - DBGPR("-->xgbe_close\n"); /* Stop the device */ xgbe_stop(pdata); - /* Free the ring descriptors and buffers */ - desc_if->free_ring_resources(pdata); - - /* Free the channel and ring structures */ - xgbe_free_channels(pdata); + xgbe_free_memory(pdata); /* Disable the clocks */ clk_disable_unprepare(pdata->ptpclk); @@ -1953,8 +1981,6 @@ static int xgbe_close(struct net_device *netdev) set_bit(XGBE_DOWN, &pdata->dev_state); - DBGPR("<--xgbe_close\n"); - return 0; } diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-main.c b/drivers/net/ethernet/amd/xgbe/xgbe-main.c index 441d0973..b41f236 100644 --- a/drivers/net/ethernet/amd/xgbe/xgbe-main.c +++ b/drivers/net/ethernet/amd/xgbe/xgbe-main.c @@ -265,7 +265,6 @@ int xgbe_config_netdev(struct xgbe_prv_data *pdata) { struct net_device *netdev = pdata->netdev; struct device *dev = pdata->dev; - unsigned int i; int ret; netdev->irq = pdata->dev_irq; @@ -324,26 +323,9 @@ int xgbe_config_netdev(struct xgbe_prv_data *pdata) pdata->tx_ring_count, pdata->rx_ring_count); } - /* Set the number of queues */ - ret = netif_set_real_num_tx_queues(netdev, pdata->tx_ring_count); - if (ret) { - dev_err(dev, "error setting real tx queue count\n"); - return ret; - } - - ret = netif_set_real_num_rx_queues(netdev, pdata->rx_ring_count); - if (ret) { - dev_err(dev, "error setting real rx queue count\n"); - return ret; - } - - /* Initialize RSS hash key and lookup table */ + /* Initialize RSS hash key */ netdev_rss_key_fill(pdata->rss_key, sizeof(pdata->rss_key)); - for (i = 0; i < XGBE_RSS_MAX_TABLE_SIZE; i++) - XGMAC_SET_BITS(pdata->rss_table[i], MAC_RSSDR, DMCH, - i % pdata->rx_ring_count); - XGMAC_SET_BITS(pdata->rss_options, MAC_RSSCR, IP2TE, 1); XGMAC_SET_BITS(pdata->rss_options, MAC_RSSCR, TCP4TE, 1); XGMAC_SET_BITS(pdata->rss_options, MAC_RSSCR, UDP4TE, 1);