From patchwork Tue Jun 26 11:58:07 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Manlunas, Felix" X-Patchwork-Id: 934657 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="fdGRUQnF"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41F8rj739Rz9ryk for ; Tue, 26 Jun 2018 12:20:05 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965234AbeFZCUD (ORCPT ); Mon, 25 Jun 2018 22:20:03 -0400 Received: from mail-by2nam01on0054.outbound.protection.outlook.com ([104.47.34.54]:2548 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S965199AbeFZCUB (ORCPT ); Mon, 25 Jun 2018 22:20:01 -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:X-MS-Exchange-SenderADCheck; bh=sbVTe6myBrmqmiSG7Zgz9gZFo5xwWrO+rne5wmGichM=; b=fdGRUQnF/izH+NTqD7d7V8PPTdjL2EgLlfqQ02WAH4FEONjtQBnvnhl6wGk5jUKOZVBdptooVrrq0LQNJURAuxVfAoUKQxIW61YPWjkin9YhM5ZwAC64nCHN5YYrA8AuJef5Df3s/Ozzk//k/mrDyL5pxRlpDafJi98JyAPlkMs= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Felix.Manlunas@cavium.com; Received: from localhost (50.233.148.156) by DM5PR07MB2827.namprd07.prod.outlook.com (2603:10b6:3:7::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.884.23; Tue, 26 Jun 2018 02:19:59 +0000 Date: Tue, 26 Jun 2018 04:58:07 -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, ricardo.farrington@cavium.com, felix.manlunas@cavium.com Subject: [PATCH net-next] liquidio: fix kernel panic when NIC firmware is older than 1.7.2 Message-ID: <20180626115807.GA7089@felix-thinkpad.cavium.com> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.6.1 (2016-04-27) X-Originating-IP: [50.233.148.156] X-ClientProxiedBy: BYAPR02CA0005.namprd02.prod.outlook.com (2603:10b6:a02:ee::18) To DM5PR07MB2827.namprd07.prod.outlook.com (2603:10b6:3:7::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1214abfe-b90e-4a62-9c17-08d5db0b50f2 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(8989117)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600026)(711020)(2017052603328)(7153060)(7193020); SRVR:DM5PR07MB2827; X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB2827; 3:RWnaUeM36GCNgfOdgwp/FlxlwoOPD19vkp4KcAu0Rakz2MEmw8FlzLCGRtZOSKh8sOzDrQJ6jTLRiByJRw36SSpWNqYDKoVwZ1AKQ3Kg+mIu4BX3Zl7yS+7JOAGCl0I7PW3TyuWh3Z25b7ypa1a1YxGUWjBcaiOXrRyvvaPkc7DYzi6hAi7oe7EToxGTVxR5g0IK7cO+MWmTc7LFf4yeZRf0TW74Vl4w52vdcU2TgmZl5PuJ6YCZxKasWPaUFIOC; 25:pJD8TD7tkb4E2jQa3xyjIEzbur2+5bcBXWKPellZqcVLvjTBLvO4UfB3ezE4q7qzEPqKlS44QXy+ZNli1FJDvCatlZFnguKSZLKCqsL7OnNsS15tPBXRZj7Nl674ipuJyEAhhCNlAqyReTmMmXTpqYd5Yh9e4dlOw1AqUuAfWwIYTBpbMa/NOuY+NFhmBd2qVQnallrwUBTbcbFiqG5iBHWsbQW1DHYswdrXxmmY7toHjXWEgsZeDWqEABitEycuN/0s9rk/8n4AwukQEZ12T0oKf/y7QEqqXD/lvrOZWQtZPliKis6anOKDPMTYip4pamuXgS0kNOfHr3TOgBHEIA==; 31:18FMb+rZ1haK0LTBan1qgfyYfAr8vHJWSBq9bj201LgA/fxwuugAO5wOPtH21wubCJ05wY+AksMe7I38az5/gYO3Bk5vA+s7r9a6EXP2THyXG+PO5K2yqrWqrLcTOcULOIOk4gRkNQy5aACtIl/B4rh64wqkzd4nxnxnc24+hbqq4dAauHdXiFWrGzoylL4gPPirVsNA0o/BdyVf06u7YR/Mi/vK4RX9cysBR53OqAI= X-MS-TrafficTypeDiagnostic: DM5PR07MB2827: X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB2827; 20:tofsDpPzcD2T5VF5UPePRE4RerU6p3tbnErGA4Fm+9AnLrPAQJX4Cf9zMAKPs6iQsfAypymmsyr1ljohNDwhXZQfRGjtidR5xph4guF9+LdiqUJ9OHwpQ45fFWNUjlTvLQxR73tVYeYX8PaRJIn1FzgQzYTZyX7iPq2ZsBx0SErmNYPuArlU7OAwEvXwLelC3f6G5UGSWd3WflxrrletXqu1Vn7QIvfEHmDzKBqMEBzQQdoEs4RTDLIHkx9fujxPLejYDRHI5uAJqookz9zVLllT5FDSlI1ZEmBquOReYCNgfFeX/o23A3HvvIRrmpc4V8HgAy8mAK2smsbvZFnwDuQJrdAOUQIFvu9xduQupwI7vK6BWVopIeFApmnFeokhBPCZacbdP7mi6h/g7f3LFSzGtXB0RJKFCyhhbqx3CyiU+P8s76wwsEOXJUqVJ2gzwZU30NdYP7C6paRTooRWnZ89jwU9SDz57ixiTGrA/0deVearj2711HwPAShBUoaH; 4:2KGBEP8iTuspWfWIY7Uk8okPEsfHwjs6A4/Oq+fhOqf7QLq0cYvAcQ6JW9xbfHogJljeu82xGFN1V4+yLmG+zz2UIqryL1Zrm+/W04OA4t3CMN7kttiSpU3CaIsO6en6Dv73BQTSnLBNrTW3fKVa3+CKTT8DZ43WAFoauXsa0vzyN/xXxF3b5OSXM4CYgBs1JnJhwIfncaqYbb4ozqYKm2b+cdJoRlyJdL+DkoHcmhs8jKLfi7Z+5sVzPhi2Llp5iprlDHmQ+js0mCVd+xs9KA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(10201501046)(93006095)(93001095)(3231254)(944501410)(52105095)(3002001)(149027)(150027)(6041310)(20161123558120)(20161123560045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(6072148)(201708071742011)(7699016); SRVR:DM5PR07MB2827; BCL:0; PCL:0; RULEID:; SRVR:DM5PR07MB2827; X-Forefront-PRVS: 071518EF63 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6069001)(39860400002)(346002)(376002)(366004)(136003)(396003)(189003)(199004)(58126008)(66066001)(2351001)(47776003)(23726003)(6116002)(81166006)(3846002)(305945005)(8676002)(106356001)(105586002)(33656002)(6496006)(8936002)(5660300001)(52116002)(68736007)(2906002)(1076002)(386003)(53936002)(6916009)(107886003)(956004)(4326008)(26005)(476003)(86362001)(186003)(44832011)(72206003)(50466002)(16526019)(6666003)(81156014)(97736004)(316002)(16586007)(76506005)(7736002)(478600001)(486006)(2361001)(6486002)(25786009)(14444005)(18370500001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR07MB2827; H:localhost; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB2827; 23:UyVNYGAgwfQq/waclV3TthjlEMxxvGZlxiPc+VQHm1KZsOZNXutLCVg5UNg25pCg3H/9Ertfjq1aKG/D1T9nXwJv1pY78MNlqQe5++qrD25tDsZ6Nk7RZ401VSz1JDYIfQky7xb+ikdufrq733LSnXR/3CpEy/vgJeKzf3BRrd5vpgOsYo7GUqmhavtwso+y3wOBphgkKJoEmt+C1i9rRpMMN/ollY6X727gk7L+luilbhC5fXTetplWqPUxwlReKQTjU5bMtguDOUmayAEKPVt/RM3EHq5BhpMmhzCylx8U1wee5heynbed5B/3GzvdFwXtcQrgLR/KGxVCzZ5v3Rr7y2MG4GebmhDamiD6D3kPe6grSzdwkexMtKRgctzV6o1nsps+yvdiW2ZxLuhIFB8W73gkGiRSjeco++ymP/Psyz14+OjD81o7MCt4g73JHo3RcF+p2AuyEY1FXWfWSypCm19L/ZtgISnjN96VdOShvsiiyC8NDgnfBMIMVLOce680bg6iFIlpzc9wtwSflxOZguKFCxp32eH9T1JaVdSHJ7KHqRzYg7f2t+9y/InYm0eC/mxHXJZMyMwooKLADDalvsTnS+G7Vb7iuS52QzAs1X6NMAYE04XD6zrads+/AzQnqkw/h2744YTUkrcdFrn0Z8L9aR2jXjzPtjAHywjRGlz+FqVOcOTBCup6Q3/kwp+Od97SPPNH1j9v7cR6fgB6hRDsWQ3AmeY7sFZwnjCT8jwbDWRfiTg8r/36JimFBBkMc3xIIKisL/o/tyFZCgLEIIGVYSZYqPKfLnjfCx2eeQ8D+ZA9eFBo4u5OhctFcnHSfQunDJl55/OLFwzZgGqxTCoiEwmm51FUX5FwPTL4k4FiZpU6V0nP+FE8aBKe8Gz4+Zcx5IQXHNvMe1reP4Z3XCwikvj3vQUrGDyKtgEe1emYMZIz6TjmRSIyPgAGN78Vv1U6euK1u7eT+m7DdpqbOk3GQc4NYcZHTmL7TbNyyH5hL1Ct7IHyJl70GJavUUad3SUSbRYV+fsYxsS3PWT35ZdH9kZuxjVp2WDus4s5zlEE6FHtHVmQQ4JMpLNC23gz9mhjtbUSIt8dCP5vWHs+i5/jNdA/ijVDpxkhk9dV245DNEqapNLxGmRvoS5dXxxRdeqQ2v3CyGJ3RGeiebevGLUa2ayD841As15fkQNu5MSL8ekupUtxmKO/FnLn5FgF5RTdsSdWG68owHzxuqS+vcY3FrzwLyY/8wH1oms= X-Microsoft-Antispam-Message-Info: 6ZUPgXWnN0CA32V1/UKHYe84f7W4Q2/fm28mTCAcxwFLTtbChMb3uXsDyd8gQ37OoxnjQxtCv7OJViPy1H2SaFEJIQ/LwlTW5qmH9My0nZXAIynwTEFqBbMyGtszh/b4MOGwZ9EcmAhY2bZmC3ExExLYNIKsbh2cy85isBYqTNqjPqTQl1rNAQhYC/9sCu0MN2iEGjVdVEtgMsGYVzRQ1s7pgiLfIkyPs/Ma7CohLI82D9J+o/H1tO2hZgWm0lLdQ5iu/oHggBi9I3iplX1Ngdwr/XcMNmX+aLC8KZm2rpnjYyySxlxnuZelVinitFslx4tiEEVKGwGcLVlR1T6vtoN/8SAsR5lskOAMcHwknoE= X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB2827; 6:00M8JfEMpAXIEvkv3ryqdxGACFqFiim7UX83TgOAijVE24dLP8uSvHYTtlhmRAJnZqS6p4ODzT/HDXriGPsifTIKujGt9VjbSSV63KvJjPWvbyZt98akqddams4NcAxuBEujGY98efQWWuruh1opkd/buKWUeIacONjWvl21azIaIGaQKlyAog4D7urUWKfpeHoJtuE+Hf7d29cxE+hghL7u+zfoOQzR3PGoceJcpIfOAR8zP17Kd3mencRKxrsdOClur/4X7UvDaPvS5jAzNlYaPsH5HN93ZiAK6hVddwzedB86gXB4PZAIiY1CMhcotYAfkdKe3bMxUVmmab5lln0Kq/9e7yir/NEfmVMv0vZXMHnslnNRs05uEOmooJ6YLVX0Fy/yhhFRr7N6IYb0QJNs/DjTA0HJ+5o+2c3l/y66K0WxppoTCOWI4RWyJtR5EY8fw0xVlAeW72m+kdrTeQ==; 5:6zShvw+ODXSpVXhDUodVD/HPRBWFDIfaZcUdrspwTXy3CRt7FpYVCI1kPHElL4TVvkh+E3+wRf5sLy5kq+w/RVX9JGmU7qNb4+DnQx0N2ZAgx8DkA2ZAlgxSm+JC25nOGart1EeU6mAcFjb3pOJ8IOeeiIIm3W/wOcQhyiwaido=; 24:zGu6Sl7oZhuMAC4QM/LrnINbpSb3CXz2LX43IYms12H3ZsbXxpa9cGgZIkZODp+IOTtxuXVg7V1PUkzTWgoYgULV+1OWcwPxvMBDH8YXUE0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB2827; 7:Kpt0nNwa8vledyCz87cGIzJor7QWpdAkZneWVbL/NZd9lIsly+kc0G+ab5fdVsRHhOCstNrImcOLOctTk2x70fO1dp4R4oi+zRAUuMD17qQ2TsiA5gvEc5R21P04Jx2sNln3PaO7YYIbA++J4GUsfhgF29vW1TgXLWbO1wJGbTBykG7TJkJWSJhbb4K/d7P+jOkOqv5eNrLZI5s9AIuLit573XgtqfJXD21F9OGVDvtYMLO/QElCgIdUpJXK5TyE X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Jun 2018 02:19:59.0842 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1214abfe-b90e-4a62-9c17-08d5db0b50f2 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR07MB2827 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Rick Farrington Pre-1.7.2 NIC firmware does not support (and does not respond to) the "get speed" command which is sent by the 1.7.2 driver during modprobe. Due to a bug in older firmware (with respect to unknown commands), this unsupported command causes a cascade of errors that ends in a kernel panic. Fix it by making the sending of the "get speed" command conditional on the firmware version. Signed-off-by: Rick Farrington Acked-by: Derek Chickles Signed-off-by: Felix Manlunas --- Note: To avoid checkpatch.pl "WARNING: line over 80 characters", the comma that separates the arguments in the call to strcmp() was placed one line below the usual spot. drivers/net/ethernet/cavium/liquidio/lio_main.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/cavium/liquidio/lio_main.c b/drivers/net/ethernet/cavium/liquidio/lio_main.c index 7cb4e75..f83f884 100644 --- a/drivers/net/ethernet/cavium/liquidio/lio_main.c +++ b/drivers/net/ethernet/cavium/liquidio/lio_main.c @@ -3671,7 +3671,16 @@ static int setup_nic_devices(struct octeon_device *octeon_dev) OCTEON_CN2350_25GB_SUBSYS_ID || octeon_dev->subsystem_id == OCTEON_CN2360_25GB_SUBSYS_ID) { - liquidio_get_speed(lio); + /* speed control unsupported in f/w older than 1.7.2 */ + if (strcmp(octeon_dev->fw_info.liquidio_firmware_version + , "1.7.2") < 0) { + dev_info(&octeon_dev->pci_dev->dev, + "speed setting not supported by f/w."); + octeon_dev->speed_setting = 25; + octeon_dev->no_speed_setting = 1; + } else { + liquidio_get_speed(lio); + } if (octeon_dev->speed_setting == 0) { octeon_dev->speed_setting = 25;