From patchwork Thu Oct 26 23:46:36 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Manlunas, Felix" X-Patchwork-Id: 830998 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@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; dkim=pass (1024-bit key; unprotected) header.d=CAVIUMNETWORKS.onmicrosoft.com header.i=@CAVIUMNETWORKS.onmicrosoft.com header.b="OimT7Tj1"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3yNNvl3Fj2z9s7F for ; Fri, 27 Oct 2017 10:46:59 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932402AbdJZXqz (ORCPT ); Thu, 26 Oct 2017 19:46:55 -0400 Received: from mail-co1nam03on0057.outbound.protection.outlook.com ([104.47.40.57]:53891 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751489AbdJZXqx (ORCPT ); Thu, 26 Oct 2017 19:46:53 -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=hWYrfRn9Ezin0XHEM3LHAgNv/CnTZXtS4v+TW3HA7oA=; b=OimT7Tj1WI6Sj/Am0VKKgQFuROzuICrztPc85dc4HjyDQIxl0l8bvswiUv/dyX0Sux+6pjyd7PXvxbcbQlCXAu1zXWEGfGp2hUhKBfdZHsm6XsZD5l9Kc97krZmgaLnFTg4LkHRCVWQAXsQQyyuEqPpGTa5b3F8QIR8No2I13zw= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Felix.Manlunas@cavium.com; Received: from localhost (50.233.148.156) by CY4PR07MB3176.namprd07.prod.outlook.com (10.172.115.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.178.6; Thu, 26 Oct 2017 23:46:51 +0000 Date: Thu, 26 Oct 2017 16:46:36 -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 Subject: [PATCH net-next] liquidio: fix kernel panic in VF driver Message-ID: <20171026234636.GA18898@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: YQXPR0101CA0067.CANPRD01.PROD.OUTLOOK.COM (52.132.74.44) To CY4PR07MB3176.namprd07.prod.outlook.com (10.172.115.142) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6f5901b9-1b10-4769-60f0-08d51ccbd4e8 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(4534020)(4602075)(4627075)(201703031133081)(201702281549075)(2017052603199); SRVR:CY4PR07MB3176; X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3176; 3:noNVjlt+G8E/jTZ57vvL8/pwvs+4/i9XnHQNu1cztkEJ3Rkm1xoFnxoM8Es5/1Jt16mN7ltqCthkNUoHG6008W/4d4EFCveGRreG5oVTAFd73MVPwPgLo4TujP3D7/k/puFdpt/mhyxlrCpuabAvm7lcyV6ilaqKUqSb8IqnBHcf5Q7N6UB7uDFJTL2fFCN/qR5USrJoCatKg6ri7t2VYO1AqXNWc3sbEmVTDxc6xWRFiyMpVeZ4ccwOdufN6XUg; 25:4qKuYp+DRFinzCIpqLvipkfabawrY19IwmOVp4Ck+R8gE6x3xfWytASLtKvmN+FOCF7copUhIak99oaRespwz+lAmOkX1WMOzhTfDMbPFDYv3aIwkNOH9q10kALrhzOa1Hn0jimpX/grUskpez+2+IrJcKu+J3nvusQZkBQU3RmSubOejXt2OKLBrCEtyV++r2ypZ1Oz5aoLReD8OBAIvBmQSQ6/c2UvV2fxYkvIwlVRzrA2SeQ9fYOsVNv5rc64vWvhmO2KJw9ngGFj8OUpVhhUc1Dp8jaM2YQvOLGsZzYh5AohI+9vSPasT3CvLcQFwfwRey0eJjrtUIGDvsTtXStgMl0/6QUfDunxvvAFOeQ=; 31:gbV/8nHjza0cstkmJiDVOdbomiDUtJJuoktrv4OfBDLqwoq3cXTmI3U3KmXC7R9LU+SCqTLavhwQHjTeL6dxjm1mJ7Ri7+O3FyY3KoSmlsfgE/iJU9EXrITo+6foFLWKgpxS6eEIDVkU28X48OnaOpDvFIJW23AoFN7kTHYATRqnq8IOIUFdF1mLgxxHVQkYPns1ABcaAgUa77m4c7KUqaC+OSYSAKL5qHCYDuCwWJo= X-MS-TrafficTypeDiagnostic: CY4PR07MB3176: X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3176; 20:7N6hudps9hpUmR3qWL6k/Zohu80wKTRBojMWFXbc0Bvv3CX8k3q8C0FBhjmCwHJ3dorVTTSIzJdJyh0TkL4bcoyb5eIvxBMfKfK9M5H8ogp5lfFKpn2cmN3vHvBn7u5dA4ckKnXHwDH4WQbMjxNEJJeWZEUPz1qnMWDa/LL7Ao6ikhKH+oBqVIyX2+fswJkXu2kN2kdATuMWEneZphOgiSFuTAXlKF3vbpTqIV/PD2tJ3k1i96/U9LJ1L+hCbDMPsevN4cMZBdgsgnMoDXhL25KkFRhGAEktr363FJ63WcNCGoSR7sN9LibLJMskoq+TZLwNRYOY77iGNIubpF2VZqqxXvBHhpmDjx/qASLkxoSrL8KsmfuwY/Sft4lGxZfOliOmLgyEtyqte07K9cDfJ3HYQ8mm58qyrKyMrzM7y5VMj5ULk41UqYMavp076f4KMwpgQkMZgV+50l15oG+GXDkMl33kPEghlCH/d59Q7FfwlX2ar8eZHRnrc6VMqIyj; 4:E/Ni2mhBNKbg7vyUYIM1DACr2kDGjds+qL09o/rQDtgCKh4KuyTpoES4qZzdtwZP1MoJinq9tSEvp4B7f25T1z186MzHyJGAGvASqcbmNEwkgCK6ta3peUPQg6+tOgnPZH7pjhn7sTNDGRv1skz9TjNur7vnDIi4JjJqo9WaujRZX0+BUG0PMKxOBh5Irq4CRR5FQGjGTb3QRqMPv42H4MaVXM3YCXlGwKXWkxpzRG6VZcsMDQrSjIP5O3Iix1bXodU3XuQw8ug1AFnjc0xzcw== X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(100000703101)(100105400095)(10201501046)(3002001)(93006095)(93001095)(3231020)(6041248)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123564025)(20161123560025)(20161123562025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY4PR07MB3176; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY4PR07MB3176; X-Forefront-PRVS: 04724A515E X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(6069001)(376002)(346002)(199003)(189002)(316002)(5660300001)(47776003)(6666003)(4326008)(6916009)(7736002)(16586007)(478600001)(1076002)(189998001)(3846002)(6116002)(23726003)(305945005)(66066001)(68736007)(107886003)(6496005)(72206003)(25786009)(105586002)(106356001)(76506005)(2361001)(97736004)(58126008)(50986999)(54356999)(86362001)(6486002)(50466002)(53936002)(2351001)(33656002)(83506002)(16526018)(101416001)(81156014)(8936002)(81166006)(2906002)(8676002)(18370500001); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR07MB3176; H:localhost; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3176; 23:jBE3rdJmNphtu/4hAA5YCGp7jqW8WNeEpH7fWqa+5dxO1t4asLmZ0553yjvBc7b395UQpCvEOJkHK2J1zqV2lCKdBWruEF4YdO8VtMN0iqlD3/c0VI14miSXaJ1CG9z1RkcQzFx3k2gkza+nIVAwvjS+HxyRcq+Jvc1focfU5yE0GXo2zWzCtHCiV27kUyJF6mB/l6MfPHZ8rJKBkE2gwdMxwXzTFyWfJ1bKCsxA4aeUIbTupAjMSlTxVFOBXHqYrITEE12HyPpaxcEV+MEM8y0mkEBImdO8+3/zmpcnLM2W6BKEyZODqY9wzuLsjj7jdw/tpGiF8C33YhSzPuOr82mvNwLNRB+hQT14hTlkfIzNvXGhB7j62NyigfPCmcvaX74WnsxZSFpKOcSftMuTgkuavDE0sp/hFQzMkVj0SN/NwTF7FItMrAhGLHABn7SwJzO8ZkxWzx3ZXQTb9o7j2U3PXvT9qj7y+fxn/Tda9nRLg8X/ab9De1LCS0ZL9/bjq8fp81EV68tCMMlhkZnqipV0925ATD6fLTdDrM4Hrf8fVX6u+BYO7eMnCdudd7YqtA/ftKXNjdzvybmQa03te8RXS8HI1rjGC24eP1u/YC/nipg+agYUJdDaFYhABUpn/Ij8jVBKLdKNX6DLPDlY6lubhkqbrl22jc5hSKRuVVDdsgqjUEeASuXo0btDSqjIvB3ndFO9xQxEdt0uDXiy56xIPN66JhZkD9Zl5GQVAQK+BcpL0a3aNFgHDOD7ZZ0IypwbgfHyP7EpaXBCIQvoUxoeFOg0LNSl2n+BNUPpm95zcJs5qOlc4svO5AO8oYA2FJrtTZJ/oFNsE2AfOOhUfD/ZkYpipfaGJdsgSz0d1iZgNDEAPH8PpFrPPPIOeRToHi/KTZ0pTetF/8kxmp0wFvPxt2Dwsf7fRY6pzUjoNA87/JfAH4WE1BCB+ZniHVI2lcuwU3ckteJ6BWtAzlyOvm5AlSxNFPOKpHR68He09liHA+l2Iz2kNg6CF5hMXv8Iyka8QCSGaoE2oiAEymg/n8PTQl/dJRW2AKdvStxUjqoefnqCoDg6snqRdIgGJsUdrI6mT+77qbpAi85tCY4GL3O4UGcPEc0c2sU6DjhVDj1y5+zsAh4vURppLBEeH7k9KL+xp0SBbC0SDVJmFjfkiA== X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3176; 6:/csucSsywBpKe+sVFkIKNSn7qPHbusIYX/jDQqz3acr8ph63Tpe330i+GxJ9/urGj+1YNOCXH2LBPNorQapI0aQIL4TvGKc5anoU/+um2Y6yKpm3rrNRq2fB4EYPKkhPqbbXjldSKvzHrw/XsEyVaBumgby4Wo8uTisG2ep8JM7HBzvHJbVGldCzLB4Mxmg9xPTwjbXbY40b2F+Bnva/k+mHkTmqyDtV/WGnNa/PLryOvJARRFUmiI2DfVkq+AgN5GEtb8ZvOsTwfs9wn5NoFb2RogfxISt6Al1Z1+hNydEQmgafYo5upElx/eM6HrnloLg4twbyLaYf7QUQg48SKUNLonnOs4VUAU1njy6xvtQ=; 5:15p8XI9W5IsW9OWv49Psq5SvGjeTlkJQTiVmob8yls8IMNGOklXhVXMm41IR1eO+UFKmMSZT+UMvYS3ZIaQxAcuVKf+8MYmQ+dVU83pp8cff8TDvXPVeGrSkw+MoymSWeSVZEeugjpt5KoYoImJ0BgojsdXZmec1BWa/+kXStbk=; 24:2Vx0dYnUKDajVEQL+P+ir44oSKcNRbbc4Ylk0GA7J93mFWBkYRnHkz93lTUsawKgpkHNwz/x9dtdXi9YJkPvPQGLrro6oPljLjY9aiImVk4=; 7:tFc9ZYQB3i2NANcz6BM7XIybz3bggXPo3eKZyMUMiZGOWv15s9JMoFhwISB2uc5ymck1V1USSFB/j7XDcqTqvkBaB0lKMtN9J9f8SiBTdwwXg6DIHBzCOwVBGiJD5Mu0Kx6C6MYh1aakc5ecZFFcxiHhZNKLfZ5vdU5VwoJZGLlhjXJ1WGQ9CqJRyrgHFXKntINV2NjB+7O7RIfA0qOpX/GT37CawK0Eym3VzqeKecjRkxpnnDovx1nIbPIfQ2go SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Oct 2017 23:46:51.5449 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6f5901b9-1b10-4769-60f0-08d51ccbd4e8 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR07MB3176 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Doing ifconfig down on VF driver in the middle of receiving line rate traffic causes a kernel panic: LiquidIO_VF 0000:02:00.3: should not come here should not get rx when poll mode = 0 for vf BUG: unable to handle kernel NULL pointer dereference at (null) . . . Call Trace: ? tasklet_action+0x102/0x120 __do_softirq+0x91/0x292 irq_exit+0xb6/0xc0 do_IRQ+0x4f/0xd0 common_interrupt+0x93/0x93 RIP: 0010:cpuidle_enter_state+0x142/0x2f0 RSP: 0018:ffffffffa6403e20 EFLAGS: 00000246 ORIG_RAX: ffffffffffffff59 RAX: 0000000000000000 RBX: 0000000000000003 RCX: 000000000000001f RDX: 0000000000000000 RSI: 000000002ab7519f RDI: 0000000000000000 RBP: ffffffffa6403e58 R08: 0000000000000084 R09: 0000000000000018 R10: ffffffffa6403df0 R11: 00000000000003c7 R12: 0000000000000003 R13: ffffd27ebd806800 R14: ffffffffa64d40d8 R15: 0000007be072823f cpuidle_enter+0x17/0x20 call_cpuidle+0x23/0x40 do_idle+0x18c/0x1f0 cpu_startup_entry+0x64/0x70 rest_init+0xa5/0xb0 start_kernel+0x45e/0x46b x86_64_start_reservations+0x24/0x26 x86_64_start_kernel+0x6f/0x72 secondary_startup_64+0xa5/0xa5 Code: Bad RIP value. RIP: (null) RSP: ffff9246ed003f28 CR2: 0000000000000000 ---[ end trace 92731e80f31b7d7d ]--- Kernel panic - not syncing: Fatal exception in interrupt Kernel Offset: 0x24000000 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff) ---[ end Kernel panic - not syncing: Fatal exception in interrupt Reason is: in the function assigned to net_device_ops->ndo_stop, the steps for bringing down the interface are done in the wrong order. The step that notifies the NIC firmware to stop forwarding packets to host is done too late. Fix it by moving that step to the beginning. Signed-off-by: Felix Manlunas Signed-off-by: Raghu Vatsavayi --- drivers/net/ethernet/cavium/liquidio/lio_vf_main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c b/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c index 4c3b568..ed1f073 100644 --- a/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c +++ b/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c @@ -1288,6 +1288,9 @@ static int liquidio_stop(struct net_device *netdev) struct octeon_device *oct = lio->oct_dev; struct napi_struct *napi, *n; + /* tell Octeon to stop forwarding packets to host */ + send_rx_ctrl_cmd(lio, 0); + if (oct->props[lio->ifidx].napi_enabled) { list_for_each_entry_safe(napi, n, &netdev->napi_list, dev_list) napi_disable(napi); @@ -1305,9 +1308,6 @@ static int liquidio_stop(struct net_device *netdev) netif_carrier_off(netdev); lio->link_changes++; - /* tell Octeon to stop forwarding packets to host */ - send_rx_ctrl_cmd(lio, 0); - ifstate_reset(lio, LIO_IFSTATE_RUNNING); txqs_stop(netdev);