From patchwork Fri Apr 21 05:31:19 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sudarsana Reddy Kalluru X-Patchwork-Id: 753149 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 3w8PWT04Gtz9s2x for ; Fri, 21 Apr 2017 15:32:21 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=CAVIUMNETWORKS.onmicrosoft.com header.i=@CAVIUMNETWORKS.onmicrosoft.com header.b="gLsFzad2"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1035636AbdDUFcS (ORCPT ); Fri, 21 Apr 2017 01:32:18 -0400 Received: from mail-bn3nam01on0074.outbound.protection.outlook.com ([104.47.33.74]:2801 "EHLO NAM01-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1035630AbdDUFcL (ORCPT ); Fri, 21 Apr 2017 01:32:11 -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=RU9xWNeAGFj0wPBIQQua4L/gBYPpz5iU9af069Zj6K8=; b=gLsFzad2sX5om7Z3jFl0NmSkIg/+/0OYJ+X50W3AWGuJyGenAUoj6jHssCvkgGiu54WL+1TcOsq2tziUKU5LfQa1a/cBu316lSpSjAmERi++wOq2PwmEsVBRrGUxtkItbWc48v8abFLWxmBNcA3F2itXLGqzchhVe7rSh3r3L0c= Received: from MWHPR07CA0006.namprd07.prod.outlook.com (10.172.94.16) by SN1PR0701MB1950.namprd07.prod.outlook.com (10.163.131.156) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1034.10; Fri, 21 Apr 2017 05:32:03 +0000 Received: from BL2FFO11OLC011.protection.gbl (2a01:111:f400:7c09::118) by MWHPR07CA0006.outlook.office365.com (2603:10b6:300:dc::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1047.13 via Frontend Transport; Fri, 21 Apr 2017 05:32:02 +0000 Authentication-Results: spf=none (sender IP is 50.232.66.26) smtp.mailfrom=cavium.com; vger.kernel.org; dkim=none (message not signed) header.d=none; vger.kernel.org; dmarc=none action=none header.from=cavium.com; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) Received: from CAEXCH02.caveonetworks.com (50.232.66.26) by BL2FFO11OLC011.mail.protection.outlook.com (10.173.160.157) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.1019.14 via Frontend Transport; Fri, 21 Apr 2017 05:32:00 +0000 Received: from dut1171.mv.qlogic.com (172.29.51.171) by CAEXCH02.caveonetworks.com (10.17.4.29) with Microsoft SMTP Server id 14.2.309.2; Thu, 20 Apr 2017 22:31:38 -0700 Received: from dut1171.mv.qlogic.com (localhost [127.0.0.1]) by dut1171.mv.qlogic.com (8.14.7/8.14.7) with ESMTP id v3L5VOnt013033; Thu, 20 Apr 2017 22:31:24 -0700 Received: (from root@localhost) by dut1171.mv.qlogic.com (8.14.7/8.14.7/Submit) id v3L5VOeY013032; Thu, 20 Apr 2017 22:31:24 -0700 From: Sudarsana Reddy Kalluru To: CC: , Subject: [PATCH net-next 4/5] qed: Support dcbnl IEEE selector field. Date: Thu, 20 Apr 2017 22:31:19 -0700 Message-ID: <20170421053120.12980-5-sudarsana.kalluru@cavium.com> X-Mailer: git-send-email 2.12.0 In-Reply-To: <20170421053120.12980-1-sudarsana.kalluru@cavium.com> References: <20170421053120.12980-1-sudarsana.kalluru@cavium.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:50.232.66.26; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(39450400003)(39400400002)(39410400002)(39850400002)(39840400002)(2980300002)(428002)(199003)(189002)(9170700003)(8936002)(50986999)(50226002)(305945005)(33646002)(2906002)(54906002)(42186005)(106466001)(48376002)(50466002)(2351001)(86362001)(4326008)(5660300001)(2950100002)(6916009)(80596001)(6666003)(1076002)(105586002)(87636002)(356003)(36756003)(189998001)(5003940100001)(47776003)(76176999)(8676002)(101416001)(38730400002)(107886003)(110136004); DIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR0701MB1950; H:CAEXCH02.caveonetworks.com; FPR:; SPF:None; MLV:sfv; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11OLC011; 1:l1OapLxbVi5PBnON5a5CirRZfJOKtMQm5cIMRsIelPvAdsH0ZgGIwcx3KWMgIvwt1Ck7PV+d9h8OEPVqrjwKlZhH7T8lWCQi+BvZ51jPmIGE+yKorXFIlp/a2hcovYO1uyZ/Rm7FyQLQOHr9s3xqOcPmrKbyeC0d30OQoLUJRr+xozbYuQ8bCRzI/zCWmn1w0PXZ4JRiO994mnd/icG4bQgjYdlBEpKiZlg6gPyuMnXF815s2fFudKDT8RMYb5iXDUBk69Lk0LhOeUZEqrV8mROCpAEOcXLuGMUj5hiuuuPT0GEHW6k6Zc4GN1zhmiga2M+J8sGiZ4giHkc1pOTgk/luc0Vztl60pxwM9jqyA07TEo/fFLzOmAlY73uoEB5L/XDHjExZGS+Ol12468/CMxeKLJ7v59cK/TbHggVyQ47OVlKsuAd+6c2VfjBLatKGFansKDePBkA7fAJB13vuaOqfKIu7zGSJo2ybihGdj/JMPy0nr9j0q++Ci82FOit2gngi0YlGof/RMRuCDqxAwjPnrGYCewSdPtuInyA0nCE= X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ae6374f2-c196-423e-21ae-08d48877bcdc X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254075)(201703131423075)(201703031133081); SRVR:SN1PR0701MB1950; X-Microsoft-Exchange-Diagnostics: 1; SN1PR0701MB1950; 3:6OMZLYqcj2jY8YmxuU5tVoAcSd+VzT9TuQtQOYdVbYdbass8otmfe80r8ZZHByf8vo+Hqzc0rmxrpsm2Zn02NfA8eMtjiJvqoF7PcaXbvKXiJ/I/hsamtmKa696smKUQhqmfvcOo8HhGVJlcQikSKVYhDpmK/HjR2CmvbRkQi/9Z8exiSs0JLXJozppnOe1AOujAed7+M1bnOXi2E2QQfLM3bHwW69LlhC6soqg8stRnyiENYHbxeBt+uImDw05zU7SlLZWlVaEN4HGnvRRZ5DPh1k2CLlcBaFieZY0NEFt1wc0vwPYoRQid5FDZJgnBc3SMpsbyb0tXFm1FcDfUsllYXD1+9t0iTQmn48j8ljlxaxlG3yvNs5fKqbudc7X7YEEGCzOVEeMVJddPWdISCCVYFYM5+4WwtZQFwPKyDSuK8EQcLhDp6EpQpAumEdvEwaZwLZ9ZUxJEqQSimvlVxg== X-Microsoft-Exchange-Diagnostics: 1; SN1PR0701MB1950; 25:ozB2pdwRtCJco6wjsG98+kNzCjALd0BKhuz3R8BOu08JlfT4UiE4BvOpKYBVuAFw62X2g2m4a0tz32dzmHGpZGKRHEQTMkJeYcIut3esM1SKk7grNUsrz76MbbJDZ/1846paaFPkSo+m+FesVjYLnbUKIEIEIwKf8fOYPrXVD4zqvWgPmk5qIyCeH3BN4f6+XhJwvBi3w8FmUPX7oYREL8ARRUzlKMdxAe3zkFtDM9dp9frLbN4E5Q40FazX9eZyhBVFP6zAUWPRcPDUWVjmbi5krRk+QNMjvJeufUF7JVhQxo9dK6BDFIUfs6nwaSh7I8U9H2pibD4Pn3dPuMEiXAQ5/sQroomZ56QP3lKsHKxVgJPNAc8aZ7UBfVL9PQlTdhOh6oRa7qgr1CraCoUaP8VAfuJOCaZqq5bC6LhZIW22MqniznQvwQnAToRbiPlh0vsHZwNo5UY6cUh1AQfb5Q==; 31:n0HrOf9conF0VJU17I+9Z3Z88do9yYmcwXbyEM3BwAaEPztUGV6HPQMhtXhdXnzxNXSsBWdlJRm7OMM40KK8q/jj+t41B3+4LkM2eAEyclDDiej42SywIeWnrsRQr3IKWAfMKFjqhS+v4Ws7AwxNTapTizp6O3ufrDrrI6WipNEiiu3o1++OJpHU6oAkIPwdT2mxy7TCO1VvYlrtbInLffa+pQ78y1vPyFd4bjdBzvRNmXfh8ERd3TN/XXRCH7k7dD/7SRmPe2BivlBCCbHHArNUUKUf0/dUIwtQTwYzlmg= X-Microsoft-Exchange-Diagnostics: 1; SN1PR0701MB1950; 20:QN2DyzqcPR3oW2FDtbzactVQYnvQEMN5sGoArrA4lEvSETtM5MkSWLd3RfAsOdmmjJCOoLTvcahVAO1GCUYXjZaoTRfVHJAXwFIwJtWY+FivpFatDeXAtIGbGA2CEPIYBa3P5ErEG1dTUTbvElUFDwD4Qu9kJof598HHnpYA0leHI7FcJumZ9xJgs+C+KDGZguzNUAXXMauel0O0PwEg1ZOdVLUOogkD2KjUKDakr1+C50GKNZq0Mtj6epqLObFem0FGaopXJ+VK3M4cJkyXeU2PSPrJsKfAT5Yf8bXaoPCNN+FLDtufQLKTm5DtvQ6+8gvxRLD13wYfMXFk5CACfNYq6EvYv7K0/hMQHgcdnHSBheAV2+JubNRzOh5nBAQV8tSk99S+NUyciaTAgIblotOMWJ0UGLewaH5JVtYgYAC3XNlq7DGI+VvAB9yO1NRgiTeB/yxD8dkkNCW8swGFI75q1TvPe7mylJyA3Gj55b0LoCnoaqlkO3Jg0Utaob0u X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(13024025)(13023025)(13018025)(13015025)(13017025)(8121501046)(5005006)(93006095)(93001095)(3002001)(10201501046)(6041248)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(20161123560025)(20161123555025)(20161123564025)(6072148); SRVR:SN1PR0701MB1950; BCL:0; PCL:0; RULEID:; SRVR:SN1PR0701MB1950; X-Microsoft-Exchange-Diagnostics: 1; SN1PR0701MB1950; 4:T8lUdNxAtcyS+gJvM4+FXqFPEvKZKJD0q3AgLjEhThLMTbt/pfuaXL6SLuskFDp31MgqL0/GhVMPEApnNzZcgl2Ue6Sr+1R7DMn3xDsYcB2x824UV1CthtEUrE8ESaLJxE6IWG9ARX3mjEi1WE46KCuPPLKJDQ1eWMeseTM1SD5YpqaA5hPZk8cYFUyDcWK6l73ThoXddIsQB5Nz7eyES+SBEsW1NEwOcjwWKKG8j/z7fCdCh9FVxPHDDf3hMreXu5by3wAmY9irdIXdkIGrREa9x8YEy0kNZqL3T0PxGZ4lRVGgB61GdZldQvYhq6r6lIF4UNXU28NX1NR2+cwIHDQdC7mGIeFHcdjLfydZqTMyhakC7Cn+K3jyIpMnLyzs9/lc7Ul5t2XzqWDaeivEhphDZcQgGeqV7FMr442gJN1zoIvjcbwPX/deS6OwHc6lZ+m+RCqHW2rOyHN20jM3XVKonuLVZYIpxIW7Hwa5qDkMIL0FCku9io9bHIFD+7fFEL4Q2l52T84LKkbliXErExhicwZykoKmYhmRhaQmYbybjiwoqIRMqUiu8dlOS4e2ORXlwvvi0g/aD+k7n1pNUSt0fbDdH/FBeY8pm1v/AhdGF+VVOzZaUSMayd6IDHa8lQN1Lu9dNZFnGSnfhjT+bDuE0gcoMQQJjqTLLpgl4dpmt5lboJvkfnZeVN1FR61d1JrvTBx1agP1BTCwkIHRFl6Hq/Hz8EkmvMF0Q+dZw9Yw5dUQu3HzG+q6GVzcsjluxcUSWSh6NwGkT+jFwmg2wU9TTPTAhTWFgoXRx+IXRxbLq9JEKvZ1qM3eMbB9kXrE X-Forefront-PRVS: 02843AA9E0 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN1PR0701MB1950; 23:xC3tBecQvG3DRiyl0eSH3rQH6iixWu3guh8AJiD?= =?us-ascii?Q?q+Pk6Dxmr03RIsR16GlwTxRqj54gH5oEStpDSn43OPa0v08UcklVMPegPzMI?= =?us-ascii?Q?0N2VhZWD+YfGAYzglZgxl+HlKXKkO5CU0YUcPjfetGc3E662Vb2AVtMIqaFJ?= =?us-ascii?Q?ySJXwQuKfikC8K2PmlIaKs3uvLS6qY55yKS76Gy+49ME/SknrvmmtRgpCqER?= =?us-ascii?Q?mM0/KBrTZlRITppkOJ/lqzDA3Qe1pjbRaIFjxUE2GOktGqtJ9t/+jmCQrXUv?= =?us-ascii?Q?PuahlWq0J6Ruhj/8HkabF9gJi+avXoFj7gVxVZgR5tZyrT53N7wkEi614okM?= =?us-ascii?Q?FM5HfnZbfGzWhtm8v4pUDiirZeUiXIoXgv4hyD8VfogLHt+L6p4+7D3Xdvzl?= =?us-ascii?Q?kN1TSAnnwqHmg5l29xHZJ1dE8zFNMdFlkmbEazdP7gG530LEzhVdncrhGOcc?= =?us-ascii?Q?90DSXLUl0ahPYt6RjQQawZ5Tow/gvPM5gmccFk4a7srKs8CiS19BYsqszYbf?= =?us-ascii?Q?+KylzErpBW+GkvFAmPi4OOWD3PeMhGcvcnaJ0K39FRtrffkyI0YiJ/hgKbdd?= =?us-ascii?Q?/DJ65Q4wDH5ITT5+3WKgd2stoLLUtxw9a59AXo6w1idGRVeSfgGhesZGftuy?= =?us-ascii?Q?Syg8uWpA/f/7vnqO0rNkbdOv4Ju7xI+OdzsJ0dL/vohkZZVvCyTHqMGIVfrE?= =?us-ascii?Q?+wxqvuepwdG/0wmTikhp8rbDW8g8//fBxMvsjRpH3Xbzdo6J6cY4Z2LNcfmp?= =?us-ascii?Q?q5gjGWXlblEGd/RM8kXk0LaVLqHACN9WllbrEw66R7uVBIJbVTszCbCo2uqB?= =?us-ascii?Q?WOMEwiNvb9pG+2r3aH+Ouabxe1cymqN2d1VhjbfBaUWS1f1L5dUqraBv6AZx?= =?us-ascii?Q?4DYZJziSv/+Yp0vCpSmAV3Xl/aK9wQD8uUU74HvN8iHa866NM5/lglopxH6X?= =?us-ascii?Q?7a9piDSgGrpqe17h9RE/TLprRuxjWOpIuNWT1oCI4gwI4Tz0nT1fJDq9YeHu?= =?us-ascii?Q?RD3vOzhF2u5derF4/quqqZ+8Etl+u05r9NWqLLkVv/pvFBOFqciuGbTCtq94?= =?us-ascii?Q?o/SXcj/vCGpPy7MdLXL2ffrYpVvJGr2GCd1QDg6xgD+OpD0RE1w=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; SN1PR0701MB1950; 6:HJnl+8JYurv5npm+XRAz3MZhDbJnk0RMDNpJtaM1bGBV1sFHhA9oDtbjcMyMDDe5M9abAdG0OUjNN29WuoLkawK1nf3txYwZvd0Kzm7fjfsZ97Jzv3br8WTtT3dfkaF9ajb6JMtC00RZX5MLp37F9PP1YlONfzAItmPbjXWDodnmTZnaEdeK1OJA8VnsUi9LlaVRaznObqWHlKVjiXYj34FrbiF9iQbeQ0DtHnw6kmK0eMrwmtn4kP1wK9WumrfgoY3uKEaCBwB3ZqnRy54fuhExtch+8OG+VB70sAg0WH3d0AI6hQLAzWTrpr6y7iw+gQqA3FRRu88kHJIfrFA0U0w9jpfghY91t1v3c+o+MAd0KExAYAdD6MMRmbscA/vMrRbRS1TOrrvcxMOI3UZrk4MrJyG45Fq0qr+5sUSOMMEDe62LUJCNroeQrCemdffCVt1H6CvRwlzGq+yCt32KJXzJTgwjEkgC+pDpR3lrdfyWW9mlmOuGVIRcCn3hoC6w7wMXRCk7sw31Rtnsg6tAgw==; 5:dq13fXkxkCqnOyvQk4ROQnBI2qc1QlWZb89Sdw2YkUSDFa3Pufi1UV32TKHWAyplZO6aIt0LtfNolqGzcyqRN8WveG21lLC0RkjAav86IV2mWvyYe1pLgfzjZmiJzzDvd67aswL/DW4dkHNyac6y0g==; 24:oZ9G0maeG8wCNaWKERwWibzpVpvOmk5VEI6GMRKfFW1ONnp83+QYg9VYWIll2aTjJkYzrsy4Vr+xbNiVCn2PHZx7u99VxnKgkxMfAdUaz6I= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN1PR0701MB1950; 7:3CD1QWyPpVfUQVPPSVj0dyipBe1bh79UgyUjXVc50v+rFnjrWyDMqIel+pe8b3R0YgeeUr6HeKgNq5grf+NBt4qE9r+96ndtAOvXRk6n5uMJMb6lrcOTGkxds8OQDU5lHKrzQZVlnSeVwx0ByGAia+we6VZ3cr2Y0wLaht/h4okF8Nwf/XLZRhe1XczL5oTM0iJZfxWetb9034FmLChvdqkPbIRvKKNQ//Az3Kwxtdt90WyJxNO0SI9a1PDJ0YOv6WQIP2yXsCXMZNHEzQp+IXa3p12xLogLWF41immmUfgVH6tWtlgUDTpocCqgQqi69hAB7/oY2GG+KzW2kLSI2A== X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Apr 2017 05:32:00.9311 (UTC) X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=711e4ccf-2e9b-4bcf-a551-4094005b6194; Ip=[50.232.66.26]; Helo=[CAEXCH02.caveonetworks.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR0701MB1950 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Signed-off-by: Sudarsana Reddy Kalluru Signed-off-by: Yuval Mintz --- drivers/net/ethernet/qlogic/qed/qed_dcbx.c | 53 ++++++++++++++++++++++----- drivers/net/ethernet/qlogic/qede/qede_dcbnl.c | 5 +++ 2 files changed, 49 insertions(+), 9 deletions(-) diff --git a/drivers/net/ethernet/qlogic/qed/qed_dcbx.c b/drivers/net/ethernet/qlogic/qed/qed_dcbx.c index 507b79d..d79831d 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_dcbx.c +++ b/drivers/net/ethernet/qlogic/qed/qed_dcbx.c @@ -2181,15 +2181,46 @@ static int qed_dcbnl_ieee_setets(struct qed_dev *cdev, struct ieee_ets *ets) return qed_dcbnl_get_ieee_pfc(cdev, pfc, true); } +static int qed_get_sf_ieee_value(u8 selector, u8 *sf_ieee) +{ + switch (selector) { + case IEEE_8021QAZ_APP_SEL_ETHERTYPE: + *sf_ieee = QED_DCBX_SF_IEEE_ETHTYPE; + break; + case IEEE_8021QAZ_APP_SEL_STREAM: + *sf_ieee = QED_DCBX_SF_IEEE_TCP_PORT; + break; + case IEEE_8021QAZ_APP_SEL_DGRAM: + *sf_ieee = QED_DCBX_SF_IEEE_UDP_PORT; + break; + case IEEE_8021QAZ_APP_SEL_ANY: + *sf_ieee = QED_DCBX_SF_IEEE_TCP_UDP_PORT; + break; + default: + return -EINVAL; + } + + return 0; +} + static int qed_dcbnl_ieee_getapp(struct qed_dev *cdev, struct dcb_app *app) { struct qed_hwfn *hwfn = QED_LEADING_HWFN(cdev); struct qed_dcbx_get *dcbx_info; struct qed_app_entry *entry; - bool ethtype; u8 prio = 0; + u8 sf_ieee; int i; + DP_VERBOSE(hwfn, QED_MSG_DCB, "selector = %d protocol = %d\n", + app->selector, app->protocol); + + if (qed_get_sf_ieee_value(app->selector, &sf_ieee)) { + DP_INFO(cdev, "Invalid selector field value %d\n", + app->selector); + return -EINVAL; + } + dcbx_info = qed_dcbnl_get_dcbx(hwfn, QED_DCBX_OPERATIONAL_MIB); if (!dcbx_info) return -EINVAL; @@ -2200,11 +2231,9 @@ static int qed_dcbnl_ieee_getapp(struct qed_dev *cdev, struct dcb_app *app) return -EINVAL; } - /* ieee defines the selector field value for ethertype to be 1 */ - ethtype = !!((app->selector - 1) == DCB_APP_IDTYPE_ETHTYPE); for (i = 0; i < QED_DCBX_MAX_APP_PROTOCOL; i++) { entry = &dcbx_info->operational.params.app_entry[i]; - if ((entry->ethtype == ethtype) && + if ((entry->sf_ieee == sf_ieee) && (entry->proto_id == app->protocol)) { prio = entry->prio; break; @@ -2232,14 +2261,22 @@ static int qed_dcbnl_ieee_setapp(struct qed_dev *cdev, struct dcb_app *app) struct qed_dcbx_set dcbx_set; struct qed_app_entry *entry; struct qed_ptt *ptt; - bool ethtype; + u8 sf_ieee; int rc, i; + DP_VERBOSE(hwfn, QED_MSG_DCB, "selector = %d protocol = %d pri = %d\n", + app->selector, app->protocol, app->priority); if (app->priority < 0 || app->priority >= QED_MAX_PFC_PRIORITIES) { DP_INFO(hwfn, "Invalid priority %d\n", app->priority); return -EINVAL; } + if (qed_get_sf_ieee_value(app->selector, &sf_ieee)) { + DP_INFO(cdev, "Invalid selector field value %d\n", + app->selector); + return -EINVAL; + } + dcbx_info = qed_dcbnl_get_dcbx(hwfn, QED_DCBX_OPERATIONAL_MIB); if (!dcbx_info) return -EINVAL; @@ -2257,11 +2294,9 @@ static int qed_dcbnl_ieee_setapp(struct qed_dev *cdev, struct dcb_app *app) if (rc) return -EINVAL; - /* ieee defines the selector field value for ethertype to be 1 */ - ethtype = !!((app->selector - 1) == DCB_APP_IDTYPE_ETHTYPE); for (i = 0; i < QED_DCBX_MAX_APP_PROTOCOL; i++) { entry = &dcbx_set.config.params.app_entry[i]; - if ((entry->ethtype == ethtype) && + if ((entry->sf_ieee == sf_ieee) && (entry->proto_id == app->protocol)) break; /* First empty slot */ @@ -2277,7 +2312,7 @@ static int qed_dcbnl_ieee_setapp(struct qed_dev *cdev, struct dcb_app *app) } dcbx_set.override_flags |= QED_DCBX_OVERRIDE_APP_CFG; - dcbx_set.config.params.app_entry[i].ethtype = ethtype; + dcbx_set.config.params.app_entry[i].sf_ieee = sf_ieee; dcbx_set.config.params.app_entry[i].proto_id = app->protocol; dcbx_set.config.params.app_entry[i].prio = BIT(app->priority); diff --git a/drivers/net/ethernet/qlogic/qede/qede_dcbnl.c b/drivers/net/ethernet/qlogic/qede/qede_dcbnl.c index 03e8c02..a9e7379 100644 --- a/drivers/net/ethernet/qlogic/qede/qede_dcbnl.c +++ b/drivers/net/ethernet/qlogic/qede/qede_dcbnl.c @@ -281,6 +281,11 @@ static int qede_dcbnl_ieee_setapp(struct net_device *netdev, struct dcb_app *app) { struct qede_dev *edev = netdev_priv(netdev); + int err; + + err = dcb_ieee_setapp(netdev, app); + if (err) + return err; return edev->ops->dcb->ieee_setapp(edev->cdev, app); }