From patchwork Fri Jul 13 15:31:50 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander A Sverdlin X-Patchwork-Id: 943655 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=fail (p=none dis=none) header.from=nokia.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nokia.onmicrosoft.com header.i=@nokia.onmicrosoft.com header.b="jot+FDOS"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41RxdG3dKnz9s3R for ; Sat, 14 Jul 2018 01:32:34 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731427AbeGMPri (ORCPT ); Fri, 13 Jul 2018 11:47:38 -0400 Received: from mail-eopbgr30098.outbound.protection.outlook.com ([40.107.3.98]:45675 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729770AbeGMPri (ORCPT ); Fri, 13 Jul 2018 11:47:38 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia.onmicrosoft.com; s=selector1-nokia-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jv53JIWf0UdmqNHbJ21Td50kbco2f/1wn4/vS7ctvow=; b=jot+FDOS/NIHM8g7H4X7BFxDKR6xNdBp1glm1uITEtsnunEE1ndn0+yXcnuMzP2idZ1ObOqYorEpE8X2sCuQe2/34GjUl1w/3wgGUhlo7/bLyBzaHB6cn+1PDiUL+sWxr6NCutXP6G3bP8IEPk8X2hg6X2BelhvTyy4ucVBmq8M= Received: from ulegcpsvdell.emea.nsn-net.net (131.228.2.20) by HE1PR0701MB1881.eurprd07.prod.outlook.com (2603:10a6:3:38::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.952.14; Fri, 13 Jul 2018 15:32:25 +0000 From: Alexander Sverdlin To: netdev@vger.kernel.org (open list:NETWORKING DRIVERS) Cc: Alexander Sverdlin , "David S. Miller" , "Steven J. Hill" , Alexander Sverdlin Subject: [PATCH] octeon_mgmt: Fix MIX registers configuration on MTU setup Date: Fri, 13 Jul 2018 17:31:50 +0200 Message-Id: <20180713153150.2414-1-alexander.sverdlin@nokia.com> X-Mailer: git-send-email 2.18.0 MIME-Version: 1.0 X-Originating-IP: [131.228.2.20] X-ClientProxiedBy: DB6PR0202CA0024.eurprd02.prod.outlook.com (2603:10a6:4:29::34) To HE1PR0701MB1881.eurprd07.prod.outlook.com (2603:10a6:3:38::21) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 291ec681-73e5-4ba9-97bd-08d5e8d5d66e X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:(109105607167333); BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989117)(5600053)(711020)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(48565401081)(2017052603328)(7193020); SRVR:HE1PR0701MB1881; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB1881; 3:IZZMCHtTlhKcncYPR1rBTsVG1uVOgGSg9WLXjkvndVibNX5EHO/guG2v88L+rnl3PUvdeC0XeDLIB3Q0K8pSNLk7Hmbpje7f0U2rymMpC4GYVd8jOv0UF8dmYyfwxhe0uVTiZ7f2bJaTY62RzznwqGfLfBQMmS2VxzPpeKUNQatpG3Sl8DlO09k0xWSOR5LbFbIJq7rFKsdyLsnzOwdHNaxLW0LXs/x1OFiQ66QF2KxtbEBwDGIwB9URvEvL8z6e6sL+DF7p8syalhCkAVUiB8XMjKntOnUUoeIklZAKPcA=; 25:1Gsx5t/qizEg0qPMVRKCLN6fJybOpprrjj4Fn7fJYLuAXqFfqYyvDdHIJXeKgRhZCCzMcmA5yh+5+25K3TOkUZGqZmRVVlgvhC/cSf6rC6RsFEAayqm36QCxWlDMhvd9IMn30ehHuUd4Ot9KvCzEu0X3JWGrBgO7lWsU0RIrXeozSFO52tQI1oFXKYwBWiI/GT0ScQXHqmBPBEAUmNH032TlJUQDrKiESi8k+CwXyxd07FdhLSmsTY/WZc09YD6337mFIxNFc3nsdmc0KfG3725dczEPkZHXyCJ5/1bivhHkVJsLic9qmPwoj0ra4tPOs5ECXWeLZSajMNMXgyOROQ==; 31:Iq+3bdOFCOXYbERlcetT5AZUbo/qTxMTnm0l/oBye+T7viOXTUsPrLF3Us+U/ZsfCKPUaag/LUk95NZJ2+m3GpTsNwK7M/hkm6wsIuNxJ1w2JZHga21xnQzZ7/VlXkPLuCqLqPHVpXshFLhxkAkWvJA6KUsz4oLjsoSEuagw1Mn/oz2atBDbArA9xUPevHfbMZPEdZ2cwyU44ldzslzXfPgtzDaWjmvqZGAyuiLLpbc= X-MS-TrafficTypeDiagnostic: HE1PR0701MB1881: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=alexander.sverdlin@nokia.com; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB1881; 20:k6T4Pkxgxi8X8nhq73a+Bh/DJWeuSDxjrjQHFddVTt/V58BgiqxI7nb25B88gSSs7ISs28MGcEdFPjTuyuCNegZwCGrw4bD1a1cCfWGeb4wySMu7SJRE1WemDNMHrWPBlIG2m4TAoGYTOKS5aI4PqXLaszX1Qt/xn3jv9Ikh5TgK7w14WWv1Q1uAx4OsFkPq3N5Z8taoeF8RGd7lUrIauxNWxxqTVYzQ8nTC+vhMvpoe8+KPPmcGLMfseK11EnXZRKgpJVQ1miSb82+plNAAWQIKd05nD+Xo3a/NJQm1ksISNMA6qVdOkUkY9Jlkgdnx1Y06qZ2WWNOtAknKIZOZIvTPQgxfxVpnKb1uQxfmbTfSM8QqUy3288lh1jNH9W+fqnp+9KJalk0GiFZgNYshe6nGgEt2eV/v3BRVkZXOSe0tyXPtJ55xLbYbEhDPy+CQGQ3AJURLqdBJFQryjWMmnYCzTn4cL8wniWeHdB5BPsGCciCCQotWjSxs6jCd5/8KKXKQDchsCKPK/bAAxyaWiXOSCclaK0vAppRmPiw12ia0qvE51CKIgiMx30OJCtK0QU52mm5BLVYeng2wXsyr2BVn2AFvFc7YPhbYtDFOeuU= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(82608151540597)(109105607167333); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(5005006)(8121501046)(3002001)(10201501046)(93006095)(93001095)(3231311)(11241501184)(806099)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(20161123560045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(6072148)(201708071742011)(7699016); SRVR:HE1PR0701MB1881; BCL:0; PCL:0; RULEID:; SRVR:HE1PR0701MB1881; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB1881; 4:yj/1BPaVmKI6qlOAK8nQGoCF7J7L5qjPMgYD10XzgzAEqVJIhL1q/s1gSwT7kcxBEBPIe4HWoNWqMKQ9QY4+0bcYergPiSG/QJZ+/Pf8VSgfUxiL0XDCjnuJYgnbbcq+5P/SzUudbYujGfvxIJ69FMIumBuf6PKXbfO/XMO3ngFeaFQDfhwvc5DKWPDhcKVXmCHGyQP+cBKHB77WTRCMtIngB17DEAToOK33Yf16IqudeDLXI0L3td1DKqQf92sNxGcCavurtV65KrFKgA+6VlARcF3ZzNeIYsd17dkx6ZvCFrrZxsfdq28BomsAqzY6995szBXE0hIZAPSg9QyRZ1xMAOIZiQX2eoOdX+1Xd10= X-Forefront-PRVS: 07326CFBC4 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(376002)(39860400002)(136003)(346002)(396003)(366004)(189003)(199004)(51416003)(2906002)(5660300001)(107886003)(26005)(68736007)(52116002)(109986005)(47776003)(6666003)(14444005)(8676002)(81166006)(81156014)(6512007)(86362001)(7736002)(50226002)(1857600001)(305945005)(6486002)(54906003)(8936002)(316002)(16586007)(16526019)(97736004)(44832011)(478600001)(53936002)(3846002)(6116002)(4326008)(486006)(36756003)(6506007)(386003)(106356001)(66066001)(25786009)(1076002)(2616005)(50466002)(956004)(105586002)(48376002)(186003)(476003); DIR:OUT; SFP:1102; SCL:1; SRVR:HE1PR0701MB1881; H:ulegcpsvdell.emea.nsn-net.net; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: nokia.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB1881; 23:ai2WN2Rr5Ny6mNnnpcvEyi9/q3FxOPr/YSsU7Yckv1D7HmG26RWs5uWbUtGMxUK68U/gYoCUFgXFeOT2IbH9Da1sxxocNph1PmW7kgK3Ec/0jEhIljYh5ZGEaVPBBiv2sKcvgM2rHz3c9pZIDBZyVToTdRiDRVK4SWDxVk63ie05ouokuVD9X3MabTcXVUojkeq4j2y4HsRKeofNgRfjK7SxGfmutNp/GKOuOWCp5RqzQJyq7eo4nUqM6fDBhiO1Swvs9S8CfIyZT8LG1ZY41Y1GXUuv/0od/Oi3CGeXOBXO+qnn7kO1f3SEQPoLA/XuseQZZpzoD78eBfWTKYb7+1qCbx4Vuk8ZHCvref5OiGZ4YrxryNASwnPk5TieGlx+pt6ZFL3gYB7L0/GT8DlCN7iM94YhZMrJTkjO3YhwxfRNCfJRilhlJvsKouadWgsloB8Ee9mhIpOr+D8GwJf1KiKs8FivwAFjJxrEtKwEcyQNhjE/51df/woA8nhCMP98xJfKXrrXRl7OILRWNzPYijpUeo+eas0aK6IN1kSXknj/49XgBHuGD2IFTKgp2DOxNJhvAaLK+ceixS/dzcJs38h9Y5Jiox07w4rxEwL6GGqVw5kR0kp+BYdHX+2hUQRbXvVLTM4UTj3nd+s21C4roqASPqbw+pXA3F1HUaRJrBhGMsK6um7ezQAc7eo0dL0cRAoaKtIzKK65IgduwVwH9RxYjxEjBfH1XzUsTWJrbZg+M/c6fBBG6BPDQoJPkxfTfKwvU1/N3XaLbFyakwn9U9TJrgNuK4EvaMXBYNKCfrCeyX1ddYvZ+vO2diaHb3jx05e4eidq5mfloIl8StGw890acCHq4bolgEav1l3bUgpiHD/Qpzu0n6qRTj/K//6M7/3v2216yzWPyNIfUiDNbCCzOieiLjLas9lRl/5pBM5nK7ZcZZIxswXcunVtxq5VZOHx443MfQ6+1Lxc55MmhIedSwiYQIisHa10gsbsL9cdwxvM5q4E8r4PkuYoeRRswve3BCLwn1Y7lCg8VN0xHQ47lzPz1tzcfFKf0n/bRO/8nahCuFV1SU8g8qACSy+y92IqoNBHlzr/CaK/2Bb+GBies6eXMiv8THxcG4+XwbL0/38wEBp5Y2IuXbiNbRZHi5nS+SVqP3w2EKId5amlivzLR9RpccZCiwQYYcZxaqLTdcVBM/p2Fb07l5FW8V8ME4gvZT5NtEEdKoMMH+NaDDgcsifM6OU9/baE5nKj/KY= X-Microsoft-Antispam-Message-Info: aAtjPVPgRuy+ENSw/TYp0JkVE+cEvwwrnK0hC9q5qIDG/Wjo2SDBNPUcC4HvGmNW9DRkRB5fVQU41VMmDrsT0AqOzVGr7jbNVez7IFF+CmgBx5ciX52ad5caagGlGJt3Yk8IAvPPLj6tf1nh47z4kIY1Z4MML39cpSNaVML4uaCAD8wIRg3Mn8w7Lx60QACun5w9Q6FaA7OWAweq2HVTkK55LURuxj8WCb7uIezptOb+GBSKoytUl6BLr5IszxVfMxKSb9I32dEySW4+RIwqOvN5YOID9CuvcCC2SKX3ZYhJKw9nAa72l6U7t6DSY2T8ytxDoZFO6HWZUj8RTasBN/WWvYtsT2gaPicIjac576d8BE7u9rhof5LWnjoaNKYoHDLcyaCm9IECQyHaNwxdRA== X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB1881; 6:uEoKS1ED8GHjgjg49/IYvZTwG7/N5wlEqXeF5IkMwLN/9cQLAp7sp7wWeWjDehs7WBlwmVOOTvo9RiOTRSYV4FUPdCt3cHAEcyycrwqqwD33KWFb/CXmFooe1gF3DLHkZQkwBJncJ+9zux7P9dYi64tz3xWYZJ+ZvLh6XnhM2Ovjk0ck+HwYbiD2dgRQAL+Kl+N57v+iGvW8Rf97XHDkr/Ix66dERK1LDsLWtOCRjSx8w+konBTAqBCDE1jAqIHjSpZ+kx1ID13U6CA7nEdqsnR/NOpiEiiRVuz8wD/jHTKOhVn5hXoMQTmQR5HMmQkFUUtcc1NmpDGbMJXYsneqIduYKxcOBXMqNSG8cjl9fRECjBqmsq/EiCF9PiZW3jKRNFaSsSm0qKNhZv5vPlxZEZQ2rOBokZJ/FrgFDMxuToVKh3D6oGw7izmLxQmCxiYZJV9IKDWsmsOpwbTSYbwBsw==; 5:01xmNso1TB8+GX9+O8e65/2QV/K/vL/DmkR/AByuuMhW3DGP3/o3ybxJLBhztyMl8W4WRZL+ScLodn8lopH3kCdr8lRzoYNM5SGpy8IaZAda4M0EcRpqfcLh2a991AC7K2dG6tXJwTIeWgE2E5F63yctUZ6gIM6WR1+VWxh9zFA=; 24:NeB09PoGIowmSsXMT/JE+eI4mkVxpdCCO6ZbVfw0VYPTkDKU8OAz2k3Fy+fA43GR3DsSVXpGEf2qe7ARB/Q6WbxD0es8Om4Rv/CWIASrYeQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB1881; 7:suXUzYfO1YPzN4f5ppZslK0xuiAb7y29bwgIiRyaCUIBcqLO3dKC1XA3XNUC0u3maH7jCuVQSQfxzMufMGDPpKH/oEa0QcfVg/Dl7O5BR0C9mfLJvMeRcMW59pDFsURq35x6BunVH5c70Hu3DSe6WT+eARHp4M3i3R/mcaTe+Qg8wKbzk1i+P8i2fvJvde6/VZ4WVFFCOi9pr1an5+egBp/n/C5+yOossrCwCmZH3A6jdJuhDtA1+4IH2t2fT963 X-OriginatorOrg: nokia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jul 2018 15:32:25.6805 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 291ec681-73e5-4ba9-97bd-08d5e8d5d66e X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 5d471751-9675-428d-917b-70f44f9630b0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0701MB1881 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Alexander Sverdlin octeon_mgmt driver doesn't drop RX frames that are 1-4 bytes bigger than MTU set for the corresponding interface. The problem is in the AGL_GMX_RX0/1_FRM_MAX register setting, which should not account for VLAN tagging. According to Octeon HW manual: "For tagged frames, MAX increases by four bytes for each VLAN found up to a maximum of two VLANs, or MAX + 8 bytes." OCTEON_FRAME_HEADER_LEN "define" is fine for ring buffer management, but should not be used for AGL_GMX_RX0/1_FRM_MAX. The problem could be easily reproduced using "ping" command. If affected system has default MTU 1500, other host (having MTU >= 1504) can successfully "ping" the affected system with payload size 1473-1476, resulting in IP packets of size 1501-1504 accepted by the mgmt driver. Fixed system still accepts IP packets of 1500 bytes even with VLAN tagging, because the limits are lifted in HW as expected, for every VLAN tag. Signed-off-by: Alexander Sverdlin --- drivers/net/ethernet/cavium/octeon/octeon_mgmt.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/cavium/octeon/octeon_mgmt.c b/drivers/net/ethernet/cavium/octeon/octeon_mgmt.c index 3f6afb54a5eb..bb43ddb7539e 100644 --- a/drivers/net/ethernet/cavium/octeon/octeon_mgmt.c +++ b/drivers/net/ethernet/cavium/octeon/octeon_mgmt.c @@ -643,13 +643,21 @@ static int octeon_mgmt_set_mac_address(struct net_device *netdev, void *addr) static int octeon_mgmt_change_mtu(struct net_device *netdev, int new_mtu) { struct octeon_mgmt *p = netdev_priv(netdev); - int size_without_fcs = new_mtu + OCTEON_MGMT_RX_HEADROOM; + int max_packet = new_mtu + ETH_HLEN + ETH_FCS_LEN; netdev->mtu = new_mtu; - cvmx_write_csr(p->agl + AGL_GMX_RX_FRM_MAX, size_without_fcs); + /* HW lifts the limit if the frame is VLAN tagged + * (+4 bytes per each tag, up to two tags) + */ + cvmx_write_csr(p->agl + AGL_GMX_RX_FRM_MAX, max_packet); + /* Set the hardware to truncate packets larger than the MTU. The jabber + * register must be set to a multiple of 8 bytes, so round up. JABBER is + * an unconditional limit, so we need to account for two possible VLAN + * tags. + */ cvmx_write_csr(p->agl + AGL_GMX_RX_JABBER, - (size_without_fcs + 7) & 0xfff8); + (max_packet + 7 + VLAN_HLEN * 2) & 0xfff8); return 0; }